diff options
| author | Quentin (OpenERP) <qdp-launchpad@openerp.com> | 2012-07-06 17:02:41 +0200 |
|---|---|---|
| committer | Quentin (OpenERP) <qdp-launchpad@openerp.com> | 2012-07-06 17:02:41 +0200 |
| commit | beebdb9f4e7a5cb8dedb5771468a15382df249f7 (patch) | |
| tree | fac73b37df450dd079fc27c0be3510651300f4a6 /addons | |
| parent | 6f70dc88c6f5ce3e7472087f61435fa475f727fc (diff) | |
| parent | 102ab0691fbbafd182315e4236ff8c1e64064ea3 (diff) | |
[MERGe] trunk
bzr revid: qdp-launchpad@openerp.com-20120706150241-ngjy36angw6lu3nj
Diffstat (limited to 'addons')
126 files changed, 1554 insertions, 3128 deletions
diff --git a/addons/account/i18n/ja.po b/addons/account/i18n/ja.po index 21c7bea93f3..d71bbe0de56 100644 --- a/addons/account/i18n/ja.po +++ b/addons/account/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-06-20 16:18+0000\n" -"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n" +"PO-Revision-Date: 2012-07-06 02:41+0000\n" +"Last-Translator: Akira Hiyama <Unknown>\n" "Language-Team: Japanese <ja@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-06-22 04:38+0000\n" -"X-Generator: Launchpad (build 15461)\n" +"X-Launchpad-Export-Date: 2012-07-06 04:58+0000\n" +"X-Generator: Launchpad (build 15558)\n" #. module: account #: view:account.invoice.report:0 @@ -4942,7 +4942,7 @@ msgstr "会計表" #. module: account #: field:account.journal.column,name:0 msgid "Column Name" -msgstr "カラム名" +msgstr "列名" #. module: account #: view:account.general.journal:0 diff --git a/addons/analytic_contract_expense_project/__openerp__.py b/addons/analytic_contract_expense_project/__openerp__.py index 41e0bbd084a..9dc4c114743 100644 --- a/addons/analytic_contract_expense_project/__openerp__.py +++ b/addons/analytic_contract_expense_project/__openerp__.py @@ -23,7 +23,7 @@ { 'name': 'Projects Management: hr_expense link', 'version': '1.1', - 'category': 'Sales Management', + 'category': 'Hidden', 'description': """ This module is for modifying project view to show some data related to the hr_expense module. ====================================================================================================== diff --git a/addons/analytic_contract_hr_expense/__openerp__.py b/addons/analytic_contract_hr_expense/__openerp__.py index 981f7226d6a..fb56d3d1749 100644 --- a/addons/analytic_contract_hr_expense/__openerp__.py +++ b/addons/analytic_contract_hr_expense/__openerp__.py @@ -23,7 +23,7 @@ { 'name': 'Contracts Management: hr_expense link', 'version': '1.1', - 'category': 'Sales Management', + 'category': 'Hidden', 'description': """ This module is for modifying account analytic view to show some data related to the hr_expense module. ====================================================================================================== diff --git a/addons/analytic_contract_project/__openerp__.py b/addons/analytic_contract_project/__openerp__.py index ccf712dc987..7ad28c911ba 100644 --- a/addons/analytic_contract_project/__openerp__.py +++ b/addons/analytic_contract_project/__openerp__.py @@ -23,6 +23,7 @@ "name" : "Contract On Project", "version": "1.1", "author" : "OpenERP SA", + 'category': 'Hidden', "website" : "http://www.openerp.com", "depends" : ["project", "account_analytic_analysis"], "description": """ diff --git a/addons/web_livechat/__init__.py b/addons/base_calendar/__init__.py index 761db42923c..ec4f5070d63 100644 --- a/addons/web_livechat/__init__.py +++ b/addons/base_calendar/__init__.py @@ -1,7 +1,8 @@ +# -*- coding: utf-8 -*- ############################################################################## -# +# # OpenERP, Open Source Management Solution -# Copyright (C) 2010 OpenERP s.a. (<http://openerp.com>). +# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -14,9 +15,12 @@ # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <http://www.gnu.org/licenses/>. # ############################################################################## -import publisher_warranty + +import base_calendar +import crm_meeting +import wizard # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/base_calendar/__openerp__.py b/addons/base_calendar/__openerp__.py index 1c8d35099b8..3f6ca129f6f 100644 --- a/addons/base_calendar/__openerp__.py +++ b/addons/base_calendar/__openerp__.py @@ -22,7 +22,7 @@ { "name": "Calendar Layer", "version": "1.0", - "depends": ["base", "mail"], + "depends": ["base", "base_status", "mail"], 'description': """ This is a full-featured calendar system. ======================================== @@ -46,7 +46,8 @@ If you need to manage your meetings, you should install the CRM module. 'security/calendar_security.xml', 'security/ir.model.access.csv', 'wizard/base_calendar_invite_attendee_view.xml', - 'base_calendar_view.xml' + 'base_calendar_view.xml', + 'crm_meeting_view.xml', ], "test" : ['test/base_calendar_test.yml'], "installable": True, diff --git a/addons/base_calendar/crm_meeting.py b/addons/base_calendar/crm_meeting.py new file mode 100644 index 00000000000..dcc97156681 --- /dev/null +++ b/addons/base_calendar/crm_meeting.py @@ -0,0 +1,82 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-today OpenERP SA (<http://www.openerp.com>) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +from osv import osv, fields +import tools +from tools.translate import _ + +import base_calendar +from base_status.base_state import base_state + +# +# crm.meeting is defined here so that it may be used by modules other than crm, +# without forcing the installation of crm. +# + +class crm_meeting_type(osv.Model): + _name = 'crm.meeting.type' + _description = 'Meeting Type' + _columns = { + 'name': fields.char('Name', size=64, required=True, translate=True), + } + +class crm_meeting(base_state, osv.Model): + """ Model for CRM meetings """ + _name = 'crm.meeting' + _description = "Meeting" + _order = "id desc" + _inherit = ["calendar.event", 'ir.needaction_mixin', "mail.thread"] + _columns = { + # base_state required fields + 'create_date': fields.datetime('Creation Date', readonly=True), + 'write_date': fields.datetime('Write Date', readonly=True), + 'date_open': fields.datetime('Confirmed', readonly=True), + 'date_closed': fields.datetime('Closed', readonly=True), + 'partner_id': fields.many2one('res.partner', 'Partner', states={'done': [('readonly', True)]}), + 'email_from': fields.char('Email', size=128, states={'done': [('readonly', True)]}, + help="These people will receive email."), + 'state': fields.selection( + [('draft', 'Unconfirmed'), ('open', 'Confirmed'), ('cancel', 'Cancelled'), ('done', 'Done')], + string='Status', size=16, readonly=True), + # Meeting fields + 'name': fields.char('Summary', size=128, required=True, states={'done': [('readonly', True)]}), + 'categ_id': fields.many2one('crm.meeting.type', 'Meeting Type'), + 'attendee_ids': fields.many2many('calendar.attendee', 'meeting_attendee_rel',\ + 'event_id', 'attendee_id', 'Attendees', states={'done': [('readonly', True)]}), + } + _defaults = { + 'state': 'draft', + } + + # ---------------------------------------- + # OpenChatter + # ---------------------------------------- + + def case_get_note_msg_prefix(self, cr, uid, id, context=None): + return 'Meeting' + + def case_open_send_note(self, cr, uid, ids, context=None): + return self.message_append_note(cr, uid, ids, body=_("Meeting has been <b>confirmed</b>."), context=context) + + def case_close_send_note(self, cr, uid, ids, context=None): + return self.message_append_note(cr, uid, ids, body=_("Meeting has been <b>done</b>."), context=context) + + diff --git a/addons/base_calendar/crm_meeting_view.xml b/addons/base_calendar/crm_meeting_view.xml new file mode 100644 index 00000000000..b6365ebc53c --- /dev/null +++ b/addons/base_calendar/crm_meeting_view.xml @@ -0,0 +1,371 @@ +<?xml version="1.0"?> +<openerp> + <data> + + <!-- Read/Unread actions --> + + <record id="actions_server_crm_meeting_read" model="ir.actions.server"> + <field name="name">Mark read</field> + <field name="condition">True</field> + <field name="type">ir.actions.server</field> + <field name="model_id" ref="model_crm_meeting"/> + <field name="state">code</field> + <field name="code">self.message_check_and_set_read(cr, uid, context.get('active_ids'), context=context)</field> + </record> + <record id="action_crm_meeting_read" model="ir.values"> + <field name="name">action_crm_meeting_read</field> + <field name="action_id" ref="actions_server_crm_meeting_read"/> + <field name="value" eval="'ir.actions.server,' + str(ref('actions_server_crm_meeting_read'))" /> + <field name="key">action</field> + <field name="model_id" ref="model_crm_meeting" /> + <field name="model">crm.meeting</field> + <field name="key2">client_action_multi</field> + </record> + + <record id="actions_server_crm_meeting_unread" model="ir.actions.server"> + <field name="name">Mark unread</field> + <field name="condition">True</field> + <field name="type">ir.actions.server</field> + <field name="model_id" ref="model_crm_meeting"/> + <field name="state">code</field> + <field name="code">self.message_check_and_set_unread(cr, uid, context.get('active_ids'), context=context)</field> + </record> + <record id="action_crm_meeting_unread" model="ir.values"> + <field name="name">action_crm_meeting_unread</field> + <field name="action_id" ref="actions_server_crm_meeting_unread"/> + <field name="value" eval="'ir.actions.server,' + str(ref('actions_server_crm_meeting_unread'))" /> + <field name="key">action</field> + <field name="model_id" ref="model_crm_meeting" /> + <field name="model">crm.meeting</field> + <field name="key2">client_action_multi</field> + </record> + + <!-- CRM Meetings Types Form View --> + + <record id="view_crm_meeting_type_tree" model="ir.ui.view"> + <field name="name">Meeting Types Tree</field> + <field name="model">crm.meeting.type</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Meeting Types" editable="bottom"> + <field name="name"/> + </tree> + </field> + </record> + + <record id="action_crm_meeting_type" model="ir.actions.act_window"> + <field name="name">Meeting Types</field> + <field name="res_model">crm.meeting.type</field> + <field name="view_type">form</field> + <field name="view_id" ref="view_crm_meeting_type_tree"/> + <field name="help">Create different meeting categories to better organize and classify your meetings.</field> + </record> + + <menuitem id="menu_crm_meeting_type" parent="base.menu_calendar_configuration" sequence="1" + action="action_crm_meeting_type" groups="base.group_no_one"/> + + <!-- CRM Meetings Form View --> + + <record model="ir.ui.view" id="view_crm_meeting_form"> + <field name="name">CRM - Meetings Form</field> + <field name="model">crm.meeting</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Meetings" version="7.0"> + <header> + <button name="case_open" string="Confirm" type="object" class="oe_highlight" + states="draft"/> + <button name="case_close" string="Done" type="object" class="oe_highlight" + states="open"/> + <button name="case_reset" string="Reset to Unconfirmed" type="object" + states="cancel,done"/> + <button name="case_cancel" string="Cancel" type="object" + states="draft,open"/> + <field name="state" widget="statusbar" statusbar_visible="draft,open,done"/> + </header> + <sheet> + <div class="oe_title"> + <div class="oe_edit_only"> + <label for="name" string="Title"/> + (<field name="allday" on_change="onchange_dates(date,False,False,allday)" class="oe_inline"/> + <label for="allday" string="All Day?"/>) + </div> + <h1> + <field name="name"/> + </h1> + <h2> + <label for="date" string="Starting at"/> + <field name="date" required="1" class="oe_inline"/> + <label for="location" string="in" class="oe_inline" attrs="{'invisible': [('location', '=', False)]}"/> + <field name="location" placeholder="Specify the location here" class="oe_inline"/> + </h2> + <h2> + <label for="duration" string="Duration" /> + <field name="duration" widget="float_time" + on_change="onchange_dates(date,duration,False,allday)" + class="oe_inline"/> ( + <field name="date_deadline" + string="End Date" required="1" + on_change="onchange_dates(date,False,date_deadline)" + class="oe_inline"/> ) + </h2> + </div> + <group> + <group> + <field name="user_id" /> + <field name="organizer"/> + </group> + <group> + <field name="alarm_id" string="Reminder" widget="selection" /> + <field name="class" string="Privacy"/> + <field name="show_as" string="Show Time as"/> + <field name="recurrency" string="Recurrence" attrs="{'readonly': ['|', ('recurrent_uid','!=',False), ('state','=','done')]}"/> + </group> + <group> + <field name="partner_id" string="Partner" + on_change="onchange_partner_id(partner_id)" /> + <field name="email_from"/> + </group> + <group> + <field name="categ_id" widget="selection"/> + <field name="rrule" invisible="1" readonly="1"/> + <field name="recurrent_id" invisible="1"/> + <field name="recurrent_uid" invisible="1"/> + </group> + </group> + <separator string="Description"/> + <field name="description"/> + <notebook> + <page string="Invitation Detail"> + <button string="Invite People" + name="%(base_calendar.action_view_calendar_invite_attendee_wizard)d" + icon="terp-partner" type="action" + attrs="{'readonly': [('state', '=', 'done')]}" + context="{'model' : 'crm.meeting', 'attendee_field':'attendee_ids'}" colspan="2"/> + <field name="attendee_ids" widget="one2many" mode="tree"> + <tree string="Invitation details" editable="top"> + <field name="sent_by_uid" string="From"/> + <field name="user_id" string="To"/> + <field name="email" string="Mail To"/> + <field name="role" /> + <field name="state" /> + <button name="do_tentative" + states="needs-action,declined,accepted" + string="Uncertain" type="object" + icon="terp-crm" /> + <button name="do_accept" string="Accept" + states="needs-action,tentative,declined" + type="object" icon="gtk-apply" /> + <button name="do_decline" string="Decline" + states="needs-action,tentative,accepted" + type="object" icon="gtk-cancel" /> + <button + name="%(base_calendar.action_view_calendar_invite_attendee_wizard)d" + string="Delegate" type="action" + icon="gtk-sort-descending" + states="needs-action,tentative,declined,accepted" + context="{'model' : 'calendar.attendee', 'attendee_field' : 'child_ids'}" /> + </tree> + <form string="Invitation details" version="7.0"> + <header> + <button name="do_tentative" type="object" + states="needs-action,declined,accepted" + string="Uncertain" icon="terp-crm" /> + <button name="do_accept" type="object" + states="needs-action,tentative,declined" + string="Accept" icon="gtk-apply" /> + <button name="do_decline" type="object" + states="needs-action,tentative,accepted" + string="Decline" icon="gtk-cancel" /> + <button name="%(base_calendar.action_view_calendar_invite_attendee_wizard)d" type="action" + states="needs-action,tentative,declined,accepted" + string="Delegate" icon="gtk-sort-descending" + context="{'model' : 'calendar.attendee', 'attendee_field' : 'child_ids'}" /> + <field name="state" widget="statusbar" statusbar_visible="draft,open,done"/> + </header> + <group> + <group> + <field name="email" /> + <field name="rsvp" /> + <field name="cutype" /> + <field name="role" /> + </group> + <group> + <field name="user_id"/> + </group> + </group> + </form> + </field> + </page> + <page string="Recurrence Options"><!-- attrs="{'invisible': [('recurrency','=',False)], 'readonly': ['|', ('recurrent_uid','!=',False), ('state','=','done')]}">--> + <group col="4" colspan="4" name="rrule"> + <group col="4" colspan="4"> + <field name="rrule_type" string=" Recurrence Pattern" /> + <field name="interval" /> + <field name="end_type" /> + <label string=" " colspan="2" /> + <newline /> + <field name="count" attrs="{'invisible' : [('end_type', '!=', 'count')] }"/> + <label string=" " colspan="2" /> + <newline /> + <field name="end_date" attrs="{'invisible' : [('end_type', '!=', 'end_date')], 'required': [('end_type', '=', 'end_date')]}"/> + <newline /> + </group> + <group col="8" colspan="4" name="Select weekdays" attrs="{'invisible' :[('rrule_type','not in', ['weekly'])]}"> + <separator string="Choose day where repeat the meeting" colspan="8"/> + <field name="mo" colspan="1" /> + <field name="tu" colspan="1" /> + <field name="we" colspan="1" /> + <field name="th" colspan="1" /> + <newline/> + <field name="fr" colspan="1" /> + <field name="sa" colspan="1" /> + <field name="su" colspan="1" /> + <newline /> + </group> + <group col="10" colspan="4" + attrs="{'invisible' : [('rrule_type','!=','monthly')]}"> + <separator string="Choose day in the month where repeat the meeting" colspan="12"/> + <group col="2" colspan="1"> + <field name="select1" /> + </group> + <group col="2" colspan="1"> + <field name="day" + attrs="{'required' : [('select1','=','date'), ('rrule_type','=','monthly')], + 'invisible' : [('select1','=','day')]}" /> + </group> + <group col="3" colspan="1"> + <field name="byday" string="The" + attrs="{'required' : [('select1','=','day'), ('rrule_type','=','monthly')], 'invisible' : [('select1','=','date')]}" /> + <field name="week_list" nolabel="1" + attrs="{'required' : [('select1','=','day'), ('rrule_type','=','monthly')], 'invisible' : [('select1','=','date')]}" /> + </group> + </group> + </group> + </page> + </notebook> + </sheet> + <footer> + <field name="message_ids" widget="mail_thread"/> + </footer> + </form> + </field> + </record> + + <!-- CRM Meeting Tree View --> + + <record model="ir.ui.view" id="view_crm_meeting_tree"> + <field name="name">CRM - Meetings Tree</field> + <field name="model">crm.meeting</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Meetings" fonts="bold:needaction_pending==True" + colors="red:state=='open';black:state in ('draft', 'cancel','done','pending')"> + <field name="name" string="Subject" /> + <field name="user_id"/> + <field name="date"/> + <field name="state"/> + <field name="duration" /> + <field name="partner_id" string="Partner" /> + <field name="location" /> + <field name="categ_id"/> + <field name="needaction_pending" invisible="1"/> + </tree> + </field> + </record> + + <!-- CRM Meeting Calendar --> + + <record model="ir.ui.view" id="view_crm_meeting_calendar"> + <field name="name">CRM - Meetings Calendar</field> + <field name="model">crm.meeting</field> + <field name="type">calendar</field> + <field name="priority" eval="2"/> + <field name="arch" type="xml"> + <calendar string="Meetings" date_start="date" color="user_id" date_stop="date_deadline" date_delay="duration"> + <field name="name"/> + <field name="partner_id"/> + </calendar> + </field> + </record> + + <!-- CRM Meeting Gantt --> + + <record id="view_crm_meeting_gantt" model="ir.ui.view"> + <field name="name">CRM - Meetings Gantt</field> + <field name="model">crm.meeting</field> + <field name="type">gantt</field> + <field name="arch" type="xml"> + <gantt date_delay="duration" date_start="date" string="Meetings"/> + </field> + </record> + + <!-- CRM Meeting Search View --> + + <record id="view_crm_meeting_search" model="ir.ui.view"> + <field name="name">CRM - Meetings Search</field> + <field name="model">crm.meeting</field> + <field name="type">search</field> + <field name="arch" type="xml"> + <search string="Search Meetings"> + <group> + <field name="name" string="Meeting / Partner" + filter_domain="['|',('name','ilike',self),('partner_id','ilike', self)]"/> + <filter string="Inbox" help="Unread messages" icon="terp-mail-message-new" + name="needaction_pending" domain="[('needaction_pending','=',True)]"/> + <separator orientation="vertical"/> + <filter string="My Meetings" help="My Meetings" icon="terp-personal" + domain="[('user_id','=',uid)]"/> + <separator orientation="vertical"/> + <field name="user_id"/> + <field name="partner_id"/> + </group> + </search> + </field> + </record> + + <!-- CRM Meetings action and menu --> + + <record id="action_crm_meeting" model="ir.actions.act_window"> + <field name="name">Meetings</field> + <field name="res_model">crm.meeting</field> + <field name="view_mode">calendar,tree,form,gantt</field> + <field name="view_id" ref="view_crm_meeting_calendar"/> + <field name="search_view_id" ref="view_crm_meeting_search"/> + <field name="context">{"calendar_default_user_id": uid}</field> + <field name="help"> + The meeting calendar is shared between the sales teams and fully integrated with other applications + such as the employee holidays or the business opportunities. + You can also synchronize meetings with your mobile phone using the caldav interface. + </field> + </record> + <record model="ir.actions.act_window.view" id="action_view_crm_meeting_calendar"> + <field name="act_window_id" ref="action_crm_meeting"/> + <field name="sequence" eval="1"/> + <field name="view_mode">calendar</field> + <field name="view_id" ref="view_crm_meeting_calendar"/> + </record> + <record model="ir.actions.act_window.view" id="action_view_crm_meeting_tree"> + <field name="act_window_id" ref="action_crm_meeting"/> + <field name="sequence" eval="2"/> + <field name="view_mode">tree</field> + <field name="view_id" ref="view_crm_meeting_tree"/> + </record> + <record model="ir.actions.act_window.view" id="action_view_crm_meeting_form"> + <field name="act_window_id" ref="action_crm_meeting"/> + <field name="sequence" eval="3"/> + <field name="view_mode">form</field> + <field name="view_id" ref="view_crm_meeting_form"/> + </record> + <record model="ir.actions.act_window.view" id="action_view_crm_meeting_gantt"> + <field name="act_window_id" ref="action_crm_meeting"/> + <field name="sequence" eval="4"/> + <field name="view_mode">gantt</field> + <field name="view_id" ref="view_crm_meeting_gantt"/> + </record> + + <menuitem id="menu_crm_meeting" parent="base.menu_sales" sequence="8" + name="Meetings" action="action_crm_meeting"/> + + </data> +</openerp> diff --git a/addons/base_calendar/security/ir.model.access.csv b/addons/base_calendar/security/ir.model.access.csv index 34543f0e912..24af1abf0e5 100644 --- a/addons/base_calendar/security/ir.model.access.csv +++ b/addons/base_calendar/security/ir.model.access.csv @@ -5,3 +5,9 @@ access_res_alarm,res.alarm,model_res_alarm,base.group_user,1,1,1,1 access_calendar_todo,calendar.todo,model_calendar_todo,base.group_user,1,1,1,1
access_calendar_event,calendar.event,model_calendar_event,base.group_user,1,1,1,1
access_calendar_attendee_survey_user,calendar.attendee,model_calendar_attendee,base.group_survey_user,1,0,0,0
+access_crm_meeting_manager,crm.meeting.manager,model_crm_meeting,base.group_sale_manager,1,1,1,1
+access_crm_meeting,crm.meeting,model_crm_meeting,base.group_sale_salesman,1,1,1,0
+access_crm_meeting_all,crm.meeting_allll,model_crm_meeting,base.group_user,1,0,0,0
+access_crm_meeting_partner_manager,crm.meeting.partner.manager,model_crm_meeting,base.group_partner_manager,1,1,1,1
+access_crm_meeting_type_manager,crm.meeting.type.manager,model_crm_meeting_type,base.group_sale_manager,1,1,1,0
+access_crm_meeting_type_manager,crm.meeting.type.manager,model_crm_meeting_type,base.group_system,1,1,1,1
diff --git a/addons/base_status/base_state.py b/addons/base_status/base_state.py index 5baf71a01b6..35995ac7da3 100644 --- a/addons/base_status/base_state.py +++ b/addons/base_status/base_state.py @@ -29,6 +29,7 @@ class base_state(object): - ``date_closed`` (datetime field) - ``user_id`` (many2one to res.users) - ``partner_id`` (many2one to res.partner) + - ``email_from`` (char field) - ``state`` (selection field) """ diff --git a/addons/crm/__init__.py b/addons/crm/__init__.py index 95cf8b53f27..729d54e0fc6 100644 --- a/addons/crm/__init__.py +++ b/addons/crm/__init__.py @@ -22,8 +22,8 @@ import crm import crm_action_rule import crm_segmentation -import crm_meeting import crm_lead +import crm_meeting import crm_phonecall import report import wizard diff --git a/addons/crm/board_crm_view.xml b/addons/crm/board_crm_view.xml index 1b8148fe43b..d73939c759e 100644 --- a/addons/crm/board_crm_view.xml +++ b/addons/crm/board_crm_view.xml @@ -69,10 +69,10 @@ <field name="name">Meetings</field> <field name="res_model">crm.meeting</field> <field name="view_mode">calendar,tree,form,gantt</field> - <field name="view_id" ref="crm.crm_case_tree_view_meet"/> + <field name="view_id" ref="base_calendar.view_crm_meeting_tree"/> <field name="context">{"calendar_default_user_id":uid}</field> <field name="domain">[('state','=','open'),('date','>',datetime.date.today().strftime("%Y-%m-%d %H:%M:%S"))]</field> - <field name="search_view_id" ref="view_crm_case_meetings_filter"/> + <field name="search_view_id" ref="base_calendar.view_crm_meeting_search"/> </record> <record model="ir.ui.view" id="board_crm_statistical_form"> diff --git a/addons/crm/crm_demo.xml b/addons/crm/crm_demo.xml index e98b88e60fa..89da8d357f7 100644 --- a/addons/crm/crm_demo.xml +++ b/addons/crm/crm_demo.xml @@ -9,7 +9,7 @@ <field name="name">Meetings</field> <field name="resource">ir.ui.menu</field> <field name="user_id" ref="base.user_demo"/> - <field name="res_id" ref="crm.menu_crm_case_categ_meet"/> + <field name="res_id" ref="base_calendar.menu_crm_meeting"/> </record> <record model="crm.case.section" id="section_sales_marketing_department"> diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 69d390ff04d..adf15e93a89 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -41,6 +41,7 @@ class crm_lead(base_stage, osv.osv): _description = "Lead/Opportunity" _order = "priority,date_action,id desc" _inherit = ['ir.needaction_mixin', 'mail.thread'] + _mail_compose_message = True def _get_default_section_id(self, cr, uid, context=None): """ Gives default section by checking if present in the context """ @@ -763,43 +764,21 @@ class crm_lead(base_stage, osv.osv): } def action_makeMeeting(self, cr, uid, ids, context=None): + """ This opens Meeting's calendar view to schedule meeting on current Opportunity + @return : Dictionary value for created Meeting view """ - This opens Meeting's calendar view to schedule meeting on current Opportunity - @return : Dictionary value for created Meeting view - """ - if context is None: - context = {} - value = {} - data_obj = self.pool.get('ir.model.data') - for opp in self.browse(cr, uid, ids, context=context): - # Get meeting views - tree_view = data_obj.get_object_reference(cr, uid, 'crm', 'crm_case_tree_view_meet') - form_view = data_obj.get_object_reference(cr, uid, 'crm', 'crm_case_form_view_meet') - calander_view = data_obj.get_object_reference(cr, uid, 'crm', 'crm_case_calendar_view_meet') - search_view = data_obj.get_object_reference(cr, uid, 'crm', 'view_crm_case_meetings_filter') - context.update({ - 'default_opportunity_id': opp.id, - 'default_partner_id': opp.partner_id and opp.partner_id.id or False, - 'default_user_id': uid, - 'default_section_id': opp.section_id and opp.section_id.id or False, - 'default_email_from': opp.email_from, - 'default_state': 'open', - 'default_name': opp.name - }) - value = { - 'name': _('Meetings'), - 'context': context, - 'view_type': 'form', - 'view_mode': 'calendar,form,tree', - 'res_model': 'crm.meeting', - 'view_id': False, - 'views': [(calander_view and calander_view[1] or False, 'calendar'), (form_view and form_view[1] or False, 'form'), (tree_view and tree_view[1] or False, 'tree')], - 'type': 'ir.actions.act_window', - 'search_view_id': search_view and search_view[1] or False, - 'nodestroy': True - } - return value - + opportunity = self.browse(cr, uid, ids[0], context) + res = self.pool.get('ir.actions.act_window').for_xml_id(cr, uid, 'base_calendar', 'action_crm_meeting', context) + res['context'] = { + 'default_opportunity_id': opportunity.id, + 'default_partner_id': opportunity.partner_id and opportunity.partner_id.id or False, + 'default_user_id': uid, + 'default_section_id': opportunity.section_id and opportunity.section_id.id or False, + 'default_email_from': opportunity.email_from, + 'default_state': 'open', + 'default_name': opportunity.name, + } + return res def unlink(self, cr, uid, ids, context=None): for lead in self.browse(cr, uid, ids, context): diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index 2579fa75cda..85f9a4aab5d 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -289,7 +289,7 @@ <t t-name="kanban-box"> <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click"> <div class="oe_dropdown_toggle oe_dropdown_kanban"> - <span class="oe_e">i</span> + <span class="oe_e">í</span> <ul class="oe_dropdown_menu"> <li><a type="edit" >Edit...</a></li> <li><a type="delete">Delete</a></li> @@ -311,18 +311,14 @@ <field name="partner_id"/> </div> <div style="padding-left: 0.5em"> - <i> - <t t-if="record.date_deadline.raw_value and record.date_deadline.raw_value lt (new Date())" t-set="red">oe_kanban_text_red</t> - <span t-attf-class="#{red || ''}"> - <field name="date_action"/> - </span> - <t t-if="record.date_action.raw_value"> : </t> - <field name="title_action"/> - </i> + <t t-if="record.date_deadline.raw_value and record.date_deadline.raw_value lt (new Date())" t-set="red">oe_kanban_text_red</t> + <span t-attf-class="#{red || ''}"><field name="date_action"/></span> + <t t-if="record.date_action.raw_value"> : </t> + <field name="title_action"/> </div> <div class="oe_right"> - <a t-if="record.priority.raw_value == 1" icon="star-on" type="object" name="set_normal_priority"/> - <a t-if="record.priority.raw_value != 1" icon="star-off" type="object" name="set_high_priority" style="opacity:0.7; filter:alpha(opacity=70);"/> + <a t-if="record.priority.raw_value == 1" type="object" name="set_normal_priority" class="oe_e oe_star_on">7</a> + <a t-if="record.priority.raw_value != 1" type="object" name="set_high_priority" class="oe_e oe_star_off">7</a> <!-- <t t-if="record.date_deadline.raw_value and record.date_deadline.raw_value lt (new Date())" t-set="red">oe_kaban_status_red</t> <span t-attf-class="oe_kanban_status #{red}"> </span> @@ -471,7 +467,7 @@ <label for="planned_revenue" class="oe_edit_only"/> <h2> <field name="planned_revenue" class="oe_inline"/> - <field name="company_currency" class="oe_edit_only oe_inline"/> at + <field name="company_currency" class="oe_inline"/> at <field name="probability" class="oe_inline"/> %% success rate </h2> </div> diff --git a/addons/crm/crm_meeting.py b/addons/crm/crm_meeting.py index 37f03d80ec4..bdc5e91ad33 100644 --- a/addons/crm/crm_meeting.py +++ b/addons/crm/crm_meeting.py @@ -19,56 +19,23 @@ # ############################################################################## -from base_calendar import base_calendar -from base_status.base_state import base_state -from base_status.base_stage import base_stage -import logging from osv import fields, osv import tools from tools.translate import _ +import logging _logger = logging.getLogger(__name__) -class crm_lead(base_stage, osv.osv): - """ CRM Leads """ - _name = 'crm.lead' - -class crm_meeting(base_state, osv.Model): +# +# crm.meeting is defined in module base_calendar +# +class crm_meeting(osv.Model): """ Model for CRM meetings """ - _name = 'crm.meeting' - _description = "Meeting" - _order = "id desc" - _inherit = ["calendar.event", 'ir.needaction_mixin', "mail.thread"] + _inherit = 'crm.meeting' _columns = { - # base_state required fields - 'partner_id': fields.many2one('res.partner', 'Partner', states={'done': [('readonly', True)]}), 'section_id': fields.many2one('crm.case.section', 'Sales Team', states={'done': [('readonly', True)]}, select=True, groups='base.group_sale_salesman', help='Sales team to which Case belongs to.'), - 'email_from': fields.char('Email', size=128, states={'done': [('readonly', True)]}, help="These people will receive email."), - 'create_date': fields.datetime('Creation Date' , readonly=True), - 'write_date': fields.datetime('Write Date' , readonly=True), - 'date_action_last': fields.datetime('Last Action', readonly=1), - 'date_action_next': fields.datetime('Next Action', readonly=1), - # Meeting fields - 'name': fields.char('Summary', size=124, required=True, states={'done': [('readonly', True)]}), - 'categ_id': fields.many2one('crm.case.categ', 'Meeting Type', \ - domain="[('object_id.model', '=', 'crm.meeting')]", \ - ), 'phonecall_id': fields.many2one ('crm.phonecall', 'Phonecall'), 'opportunity_id': fields.many2one ('crm.lead', 'Opportunity', domain="[('type', '=', 'opportunity')]"), - 'attendee_ids': fields.many2many('calendar.attendee', 'meeting_attendee_rel',\ - 'event_id', 'attendee_id', 'Attendees', states={'done': [('readonly', True)]}), - 'date_closed': fields.datetime('Closed', readonly=True), - 'date_deadline': fields.datetime('Deadline', states={'done': [('readonly', True)]}), - 'state': fields.selection([ ('draft', 'Unconfirmed'), - ('open', 'Confirmed'), - ('cancel', 'Cancelled'), - ('done', 'Done')], - string='Status', size=16, readonly=True), - } - _defaults = { - 'state': 'draft', - 'active': 1, - 'user_id': lambda self, cr, uid, ctx: uid, } def create(self, cr, uid, vals, context=None): @@ -76,52 +43,28 @@ class crm_meeting(base_state, osv.Model): self.create_send_note(cr, uid, [obj_id], context=context) return obj_id - def case_open(self, cr, uid, ids, context=None): - """ Confirms meeting """ - res = super(crm_meeting, self).case_open(cr, uid, ids, context) - for (id, name) in self.name_get(cr, uid, ids): - id=base_calendar.base_calendar_id2real_id(id) - return res - - # ---------------------------------------- - # OpenChatter - # ---------------------------------------- - - def case_get_note_msg_prefix(self, cr, uid, id, context=None): - return 'Meeting' - def create_send_note(self, cr, uid, ids, context=None): if context is None: context = {} # update context: if come from phonecall, default state values can make the message_append_note crash context.pop('default_state', False) for meeting in self.browse(cr, uid, ids, context=context): - # convert datetime field to a datetime, using server format, then - # convert it to the user TZ and re-render it with %Z to add the timezone - meeting_datetime = fields.DT.datetime.strptime(meeting.date, tools.DEFAULT_SERVER_DATETIME_FORMAT) - meeting_date_str = fields.datetime.context_timestamp(cr, uid, meeting_datetime, context=context).strftime(tools.DATETIME_FORMATS_MAP['%+'] + " (%Z)") - message = _("A meeting has been <b>scheduled</b> on <em>%s</em>.") % (meeting_date_str) + # in the message, transpose meeting.date to the timezone of the current user + meeting_date = fields.DT.datetime.strptime(meeting.date, tools.DEFAULT_SERVER_DATETIME_FORMAT) + meeting_date_tz = fields.datetime.context_timestamp(cr, uid, meeting_date, context=context).strftime(tools.DATETIME_FORMATS_MAP['%+'] + " (%Z)") if meeting.opportunity_id: # meeting can be create from phonecalls or opportunities, therefore checking for the parent lead = meeting.opportunity_id - parent_message = _("Meeting linked to the opportunity <em>%s</em> has been <b>created</b> and <b>cscheduled</b> on <em>%s</em>.") % (lead.name, meeting.date) + message = _("Meeting linked to the opportunity <em>%s</em> has been <b>created</b> and <b>scheduled</b> on <em>%s</em>.") % (lead.name, meeting_date_tz) lead.message_append_note(_('System Notification'), message) elif meeting.phonecall_id: phonecall = meeting.phonecall_id - parent_message = _("Meeting linked to the phonecall <em>%s</em> has been <b>created</b> and <b>cscheduled</b> on <em>%s</em>.") % (phonecall.name, meeting.date) + message = _("Meeting linked to the phonecall <em>%s</em> has been <b>created</b> and <b>scheduled</b> on <em>%s</em>.") % (phonecall.name, meeting_date_tz) phonecall.message_append_note(body=message) else: - parent_message = message - if parent_message: - meeting.message_append_note(body=parent_message) + message = _("A meeting has been <b>scheduled</b> on <em>%s</em>.") % (meeting_date_tz) + meeting.message_append_note(body=message) return True - def case_open_send_note(self, cr, uid, ids, context=None): - return self.message_append_note(cr, uid, ids, body=_("Meeting has been <b>confirmed</b>."), context=context) - - def case_close_send_note(self, cr, uid, ids, context=None): - return self.message_append_note(cr, uid, ids, body=_("Meeting has been <b>done</b>."), context=context) - - class calendar_attendee(osv.osv): """ Calendar Attendee """ @@ -155,8 +98,6 @@ class calendar_attendee(osv.osv): relation="crm.case.categ", multi='categ_id'), } -calendar_attendee() - class res_users(osv.osv): _name = 'res.users' _inherit = 'res.users' @@ -177,7 +118,4 @@ class res_users(osv.osv): _logger.debug('Skipped meetings shortcut for user "%s"', data.get('name','<new')) return user_id -res_users() - - # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/crm/crm_meeting_data.xml b/addons/crm/crm_meeting_data.xml index 86cdf97a2a3..82752d1dc7d 100644 --- a/addons/crm/crm_meeting_data.xml +++ b/addons/crm/crm_meeting_data.xml @@ -4,22 +4,16 @@ <!-- CASE CATEGORY(categ_id) --> - <record model="crm.case.categ" id="categ_meet1"> + <record model="crm.meeting.type" id="categ_meet1"> <field name="name">Customer Meeting</field> - <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.meeting')]" model="ir.model"/> </record> - <record model="crm.case.categ" id="categ_meet2"> + <record model="crm.meeting.type" id="categ_meet2"> <field name="name">Internal Meeting</field> - <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.meeting')]" model="ir.model"/> </record> - <record model="crm.case.categ" id="categ_meet3"> + <record model="crm.meeting.type" id="categ_meet3"> <field name="name">Phone Call</field> - <field name="section_id" ref="section_sales_department"/> - <field name="object_id" search="[('model','=','crm.meeting')]" model="ir.model"/> </record> <record model="res.request.link" id="request_link_meeting"> diff --git a/addons/crm/crm_meeting_menu.xml b/addons/crm/crm_meeting_menu.xml index 3da817e8611..aec88a5748e 100644 --- a/addons/crm/crm_meeting_menu.xml +++ b/addons/crm/crm_meeting_menu.xml @@ -1,102 +1,9 @@ <?xml version="1.0"?> <openerp> <data> - <act_window - id="crm_case_categ_meet_create_partner" - name="Schedule a Meeting" - res_model="crm.meeting" - view_mode="calendar,tree,form,gantt" - context="{'default_partner_id': active_id, 'default_duration': 4.0}" - /> - - <record model="ir.actions.act_window.view" id="action_crm_tag_calendar_meet_partner"> - <field name="sequence" eval="1"/> - <field name="view_mode">calendar</field> - <field name="view_id" ref="crm_case_calendar_view_meet"/> - <field name="act_window_id" ref="crm_case_categ_meet_create_partner"/> - </record> - - <record model="ir.actions.act_window.view" id="action_crm_tag_tree_meet_partner"> - <field name="sequence" eval="2"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="crm_case_tree_view_meet"/> - <field name="act_window_id" ref="crm_case_categ_meet_create_partner"/> - </record> - - <record model="ir.actions.act_window.view" id="action_crm_tag_form_meet_partner"> - <field name="sequence" eval="3"/> - <field name="view_mode">form</field> - <field name="view_id" ref="crm_case_form_view_meet"/> - <field name="act_window_id" ref="crm_case_categ_meet_create_partner"/> - </record> - - <record model="ir.actions.act_window.view" id="action_crm_tag_gantt_meet_partner"> - <field name="sequence" eval="3"/> - <field name="view_mode">gantt</field> - <field name="view_id" ref="crm_case_gantt_view_meet"/> - <field name="act_window_id" ref="crm_case_categ_meet_create_partner"/> - </record> - - <record model="ir.actions.act_window" id="crm_case_categ_meet"> - <field name="name">Meetings</field> - <field name="res_model">crm.meeting</field> - <field name="view_mode">calendar,tree,form,gantt</field> - <field name="view_id" ref="crm_case_calendar_view_meet"/> - <field name="context">{"calendar_default_user_id":uid}</field> - <field name="search_view_id" ref="view_crm_case_meetings_filter"/> - <field name="help">The meeting calendar is shared between the sales teams and fully integrated with other applications such as the employee holidays or the business opportunities. You can also synchronize meetings with your mobile phone using the caldav interface. - </field> - </record> - - <record model="ir.actions.act_window.view" id="action_crm_tag_calendar_meet"> - <field name="sequence" eval="1"/> - <field name="view_mode">calendar</field> - <field name="view_id" ref="crm_case_calendar_view_meet"/> - <field name="act_window_id" ref="crm_case_categ_meet"/> - </record> - - <record model="ir.actions.act_window.view" id="action_crm_tag_tree_meet"> - <field name="sequence" eval="2"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="crm_case_tree_view_meet"/> - <field name="act_window_id" ref="crm_case_categ_meet"/> - </record> - - <record model="ir.actions.act_window.view" id="action_crm_tag_form__meet"> - <field name="sequence" eval="3"/> - <field name="view_mode">form</field> - <field name="view_id" ref="crm_case_form_view_meet"/> - <field name="act_window_id" ref="crm_case_categ_meet"/> - </record> - - <record model="ir.actions.act_window.view" id="action_crm_tag_gantt_meet"> - <field name="sequence" eval="1"/> - <field name="view_mode">gantt</field> - <field name="view_id" ref="crm_case_gantt_view_meet"/> - <field name="act_window_id" ref="crm_case_categ_meet"/> - </record> - -<!-- ALL MEETINGS --> <menuitem name="Import & Synchronize" id="base.menu_import_crm" parent="base.menu_base_partner"/> - <menuitem name="Meetings" id="menu_crm_case_categ_meet" - action="crm_case_categ_meet" parent="base.menu_sales" - sequence="8" /> - - <record id="action_view_attendee_form" model="ir.actions.act_window"> - <field name="name">Meeting Invitations</field> - <field name="type">ir.actions.act_window</field> - <field name="res_model">calendar.attendee</field> - <field name="view_type">form</field> - <field name="view_mode">tree,form</field> - <field name="view_id" ref="base_calendar.base_calendar_attendee_tree_view" /> - <field name="domain">[('ref','like','crm.meeting,')]</field> - <field name="context">{"search_default_toreview":1, "search_default_user_id":uid}</field> - <field name="help">With Meeting Invitations you can create and manage the meeting invitations sent/to be sent to your colleagues/partners. You can not only invite OpenERP users, but also external parties, such as a customer.</field> - </record> - - </data> </openerp> diff --git a/addons/crm/crm_meeting_shortcut_data.xml b/addons/crm/crm_meeting_shortcut_data.xml index 0f75c9e91ab..45488da8a82 100644 --- a/addons/crm/crm_meeting_shortcut_data.xml +++ b/addons/crm/crm_meeting_shortcut_data.xml @@ -6,7 +6,7 @@ <field name="name">Meetings</field> <field name="resource">ir.ui.menu</field> <field name="user_id" ref="base.user_root"/> - <field name="res_id" ref="crm.menu_crm_case_categ_meet"/> + <field name="res_id" ref="base_calendar.menu_crm_meeting"/> </record> </data> diff --git a/addons/crm/crm_meeting_view.xml b/addons/crm/crm_meeting_view.xml index 88ef7134735..f7c2ada05f2 100644 --- a/addons/crm/crm_meeting_view.xml +++ b/addons/crm/crm_meeting_view.xml @@ -2,361 +2,48 @@ <openerp> <data> - <!-- Read/Unread actions --> - <record id="actions_server_crm_meeting_unread" model="ir.actions.server"> - <field name="name">Mark unread</field> - <field name="condition">True</field> - <field name="type">ir.actions.server</field> - <field name="model_id" ref="model_crm_meeting"/> - <field name="state">code</field> - <field name="code">self.message_check_and_set_unread(cr, uid, context.get('active_ids'), context=context)</field> - </record> - <record id="action_crm_meeting_unread" model="ir.values"> - <field name="name">action_crm_meeting_unread</field> - <field name="action_id" ref="actions_server_crm_meeting_unread"/> - <field name="value" eval="'ir.actions.server,' + str(ref('actions_server_crm_meeting_unread'))" /> - <field name="key">action</field> - <field name="model_id" ref="model_crm_meeting" /> - <field name="model">crm.meeting</field> - <field name="key2">client_action_multi</field> - </record> - - <record id="actions_server_crm_meeting_read" model="ir.actions.server"> - <field name="name">Mark read</field> - <field name="condition">True</field> - <field name="type">ir.actions.server</field> - <field name="model_id" ref="model_crm_meeting"/> - <field name="state">code</field> - <field name="code">self.message_check_and_set_read(cr, uid, context.get('active_ids'), context=context)</field> - </record> - <record id="action_crm_meeting_read" model="ir.values"> - <field name="name">action_crm_meeting_read</field> - <field name="action_id" ref="actions_server_crm_meeting_read"/> - <field name="value" eval="'ir.actions.server,' + str(ref('actions_server_crm_meeting_read'))" /> - <field name="key">action</field> - <field name="model_id" ref="model_crm_meeting" /> - <field name="model">crm.meeting</field> - <field name="key2">client_action_multi</field> - </record> - - <!-- CRM Meetings Categories Form View --> - - <record id="crm_meeting_categ_action" model="ir.actions.act_window"> - <field name="name">Meeting Categories</field> - <field name="res_model">crm.case.categ</field> - <field name="view_type">form</field> - <field name="view_id" ref="crm.crm_case_categ_tree-view"/> - <field name="domain">[('object_id.model', '=', 'crm.meeting')]</field> - <field name="context" eval="{'object_id': ref('model_crm_meeting')}"/> - <field name="help">Create different meeting categories to better organize and classify your meetings.</field> - </record> - - <menuitem action="crm_meeting_categ_action" - groups="base.group_no_one" - id="menu_crm_case_meeting-act" parent="base.menu_calendar_configuration" sequence="1"/> - <!-- CRM Meetings Form View --> - <record model="ir.ui.view" id="crm_case_form_view_meet"> + <record model="ir.ui.view" id="view_crm_meeting_form"> <field name="name">CRM - Meetings Form</field> <field name="model">crm.meeting</field> <field name="type">form</field> + <field name="inherit_id" ref="base_calendar.view_crm_meeting_form"/> <field name="arch" type="xml"> - <form string="Meetings" version="7.0"> - <header> - <button name="case_open" string="Confirm" type="object" class="oe_highlight" - states="draft"/> - <button name="case_close" string="Done" type="object" class="oe_highlight" - states="open"/> - <button name="case_reset" string="Reset to Unconfirmed" type="object" - states="cancel,done"/> - <button name="case_cancel" string="Cancel" type="object" - states="draft,open"/> - <field name="state" widget="statusbar" statusbar_visible="draft,open,done"/> - </header> - <sheet> - <div class="oe_title"> - <div class="oe_edit_only"> - <label for="name" string="Title"/> - (<field name="allday" on_change="onchange_dates(date,False,False,allday)" class="oe_inline"/> - <label for="allday" string="All Day?"/>) - </div> - <h1> - <field name="name"/> - </h1> - </div> - <group> - <h2> - <label for="date" string="Starting at"/> - <field name="date" required="1" class="oe_inline"/> - <label string="in" class="oe_inline" attrs="{'invisible': [('location', '=', False)]}"/> <field name="location" placeholder="Specify the location here" class="oe_inline"/> - </h2> - </group> - <group> - <h2> - <label for="duration" string="Duration" /> - <field name="duration" widget="float_time" - on_change="onchange_dates(date,duration,False,allday)" - class="oe_inline"/> ( - <field name="date_deadline" - string="End Date" required="1" - on_change="onchange_dates(date,False,date_deadline)" - class="oe_inline"/> ) - </h2> - </group> - <group colspan="4" col="4"> - <group colspan="2"> - <field name="user_id" /> - <field name="organizer"/> - <field name="section_id" widget="selection"/> - </group> - <group colspan="2"> - <field name="alarm_id" string="Reminder" widget="selection" /> - <field name="class" string="Privacy"/> - <field name="show_as" string="Show Time as"/> - <field name="recurrency" string="Recurrence" attrs="{'readonly': ['|', ('recurrent_uid','!=',False), ('state','=','done')]}"/> - </group> - <group colspan="2"> - <field name="partner_id" string="Partner" - on_change="onchange_partner_id(partner_id)" /> - <field name="email_from"/> - </group> - <group colspan="2"> - <field name="categ_id" widget="selection" - string="Meeting Type" - domain="[('object_id.model', '=', 'crm.meeting')]" /> - <field name="rrule" invisible="1" readonly="1"/> - <field name="recurrent_id" invisible="1"/> - <field name="recurrent_uid" invisible="1"/> - </group> - </group> - <separator string="Description" colspan="4" /> - <field name="description" nolabel="1" colspan="4" /> - <notebook> - <page string="Invitation Detail"> - <button string="Invite People" - name="%(base_calendar.action_view_calendar_invite_attendee_wizard)d" - icon="terp-partner" type="action" - attrs="{'readonly': [('state', '=', 'done')]}" - context="{'model' : 'crm.meeting', 'attendee_field':'attendee_ids'}" colspan="2"/> - <field name="attendee_ids" colspan="4" - nolabel="1" widget="one2many" mode="tree"> - <tree string="Invitation details" editable="top"> - <field name="sent_by_uid" string="From"/> - <field name="user_id" string="To"/> - <field name="email" string="Mail To"/> - <field name="role" /> - <field name="state" /> - <button name="do_tentative" - states="needs-action,declined,accepted" - string="Uncertain" type="object" - icon="terp-crm" /> - <button name="do_accept" string="Accept" - states="needs-action,tentative,declined" - type="object" icon="gtk-apply" /> - <button name="do_decline" string="Decline" - states="needs-action,tentative,accepted" - type="object" icon="gtk-cancel" /> - <button - name="%(base_calendar.action_view_calendar_invite_attendee_wizard)d" - string="Delegate" type="action" - icon="gtk-sort-descending" - states="needs-action,tentative,declined,accepted" - context="{'model' : 'calendar.attendee', 'attendee_field' : 'child_ids'}" /> - </tree> - <form string="Invitation details" version="7.0"> - <notebook colspan="4"> - <page string="Details"> - <field name="email" /> - <field name="rsvp" /> - <field name="cutype" /> - <field name="role" /> - <separator colspan="4" string="" /> - <group col="6" colspan="4"> - <field name="state" /> - <button name="do_tentative" - states="needs-action,declined,accepted" - string="Uncertain" - type="object" - icon="terp-crm" /> - <button name="do_accept" - string="Accept" - states="needs-action,tentative,declined" - type="object" - icon="gtk-apply" /> - <button name="do_decline" - string="Decline" - states="needs-action,tentative,accepted" - type="object" - icon="gtk-cancel" /> - <button - name="%(base_calendar.action_view_calendar_invite_attendee_wizard)d" - string="Delegate" - type="action" - icon="gtk-sort-descending" - states="needs-action,tentative,declined,accepted" - context="{'model' : 'calendar.attendee', 'attendee_field' : 'child_ids'}" /> - </group> - </page> - <page string="Other"> - <field name="user_id"/> - <newline /> - </page> - </notebook> - </form> - </field> - </page> - <page string="Recurrence Options"><!-- attrs="{'invisible': [('recurrency','=',False)], 'readonly': ['|', ('recurrent_uid','!=',False), ('state','=','done')]}">--> - <group col="4" colspan="4" name="rrule"> - <group col="4" colspan="4"> - <field name="rrule_type" string=" Recurrence Pattern" /> - <field name="interval" /> - <field name="end_type" /> - <label string=" " colspan="2" /> - <newline /> - <field name="count" attrs="{'invisible' : [('end_type', '!=', 'count')] }"/> - <label string=" " colspan="2" /> - <newline /> - <field name="end_date" attrs="{'invisible' : [('end_type', '!=', 'end_date')], 'required': [('end_type', '=', 'end_date')]}"/> - <newline /> - - - </group> - <group col="8" colspan="4" name="Select weekdays" attrs="{'invisible' :[('rrule_type','not in', ['weekly'])]}"> - <separator string="Choose day where repeat the meeting" colspan="8"/> - <field name="mo" colspan="1" /> - <field name="tu" colspan="1" /> - <field name="we" colspan="1" /> - <field name="th" colspan="1" /> - <newline/> - <field name="fr" colspan="1" /> - <field name="sa" colspan="1" /> - <field name="su" colspan="1" /> - <newline /> - </group> - <group col="10" colspan="4" - attrs="{'invisible' : [('rrule_type','!=','monthly')]}"> - <separator string="Choose day in the month where repeat the meeting" colspan="12"/> - <group col="2" colspan="1"> - <field name="select1" /> - </group> - <group col="2" colspan="1"> - <field name="day" - attrs="{'required' : [('select1','=','date'), ('rrule_type','=','monthly')], - 'invisible' : [('select1','=','day')]}" /> - </group> - <group col="3" colspan="1"> - <field name="byday" string="The" - attrs="{'required' : [('select1','=','day'), ('rrule_type','=','monthly')], 'invisible' : [('select1','=','date')]}" /> - <field name="week_list" nolabel="1" - attrs="{'required' : [('select1','=','day'), ('rrule_type','=','monthly')], 'invisible' : [('select1','=','date')]}" /> - </group> - </group> - </group> - - </page> - </notebook> - </sheet> - <footer> - <field name="message_ids" widget="mail_thread"/> - </footer> - </form> - </field> - </record> - - <!-- CRM Meeting Tree View --> - - <record model="ir.ui.view" id="crm_case_tree_view_meet"> - <field name="name">CRM - Meetings Tree</field> - <field name="model">crm.meeting</field> - <field name="type">tree</field> - <field name="arch" type="xml"> - <tree string="Meetings" fonts="bold:needaction_pending==True" - colors="red:state=='open';black:state in ('draft', 'cancel','done','pending')"> - <field name="name" string="Subject" /> - <field name="user_id"/> - <field name="date"/> - <field name="state"/> - <field name="duration" /> - <field name="partner_id" string="Partner" /> - <field name="location" /> - <field name="categ_id"/> - <field name="needaction_pending" invisible="1"/> - </tree> + <field name="organizer" position="after"> + <field name="section_id" widget="selection"/> + </field> </field> </record> <!-- CRM Meeting Calendar --> - <record model="ir.ui.view" id="crm_case_calendar_view_meet"> + <record model="ir.ui.view" id="view_crm_meeting_calendar"> <field name="name">CRM - Meetings Calendar</field> <field name="model">crm.meeting</field> <field name="type">calendar</field> + <field name="inherit_id" ref="base_calendar.view_crm_meeting_calendar"/> <field name="priority" eval="2"/> <field name="arch" type="xml"> - <calendar string="Meetings" date_start="date" color="user_id" date_stop="date_deadline" date_delay="duration"> - <field name="name"/> - <field name="partner_id"/> + <field name="partner_id" position="after"> <field name="section_id" widget="selection"/> - </calendar> - </field> - </record> - - <!-- CRM Meeting Gantt --> - - <record id="crm_case_gantt_view_meet" model="ir.ui.view"> - <field name="name">CRM - Meetings Gantt</field> - <field name="model">crm.meeting</field> - <field name="type">gantt</field> - <field name="arch" type="xml"> - <gantt date_delay="duration" date_start="date" string="Meetings"> - </gantt> + </field> </field> </record> - <!-- CRM Meeting Search View --> - - <record id="view_crm_case_meetings_filter" model="ir.ui.view"> - <field name="name">CRM - Meetings Search</field> - <field name="model">crm.meeting</field> - <field name="type">search</field> - <field name="arch" type="xml"> - <search string="Search Meetings"> - <group> - <filter icon="terp-mail-message-new" - string="Inbox" help="Unread messages" - name="needaction_pending" - domain="[('needaction_pending','=',True)]"/> - <separator orientation="vertical"/> - <field name="name" string="Meeting / Partner" - filter_domain="['|',('name','ilike',self),('partner_id','ilike', self)]"/> - <separator orientation="vertical"/> - <filter string="My Meetings" - icon="terp-personal" - domain="[('user_id','=',uid)]" - help="My Meetings" /> - <separator orientation="vertical"/> - <field name="user_id"/> - <field name="partner_id"/> - </group> - </search> - </field> - </record> + <!-- Calendar Attendee Form View --> - <!-- Calendar Attendee Form View --> - - <record id="attendee_form_view_inherit" model="ir.ui.view"> - <field name="name">calendar.attendee.form.inherit</field> - <field name="model">calendar.attendee</field> - <field name="type">form</field> - <field name="inherit_id" ref="base_calendar.base_calendar_attendee_form_view"/> - <field name="arch" type="xml"> - <field name="ref" position="after"> - <field name="categ_id" string="Event Type"/> - </field> + <record id="attendee_form_view_inherit" model="ir.ui.view"> + <field name="name">calendar.attendee.form.inherit</field> + <field name="model">calendar.attendee</field> + <field name="type">form</field> + <field name="inherit_id" ref="base_calendar.base_calendar_attendee_form_view"/> + <field name="arch" type="xml"> + <field name="ref" position="after"> + <field name="categ_id" string="Event Type"/> </field> - </record> - + </field> + </record> </data> </openerp> diff --git a/addons/crm/crm_phonecall.py b/addons/crm/crm_phonecall.py index 13991245eda..facd0baba8a 100644 --- a/addons/crm/crm_phonecall.py +++ b/addons/crm/crm_phonecall.py @@ -241,49 +241,20 @@ class crm_phonecall(base_state, osv.osv): return opportunity_dict def action_make_meeting(self, cr, uid, ids, context=None): + """ This opens Meeting's calendar view to schedule meeting on current Phonecall + @return : Dictionary value for created Meeting view """ - This opens Meeting's calendar view to schedule meeting on current Phonecall - @return : Dictionary value for created Meeting view - """ - value = {} - for phonecall in self.browse(cr, uid, ids, context=context): - data_obj = self.pool.get('ir.model.data') - - # Get meeting views - result = data_obj._get_id(cr, uid, 'crm', 'view_crm_case_meetings_filter') - res = data_obj.read(cr, uid, result, ['res_id']) - id1 = data_obj._get_id(cr, uid, 'crm', 'crm_case_calendar_view_meet') - id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_form_view_meet') - id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_tree_view_meet') - if id1: - id1 = data_obj.browse(cr, uid, id1, context=context).res_id - if id2: - id2 = data_obj.browse(cr, uid, id2, context=context).res_id - if id3: - id3 = data_obj.browse(cr, uid, id3, context=context).res_id - - context = { - 'default_phonecall_id': phonecall.id, - 'default_partner_id': phonecall.partner_id and phonecall.partner_id.id or False, - 'default_email': phonecall.email_from , - 'default_name': phonecall.name - } - - value = { - 'name': _('Meetings'), - 'domain' : "[('user_id','=',%s)]" % (uid), - 'context': context, - 'view_type': 'form', - 'view_mode': 'calendar,form,tree', - 'res_model': 'crm.meeting', - 'view_id': False, - 'views': [(id1, 'calendar'), (id2, 'form'), (id3, 'tree')], - 'type': 'ir.actions.act_window', - 'search_view_id': res['res_id'], - 'nodestroy': True - } - - return value + phonecall = self.browse(cr, uid, ids[0], context) + res = self.pool.get('ir.actions.act_window').for_xml_id(cr, uid, 'base_calendar', 'action_crm_meeting', context) + res['context'] = { + 'default_phonecall_id': phonecall.id, + 'default_partner_id': phonecall.partner_id and phonecall.partner_id.id or False, + 'default_user_id': uid, + 'default_email_from': phonecall.email_from, + 'default_state': 'open', + 'default_name': phonecall.name, + } + return res # ---------------------------------------- # OpenChatter diff --git a/addons/crm/i18n/ja.po b/addons/crm/i18n/ja.po index f0761c35843..3454896c55a 100644 --- a/addons/crm/i18n/ja.po +++ b/addons/crm/i18n/ja.po @@ -8,19 +8,19 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-06-11 07:49+0000\n" -"Last-Translator: Tomomi Mengelberg <tomomi.mengelberg@aquasys.co.jp>\n" +"PO-Revision-Date: 2012-07-06 04:15+0000\n" +"Last-Translator: Akira Hiyama <Unknown>\n" "Language-Team: Japanese <ja@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-06-12 04:55+0000\n" -"X-Generator: Launchpad (build 15389)\n" +"X-Launchpad-Export-Date: 2012-07-06 04:58+0000\n" +"X-Generator: Launchpad (build 15558)\n" #. module: crm #: view:crm.lead.report:0 msgid "# Leads" -msgstr "# リード" +msgstr "リード番号" #. module: crm #: view:crm.lead:0 selection:crm.lead,type:0 view:crm.lead.report:0 @@ -36,12 +36,12 @@ msgstr "必要なサービス" #. module: crm #: selection:crm.meeting,rrule_type:0 msgid "Monthly" -msgstr "毎月" +msgstr "月次" #. module: crm #: model:ir.model,name:crm.model_crm_case_stage msgid "Stage of case" -msgstr "お問い合わせ対応状況" +msgstr "案件のステージ" #. module: crm #: view:crm.meeting:0 @@ -82,7 +82,7 @@ msgstr " " #. module: crm #: view:crm.lead.report:0 field:crm.phonecall.report,delay_close:0 msgid "Delay to close" -msgstr "" +msgstr "閉鎖の遅延" #. module: crm #: view:crm.lead:0 @@ -114,13 +114,13 @@ msgstr "日" #. module: crm #: sql_constraint:crm.case.section:0 msgid "The code of the sales team must be unique !" -msgstr "" +msgstr "営業チームのコードは固有である必要があります。" #. module: crm #: code:addons/crm/crm_lead.py:553 #, python-format msgid "Lead '%s' has been converted to an opportunity." -msgstr "" +msgstr "リード %s はオポチュニティに変換されました。" #. module: crm #: code:addons/crm/crm_lead.py:294 diff --git a/addons/crm/res_partner_view.xml b/addons/crm/res_partner_view.xml index 69f71c95405..49361097308 100644 --- a/addons/crm/res_partner_view.xml +++ b/addons/crm/res_partner_view.xml @@ -127,7 +127,7 @@ <xpath expr="//div[@name='buttons']" position="inside"> <button type="action" string="Schedule a Meeting" - name="%(crm.crm_case_categ_meet_create_partner)d" + name="%(base_calendar.action_crm_meeting)d" context="{'search_default_partner_id': active_id, 'default_duration': 4.0}"/> <button type="action" string="Schedule a Call" name="%(crm.crm_case_categ_phone_create_partner)d" diff --git a/addons/crm/security/ir.model.access.csv b/addons/crm/security/ir.model.access.csv index 7707118324f..5665839f365 100644 --- a/addons/crm/security/ir.model.access.csv +++ b/addons/crm/security/ir.model.access.csv @@ -7,12 +7,9 @@ access_crm_case_channel_user,crm.case.channel user,model_crm_case_channel,base.g access_crm_case_channel_manager,crm.case.channel manager,model_crm_case_channel,base.group_sale_manager,1,1,1,1
access_crm_case_section,crm.case.section,model_crm_case_section,base.group_user,1,0,0,0
access_crm_case_categ,crm.case.categ,model_crm_case_categ,base.group_sale_salesman,1,1,1,0
-access_crm_meeting_manager,crm.meeting.manager,model_crm_meeting,base.group_sale_manager,1,1,1,1
access_crm_lead_manager,crm.lead.manager,model_crm_lead,base.group_sale_manager,1,1,1,1
access_crm_phonecall_manager,crm.phonecall.manager,model_crm_phonecall,base.group_sale_manager,1,1,1,1
access_crm_case_categ,crm.case.categ,model_crm_case_categ,base.group_user,1,0,0,0
-access_crm_meeting,crm.meeting,model_crm_meeting,base.group_sale_salesman,1,1,1,0
-access_crm_meeting_all,crm.meeting_allll,model_crm_meeting,base.group_user,1,0,0,0
access_crm_lead,crm.lead,model_crm_lead,base.group_sale_salesman,1,1,1,0
access_crm_lead_all,crm.lead.all,model_crm_lead,base.group_user,1,0,0,0
access_crm_phonecall,crm.phonecall,model_crm_phonecall,base.group_sale_salesman,1,1,1,0
@@ -40,4 +37,3 @@ access_crm_lead_report_user,crm.lead.report user,model_crm_lead_report,base.grou access_res_partner_bank_type_crm_user,res.partner.bank.type.crm.user,base.model_res_partner_bank_type,base.group_sale_salesman,1,0,0,0
access_crm_lead_partner_manager,crm.lead.partner.manager,model_crm_lead,base.group_partner_manager,1,0,0,0
access_crm_phonecall_partner_manager,crm.phonecall.partner.manager,model_crm_phonecall,base.group_partner_manager,1,1,1,1
-access_crm_meeting_partner_manager,crm.meeting.partner.manager,model_crm_meeting,base.group_partner_manager,1,1,1,1
diff --git a/addons/crm/test/process/action_rule.yml b/addons/crm/test/process/action_rule.yml index b13c9b086cc..d394e65ac29 100644 --- a/addons/crm/test/process/action_rule.yml +++ b/addons/crm/test/process/action_rule.yml @@ -2,10 +2,9 @@ I create a record rule. - !python {model: base.action.rule}: | - modle_id = self.pool.get("ir.model").search(cr, uid, [('name', '=', 'crm.lead')]) + model_ids = self.pool.get("ir.model").search(cr, uid, [('model', '=', 'crm.lead')]) from datetime import datetime - new_id = self.create(cr, uid, {'name': 'New Rule', 'model_id': modle_id[0], 'trg_user_id': ref('base.user_root'), 'trg_partner_id': ref('base.res_partner_asus'), 'act_user_id': ref('base.user_demo') }) - lead_obj = self.pool.get("crm.lead") + new_id = self.create(cr, uid, {'name': 'New Rule', 'model_id': model_ids[0], 'trg_user_id': ref('base.user_root'), 'trg_partner_id': ref('base.res_partner_asus'), 'act_user_id': ref('base.user_demo') }) self._check(cr, uid) - I create new lead to check record rule. diff --git a/addons/crm/wizard/__init__.py b/addons/crm/wizard/__init__.py index 2fc39c51505..9d128492422 100644 --- a/addons/crm/wizard/__init__.py +++ b/addons/crm/wizard/__init__.py @@ -19,7 +19,6 @@ # ############################################################################## -import mail_compose_message import crm_add_note import crm_lead_to_partner diff --git a/addons/crm/wizard/crm_phonecall_to_meeting.py b/addons/crm/wizard/crm_phonecall_to_meeting.py index 9e902142c94..a01765220b8 100644 --- a/addons/crm/wizard/crm_phonecall_to_meeting.py +++ b/addons/crm/wizard/crm_phonecall_to_meeting.py @@ -41,58 +41,23 @@ class crm_phonecall2meeting(osv.osv_memory): return {'type':'ir.actions.act_window_close'} def action_make_meeting(self, cr, uid, ids, context=None): + """ This opens Meeting's calendar view to schedule meeting on current Phonecall + @return : Dictionary value for created Meeting view """ - This opens Meeting's calendar view to schedule meeting on current Phonecall - @param self: The object pointer - @param cr: the current row, from the database cursor, - @param uid: the current user’s ID for security checks, - @param ids: List of Phonecall to Meeting IDs - @param context: A standard dictionary for contextual values - - @return : Dictionary value for created Meeting view - """ - value = {} - record_id = context and context.get('active_id', False) or False - - if record_id: - phonecall_obj = self.pool.get('crm.phonecall') - data_obj = self.pool.get('ir.model.data') - - # Get meeting views - result = data_obj._get_id(cr, uid, 'crm', 'view_crm_case_meetings_filter') - res = data_obj.read(cr, uid, result, ['res_id']) - id1 = data_obj._get_id(cr, uid, 'crm', 'crm_case_calendar_view_meet') - id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_form_view_meet') - id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_tree_view_meet') - if id1: - id1 = data_obj.browse(cr, uid, id1, context=context).res_id - if id2: - id2 = data_obj.browse(cr, uid, id2, context=context).res_id - if id3: - id3 = data_obj.browse(cr, uid, id3, context=context).res_id - - phonecall = phonecall_obj.browse(cr, uid, record_id, context=context) - context = { - 'default_phonecall_id': phonecall.id, - 'default_partner_id': phonecall.partner_id and phonecall.partner_id.id or False, - 'default_email': phonecall.email_from , - 'default_name': phonecall.name - } - - value = { - 'name': _('Meetings'), - 'domain' : "[('user_id','=',%s)]" % (uid), - 'context': context, - 'view_type': 'form', - 'view_mode': 'calendar,form,tree', - 'res_model': 'crm.meeting', - 'view_id': False, - 'views': [(id1, 'calendar'), (id2, 'form'), (id3, 'tree')], - 'type': 'ir.actions.act_window', - 'search_view_id': res['res_id'] - } - - return value + res = {} + phonecall_id = context and context.get('active_id', False) or False + if phonecall_id: + phonecall = self.pool.get('crm.phonecall').browse(cr, uid, phonecall_id, context) + res = self.pool.get('ir.actions.act_window').for_xml_id(cr, uid, 'base_calendar', 'action_crm_meeting', context) + res['context'] = { + 'default_phonecall_id': phonecall.id, + 'default_partner_id': phonecall.partner_id and phonecall.partner_id.id or False, + 'default_user_id': uid, + 'default_email_from': phonecall.email_from, + 'default_state': 'open', + 'default_name': phonecall.name, + } + return res crm_phonecall2meeting() diff --git a/addons/crm/wizard/mail_compose_message.py b/addons/crm/wizard/mail_compose_message.py deleted file mode 100644 index b82c3083f3a..00000000000 --- a/addons/crm/wizard/mail_compose_message.py +++ /dev/null @@ -1,63 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2010-Today OpenERP SA (<http://www.openerp.com>) -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/> -# -############################################################################## - -from osv import osv -from osv import fields -import tools - -SUPPORTED_MODELS = ['crm.lead',] - -class mail_compose_message(osv.osv_memory): - _inherit = 'mail.compose.message' - - def get_value(self, cr, uid, model, res_id, context=None): - """Returns a defaults-like dict with initial values for the composition - wizard when sending an email related to the document record identified - by ``model`` and ``res_id``. - - Overrides the default implementation to provide more default field values - related to the corresponding CRM case. - - :param str model: model name of the document record this mail is related to. - :param int res_id: id of the document record this mail is related to. - :param dict context: several context values will modify the behavior - of the wizard, cfr. the class description. - """ - result = super(mail_compose_message, self).get_value(cr, uid, model, res_id, context=context) - if model in SUPPORTED_MODELS and res_id: - model_obj = self.pool.get(model) - data = model_obj.browse(cr, uid , res_id, context) - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - result.update({ - 'subject' : data.name or False, - 'email_to' : data.email_from or False, - 'email_from' : user.user_email or tools.config.get('email_from', False), - 'body_text' : '\n' + tools.ustr(user.signature or ''), - 'email_cc' : tools.ustr(data.email_cc or ''), - 'model': model, - 'res_id': res_id, - 'subtype': 'plain', - }) - if hasattr(data, 'section_id'): - result.update({'reply_to' : data.section_id and data.section_id.reply_to or False}) - return result - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/crm_caldav/crm_caldav_setup.xml b/addons/crm_caldav/crm_caldav_setup.xml index 7e20a318e4f..36f3c3fd78b 100644 --- a/addons/crm_caldav/crm_caldav_setup.xml +++ b/addons/crm_caldav/crm_caldav_setup.xml @@ -29,7 +29,7 @@ <field name="calendar_id" ref="basic_calendar_meetings0"/> <field name="domain">[('user_id','=', dctx_user_id)]</field> <field name="name">vevent</field> - <field name="object_id" ref="crm.model_crm_meeting"/> + <field name="object_id" ref="base_calendar.model_crm_meeting"/> </record> @@ -103,7 +103,7 @@ <record id="basic_calendar_fields_12" model="basic.calendar.fields"> <field name="name" ref="caldav.field_event_organizer"/> <field name="type_id" ref="basic_calendar_lines_vevent0"/> - <field name="field_id" ref="crm.field_crm_meeting_organizer"/> + <field name="field_id" ref="base_calendar.field_crm_meeting_organizer"/> <field name="fn">field</field> </record> <record id="basic_calendar_fields_13" model="basic.calendar.fields"> @@ -127,7 +127,7 @@ <record id="basic_calendar_fields_16" model="basic.calendar.fields"> <field name="name" ref="caldav.field_event_attendee"/> <field name="type_id" ref="basic_calendar_lines_vevent0"/> - <field name="field_id" ref="crm.field_crm_meeting_attendee_ids"/> + <field name="field_id" ref="base_calendar.field_crm_meeting_attendee_ids"/> <field name="fn">field</field> </record> <record id="basic_calendar_fields_17" model="basic.calendar.fields"> @@ -163,7 +163,7 @@ <record id="basic_calendar_fields_22" model="basic.calendar.fields"> <field name="name" ref="caldav.field_event_status"/> <field name="type_id" ref="basic_calendar_lines_vevent0"/> - <field name="field_id" ref="crm.field_crm_meeting_state"/> + <field name="field_id" ref="base_calendar.field_crm_meeting_state"/> <field name="mapping">{'tentative': 'draft', 'confirmed': 'open', 'cancelled': 'cancel'}</field> <field name="fn">field</field> </record> @@ -176,7 +176,7 @@ <record id="basic_calendar_fields_24" model="basic.calendar.fields"> <field name="name" ref="caldav.field_event_dtstamp"/> <field name="type_id" ref="basic_calendar_lines_vevent0"/> - <field name="field_id" ref="crm.field_crm_meeting_write_date"/> + <field name="field_id" ref="base_calendar.field_crm_meeting_write_date"/> <field name="fn">datetime_utc</field> </record> <record id="basic_calendar_fields_25" model="basic.calendar.fields"> diff --git a/addons/crm_claim/crm_claim.py b/addons/crm_claim/crm_claim.py index 5b98258240c..ec6252bcdca 100644 --- a/addons/crm_claim/crm_claim.py +++ b/addons/crm_claim/crm_claim.py @@ -22,14 +22,11 @@ from base_status.base_stage import base_stage import binascii from crm import crm -from crm import wizard from osv import fields, osv import time import tools from tools.translate import _ -wizard.mail_compose_message.SUPPORTED_MODELS.append('crm.claim') - CRM_CLAIM_PENDING_STATES = ( crm.AVAILABLE_STATES[2][0], # Cancelled crm.AVAILABLE_STATES[3][0], # Done @@ -75,6 +72,7 @@ class crm_claim(base_stage, osv.osv): _description = "Claim" _order = "priority,date desc" _inherit = ['mail.thread'] + _mail_compose_message = True _columns = { 'id': fields.integer('ID', readonly=True), 'name': fields.char('Claim Subject', size=128, required=True), diff --git a/addons/crm_claim/i18n/ja.po b/addons/crm_claim/i18n/ja.po index f76197d8d79..0d6587f3b09 100644 --- a/addons/crm_claim/i18n/ja.po +++ b/addons/crm_claim/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-06-09 18:59+0000\n" +"PO-Revision-Date: 2012-07-06 04:04+0000\n" "Last-Translator: Akira Hiyama <Unknown>\n" "Language-Team: Japanese <ja@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-06-10 04:37+0000\n" -"X-Generator: Launchpad (build 15376)\n" +"X-Launchpad-Export-Date: 2012-07-06 04:58+0000\n" +"X-Generator: Launchpad (build 15558)\n" #. module: crm_claim #: field:crm.claim.report,nbr:0 @@ -249,7 +249,7 @@ msgstr "次のアクション" #. module: crm_claim #: view:crm.claim.report:0 msgid "My Sales Team(s)" -msgstr "私の販売チーム" +msgstr "私の営業チーム" #. module: crm_claim #: model:crm.case.stage,name:crm_claim.stage_claim3 @@ -670,7 +670,7 @@ msgstr "クレームを検索する" #: field:crm.claim,section_id:0 #: view:crm.claim.report:0 msgid "Sales Team" -msgstr "販売チーム" +msgstr "営業チーム" #. module: crm_claim #: selection:crm.claim.report,month:0 diff --git a/addons/crm_fundraising/crm_fundraising.py b/addons/crm_fundraising/crm_fundraising.py index 20d90795ffc..495be4d729c 100644 --- a/addons/crm_fundraising/crm_fundraising.py +++ b/addons/crm_fundraising/crm_fundraising.py @@ -21,12 +21,9 @@ from base_status.base_stage import base_stage from crm import crm -from crm import wizard from osv import fields, osv from tools.translate import _ -wizard.mail_compose_message.SUPPORTED_MODELS.append('crm.fundraising') - class crm_fundraising(base_stage, osv.osv): """ Fund Raising Cases """ @@ -34,6 +31,7 @@ class crm_fundraising(base_stage, osv.osv): _description = "Fund Raising" _order = "id desc" _inherit = ['mail.thread'] + _mail_compose_message = True _columns = { 'id': fields.integer('ID', readonly=True), 'name': fields.char('Name', size=128, required=True), diff --git a/addons/crm_fundraising/i18n/ja.po b/addons/crm_fundraising/i18n/ja.po index e094f9ed8d0..0fbac12e0f4 100644 --- a/addons/crm_fundraising/i18n/ja.po +++ b/addons/crm_fundraising/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-06-09 19:04+0000\n" +"PO-Revision-Date: 2012-07-06 04:05+0000\n" "Last-Translator: Akira Hiyama <Unknown>\n" "Language-Team: Japanese <ja@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-06-10 04:37+0000\n" -"X-Generator: Launchpad (build 15376)\n" +"X-Launchpad-Export-Date: 2012-07-06 04:58+0000\n" +"X-Generator: Launchpad (build 15558)\n" #. module: crm_fundraising #: field:crm.fundraising,planned_revenue:0 @@ -236,7 +236,7 @@ msgstr "最低" #: view:crm.fundraising:0 #: view:crm.fundraising.report:0 msgid "My Sales Team(s)" -msgstr "私の販売チーム" +msgstr "私の営業チーム" #. module: crm_fundraising #: field:crm.fundraising,create_date:0 @@ -626,7 +626,7 @@ msgstr "責任者" msgid "" "Sales team to which Case belongs to. Define Responsible user and Email " "account for mail gateway." -msgstr "案件が割当てられた販売チーム。担当ユーザとEメール・アカウントを指定します。" +msgstr "案件が割当てられた営業チーム。担当ユーザとEメール・アカウントを指定します。" #. module: crm_fundraising #: model:ir.model,name:crm_fundraising.model_crm_fundraising_report @@ -763,7 +763,7 @@ msgstr "高い" #: field:crm.fundraising,section_id:0 #: view:crm.fundraising.report:0 msgid "Sales Team" -msgstr "販売チーム" +msgstr "営業チーム" #. module: crm_fundraising #: field:crm.fundraising.report,create_date:0 diff --git a/addons/crm_helpdesk/crm_helpdesk.py b/addons/crm_helpdesk/crm_helpdesk.py index fe7b0581e9b..4b0cb2e3ffa 100644 --- a/addons/crm_helpdesk/crm_helpdesk.py +++ b/addons/crm_helpdesk/crm_helpdesk.py @@ -21,7 +21,6 @@ from base_status.base_state import base_state from crm import crm -from crm import wizard from osv import fields, osv import tools from tools.translate import _ @@ -32,8 +31,6 @@ CRM_HELPDESK_STATES = ( crm.AVAILABLE_STATES[4][0], # Pending ) -wizard.mail_compose_message.SUPPORTED_MODELS.append('crm.helpdesk') - class crm_helpdesk(base_state, osv.osv): """ Helpdesk Cases """ @@ -41,6 +38,7 @@ class crm_helpdesk(base_state, osv.osv): _description = "Helpdesk" _order = "id desc" _inherit = ['mail.thread'] + _mail_compose_message = True _columns = { 'id': fields.integer('ID', readonly=True), 'name': fields.char('Name', size=128, required=True), diff --git a/addons/crm_helpdesk/i18n/ja.po b/addons/crm_helpdesk/i18n/ja.po index 3228f329919..156399a8159 100644 --- a/addons/crm_helpdesk/i18n/ja.po +++ b/addons/crm_helpdesk/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-05-28 19:12+0000\n" -"Last-Translator: Masaki Yamaya <Unknown>\n" +"PO-Revision-Date: 2012-07-06 04:05+0000\n" +"Last-Translator: Akira Hiyama <Unknown>\n" "Language-Team: Japanese <ja@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-29 04:46+0000\n" -"X-Generator: Launchpad (build 15316)\n" +"X-Launchpad-Export-Date: 2012-07-06 04:58+0000\n" +"X-Generator: Launchpad (build 15558)\n" #. module: crm_helpdesk #: field:crm.helpdesk.report,delay_close:0 @@ -207,7 +207,7 @@ msgstr "Eメールの数" #: view:crm.helpdesk:0 #: view:crm.helpdesk.report:0 msgid "My Sales Team(s)" -msgstr "私の販売チーム" +msgstr "私の営業チーム" #. module: crm_helpdesk #: field:crm.helpdesk,create_date:0 @@ -533,7 +533,7 @@ msgstr "催促を送る" msgid "" "Sales team to which Case belongs to. Define " "Responsible user and Email account for mail gateway." -msgstr "事象を割り当てる販売チーム。メールゲートウェイにと担当ユーザとEメールアカウントを作って下さい。" +msgstr "事象を割り当てる営業チーム。メールゲートウェイにと担当ユーザとEメールアカウントを作って下さい。" #. module: crm_helpdesk #: view:crm.helpdesk:0 @@ -708,7 +708,7 @@ msgstr "高い" #: field:crm.helpdesk,section_id:0 #: view:crm.helpdesk.report:0 msgid "Sales Team" -msgstr "販売チーム" +msgstr "営業チーム" #. module: crm_helpdesk #: field:crm.helpdesk,date_action_last:0 diff --git a/addons/crm_partner_assign/i18n/ja.po b/addons/crm_partner_assign/i18n/ja.po index 043ade7d9cc..b3c1547c154 100644 --- a/addons/crm_partner_assign/i18n/ja.po +++ b/addons/crm_partner_assign/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-05-25 04:47+0000\n" +"PO-Revision-Date: 2012-07-06 04:06+0000\n" "Last-Translator: Akira Hiyama <Unknown>\n" "Language-Team: Japanese <ja@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-06-28 04:40+0000\n" -"X-Generator: Launchpad (build 15505)\n" +"X-Launchpad-Export-Date: 2012-07-06 04:58+0000\n" +"X-Generator: Launchpad (build 15558)\n" #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,send_to:0 @@ -858,7 +858,7 @@ msgstr "高" #: field:crm.lead.report.assign,section_id:0 #: field:crm.partner.report.assign,section_id:0 msgid "Sales Team" -msgstr "販売チーム" +msgstr "営業チーム" #. module: crm_partner_assign #: field:crm.lead.report.assign,create_date:0 diff --git a/addons/crm_profiling/i18n/ja.po b/addons/crm_profiling/i18n/ja.po index bb07a87bb23..2f8aa5ef26c 100644 --- a/addons/crm_profiling/i18n/ja.po +++ b/addons/crm_profiling/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-05-10 18:04+0000\n" -"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n" +"PO-Revision-Date: 2012-07-06 04:06+0000\n" +"Last-Translator: Akira Hiyama <Unknown>\n" "Language-Team: Japanese <ja@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:04+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-07-06 04:58+0000\n" +"X-Generator: Launchpad (build 15558)\n" #. module: crm_profiling #: view:crm_profiling.questionnaire:0 @@ -30,7 +30,7 @@ msgid "" "segmentation tool allows you to automatically assign a partner to a category " "according to his answers to the different questionnaires." msgstr "" -"特定のトピックに関連した質問票を作成して、それを使って販売チームが適切な質問をするように指導できます。区分ツールを使って、質問に対する回答に応じて、パート" +"特定のトピックに関連した質問票を作成して、それを使って営業チームが適切な質問をするように指導できます。区分ツールを使って、質問に対する回答に応じて、パート" "ナを自動的に区分することができます。" #. module: crm_profiling diff --git a/addons/delivery/delivery_view.xml b/addons/delivery/delivery_view.xml index 5e54f74f7f1..f7053f1da1d 100644 --- a/addons/delivery/delivery_view.xml +++ b/addons/delivery/delivery_view.xml @@ -257,13 +257,15 @@ <field name="inherit_id" ref="sale.view_order_form"/> <field name="arch" type="xml"> <xpath expr="//group[@name='sale_total']" position="after"> - <group> + <group width="50%%"> <label for="carrier_id"/> <div> <field name="carrier_id" context="{'order_id':active_id or False}" class="oe_inline"/> - <button name="delivery_set" states="draft" string="Add to Sale Order" type="object"/> + <button name="delivery_set" states="draft" string="Charge in Sale Order" type="object" + attrs="{'invisible':[('carrier_id','=',False)]}"/> </div> - <label string="If you do not 'Add to Sale Order', the delivery charges will be added based on the delivery order."/> + <label string="If you do not 'Add to Sale Order', the delivery charges will be added based on the delivery order(s)." colspan="2" + attrs="{'invisible':[('carrier_id','=',False)]}"/> </group> </xpath> </field> diff --git a/addons/document/document_view.xml b/addons/document/document_view.xml index 6fb99d936d4..de9d422edab 100644 --- a/addons/document/document_view.xml +++ b/addons/document/document_view.xml @@ -238,51 +238,27 @@ <field name="model">ir.attachment</field> <field name="priority" eval="1"/> <field name="type">form</field> + <field name="inherit_id" ref="base.view_attachment_form"/> <field name="arch" type="xml"> - <form string="Documents" version="7.0"> - <sheet> - <group col="4"> - <field name="name"/> - <field name="parent_id"/> - <field name="user_id"/> - <field name="company_id" groups="base.group_multi_company" widget="selection"/> - </group> - <notebook colspan="4"> - <page string="Attachment"> - <group> - <group string="Data"> - <field name="type"/> - <newline /> - <field name="datas" filename="datas_fname" attrs="{'invisible':[('type','=','url')]}"/> - <field name="datas_fname" attrs="{'invisible':[('type','=','url')]}"/> - <field name="url" widget="url" attrs="{'invisible':[('type','=','binary')]}"/> - </group> - <group> - <field name="res_id" invisible="True"/> - <field name="res_model" readonly="True" invisible="True" attrs="{'invisible': [('res_id','=',0)]}"/> - <field name="res_name" readonly="1" attrs="{'invisible': [('res_id','=',0)]}"/> - <separator string="Related to" colspan="2"/> - <field name="partner_id"/> - </group> - <group groups="base.group_no_one" string="Created"> - <field name="create_uid" readonly="1"/> - <field name="create_date" readonly="1"/> - </group> - <group groups="base.group_no_one" string="Modified"> - <field name="write_uid" readonly="1"/> - <field name="write_date" readonly="1"/> - </group> - </group> - </page> - <page string="Indexed Content - experimental" groups="base.group_no_one"> - <field name="index_content"/> - </page> - <page string="Notes"> - <field name="description"/> - </page> - </notebook> - </sheet> - </form> + <field name="url" position="after"> + <field name="user_id"/> + </field> + <field name="company_id" position="before"> + <field name="parent_id"/> + <field name="partner_id"/> + </field> + <xpath expr="//div[@name='creation_div']" position='after'> + <label for="write_uid" string="Modification"/> + <div> + <field name="write_uid" readonly="1" class="oe_inline"/> on + <field name="write_date" readonly="1" class="oe_inline"/> + </div> + </xpath> + <xpath expr="//group[@name='description_group']" position='after'> + <group string="Indexed Content" colspan="4"> + <field name="index_content" nolabel="1"/> + </group> + </xpath> </field> </record> diff --git a/addons/document_ftp/wizard/ftp_browse_view.xml b/addons/document_ftp/wizard/ftp_browse_view.xml index e2e1825f522..a0656b5597d 100644 --- a/addons/document_ftp/wizard/ftp_browse_view.xml +++ b/addons/document_ftp/wizard/ftp_browse_view.xml @@ -12,7 +12,6 @@ or <button string="Cancel" class="oe_link" special="cancel" /> </header> - <separator string="Browse Document"/> <group> <field name="url" widget="url"/> </group> diff --git a/addons/edi/i18n/ar.po b/addons/edi/i18n/ar.po index 486cbbc8533..4a1208670d7 100644 --- a/addons/edi/i18n/ar.po +++ b/addons/edi/i18n/ar.po @@ -8,19 +8,19 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-04-06 00:12+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2012-07-06 02:21+0000\n" +"Last-Translator: Ahmad Khayyat <Unknown>\n" "Language-Team: Arabic <ar@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-04-07 04:56+0000\n" -"X-Generator: Launchpad (build 15060)\n" +"X-Launchpad-Export-Date: 2012-07-06 04:58+0000\n" +"X-Generator: Launchpad (build 15558)\n" #. module: edi #: sql_constraint:res.currency:0 msgid "The currency code must be unique per company!" -msgstr "" +msgstr "يجب أن يكون رمز العملة فريداً للشركة!" #. module: edi #: model:ir.model,name:edi.model_res_partner_address @@ -30,12 +30,12 @@ msgstr "عناوين الشريك" #. module: edi #: sql_constraint:res.company:0 msgid "The company name must be unique !" -msgstr "اسم الشركة يجب أن يكون فريداً !" +msgstr "يجب أن يكون اسم الشركة فريداً !" #. module: edi #: constraint:res.partner:0 msgid "Error ! You cannot create recursive associated members." -msgstr "" +msgstr "خطأ ! لا يمكنك إنشاء أعضاء مرتبطين و متداخلين." #. module: edi #: field:edi.document,name:0 @@ -111,12 +111,12 @@ msgstr "مستند" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:23 msgid "View/Print" -msgstr "" +msgstr "عرض/طباعة" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:28 msgid "Import this document" -msgstr "" +msgstr "إستيراد هذه الوثيقة" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:33 @@ -126,7 +126,7 @@ msgstr "" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:36 msgid "OpenERP instance address:" -msgstr "عنوان مثال أوبنيرب:" +msgstr "عنوان نسخة أوبن إي آر بي:" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:39 @@ -177,7 +177,7 @@ msgstr "" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:60 msgid "OpenERP documentation" -msgstr "وثائق أوبنيرب" +msgstr "توثيق أوبن إي آر بي" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:61 @@ -202,12 +202,12 @@ msgstr "تحميل" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:87 msgid "Powered by" -msgstr "مدعوم من kifcaliph و" +msgstr "يتم تشغيل هذا التطبيق بواسطة" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:87 msgid "OpenERP" -msgstr "أوبنيرب" +msgstr "أوبن إي آر بي" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:34 diff --git a/addons/edi/static/src/css/edi.css b/addons/edi/static/src/css/edi.css index 1601151ae1f..6385959c036 100644 --- a/addons/edi/static/src/css/edi.css +++ b/addons/edi/static/src/css/edi.css @@ -24,21 +24,6 @@ button.oe_edi_action_print img { height: 32px; } -.openerp input.invalid { - background-color: #F66 !important; - border: 1px solid #D00 !important; - color: #000; -} -/* following browse-specific hacks need to be separate rules, as browsers are - required to ignore rules with unknown selectors. At time of writing, there - is no standard way to style HTML5 placeholders */ -.openerp input.invalid:-moz-placeholder { - color: #FFF; -} -.openerp input.invalid::-webkit-input-placeholder { - color: #FFF; -} - /** EDI Sidebar **/ .oe_edi_sidebar_title { border-bottom: 1px solid #D2CFCF; @@ -81,9 +66,6 @@ button.oe_edi_action_print img { /** Paperbox, from http://www.sitepoint.com/pure-css3-paper-curl/ **/ -body { - background: #EEE; /* contrast with paper */ -} .oe_edi_paperbox { position: relative; width: 700px; @@ -225,4 +207,4 @@ table.oe_edi_data, .oe_edi_doc_title { .python .nu0 {color: #ff4500;} .python .me1 {color: black;} .python span.xtra { display:block; } -.python ol { padding: 0px; }
\ No newline at end of file +.python ol { padding: 0px; } diff --git a/addons/hr/hr_department_view.xml b/addons/hr/hr_department_view.xml index 1935cbbd03d..bbf66f0d4c3 100644 --- a/addons/hr/hr_department_view.xml +++ b/addons/hr/hr_department_view.xml @@ -13,12 +13,14 @@ <field name="type">form</field> <field name="arch" type="xml"> <form string="department" version="7.0"> - <group col="4"> - <field name="name"/> - <field name="parent_id"/> - <field name="manager_id"/> - <field name="company_id" widget="selection" groups="base.group_multi_company"/> - </group> + <sheet> + <group col="4"> + <field name="name"/> + <field name="manager_id"/> + <field name="parent_id"/> + <field name="company_id" widget="selection" groups="base.group_multi_company"/> + </group> + </sheet> </form> </field> </record> diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml index 310f8af37be..1797f32e9ce 100644 --- a/addons/hr/hr_view.xml +++ b/addons/hr/hr_view.xml @@ -20,60 +20,64 @@ <field name="arch" type="xml"> <form string="Employee" version="7.0"> <sheet> - <div class="oe_right oe_button_box"> - <!-- Put here related buttons --> - </div> - <field class="oe_right" name="photo" widget='image' on_change="onchange_photo(photo)"/> - <div class="oe_title"> - <label for="name" class="oe_edit_only"/> - <h1><field name="name"/></h1> - - <label for="company_id" class="oe_edit_only" groups="base.group_multi_company"/> - <h2><field name="company_id" widget="selection" on_change="onchange_company(company_id)" groups="base.group_multi_company"/></h2> - - <label for="department_id" class="oe_edit_only"/> - <h2><field name="department_id" on_change="onchange_department_id(department_id)"/></h2> - </div> - <notebook> - <page string="Personal Information"> - <group> - <group string="General"> - <field name="user_id" on_change="onchange_user(user_id)"/> - <field name="active"/> - <field name="parent_id"/> - </group> - <group groups="base.group_hr_user" string="Social IDs"> - <field name="identification_id"/> - <field name="passport_id"/> - <field name="otherid"/> - </group> - <group groups="base.group_hr_user" string="Status"> - <field name="gender"/> - <field name="marital"/> - <field name="country_id"/> - <field name="birthday"/> - </group> - <group string="Contact Information"> - <field name="address_home_id"/> - <field name="address_id" on_change="onchange_address_id(address_id)"/> - <field name="work_phone"/> - <field name="mobile_phone"/> - <field name="work_email" widget="email"/> - <field name="work_location"/> + <field name="photo" widget='image' class="oe_right" on_change="onchange_photo(photo)"/> + <div class="oe_right oe_button_box" name="button_box"> + <!-- Put here related buttons --> + </div> + <div class="oe_title"> + <label for="name" class="oe_edit_only"/> + <h1> + <field name="name" class="oe_inline"/> + <label class="oe_inline" string="," attrs="{'invisible': [('job_id', '=', False)]}"/> + <field class="oe_inline" name="job_id" domain="[('state','!=','old')]" context="{'form_view_ref': 'hr.view_hr_job_employee_form'}"/> + <label class="oe_inline" string="at" attrs="{'invisible': [('company_id', '=', False)]}" groups="base.group_multi_company"/> + <field class="oe_inline" name="company_id" groups="base.group_multi_company" on_change="onchange_company(company_id)"/> + </h1> + <label for="department_id" class="oe_edit_only"/> + <h2><field name="department_id" on_change="onchange_department_id(department_id)"/></h2> + <label for="category_ids" class="oe_edit_only"/> + <h3><field name="category_ids" widget="many2many_tags"/></h3> + </div> + <group colspan="4" col="4"> + <field name="work_email" widget="email" /> + <field name="work_phone"/> + <field name="address_id" on_change="onchange_address_id(address_id)" /> + <field name="mobile_phone"/> + </group> + <notebook> + <page string="Information"> + <group> + <group> + <field name="user_id" on_change="onchange_user(user_id)"/> + <field name="parent_id" /> + <field name="coach_id"/> + </group> + <group> + <field name="identification_id" groups="base.group_hr_user"/> + <field name="passport_id" groups="base.group_hr_user"/> + <field name="otherid" groups="base.group_hr_user"/> + </group> + <group name="active_group"> + <field name="active"/> + </group> </group> - <group string="Job Information"> - <field name="job_id" domain="[('state','!=','old')]" context="{'form_view_ref': 'hr.view_hr_job_employee_form'}"/> - <field name="coach_id"/> + <field name="notes" placeholder="Other Information ..." colspan="4"/> + </page> + <page string="Personal Information" groups="base.group_hr_user"> + <group col="4"> + <group> + <field name="country_id"/> + <field name="bank_account_id"/> + <field name="address_home_id"/> + </group> + <group> + <field name="gender"/> + <field name="marital"/> + <field name="birthday"/> + </group> </group> - </group> - </page> - <page string="Categories" groups="base.group_hr_user"> - <field name="category_ids" widget="many2many_tags"/> - </page> - <page string="Notes" groups="base.group_hr_user"> - <field name="notes"/> - </page> - </notebook> + </page> + </notebook> </sheet> </form> </field> @@ -359,16 +363,21 @@ <field name="state" widget="statusbar" statusbar_visible="recruit,open"/> </header> <sheet> + <label for="name" class="oe_edit_only"/> + <h1> + <field name="name" class="oe_inline"/> + <label class="oe_inline" string="(" attrs="{'invisible': [('department_id', '=', False)]}"/> + <field name="department_id" class="oe_inline"/> + <label class="oe_inline" string=")" attrs="{'invisible': [('department_id', '=', False)]}"/> + </h1> <group> <group> - <field name="name"/> - <field name="department_id"/> - <field name="company_id" widget="selection" groups="base.group_multi_company"/> - </group> - <group> - <field name="no_of_recruitment" on_change="on_change_expected_employee(no_of_recruitment,no_of_employee)"/> <field name="no_of_employee"/> <field name="expected_employees"/> + <field name="no_of_recruitment" on_change="on_change_expected_employee(no_of_recruitment,no_of_employee)"/> + </group> + <group> + <field name="company_id" widget="selection" groups="base.group_multi_company"/> </group> </group> <notebook> @@ -378,9 +387,6 @@ <label for="requirements"/> <field name="requirements"/> </page> - <page string="Employees" groups="base.group_user"> - <field name="employee_ids" widget="many2many" mode="tree,form"/> - </page> </notebook> </sheet> </form> diff --git a/addons/hr_attendance/hr_attendance_view.xml b/addons/hr_attendance/hr_attendance_view.xml index e769f3ff684..448e6401cbd 100644 --- a/addons/hr_attendance/hr_attendance_view.xml +++ b/addons/hr_attendance/hr_attendance_view.xml @@ -133,12 +133,13 @@ <field name="type">form</field> <field name="inherit_id" ref="hr.view_employee_form"/> <field name="arch" type="xml"> - <field name="coach_id" position="after"> - <group colspan="2"> - <field name="state"/> - <button name="attendance_action_change" states="present" string="Sign Out" type="object" icon="gtk-go-forward" context="{'type':'sign_out'}" groups="base.group_hr_user"/> - <button name="attendance_action_change" states="absent" string="Sign In" type="object" icon="gtk-go-back" context="{'type':'sign_in'}" groups="base.group_hr_user"/> - </group> + <field name="active" position="before"> + <label for="state"/> + <div> + <field name="state" class="oe_inline"/> + <button class="oe_inline oe_right" name="attendance_action_change" states="present" string="Sign Out" type="object" icon="gtk-go-forward" context="{'type':'sign_out'}" groups="base.group_hr_user"/> + <button class="oe_inline oe_right" name="attendance_action_change" states="absent" string="Sign In" type="object" icon="gtk-go-back" context="{'type':'sign_in'}" groups="base.group_hr_user"/> + </div> </field> </field> </record> diff --git a/addons/hr_contract/hr_contract.py b/addons/hr_contract/hr_contract.py index 4f82d1b3014..1267f13ac04 100644 --- a/addons/hr_contract/hr_contract.py +++ b/addons/hr_contract/hr_contract.py @@ -44,7 +44,7 @@ class hr_employee(osv.osv): 'place_of_birth': fields.char('Place of Birth', size=30), 'children': fields.integer('Number of Children'), 'vehicle': fields.char('Company Vehicle', size=64), - 'vehicle_distance': fields.integer('Home-Work Distance', help="In kilometers"), + 'vehicle_distance': fields.integer('Home-Work Dist.', help="In kilometers"), 'contract_ids': fields.one2many('hr.contract', 'employee_id', 'Contracts'), 'contract_id':fields.function(_get_latest_contract, string='Contract', type='many2one', relation="hr.contract", help='Latest contract of the employee'), } diff --git a/addons/hr_contract/hr_contract_view.xml b/addons/hr_contract/hr_contract_view.xml index 11cdba387ca..ae6789ea234 100644 --- a/addons/hr_contract/hr_contract_view.xml +++ b/addons/hr_contract/hr_contract_view.xml @@ -8,30 +8,32 @@ <field name="model">hr.employee</field> <field name="inherit_id" ref="hr.view_employee_form"/> <field name="arch" type="xml"> - <page string="Personal Information" position="after"> - <page string="Miscellaneous" groups="base.group_hr_user"> - <group colspan="2" col="2"> - <separator string="Personal Info" colspan="2"/> - <field name="bank_account_id"/> - <field name="place_of_birth"/> - <field name="children"/> - </group> - <group colspan="2" col="2"> - <separator string="Job Info" colspan="2"/> - <field name="manager" /> - <field name="vehicle" /> - <field name="vehicle_distance" /> + <data> + <xpath expr="//field[@name='parent_id']" position="before"> + <field name="manager"/> + </xpath> + <xpath expr="//group[@name='active_group']" position="before"> + <group> + <field name="vehicle"/> + <field name="vehicle_distance"/> </group> - <group colspan="2" col="2"> - <separator string="Others Info" colspan="2"/> - <field name="medic_exam" /> - </group> - </page> - </page> + </xpath> + <field name="active" position="before"> + <field name="medic_exam" string="Medical Exam"/> + </field> + <field name="birthday" position="before"> + <field name="children"/> + </field> + <field name="birthday" position="after"> + <field name="place_of_birth"/> + </field> + <field name="bank_account_id" position="replace"> + <field name="bank_account_id" context="{'display_partner':True, 'partner_id':partner_id}"/> + </field> + </data> </field> </record> - <record id="hr_contract_view_search" model="ir.ui.view"> <field name="name">hr.contract.view.search</field> <field name="model">hr.contract</field> @@ -67,34 +69,44 @@ <field name="arch" type="xml"> <form string="Contract" version="7.0"> <sheet> - <group col="4"> - <field name="name" /> - <field name="employee_id" /> - <field name="job_id"/> - <field name="wage"/> - <field name="type_id"/> + <div class="oe_title"> + <h1> + <field name="name" placeholder="Contract Reference"/> + </h1> + </div> + <group> + <group> + <field name="employee_id"/> + <field name="job_id"/> + </group> + <group> + <field name="type_id"/> + </group> </group> <notebook> <page string="Information" name="information"> <group> - <group name="left_column" string="Duration"> - <field name="date_start" /> - <field name="date_end" /> - <field name="working_hours"/> - </group> - <group string="Trial Period"> - <field name="trial_date_start" /> - <field name="trial_date_end" /> + <group name="salary_and_advantages" string="Salary and Advantages"> + <field name="wage"/> + <field name="advantages" nolabel="1" placeholder="Advantages..." colspan="2"/> </group> - <group name="right_column" string="Advantages"> - <field name="advantages" nolabel="1" colspan="2"/> + <group name="duration_group" string="Duration"> + <label for="trial_date_start" string="Trial Period Duration"/> + <div> + <field name="trial_date_start" class="oe_inline"/> - <field name="trial_date_end" class="oe_inline"/> + </div> + <label for="date_start" string="Duration"/> + <div> + <field name="date_start" class="oe_inline"/> - <field name="date_end" class="oe_inline"/> + </div> + <field name="working_hours"/> </group> </group> <separator string="Notes"/> <field name="notes"/> </page> <page string="Work Permit"> - <group string="Valid for"> + <group col="4"> <field name="visa_no"/> <field name="permit_no"/> <field name="visa_expire"/> diff --git a/addons/hr_evaluation/hr_evaluation_view.xml b/addons/hr_evaluation/hr_evaluation_view.xml index e6e3dd69a26..a5efaf42347 100644 --- a/addons/hr_evaluation/hr_evaluation_view.xml +++ b/addons/hr_evaluation/hr_evaluation_view.xml @@ -28,11 +28,15 @@ <field name="arch" type="xml"> <form string="Appraisal Plan" version="7.0"> <group col="4"> - <field name="name"/> - <field name="company_id" widget="selection" groups="base.group_multi_company"/> - <field name="month_first"/> - <field name="month_next"/> - <field name="active"/> + <group> + <field name="name"/> + <field name="company_id" widget="selection" groups="base.group_multi_company"/> + <field name="active"/> + </group> + <group> + <field name="month_first"/> + <field name="month_next"/> + </group> </group> <notebook> <page string="Appraisal Phases"> @@ -133,10 +137,12 @@ <field name="model">hr.employee</field> <field name="inherit_id" ref="hr.view_employee_form"/> <field name="arch" type="xml"> - <page string="Notes" position="before"> + <page string="Personal Information" position="after"> <page string="Appraisal" groups="base.group_hr_user"> - <field name="evaluation_plan_id" on_change="onchange_evaluation_plan_id(evaluation_plan_id, evaluation_date)"/> - <field name="evaluation_date"/> + <group col="4"> + <field name="evaluation_plan_id" on_change="onchange_evaluation_plan_id(evaluation_plan_id, evaluation_date)"/> + <field name="evaluation_date"/> + </group> </page> </page> </field> @@ -157,49 +163,50 @@ <field name="state" widget="statusbar" statusbar_visible="draft,progress,wait,done" statusbar_colors='{"progress":"blue"}'/> </header> <sheet> + <label for="employee_id" class="oe_edit_only"/> + <h1><field name="employee_id" on_change="onchange_employee_id(employee_id)" class="oe_inline"/>, <field name="date" class="oe_inline"/></h1> + <label for="plan_id" class="oe_edit_only"/> + <h2><field name="plan_id"/></h2> <group> - <group string="Appraisal Data"> - <field name="employee_id" on_change="onchange_employee_id(employee_id)"/> - <field name="plan_id"/> - <field name="date"/> - </group> - <group attrs="{'invisible':['|', ('state','=','draft'), ('state', '=', 'wait')]}" string="Ending Summary"> + <group colspan="4" attrs="{'invisible':['|', ('state','=','draft'), ('state', '=', 'wait')]}"> <field name="rating" attrs="{'readonly':[('state','<>','progress')]}"/> <field name="date_close" readonly="1"/> </group> </group> - <notebook> - <page string="Appraisal" attrs="{'invisible':[('state','=','draft')]}"> - <field name="survey_request_ids"> - <form string="Interview Appraisal" version="7.0"> - <group col="4"> + <group string="Appraisal Forms" attrs="{'invisible':[('state','=','draft')]}"> + <field nolabel="1" name="survey_request_ids"> + <form string="Interview Appraisal" version="7.0"> + <div class="oe_right oe_button_box"> + <button name="%(survey.action_view_survey_question_message)d" string="Answer Survey" type="action" states="waiting_answer,done,cancel" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response,'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/> + <button name="%(survey.survey_browse_response)d" string="Print Interview" type="action" states="done" icon="gtk-print" context="{'survey_id': survey_id, 'response_id' : [response], 'response_no':0,}" attrs="{'readonly':[('response','=',False)]}" /> + </div> + <group> + <group> <field name="survey_id"/> - <div colspan="2"> - <button name="%(survey.action_view_survey_question_message)d" string="Answer Survey" type="action" states="waiting_answer,done,cancel" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response,'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/> - <button name="%(survey.survey_browse_response)d" string="Print Interview" type="action" states="done" icon="gtk-print" context="{'survey_id': survey_id, 'response_id' : [response], 'response_no':0,}" attrs="{'readonly':[('response','=',False)]}" /> - </div> - <field name="date_deadline"/> - <field name="response" readonly="1"/> <field name="user_to_review_id"/> <field name="user_id" string="Interviewer"/> </group> - <group col="4" string="Status"> - <field name="state"/> - <div> - <button string="Done" name="survey_req_done" states="waiting_answer" type="object" icon="gtk-jump-to" /> - </div> + <group> + <field name="date_deadline"/> + <field name="response" readonly="1"/> </group> - </form> - </field> - </page> - <page string="Internal Notes" attrs="{'invisible':[('state','=','draft')]}"> - <field name="note_action" - groups="base.group_hr_manager"/> - </page> - <page string="Public Notes" attrs="{'invisible':[('state','=','draft')]}"> - <field name="note_summary"/> - </page> - </notebook> + </group> + <group col="4" string="Status" invisible="1"> + <field name="state"/> + <div> + <button string="Done" name="survey_req_done" states="waiting_answer" type="object" icon="gtk-jump-to" /> + </div> + </group> + </form> + </field> + </group> + <group string="Internal Notes" attrs="{'invisible':[('state','=','draft')]}"> + <field nolabel="1" name="note_action" + groups="base.group_hr_manager" placeholder="Appraisal Summary..."/> + </group> + <group string="Public Notes" attrs="{'invisible':[('state','=','draft')]}"> + <field nolabel="1" name="note_summary" placeholder="Action Plan..."/> + </group> </sheet> </form> </field> @@ -279,13 +286,17 @@ <field name="state" widget="statusbar" statusbar_visible="waiting_answer,done"/> </header> <sheet> - <group col="4"> - <field name="user_to_review_id"/> - <field name="user_id" string="Interviewer"/> - <field name="date_deadline"/> - <field name="survey_id"/> - <field name="evaluation_id"/> - <field name="response" readonly="1"/> + <group> + <group> + <field name="survey_id"/> + <field name="user_to_review_id"/> + <field name="user_id" string="Interviewer"/> + </group> + <group> + <field name="date_deadline"/> + <field name="response" readonly="1"/> + <field name="evaluation_id" string="Appraisal Plan"/> + </group> </group> </sheet> </form> diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py index 9d7ec10cc28..b1192701dfb 100644 --- a/addons/hr_expense/hr_expense.py +++ b/addons/hr_expense/hr_expense.py @@ -56,12 +56,12 @@ class hr_expense_expense(osv.osv): return self.pool.get('res.currency').search(cr, uid, [('rate','=',1.0)], context=context)[0] _name = "hr.expense.expense" + _inherit = ['mail.thread'] _description = "Expense" _order = "id desc" _columns = { 'name': fields.char('Description', size=128, required=True), 'id': fields.integer('Sheet ID', readonly=True), - 'ref': fields.char('Reference', size=32), 'date': fields.date('Date', select=True), 'journal_id': fields.many2one('account.journal', 'Force Journal', help = "The journal used when the expense is invoiced"), 'employee_id': fields.many2one('hr.employee', "Employee", required=True), diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml index dd89a3ab57d..b8868c3319f 100644 --- a/addons/hr_expense/hr_expense_view.xml +++ b/addons/hr_expense/hr_expense_view.xml @@ -49,7 +49,6 @@ <field name="employee_id"/> <field name="date"/> <field name="department_id"/> - <field name="ref"/> <field name="name"/> <field name="amount"/> <field name="state"/> @@ -74,38 +73,44 @@ <field name="state" widget="statusbar" statusbar_visible="draft,confirm,accepted" statusbar_colors='{"confirm":"blue","cancelled":"red"}'/> </header> <sheet> - <group col="4"> - <field name="employee_id" on_change="onchange_employee_id(employee_id)"/> - <field name="name"/> - <field name="ref"/> - <field name="date"/> - <field name="currency_id"/> - <field name="department_id"/> - <field name="company_id" groups="base.group_multi_company"/> + <group> + <group> + <field name="employee_id" on_change="onchange_employee_id(employee_id)"/> + <field name="date"/> + <field name="department_id"/> + <field name="company_id" groups="base.group_multi_company"/> + </group> + <group> + <field name="name"/> + <field name="user_valid"/> + <field name="currency_id"/> + </group> </group> <notebook> <page string="Description"> <field name="line_ids" context="{'currency_id': currency_id}"> <form string="Expense Lines" version="7.0"> - <group col="6" colspan="4"> - <field name="product_id" on_change="onchange_product_id(product_id, uom_id, parent.employee_id, context)" context="{'default_hr_expense_ok':1}"/> - <field name="name" colspan="4"/> - <newline/> - <field name="unit_amount"/> - <field name="unit_quantity"/> - <field name="uom_id" on_change="onchange_product_id(product_id, uom_id, parent.employee_id, context)"/> - </group> - <group colspan="2" col="2" groups="analytic.group_analytic_accounting"> - <separator string="Customer Project" colspan="2"/> - <field domain="[('type','in',['normal','contract'])]" name="analytic_account"/> - </group> - <group colspan="2" col="2"> - <separator string="References" colspan="2"/> - <field name="date_value" /> - <field name="ref"/> + <group> + <group> + <field name="product_id" on_change="onchange_product_id(product_id, uom_id, parent.employee_id, context)" context="{'default_hr_expense_ok':1}"/> + <field name="name"/> + <field name="ref"/> + <field domain="[('type','=','normal')]" name="analytic_account" groups="analytic.group_analytic_accounting"/> + </group> + <group> + <field name="unit_amount"/> + <label for="unit_quantity"/> + <div> + <field name="unit_quantity" class="oe_inline"/> + <field name="uom_id" on_change="onchange_product_id(product_id, uom_id, parent.employee_id, context)" class="oe_inline"/> + </div> + <field name="date_value" /> + </group> </group> </form> </field> + <separator string="Notes"/> + <field name="note" placeholder="Free Notes"/> </page> <page string="Other Info"> <group> @@ -113,17 +118,13 @@ <field name="journal_id"/> <field name="invoice_id" context="{'type':'in_invoice', 'journal_type': 'purchase'}"/> </group> - <group groups="base.group_no_one" string="Validation"> - <field name="date_confirm" readonly="1"/> - <field name="date_valid" readonly="1"/> - <field name="user_valid"/> - </group> </group> - <separator string="Notes"/> - <field name="note"/> </page> </notebook> </sheet> + <footer> + <field name="message_ids" widget="mail_thread"/> + </footer> </form> </field> </record> diff --git a/addons/hr_expense/report/expense.rml b/addons/hr_expense/report/expense.rml index d0d73aa5ca4..bf456cfc4d6 100644 --- a/addons/hr_expense/report/expense.rml +++ b/addons/hr_expense/report/expense.rml @@ -160,7 +160,7 @@ <para style="terp_tblheader_General_Centre">Date</para> </td> <td> - <para style="terp_tblheader_General_Centre">Reference</para> + <para style="terp_tblheader_General_Centre">Description</para> </td> <td> <para style="terp_tblheader_General_Centre">Validated By</para> @@ -176,7 +176,7 @@ <para style="terp_default_Centre_8">[[ formatLang(o.date,date=True) ]]</para> </td> <td> - <para style="terp_default_Centre_8">[[ o.ref ]]</para> + <para style="terp_default_Centre_8">[[ o.name ]]</para> </td> <td> <para style="terp_default_Centre_8">[[ o.user_valid.name ]]</para> diff --git a/addons/hr_holidays/__openerp__.py b/addons/hr_holidays/__openerp__.py index 6f9f61afabc..4509508b2be 100644 --- a/addons/hr_holidays/__openerp__.py +++ b/addons/hr_holidays/__openerp__.py @@ -50,7 +50,7 @@ Note that: for example, you maybe will do it for the user 'admin'. """, 'images': ['images/hr_allocation_requests.jpeg', 'images/hr_leave_requests.jpeg', 'images/leaves_analysis.jpeg'], - 'depends': ['hr', 'crm', 'process', 'resource'], + 'depends': ['hr', 'base_calendar', 'process', 'resource'], 'init_xml': [], 'update_xml': [ 'security/ir.model.access.csv', diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py index a1ab0ae04f3..2a2648f1beb 100644 --- a/addons/hr_holidays/hr_holidays.py +++ b/addons/hr_holidays/hr_holidays.py @@ -74,7 +74,8 @@ class hr_holidays_status(osv.osv): _columns = { 'name': fields.char('Leave Type', size=64, required=True, translate=True), - 'categ_id': fields.many2one('crm.case.categ', 'Meeting', domain="[('object_id.model', '=', 'crm.meeting')]", help='If you set a meeting type, OpenERP will create a meeting in the calendar once a leave is validated.'), + 'categ_id': fields.many2one('crm.meeting.type', 'Meeting Type', + help='Once a leave is validated, OpenERP will create a corresponding meeting of this type in the calendar.'), 'color_name': fields.selection([('red', 'Red'),('blue','Blue'), ('lightgreen', 'Light Green'), ('lightblue','Light Blue'), ('lightyellow', 'Light Yellow'), ('magenta', 'Magenta'),('lightcyan', 'Light Cyan'),('black', 'Black'),('lightpink', 'Light Pink'),('brown', 'Brown'),('violet', 'Violet'),('lightcoral', 'Light Coral'),('lightsalmon', 'Light Salmon'),('lavender', 'Lavender'),('wheat', 'Wheat'),('ivory', 'Ivory')],'Color in Report', required=True, help='This color will be used in the leaves summary located in Reporting\Leaves by Departement'), 'limit': fields.boolean('Allow to Override Limit', help='If you select this checkbox, the system allows the employees to take more leaves than the available ones for this type.'), 'active': fields.boolean('Active', help="If the active field is set to false, it will allow you to hide the leave type without removing it."), @@ -128,7 +129,7 @@ class hr_holidays(osv.osv): 'notes': fields.text('Reasons',readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}), 'number_of_days_temp': fields.float('Number of Days', readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}), 'number_of_days': fields.function(_compute_number_of_days, string='Number of Days', store=True), - 'case_id': fields.many2one('crm.meeting', 'Meeting'), + 'meeting_id': fields.many2one('crm.meeting', 'Meeting'), 'type': fields.selection([('remove','Leave Request'),('add','Allocation Request')], 'Request Type', required=True, readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}, help="Choose 'Leave Request' if someone wants to take an off-day. \nChoose 'Allocation Request' if you want to increase the number of leaves available for someone", select=True), 'parent_id': fields.many2one('hr.holidays', 'Parent'), 'linked_request_ids': fields.one2many('hr.holidays', 'parent_id', 'Linked Requests',), @@ -217,19 +218,12 @@ class hr_holidays(osv.osv): } return result - def onchange_sec_id(self, cr, uid, ids, status, context=None): - warning = {} + def onchange_status_id(self, cr, uid, ids, status_id, context=None): double_validation = False - obj_holiday_status = self.pool.get('hr.holidays.status') - if status: - holiday_status = obj_holiday_status.browse(cr, uid, status, context=context) + if status_id: + holiday_status = self.pool.get('hr.holidays.status').browse(cr, uid, status_id, context=context) double_validation = holiday_status.double_validation - if holiday_status.categ_id and holiday_status.categ_id.section_id and not holiday_status.categ_id.section_id.allow_unlink: - warning = { - 'title': "Warning for ", - 'message': "You won\'t be able to cancel this leave request because the CRM Sales Team of the leave type disallows." - } - return {'warning': warning, 'value': {'double_validation': double_validation}} + return {'value': {'double_validation': double_validation}} def set_to_draft(self, cr, uid, ids, context=None): self.write(cr, uid, ids, { @@ -271,7 +265,7 @@ class hr_holidays(osv.osv): holiday_ids.append(record.id) if record.holiday_type == 'employee' and record.type == 'remove': meeting_obj = self.pool.get('crm.meeting') - vals = { + meeting_vals = { 'name': record.name, 'categ_id': record.holiday_status_id.categ_id.id, 'duration': record.number_of_days_temp * 8, @@ -280,11 +274,11 @@ class hr_holidays(osv.osv): 'date': record.date_from, 'end_date': record.date_to, 'date_deadline': record.date_to, - 'leave_id': record.id, + 'state': 'done', # to block that meeting date in the calendar } - case_id = meeting_obj.create(cr, uid, vals) + meeting_id = meeting_obj.create(cr, uid, meeting_vals) self._create_resource_leave(cr, uid, [record], context=context) - self.write(cr, uid, ids, {'case_id': case_id}) + self.write(cr, uid, ids, {'meeting_id': meeting_id}) elif record.holiday_type == 'category': emp_ids = obj_emp.search(cr, uid, [('category_ids', 'child_of', [record.category_id.id])]) leave_ids = [] @@ -330,11 +324,11 @@ class hr_holidays(osv.osv): return True def holidays_cancel(self, cr, uid, ids, context=None): - obj_crm_meeting = self.pool.get('crm.meeting') + meeting_obj = self.pool.get('crm.meeting') for record in self.browse(cr, uid, ids): # Delete the meeting - if record.case_id: - obj_crm_meeting.unlink(cr, uid, [record.case_id.id]) + if record.meeting_id: + meeting_obj.unlink(cr, uid, [record.meeting_id.id]) # If a category that created several holidays, cancel all related wf_service = netsvc.LocalService("workflow") @@ -519,10 +513,4 @@ class hr_employee(osv.osv): hr_employee() -class crm_meeting(osv.osv): - _inherit = 'crm.meeting' - _columns = { - 'leave_id': fields.many2one('hr.holidays','Leave'), - } - # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml index 34a61654faa..c22c4add718 100644 --- a/addons/hr_holidays/hr_holidays_view.xml +++ b/addons/hr_holidays/hr_holidays_view.xml @@ -110,29 +110,39 @@ <field name="state" widget="statusbar" statusbar_visible="draft,confirm,validate" statusbar_colors='{"confirm":"blue","validate1":"blue","refuse":"red"}'/> </header> <sheet string="Leave Request"> - <group col="8" colspan="4"> - <field name="name" attrs="{'readonly':[('state','!=','draft'),('state','!=','confirm')]}"/> - <field name="holiday_type" on_change="onchange_type(holiday_type)" attrs="{'readonly':[('state','!=','draft')]}" width="130" string="Mode" groups="base.group_hr_user"/> - <group attrs="{'invisible':[('holiday_type','=','employee')]}"> - <field name="category_id" attrs="{'required':[('holiday_type','=','category')], 'readonly':[('state','!=','draft'), ('state','!=','confirm')]}"/> + <group> + <group> + <field name="name" attrs="{'readonly':[('state','!=','draft'),('state','!=','confirm')]}"/> + <field name="holiday_type" on_change="onchange_type(holiday_type)" attrs="{'readonly':[('state','!=','draft')]}" width="130" string="Mode" groups="base.group_hr_user"/> + <field name="employee_id" attrs="{'required':[('holiday_type','=','employee')],'invisible':[('holiday_type','=','category')]}" groups="base.group_hr_user"/> + <field name="category_id" attrs="{'required':[('holiday_type','=','category')], 'invisible':[('holiday_type','=','employee')], 'readonly':[('state','!=','draft'), ('state','!=','confirm')]}"/> + <field name="department_id" attrs="{'readonly':[('holiday_type','=','category')]}" groups="base.group_hr_user"/> </group> - <group attrs="{'invisible':[('holiday_type','=','category')]}"> - <field name="employee_id" attrs="{'required':[('holiday_type','=','employee')]}" groups="base.group_hr_user"/> + <group> + <field name="holiday_status_id" on_change="onchange_status_id(holiday_status_id)" context="{'employee_id':employee_id}"/> + <label for="number_of_days_temp" string="Duration"/> + <div> + <field name="date_from" on_change="onchange_date_from(date_to, date_from)" required="1" class="oe_inline"/> - + <field name="date_to" on_change="onchange_date_from(date_to, date_from)" required="1" class="oe_inline"/> + <div> + <field name="number_of_days_temp" class="oe_inline"/> days + </div> + </div> </group> </group> <notebook colspan="4"> <page string="General"> - <field name="holiday_status_id" on_change="onchange_sec_id(holiday_status_id)" context="{'employee_id':employee_id}"/> - <field name="department_id" attrs="{'readonly':[('holiday_type','=','category')]}" groups="base.group_hr_user"/> - <field name="date_from" on_change="onchange_date_from(date_to, date_from)" required="1"/> - <field name="date_to" on_change="onchange_date_from(date_to, date_from)" required="1"/> - <field name="number_of_days_temp"/> - <field name="double_validation" invisible="1"/> + <group> + <group> + <field name="manager_id" groups="base.group_no_one"/> + <field name="double_validation" invisible="1"/> + </group> + <group> + <field name="manager_id2" attrs="{'invisible':[('double_validation', '!=', True)]}" groups="base.group_no_one"/> + </group> + </group> <newline/> - <field name="manager_id" groups="base.group_no_one"/> - <field name="manager_id2" attrs="{'invisible':[('double_validation', '!=', True)]}" groups="base.group_no_one"/> - <separator string="Reasons" colspan="4"/> - <field name="notes" nolabel="1" colspan="4"/> + <field name="notes" nolabel="1" colspan="4" placeholder="Add a reason..."/> </page> </notebook> </sheet> @@ -159,26 +169,29 @@ <field name="state" widget="statusbar" statusbar_visible="draft,confirm,validate" statusbar_colors='{"confirm":"blue","validate1":"blue","refuse":"red"}'/> </header> <sheet> - <group> - <field name="name"/> - <field name="holiday_type" on_change="onchange_type(holiday_type)" attrs="{'readonly':[('state','!=','draft')]}" string="Allocation Mode" groups="base.group_hr_manager"/> - <field name="employee_id" attrs="{'required':[('holiday_type','=','employee')], 'invisible':[('holiday_type','=','category')]}"/> - <field name="category_id" attrs="{'required':[('holiday_type','=','category')], 'readonly':[('state','!=','draft')], 'invisible':[('holiday_type','=','employee')]}"/> - </group> - <notebook> - <page string="General"> - <group col="4"> - <field name="holiday_status_id" on_change="onchange_sec_id(holiday_status_id)" context="{'employee_id':employee_id}"/> + <group> + <group> + <field name="name"/> + <field name="holiday_type" on_change="onchange_type(holiday_type)" attrs="{'readonly':[('state','!=','draft')]}" string="Allocation Mode" groups="base.group_hr_manager"/> + <field name="employee_id" attrs="{'required':[('holiday_type','=','employee')], 'invisible':[('holiday_type','=','category')]}"/> + <field name="category_id" attrs="{'required':[('holiday_type','=','category')], 'readonly':[('state','!=','draft')], 'invisible':[('holiday_type','=','employee')]}"/> <field name="department_id" attrs="{'readonly':['|', ('holiday_type','=','category'), ('state','not in' ,('draft', 'confirm'))]}"/> + </group> + <group> + <field name="holiday_status_id" on_change="onchange_status_id(holiday_status_id)" context="{'employee_id':employee_id}"/> <field name="number_of_days_temp"/> - <field name="double_validation" invisible="1"/> - <field name="manager_id"/> - <field name="manager_id2" attrs="{'invisible':[('double_validation', '!=', True)]}"/> </group> - <separator string="Reasons"/> - <field name="notes"/> - </page> - </notebook> + </group> + <notebook> + <page string="General"> + <group col="4"> + <field name="double_validation" invisible="1"/> + <field name="manager_id"/> + <field name="manager_id2" attrs="{'invisible':[('double_validation', '!=', True)]}"/> + </group> + <field name="notes" placeholder="Add a reason..."/> + </page> + </notebook> </sheet> <footer> <field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/> @@ -342,7 +355,7 @@ <record model="ir.actions.act_window.view" id="action_request_approve_holidays_form"> <field name="sequence" eval="2"/> <field name="view_mode">form</field> - <field name="view_id" ref="allocation_leave_new"/> + <field name="view_id" ref="edit_holiday_new"/> <field name="act_window_id" ref="request_approve_holidays"/> </record> @@ -409,8 +422,7 @@ <form string="Leave Type" version="7.0"> <group col="4"> <field name="name"/> - <field name="color_name"/> - <field name="categ_id" widget="selection"/> + <field name="categ_id"/> </group> <notebook> <page string="Details"> @@ -420,6 +432,7 @@ <field name="limit"/> </group> <group name="second" string="Misc"> + <field name="color_name"/> <field name="active"/> </group> </group> @@ -529,8 +542,13 @@ <field name="type">form</field> <field name="inherit_id" ref="hr.view_employee_form"/> <field name="arch" type="xml"> - <field name="coach_id" position="after"> - <field name="remaining_leaves"/> + <field name="active" position="before"> + <label for="remaining_leaves"/> + <div> + <field name="remaining_leaves" class="oe_inline"/> + <label/> + <button name="%(act_hr_employee_holiday_request)d" string="Leaves" type="action" class="oe_inline oe_right"/> + </div> </field> </field> </record> diff --git a/addons/hr_payroll/hr_payroll_view.xml b/addons/hr_payroll/hr_payroll_view.xml index f52c420df8a..bae89ed215b 100644 --- a/addons/hr_payroll/hr_payroll_view.xml +++ b/addons/hr_payroll/hr_payroll_view.xml @@ -7,36 +7,6 @@ <menuitem id="menu_hr_root_payroll" parent="hr.menu_hr_root" name="Payroll" sequence="30"/> <menuitem id="menu_hr_payroll_reporting" parent="hr.menu_hr_reporting" name="Payroll" groups="base.group_hr_manager"/> - <!-- Employee View --> - <record id="hr_contract.hr_hr_employee_view_form2" model="ir.ui.view"> - <field name="name">hr.hr.employee.view.form2</field> - <field name="model">hr.employee</field> - <field name="inherit_id" ref="hr.view_employee_form"/> - <field name="arch" type="xml"> - <data> - <xpath expr="//page[@string='Personal Information']" position="after"> - <page string="Miscellaneous" groups="base.group_hr_user"> - <group colspan="2" col="2"> - <separator string="Personal Info" colspan="2"/> - <field name="bank_account_id" context="{'display_partner':True, 'partner_id':partner_id}"/> - <field name="place_of_birth"/> - <field name="children"/> - <!-- <field name="basic" invisible="0"/> --> - </group> - <group colspan="2" col="2"> - <separator string="Job Info" colspan="2"/> - <field name="manager" /> - <field name="vehicle" /> - <field name="vehicle_distance" /> - <field name="medic_exam" string="Medical Examination"/> - </group> - </page> - </xpath> - </data> - </field> - </record> - <!-- End Employee View --> - <!-- Contract View --> <record id="hr_contract_form_inherit" model="ir.ui.view"> <field name="name">hr.contract.view.form.inherit</field> @@ -45,8 +15,7 @@ <field name="inherit_id" ref="hr_contract.hr_contract_view_form"/> <field name="arch" type="xml"> <data> - <xpath expr="//group[@name='right_column']" position="before"> - <separator string="Payslip Info" colspan="2"/> + <xpath expr="//field[@name='wage']" position="after"> <field name="struct_id" required="1"/> </xpath> <xpath expr="//field[@name='working_hours']" position="after"> @@ -105,7 +74,7 @@ <field name="model">hr.payroll.structure</field> <field name="type">form</field> <field name="arch" type="xml"> - <form string="Employee Function"> + <form string="Employee Function" version="7.0"> <group col="4"> <field name="name"/> <field name="code"/> @@ -249,6 +218,12 @@ </tree> </field> </record> + + <act_window name="Payslip Computation Details" + context="{'default_slip_id': active_id,'search_default_slip_id': active_id}" + res_model="hr.payslip.line" + src_model="hr.payslip" + id="act_payslip_lines"/> <record id="view_hr_payslip_form" model="ir.ui.view"> <field name="name">hr.payslip.form</field> @@ -265,13 +240,18 @@ <field name="state" widget="statusbar" statusbar_visible="draft,confirm"/> </header> <sheet> - <label for="employee_id" class="oe_edit_only"/> - <h1><field name="employee_id" on_change="onchange_employee_id(date_from, date_to, employee_id, contract_id)"/></h1> - <label for="date_from" class="oe_edit_only" string="Period"/> - <h2> - from <field name="date_from" on_change="onchange_employee_id(date_from, date_to, employee_id, contract_id)"/> - to <field name="date_to"/> - </h2> + <div class="oe_right oe_button_box"> + <button name="%(act_payslip_lines)d" string="Payslip Computation Details" type="action"/> + </div> + <div class="oe_title"> + <label for="employee_id" class="oe_edit_only"/> + <h1><field name="employee_id" on_change="onchange_employee_id(date_from, date_to, employee_id, contract_id)"/></h1> + <label for="date_from" class="oe_edit_only" string="Period"/> + <h2> + From <field name="date_from" on_change="onchange_employee_id(date_from, date_to, employee_id, contract_id)"/> + to <field name="date_to"/> + </h2> + </div> <group col="4"> <field name="contract_id" domain="[('employee_id','=',employee_id)]" on_change="onchange_contract_id(date_from, date_to, employee_id, contract_id)"/> <field name="number"/> @@ -281,6 +261,7 @@ </group> <notebook> <page string="Worked Days & Inputs"> + <separator string="Worked Days"/> <field name="worked_days_line_ids"> <tree string="Worked Days" editable="bottom"> <field name="name"/> @@ -302,6 +283,7 @@ </group> </form> </field> + <separator string="Other Inputs"/> <field name="input_line_ids" colspan="4" nolabel="1"> <tree string="Input Data" editable="bottom"> <field name="name"/> @@ -360,14 +342,18 @@ </field> </page> <page string="Other Information"> - <group col="2" string="Other Information"> - <field name="company_id" groups="base.group_multi_company" widget="selection"/> - <field name="payslip_run_id" domain="[('state','=','draft')]"/> - <field name="paid" readonly="1"/> - </group> - <group string="Notes"> - <field name="note"/> + <group> + <group string="Miscellaneous"> + <field name="company_id" groups="base.group_multi_company"/> + <field name="payslip_run_id" domain="[('state','=','draft')]"/> + </group> + <group name="accounting" string="Accounting"> + <field name="paid" readonly="1"/> + </group> </group> + <div colspan="4"> + <field name="note" Placeholder="Add an internal note..."/> + </div> </page> </notebook> </sheet> @@ -413,7 +399,27 @@ <field name="search_view_id" ref="view_hr_payslip_filter"/> </record> <menuitem action="action_view_hr_payslip_form" id="menu_department_tree" parent="menu_hr_root_payroll"/> + <act_window name="Payslips" + context="{'search_default_employee_id': [active_id], 'default_employee_id': active_id}" + res_model="hr.payslip" + src_model="hr.employee" + view_id ="view_hr_payslip_tree" + id="act_hr_employee_payslip_list" + groups="base.group_hr_manager"/> + <!-- Employee View --> + <record id="payroll_hr_employee_view_form" model="ir.ui.view"> + <field name="name">payroll.hr.employee.view.form</field> + <field name="model">hr.employee</field> + <field name="inherit_id" ref="hr.view_employee_form"/> + <field name="arch" type="xml"> + <data> + <xpath expr="//div[@name='button_box']" position="inside"> + <button name="%(act_hr_employee_payslip_list)d" string="Payslips" type="action"/> + </xpath> + </data> + </field> + </record> <!-- Salary Category--> <record id="hr_salary_rule_category_form" model="ir.ui.view"> <field name="name">hr.salary.rule.category.form</field> @@ -730,12 +736,20 @@ <field name="state" widget="statusbar"/> </header> <sheet> - <group col="4"> + <label for="name" class="oe_edit_only"/> + <h1> <field name="name"/> - <field name="credit_note"/> - <field name="date_start"/> + </h1> + <h2> + Period from + <field name="date_start"/> + to <field name="date_end"/> + </h2> + <group col="4"> + <field name="credit_note"/> </group> + <separator string="Payslips"/> <field name="slip_ids"/> </sheet> </form> diff --git a/addons/hr_payroll_account/hr_payroll_account_view.xml b/addons/hr_payroll_account/hr_payroll_account_view.xml index 8077ed88152..9e3aab3ecb6 100644 --- a/addons/hr_payroll_account/hr_payroll_account_view.xml +++ b/addons/hr_payroll_account/hr_payroll_account_view.xml @@ -2,8 +2,6 @@ <openerp> <data> - - <record model="ir.ui.view" id="view_hr_payslip_inherit_form"> <field name="name">hr.payslip.inherit.form</field> <field name="model">hr.payslip</field> @@ -27,10 +25,12 @@ <field name="arch" type="xml"> <xpath expr="/form/notebook/page[@string='Child Rules']" position="after"> <page string="Accounting"> - <field name="account_debit" /> - <field name="account_credit"/> - <field name="analytic_account_id" groups="analytic.group_analytic_accounting"/> - <field name="account_tax_id"/> + <group colspan="4"> + <field name="account_debit" /> + <field name="account_credit"/> + <field name="analytic_account_id" groups="analytic.group_analytic_accounting"/> + <field name="account_tax_id"/> + </group> </page> </xpath> </field> @@ -44,14 +44,15 @@ <field name="type">form</field> <field name="inherit_id" ref="hr_contract.hr_contract_view_form"/> <field name="arch" type="xml"> - <xpath expr="//field[@name='advantages']" position="after"> - <separator colspan="4" string="Accounting"/> - <field name="analytic_account_id" groups="analytic.group_analytic_accounting"/> - <field name="journal_id"/> + <xpath expr="//group[@name='duration_group']" position="after"> + <group string="Accounting"> + <field name="analytic_account_id" groups="analytic.group_analytic_accounting"/> + <field name="journal_id"/> + </group> </xpath> </field> </record> - + <!-- Payslip Run View --> <record id="hr_payslip_run_search_inherit" model="ir.ui.view"> @@ -85,12 +86,11 @@ <field name="type">form</field> <field name="inherit_id" ref="hr_payroll.hr_payslip_run_form"/> <field name="arch" type="xml"> - <field name="date_end" position="after"> - <newline/> + <field name="credit_note" position="before"> <field name="journal_id"/> </field> </field> </record> - + </data> </openerp> diff --git a/addons/hr_recruitment/__openerp__.py b/addons/hr_recruitment/__openerp__.py index b83a482e1c1..e5df8cf2bf3 100644 --- a/addons/hr_recruitment/__openerp__.py +++ b/addons/hr_recruitment/__openerp__.py @@ -42,11 +42,10 @@ system to store and search in your CV base. 'decimal_precision', 'hr', 'survey', - 'crm', + 'base_calendar', 'fetchmail', ], 'update_xml': [ - 'wizard/hr_recruitment_phonecall_view.xml', 'wizard/hr_recruitment_employee_hired.xml', 'wizard/hr_recruitment_create_partner_job_view.xml', 'hr_recruitment_view.xml', diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py index 7b0090d60ea..a3cd2f3a629 100644 --- a/addons/hr_recruitment/hr_recruitment.py +++ b/addons/hr_recruitment/hr_recruitment.py @@ -24,15 +24,10 @@ import time from datetime import datetime, timedelta from osv import fields, osv -from crm import crm import tools import collections import binascii -import tools from tools.translate import _ -from crm import wizard - -wizard.mail_compose_message.SUPPORTED_MODELS.append('hr.applicant') AVAILABLE_STATES = [ ('draft', 'New'), @@ -98,6 +93,7 @@ class hr_applicant(base_stage, osv.Model): _description = "Applicant" _order = "id desc" _inherit = ['ir.needaction_mixin', 'mail.thread'] + _mail_compose_message = True def _get_default_department_id(self, cr, uid, context=None): """ Gives default department by checking if present in the context """ @@ -181,7 +177,7 @@ class hr_applicant(base_stage, osv.Model): return res _columns = { - 'name': fields.char('Name', size=128, required=True), + 'name': fields.char('Subject', size=128, required=True), 'active': fields.boolean('Active', help="If the active field is set to false, it will allow you to hide the case without removing it."), 'description': fields.text('Description'), 'email_from': fields.char('Email', size=128, help="These people will receive email."), @@ -213,7 +209,7 @@ class hr_applicant(base_stage, osv.Model): 'salary_expected_extra': fields.char('Expected Salary Extra', size=100, help="Salary Expected by Applicant, extra advantages"), 'salary_proposed': fields.float('Proposed Salary', help="Salary Proposed by the Organisation"), 'salary_expected': fields.float('Expected Salary', help="Salary Expected by Applicant"), - 'availability': fields.integer('Availability (Days)'), + 'availability': fields.integer('Availability'), 'partner_name': fields.char("Applicant's Name", size=64), 'partner_phone': fields.char('Phone', size=32), 'partner_mobile': fields.char('Mobile', size=32), @@ -239,7 +235,7 @@ class hr_applicant(base_stage, osv.Model): 'stage_id': lambda s, cr, uid, c: s._get_default_stage_id(cr, uid, c), 'department_id': lambda s, cr, uid, c: s._get_default_department_id(cr, uid, c), 'priority': lambda *a: '', - 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c), + 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'hr.applicant', context=c), 'color': 0, } @@ -293,49 +289,22 @@ class hr_applicant(base_stage, osv.Model): return False def action_makeMeeting(self, cr, uid, ids, context=None): + """ This opens Meeting's calendar view to schedule meeting on current applicant + @return: Dictionary value for created Meeting view """ - This opens Meeting's calendar view to schedule meeting on current Opportunity - @param self: The object pointer - @param cr: the current row, from the database cursor, - @param uid: the current user’s ID for security checks, - @param ids: List of Opportunity to Meeting IDs - @param context: A standard dictionary for contextual values - - @return: Dictionary value for created Meeting view - """ - data_obj = self.pool.get('ir.model.data') - if context is None: - context = {} - value = {} - for opp in self.browse(cr, uid, ids, context=context): - # Get meeting views - search_view = data_obj.get_object(cr, uid, 'crm', 'view_crm_case_meetings_filter', context) - calendar_view = data_obj.get_object(cr, uid, 'crm', 'crm_case_calendar_view_meet', context) - form_view = data_obj.get_object(cr, uid, 'crm', 'crm_case_form_view_meet', context) - tree_view = data_obj.get_object(cr, uid, 'crm', 'crm_case_tree_view_meet', context) - category = data_obj.get_object(cr, uid, 'hr_recruitment', 'categ_meet_interview', context) - context.update({ - 'default_applicant_id': opp.id, - 'default_partner_id': opp.partner_id and opp.partner_id.id or False, - 'default_email_from': opp.email_from, - 'default_state': 'open', - 'default_categ_id': category.id, - 'default_name': opp.name, - }) - value = { - 'name': ('Meetings'), - 'domain': "[('user_id','=',%s)]" % (uid), - 'context': context, - 'view_type': 'form', - 'view_mode': 'calendar,form,tree', - 'res_model': 'crm.meeting', - 'view_id': False, - 'views': [(calendar_view.id, 'calendar'), (form_view.id, 'form'), (tree_view.id, 'tree')], - 'type': 'ir.actions.act_window', - 'search_view_id': search_view.id, - 'nodestroy': True, - } - return value + applicant = self.browse(cr, uid, ids[0], context) + category = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'categ_meet_interview', context) + res = self.pool.get('ir.actions.act_window').for_xml_id(cr, uid, 'base_calendar', 'action_crm_meeting', context) + res['context'] = { + 'default_applicant_id': applicant.id, + 'default_partner_id': applicant.partner_id and applicant.partner_id.id or False, + 'default_user_id': uid, + 'default_email_from': applicant.email_from, + 'default_state': 'open', + 'default_name': applicant.name, + 'default_categ_id': category.id, + } + return res def action_print_survey(self, cr, uid, ids, context=None): """ diff --git a/addons/hr_recruitment/hr_recruitment_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml index 13436bef45a..fe5d3d9969b 100644 --- a/addons/hr_recruitment/hr_recruitment_data.xml +++ b/addons/hr_recruitment/hr_recruitment_data.xml @@ -5,11 +5,9 @@ --> <data> - <!-- Case category (for interview meetings) --> - <record model="crm.case.categ" id="categ_meet_interview"> + <!-- Meeting Types (for interview meetings) --> + <record model="crm.meeting.type" id="categ_meet_interview"> <field name="name">Interview</field> - <field name="section_id" ref="crm.section_sales_department"/> - <field name="object_id" search="[('model','=','crm.meeting')]" model="ir.model"/> </record> <!-- HR Recruitment Source --> diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml index b90e8d25658..9118fb05ea1 100644 --- a/addons/hr_recruitment/hr_recruitment_view.xml +++ b/addons/hr_recruitment/hr_recruitment_view.xml @@ -17,18 +17,6 @@ view_type="form"/> # ------------------------------------------------------ - # Job Categories - # ------------------------------------------------------ - - <record id="hr_job_categ_action" model="ir.actions.act_window"> - <field name="name">Applicant Categories</field> - <field name="res_model">crm.case.categ</field> - <field name="view_type">form</field> - <field name="view_id" ref="crm.crm_case_categ_tree-view"/> - <field name="domain">[('object_id.model', '=', 'hr.applicant')]</field> - <field name="context" eval="{'object_id': ref('model_hr_applicant')}"/> - </record> - # ------------------------------------------------------ # Stage # ------------------------------------------------------ <record id="hr_job_stage_act" model="ir.actions.act_window"> @@ -150,58 +138,58 @@ <label for="name" class="oe_edit_only"/> <h1><field name="name"/></h1> <label for="partner_name" class="oe_edit_only"/> - <h2><field name="partner_name"/></h2> - <field name="type_id" placeholder="Degree"/> + <h2> + <field name="partner_name" class="oe_inline"/> + </h2> </div> - <group> - <group> + <group string="Contact Details"> + <field name="partner_id" + on_change="onchange_partner_id(partner_id, email_from)"/> + <field name="email_from" widget="email"/> + <field name="partner_phone"/> + <field name="partner_mobile"/> + <field name="type_id" placeholder="Degree"/> + </group> + <group string="Application Followup"> <field name="user_id"/> - <field name="title_action"/> - <field name="date_action"/> + <label for="title_action"/> + <div> + <field name="date_action"/> - + <field name="title_action" class="oe_inline" placeholder="Call for proposal"/> + </div> + <field name="priority"/> + <field name="state" invisible="1"/> </group> - <group> - <field name="job_id" on_change="onchange_job(job_id)"/> - <field name="priority" string="Appreciation"/> + <group string="Job"> <field name="survey" invisible="1"/> <field name="response" invisible="1"/> - <field name="department_id" widget="selection" on_change="onchange_department_id(department_id)"/> - <field name="state" groups="base.group_no_one"/> + <field name="job_id" on_change="onchange_job(job_id)"/> + <field name="department_id" on_change="onchange_department_id(department_id)"/> + <label for="availability"/> + <div> + <field name="availability" class="oe_inline"/> <label string="Day(s)" class="oe_inline"/> + </div> + </group> + <group string="Contract"> + <label for="salary_expected"/> + <div> + <field name="salary_expected" class="oe_inline"/>, + <field name="salary_expected_extra" class="oe_inline" placeholder="Extra advantages..."/> + </div> + <label for="salary_proposed"/> + <div> + <field name="salary_proposed" class="oe_inline"/>, + <field name="salary_proposed_extra" class="oe_inline" placeholder="Extra advantages..."/> + </div> + </group> + <group string="Reference"> + <field name="source_id"/> + <field name="reference"/> </group> </group> - <notebook> - <page string="Application"> - <group> - <group string="Contact"> - <label for="partner_id"/> - <div> - <field name="partner_id" class="oe_inline" - on_change="onchange_partner_id(partner_id, email_from)"/> - <button class="oe_inline" - string="Create" help="Create a new contact for this applicant" icon="gtk-index" - name="%(action_hr_recruitment_partner_create)d" type="action" - attrs="{'invisible':[('partner_id','!=',False)]}"/> - </div> - <field name="email_from" widget="email"/> - <field name="partner_phone"/> - <field name="partner_mobile"/> - </group> - <group string="Reference"> - <field name="source_id"/> - <field name="reference"/> - </group> - <group string="Contract"> - <field name="salary_expected"/> - <field name="salary_expected_extra"/> - <field name="salary_proposed"/> - <field name="salary_proposed_extra"/> - <field name="availability"/> - </group> - </group> - <separator string="Details"/> - <field name="description"/> - </page> - </notebook> + <separator string="Application Summary"/> + <field name="description" placeholder="Feedback of interviews..."/> </sheet> <footer> <field name="message_ids" widget="mail_thread"/> @@ -371,15 +359,15 @@ <field name="type">form</field> <field name="inherit_id" ref="hr.view_hr_job_form"/> <field name="arch" type="xml"> - <field name="expected_employees" version="7.0" position="after"> - <label for="survey_id" /> - <div> - <field name="survey_id" class="oe_inline"/> - <button class="oe_inline" - string="Interview" icon="gtk-print" - name="action_print_survey" type="object" - attrs="{'invisible':[('survey_id','=',False)]}"/> - </div> + <field name="no_of_recruitment" version="7.0" position="after"> + <label for="survey_id" /> + <div> + <field name="survey_id" class="oe_inline"/> + <button class="oe_inline" + string="Interview" icon="gtk-print" + name="action_print_survey" type="object" + attrs="{'invisible':[('survey_id','=',False)]}"/> + </div> </field> </field> </record> @@ -517,21 +505,15 @@ action="hr_recruitment_source_action" sequence="10" groups="base.group_no_one"/> - <record model="ir.ui.view" id="crm_meeting_form_view"> + <record model="ir.ui.view" id="view_crm_meeting_form"> <field name="name">CRM - Meetings Form</field> <field name="model">crm.meeting</field> <field name="type">form</field> - <field name="inherit_id" ref="crm.crm_case_form_view_meet"/> + <field name="inherit_id" ref="base_calendar.view_crm_meeting_form"/> <field name="arch" type="xml"> <field name="partner_id" position="before"> <field name="applicant_id" attrs="{'invisible': [('categ_id','!=',%(hr_recruitment.categ_meet_interview)d)]}"/> </field> - <field name="partner_id" position="attributes"> - <attribute name="attrs">{'invisible': [('categ_id','=',%(hr_recruitment.categ_meet_interview)d)]}</attribute> - </field> - <field name="section_id" position="attributes"> - <attribute name="attrs">{'invisible': [('categ_id','=',%(hr_recruitment.categ_meet_interview)d)]}</attribute> - </field> </field> </record> diff --git a/addons/hr_recruitment/security/ir.model.access.csv b/addons/hr_recruitment/security/ir.model.access.csv index 6bbc30b7b41..7d082070be5 100644 --- a/addons/hr_recruitment/security/ir.model.access.csv +++ b/addons/hr_recruitment/security/ir.model.access.csv @@ -6,7 +6,6 @@ access_hr_recruitment_degree,hr.recruitment.degree,model_hr_recruitment_degree,b access_mail_message_user,mail.message.user,mail.model_mail_message,base.group_hr_user,1,1,1,1
access_res_partner_hr_user,res.partner.user,base.model_res_partner,base.group_hr_user,1,1,1,1
access_survey_hr_user,survey.hr.user,survey.model_survey,base.group_hr_user,1,1,1,0
-access_crm_phonecall_hruser,crm.phonecall hruser,crm.model_crm_phonecall,base.group_hr_user,1,1,1,1
-access_crm_meeting_hruser,crm.meeting.hruser,crm.model_crm_meeting,base.group_hr_user,1,1,1,1
+access_crm_meeting_hruser,crm.meeting.hruser,base_calendar.model_crm_meeting,base.group_hr_user,1,1,1,1
access_hr_recruitment_source_hr_officer,hr.recruitment.source,model_hr_recruitment_source,base.group_hr_user,1,1,1,1
access_hr_recruitment_source_all,hr.recruitment.source,model_hr_recruitment_source,,1,0,0,0
diff --git a/addons/hr_recruitment/test/recruitment_process.yml b/addons/hr_recruitment/test/recruitment_process.yml index 38b84fccab2..841a49dc866 100644 --- a/addons/hr_recruitment/test/recruitment_process.yml +++ b/addons/hr_recruitment/test/recruitment_process.yml @@ -51,13 +51,6 @@ !python {model: hr.applicant}: | self.write(cr, uid, [ref('hr_case_programmer')], {'job_id':ref('hr.job_developer')}) - - I start communication with applicant, first schedule phonecall. -- - !python {model: hr.recruitment.job2phonecall}: | - context.update({'active_model': 'hr.applicant', 'active_id': ref("hr_case_programmer"), 'active_ids': [ref("hr_case_programmer")], 'survey_id': ref("survey_job_0")}) - id = self.create(cr, uid, {}, context=context) - self.make_phonecall(cr, uid, [id], context=context) -- I schedule meeting with applicant for interview. - !python {model: hr.applicant}: | diff --git a/addons/hr_recruitment/wizard/__init__.py b/addons/hr_recruitment/wizard/__init__.py index acabd219857..fde7df63456 100644 --- a/addons/hr_recruitment/wizard/__init__.py +++ b/addons/hr_recruitment/wizard/__init__.py @@ -20,7 +20,6 @@ ############################################################################## -import hr_recruitment_phonecall import hr_recruitment_create_partner_job import hr_recruitment_employee_hired diff --git a/addons/hr_recruitment/wizard/hr_recruitment_phonecall.py b/addons/hr_recruitment/wizard/hr_recruitment_phonecall.py deleted file mode 100644 index 12c294c20bc..00000000000 --- a/addons/hr_recruitment/wizard/hr_recruitment_phonecall.py +++ /dev/null @@ -1,126 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved -# $Id$ -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# -############################################################################## -import time - -from osv import osv, fields -from tools.translate import _ - -class job2phonecall(osv.osv_memory): - _name = 'hr.recruitment.job2phonecall' - _description = 'Schedule Phone Call' - _columns = { - 'user_id': fields.many2one('res.users', 'Assign To'), - 'deadline': fields.datetime('Planned Date'), - 'note': fields.text('Goals'), - 'category_id': fields.many2one('crm.case.categ', 'Category', required=True), - } - - def _date_user(self, cr, uid, context=None): - case_obj = self.pool.get('hr.applicant') - if context is None: - context = {} - case = case_obj.browse(cr, uid, context.get('active_id', False), context=context) - return case.user_id and case.user_id.id or False - - def _date_category(self, cr, uid, context=None): - case_obj = self.pool.get('hr.applicant') - if context is None: - context = {} - case = case_obj.browse(cr, uid, context.get('active_id', False), context=context) - categ_id = self.pool.get('crm.case.categ').search(cr, uid, [('name','=','Outbound')], context=context) - return categ_id and categ_id[0] or case.categ_id and case.categ_id.id or False - - def _get_note(self, cr, uid, context=None): - mail_message = self.pool.get('mail.message') - if context is None: - context = {} - if context.get('active_id'): - case = self.pool.get('hr.applicant').browse(cr, uid, context['active_id'], context=context) - if case.description: - return case.description - else: - msg_ids = mail_message.search(cr, uid, [('model', '=', 'hr.applicant'), ('res_id', '=', case.id), ('email_from', '!=', ''), ('email_to', '!=', '')], limit=1) - if msg_ids: - return mail_message.browse(cr, uid, msg_ids[0], context=context).body_text - return False - - - _defaults = { - 'user_id': _date_user, - 'category_id': _date_category, - 'note': _get_note - } - - def make_phonecall(self, cr, uid, ids, context=None): - mod_obj = self.pool.get('ir.model.data') - job_case_obj = self.pool.get('hr.applicant') - data_obj = self.pool.get('ir.model.data') - phonecall_case_obj = self.pool.get('crm.phonecall') - if context is None: - context = {} - form = self.browse(cr, uid, ids, context=context)[0] - result = mod_obj._get_id(cr, uid, 'crm', 'view_crm_case_phonecalls_filter') - res = mod_obj.read(cr, uid, result, ['res_id'], context=context) - # Select the view - - id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_phone_tree_view') - id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_phone_form_view') - if id2: - id2 = data_obj.browse(cr, uid, id2, context=context).res_id - if id3: - id3 = data_obj.browse(cr, uid, id3, context=context).res_id - new_phonecall_id = [] - for job in job_case_obj.browse(cr, uid, context.get('active_ids', []), context=context): - #TODO: Take other info from job - new_phonecall_id = phonecall_case_obj.create(cr, uid, { - 'name': job.name, - 'user_id': form.user_id.id, - 'categ_id': form.category_id.id, - 'description': form.note, - 'date': form.deadline, - 'description': job.description, - 'partner_id': job.partner_id.id, - 'partner_phone': job.partner_phone, - 'partner_mobile': job.partner_mobile, - 'description': job.description, - 'date':job.date, - }, context=context) - new_phonecall = phonecall_case_obj.browse(cr, uid, new_phonecall_id, context=context) - vals = {} - job_case_obj.write(cr, uid, [job.id], vals, context=context) -# job_case_obj.case_cancel(cr, uid, [job.id]) - phonecall_case_obj.case_open(cr, uid, [new_phonecall_id]) - - return { - 'name': _('Phone Call'), - 'view_type': 'form', - 'view_mode': 'tree,form', - 'res_model': 'crm.phonecall', - 'res_id': new_phonecall_id, - 'views': [(id3,'form'), (id2,'tree'), (False,'calendar'), (False,'graph')], - 'type': 'ir.actions.act_window', - 'search_view_id': res['res_id'] - } - -job2phonecall() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/hr_recruitment/wizard/hr_recruitment_phonecall_view.xml b/addons/hr_recruitment/wizard/hr_recruitment_phonecall_view.xml deleted file mode 100644 index 8537186ac6f..00000000000 --- a/addons/hr_recruitment/wizard/hr_recruitment_phonecall_view.xml +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<openerp> - <data> - - <record id="view_hr_recruitment_phonecall" model="ir.ui.view"> - <field name="name">hr.recruitment.job2phonecall.form</field> - <field name="model">hr.recruitment.job2phonecall</field> - <field name="type">form</field> - <field name="arch" type="xml"> - <form string="Schedule Phone Call" version="7.0"> - <header> - <button name="make_phonecall" string="Schedule Phone Call" type="object" class="oe_highlight"/> - or - <button string="Cancel" class="oe_link" special="cancel" /> - </header> - <group col="4" colspan="6"> - <separator string="Phone Call Description" colspan="4" /> - <newline /> - <field name='user_id' /> - <field name='deadline' /> - <newline /> - <field name='note' colspan="4"/> - <newline /> - <field name='category_id' domain="[('object_id.model', '=', 'crm.phonecall')]"/> - </group> - </form> - </field> - </record> - - <record id="action_hr_recruitment_phonecall" model="ir.actions.act_window"> - <field name="name">Schedule Phone Call</field> - <field name="type">ir.actions.act_window</field> - <field name="res_model">hr.recruitment.job2phonecall</field> - <field name="view_type">form</field> - <field name="view_mode">form</field> - <field name="target">new</field> - </record> - - </data> -</openerp> diff --git a/addons/hr_timesheet/hr_timesheet_view.xml b/addons/hr_timesheet/hr_timesheet_view.xml index 45bbb6456ef..7875aff12a0 100644 --- a/addons/hr_timesheet/hr_timesheet_view.xml +++ b/addons/hr_timesheet/hr_timesheet_view.xml @@ -26,29 +26,38 @@ <field name="model">hr.analytic.timesheet</field> <field name="type">form</field> <field name="arch" type="xml"> - <form string="Timesheet Lines"> - <group col="4"> - <field name="name" colspan="4"/> - <field name="user_id" on_change="on_change_user_id(user_id)" required="1"/> - <field name="date" on_change="on_change_date(date)"/> + <form string="Timesheet Lines" version="7.0"> + <sheet> + <group> + <group> + <field name="name"/> + <field name="user_id" on_change="on_change_user_id(user_id)" required="1"/> + </group> + <group> + <field name="date" on_change="on_change_date(date)"/> + </group> </group> <notebook> <page string="Information"> - <group> - <group string="Product"> - <field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id,journal_id)" required="1" domain="[('type','=','service')]"/> - <field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id,journal_id)"/> - <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id,journal_id)" widget="float_time"/> - </group> - <group string="Accounting"> - <field domain="[('type','=','normal'),('state', '<>', 'close'),('parent_id','!=',False)]" name="account_id"/> - <field name="amount"/> - <field name="general_account_id"/> - <field name="journal_id"/> - </group> + <group> + <group string="Product"> + <field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id,journal_id)" required="1" domain="[('type','=','service')]"/> + <label string="Quantity" for="unit_amount"/> + <div> + <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id,journal_id)" class="oe_inline"/> + <field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id,journal_id)" class="oe_inline"/> + </div> + </group> + <group string="Accounting"> + <field domain="[('type','=','normal'),('state', '<>', 'close'),('parent_id','!=',False)]" name="account_id" select="1"/> + <field name="amount"/> + <field name="general_account_id"/> + <field name="journal_id"/> </group> + </group> </page> </notebook> + </sheet> </form> </field> </record> @@ -112,10 +121,14 @@ <field name="model">hr.employee</field> <field name="inherit_id" ref="hr.view_employee_form"/> <field name="arch" type="xml"> - <page string="Categories" position="after"> + <page string="Personal Information" position="after"> <page string="Timesheets" groups="base.group_hr_user"> - <field name="product_id" domain="[('type','=','service')]"/> - <field name="journal_id" widget="selection"/> + <group> + <group col="2"> + <field name="product_id" domain="[('type','=','service')]"/> + <field name="journal_id"/> + </group> + </group> </page> </page> </field> diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml index c43b1206541..6635c38b909 100644 --- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml +++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml @@ -62,39 +62,50 @@ <label for="employee_id" class="oe_edit_only"/> <h1><field name="employee_id" on_change="onchange_employee_id(employee_id)"/></h1> <label for="date_from" class="oe_edit_only" string="Timesheet Period"/> - <h2> - From <field name="date_from"/> - to <field name="date_to"/> - </h2> - <group col="4"> - <field name="name"/> - <field name="department_id"/> - <field name="company_id" groups="base.group_multi_company"/> - <field name="user_id" invisible="1"/> + <h2>From <field name="date_from"/> to <field name="date_to"/></h2> + <group> + <group> + <field name="name"/> + <field name="department_id"/> + <field name="company_id" groups="base.group_multi_company"/> + </group> + <group> + <field name="total_attendance" widget="float_time"/> + <field name="total_timesheet" widget="float_time"/> + <field name="total_difference" widget="float_time"/> + <field name="user_id" invisible="1"/> + </group> </group> <notebook> <page string="Daily"> - <group col="6" colspan="4"> - <button name="button_dummy" string="Go to:" type="object" icon="terp-gtk-jump-to-ltr"/> - <field name="date_current" nolabel="1"/> - <label string=""/> - <button icon="terp-gtk-go-back-ltr" name="date_previous" string="" type="object"/> - <button name="date_today" string="Today" type="object" icon="terp-go-today"/> - <button icon="terp-gtk-go-back-rtl" name="date_next" string="" type="object"/> + <group> + <div> + <button name="button_dummy" class="oe_inline" string="Go to" type="object" icon="terp-gtk-jump-to-ltr"/> : + <field name="date_current" class="oe_inline"/> + </div> + <div align="right"> + <button class="oe_inline" icon="terp-gtk-go-back-ltr" name="date_previous" string="" type="object"/> + <button class="oe_inline" name="date_today" string="Today" type="object" icon="terp-go-today"/> + <button class="oe_inline" icon="terp-gtk-go-back-rtl" name="date_next" string="" type="object"/> + </div> </group> - - <field colspan="3" context="{'name':date_current,'user_id':user_id}" height="100" name="attendances_ids" nolabel="1"> - <tree string="Attendances" editable="bottom"> - <field name="name"/> - <field name="action"/> - <field invisible="1" name="employee_id"/> - </tree> - </field> - <group col="4" colspan="1"> + <group colspan="4" col="3"> + <field context="{'name':date_current,'user_id':user_id}" name="attendances_ids" nolabel="1"> + <tree string="Attendances" editable="bottom"> + <field name="name"/> + <field name="action"/> + <field invisible="1" name="employee_id"/> + </tree> + </field> + <group> + <div align="right"> + <button name="sign_in" string="Sign In" type="object" icon="terp-gtk-jump-to-ltr"/> + <button name="sign_out" string="Sign Out" type="object" icon="terp-gtk-jump-to-rtl"/> + </div> + </group> + </group> + <group col="4"> <field name="state_attendance"/> - <button name="sign_in" string="Sign In" type="object" icon="terp-gtk-jump-to-ltr"/> - <button name="sign_out" string="Sign Out" type="object" icon="terp-gtk-jump-to-rtl"/> - <field name="total_attendance_day" widget="float_time" colspan="4"/> </group> <field colspan="4" context="{'date':date_current,'user_id':user_id}" domain="[('name','=',date_current)]" name="timesheet_ids" nolabel="1"> <tree editable="top" string="Timesheet Lines"> @@ -124,8 +135,6 @@ <field name="user_id" required="1"/> </form> </field> - <field name="total_difference_day" widget="float_time"/> - <field name="total_timesheet_day" widget="float_time"/> </page> <page string="Summary"> <field colspan="4" name="period_ids" nolabel="1"> @@ -136,11 +145,6 @@ <field name="total_difference" widget="float_time"/> </tree> </field> - <group colspan="4" col="6"> - <field name="total_attendance" widget="float_time"/> - <field name="total_timesheet" widget="float_time"/> - <field name="total_difference" widget="float_time"/> - </group> </page> </notebook> </sheet> @@ -227,7 +231,7 @@ <field name="type">form</field> <field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_search"/> <field name="arch" type="xml"> - <field name="user_id" position="before"> + <field name="date" position="before"> <field name="sheet_id"/> </field> </field> @@ -349,6 +353,17 @@ <act_window context="{'search_default_employee_id': [active_id], 'default_employee_id': active_id}" id="act_hr_employee_2_hr_timesheet" name="Timesheets" res_model="hr_timesheet_sheet.sheet" src_model="hr.employee"/> + + <record id="hr_timesheet_sheet_employee_extd_form" model="ir.ui.view"> + <field name="name">hr.timesheet.sheet.employee.extd_form</field> + <field name="model">hr.employee</field> + <field name="inherit_id" ref="hr_timesheet.hr_timesheet_employee_extd_form"/> + <field name="arch" type="xml"> + <xpath expr="//div[@name='button_box']" position="inside"> + <button name="%(act_hr_employee_2_hr_timesheet)d" string="Timesheets" type="action"/> + </xpath> + </field> + </record> </data> </openerp> diff --git a/addons/import_google/__openerp__.py b/addons/import_google/__openerp__.py index 5c538e5912f..5242633747f 100644 --- a/addons/import_google/__openerp__.py +++ b/addons/import_google/__openerp__.py @@ -26,7 +26,7 @@ 'description': """The module adds google contact in partner address and add google calendar events details in Meeting""", 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', - 'depends': ['base', 'import_base', 'google_base_account','crm'], + 'depends': ['base', 'import_base', 'google_base_account', 'base_calendar'], 'init_xml': [], 'update_xml': ['security/ir.model.access.csv', 'sync_google_calendar_view.xml', diff --git a/addons/import_google/partner.py b/addons/import_google/partner.py index 232f18d06a3..e7aa4dd8ca7 100644 --- a/addons/import_google/partner.py +++ b/addons/import_google/partner.py @@ -21,11 +21,11 @@ from osv import fields,osv -class crm_case_categ(osv.osv): - """ Category of Case """ - _inherit = "crm.case.categ" +class crm_meeting_type(osv.osv): + """ Meeting Types """ + _inherit = "crm.meeting.type" _columns = { 'user_id': fields.many2one('res.users', 'User') } -crm_case_categ() + # vim:expandtab:smartindent:toabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_google/sync_google_calendar_view.xml b/addons/import_google/sync_google_calendar_view.xml index 84f0176c5ec..626d803d4df 100644 --- a/addons/import_google/sync_google_calendar_view.xml +++ b/addons/import_google/sync_google_calendar_view.xml @@ -1,30 +1,14 @@ <?xml version="1.0"?> <openerp> <data> - <record model="ir.ui.view" id="crm_case_form_view_meet_inherit"> + <record model="ir.ui.view" id="view_crm_meeting_form"> <field name="name">CRM - Meetings Form (Inherited)</field> <field name="model">crm.meeting</field> <field name="type">form</field> - <field name="inherit_id" ref="crm.crm_case_form_view_meet"/> + <field name="inherit_id" ref="base_calendar.view_crm_meeting_form"/> <field name="arch" type="xml"> <field name="categ_id" position="replace"> - <field name="categ_id" widget="selection" - string="Meeting Type" - domain="[('object_id.model', '=', 'crm.meeting'),('user_id','in',[uid, False])]" /> - </field> - </field> - </record> - - <record model="ir.ui.view" id="crm_case_tree_view_meet_inherit"> - <field name="name">CRM - Meetings Tree (Inherited)</field> - <field name="model">crm.meeting</field> - <field name="type">tree</field> - <field name="inherit_id" ref="crm.crm_case_tree_view_meet"/> - <field name="arch" type="xml"> - <field name="categ_id" position="replace"> - <field name="categ_id" widget="selection" - string="Meeting Type" - domain="[('object_id.model', '=', 'crm.meeting'),('user_id','in',[uid, False])]" /> + <field name="categ_id" widget="selection" domain="[('user_id', 'in', [uid, False])]"/> </field> </field> </record> diff --git a/addons/import_google/wizard/import_google.py b/addons/import_google/wizard/import_google.py index 9a9b2802826..c34a14e224d 100644 --- a/addons/import_google/wizard/import_google.py +++ b/addons/import_google/wizard/import_google.py @@ -235,10 +235,10 @@ class google_import(import_framework): def get_event_category(self, val, name): - fields = ['name', 'object_id'] - nameid = 'event_category_'+name - data = [name, 'crm.meeting'] - return self.import_object(fields, data, 'crm.case.categ', "crm_case_categ", nameid, [('name', 'ilike', name)]) + nameid = 'event_category_' + name + fields = ['name'] + data = [name] + return self.import_object(fields, data, 'crm.meeting.type', "crm_meeting_type", nameid, [('name', 'ilike', name)]) def get_rec(self, val): if val.get("recurrency"): diff --git a/addons/l10n_be_hr_payroll/l10n_be_hr_payroll_view.xml b/addons/l10n_be_hr_payroll/l10n_be_hr_payroll_view.xml index 46caa9f6478..79c7c08ffca 100644 --- a/addons/l10n_be_hr_payroll/l10n_be_hr_payroll_view.xml +++ b/addons/l10n_be_hr_payroll/l10n_be_hr_payroll_view.xml @@ -9,23 +9,17 @@ <field name="inherit_id" ref="hr_contract.hr_contract_view_form"/> <field name="arch" type="xml"> <data> - <xpath expr="//page[@name='information']/group/group[@name='right_column']" position="before"> + <xpath expr="//field[@name='struct_id']" position="after"> <field name="travel_reimbursement_amount"/> <field name="car_company_amount"/> + <field name="car_employee_deduction"/> <field name="misc_onss_deduction"/> <field name="meal_voucher_amount"/> + <field name="meal_voucher_employee_deduction"/> <field name="misc_advantage_amount"/> - <separator string="Miscellaneous" colspan="2"/> <field name="additional_net_amount"/> <field name="retained_net_amount"/> - </xpath> - <xpath expr="//field[@name='trial_date_end']" position="after"> - <group colspan="2" col="2"> - <separator string="by Worker" colspan="2"/> - <field name="insurance_employee_deduction"/> - <field name="meal_voucher_employee_deduction"/> - <field name="car_employee_deduction"/> - </group> + <field name="insurance_employee_deduction"/> </xpath> </data> </field> diff --git a/addons/mail/__openerp__.py b/addons/mail/__openerp__.py index f501cc58d2c..e911f24e809 100644 --- a/addons/mail/__openerp__.py +++ b/addons/mail/__openerp__.py @@ -20,36 +20,41 @@ ############################################################################## { - 'name': 'Emails Management', + 'name': 'Social Network', 'version': '1.0', - 'category': 'Hidden/Dependency', + 'category':'Social Network', + "sequence": 2, 'description': """ -A generic email subsystem with message storage and queuing -========================================================== +A bussiness oriented Social Networking with a fully-integrated email +and message management. +===================================================================== +The Social Networking module provides an unified social network +abstraction layer allowing applications to display a complete +communication history on documents.It gives the users the possibility +to read and send messages and emails in an unified way. -This email subsystem is not intended to be used as as standalone -application, but to provide a unified email abstraction that all -other applications can use. +It also provides a feeds page combined to a subscription mechanism, that +allows to follow documents, and to be constantly updated about recent +news. + +The main features of the module are : -The main features are: - - * Relies on the global Outgoing Mail Servers configured in the - Administration menu for delivering outgoing mail - * Provides an API for sending messages and archiving them, - grouped by conversation - * Any OpenERP document can act as a conversation topic, provided - it includes the necessary support for handling incoming emails - (see the ``mail.thread`` class for more details). - * Includes queuing mechanism with automated configurable - scheduler-based processing - * Includes a generic email composition assistant, that can turn + * a clean and renewed communication history for any OpenERP + document that can act as a discussion topic, + * a discussion mean on documents, + * a subscription mechanism to be updated about new messages on + interesting documents, + * an unified feeds page to see recent messages and activity + on followed documents, + * user communication through the feeds page, + * a threaded discussion design, + * relies on the global outgoing mail server, an integrated email + management system allowing to send emails with a configurable + scheduler-based processing engine + * includes an extensible generic email composition assistant, that can turn into a mass-mailing assistant, and is capable of interpreting simple *placeholder expressions* that will be replaced with - dynamic data when each email is actually sent. - This generic assistant is easily extensible to provide advanced - features (see ``email_template`` for example, which adds email - templating features to this assistant) - + dynamic data when each email is actually sent """, 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', @@ -69,6 +74,7 @@ The main features are: ], 'installable': True, 'auto_install': False, + 'application':True, 'certificate': '001056784984222247309', 'images': [ 'images/customer_history.jpeg', @@ -94,6 +100,6 @@ The main features are: ], 'demo': [ 'mail_demo.xml', - ], + ], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/mail/static/src/img/icon.png b/addons/mail/static/src/img/icon.png Binary files differnew file mode 100644 index 00000000000..53ccc469127 --- /dev/null +++ b/addons/mail/static/src/img/icon.png diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js index 3c0b61c173e..0f68a548590 100644 --- a/addons/mail/static/src/js/mail.js +++ b/addons/mail/static/src/js/mail.js @@ -91,7 +91,7 @@ openerp.mail = function(session) { this.params = params; this.params.parent_id = this.params.parent_id || false; this.params.thread_level = this.params.thread_level || 0; - this.params.msg_more_limit = this.params.msg_more_limit || 100; + this.params.msg_more_limit = this.params.msg_more_limit || 290; this.params.limit = this.params.limit || 100; this.params.offset = this.params.offset || 0; this.params.records = this.params.records || null; @@ -304,7 +304,6 @@ openerp.mail = function(session) { // format date according to the user timezone record.date = session.web.format_value(record.date, {type:"datetime"}); - var rendered = session.web.qweb.render('mail.Thread.message', {'record': record, 'thread': this, 'params': this.params, 'display': this.display}); $(rendered).appendTo(this.$element.children('div.oe_mail_thread_display:first')); // expand feature @@ -635,6 +634,7 @@ openerp.mail = function(session) { start: function () { this._super.apply(this, arguments); var self = this; + this.display_current_user(); // add events this.add_event_handlers(); // load mail.message search view @@ -694,6 +694,14 @@ openerp.mail = function(session) { }); }, + display_current_user: function () { + return this.$element.find('img.oe_mail_msg_image').attr('src', this.thread_get_avatar('res.users', 'avatar', this.session.uid)); + }, + + thread_get_avatar: function(model, field, id) { + return this.session.prefix + '/web/binary/image?session_id=' + this.session.session_id + '&model=' + model + '&field=' + field + '&id=' + (id || ''); + }, + /** * Initializes the wall and calls fetch_comments * @param {Number} limit: number of notifications to fetch diff --git a/addons/mail/static/src/xml/mail.xml b/addons/mail/static/src/xml/mail.xml index 2eb3a390933..982fb8aeb2f 100644 --- a/addons/mail/static/src/xml/mail.xml +++ b/addons/mail/static/src/xml/mail.xml @@ -56,9 +56,7 @@ <div t-name="mail.Thread" class="oe_mail oe_mail_thread"> <div class="oe_mail_thread_action"> <img class="oe_mail_msg_image oe_left" alt="User img"/> - <div class="oe_mail_msg_content"> - <textarea class="oe_mail oe_mail_action_textarea" placeholder="Add your comment here..." onfocus="this.value = '';"/> - </div> + <textarea class="oe_mail oe_mail_action_textarea" placeholder="Add your comment here..." onfocus="this.value = '';"/> </div> <div class="oe_mail_thread_display"></div> <div class="oe_mail_thread_more"> diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index cb2ed1eec19..1b19a383c10 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -292,4 +292,43 @@ class mail_compose_message(osv.osv_memory): return tools.ustr(result) return template and EXPRESSION_PATTERN.sub(merge, template) + + +class mail_compose_message_extended(osv.osv_memory): + """ Extension of 'mail.compose.message' to support default field values related + to CRM-like models that follow the following conventions: + + 1. The model object must have an attribute '_mail_compose_message' equal to True. + + 2. The model should define the following fields: + - 'name' as subject of the message (required); + - 'email_from' as destination email address (required); + - 'email_cc' as cc email addresses (required); + - 'section_id.reply_to' as reply-to address (optional). + """ + _inherit = 'mail.compose.message' + + def get_value(self, cr, uid, model, res_id, context=None): + """Overrides the default implementation to provide more default field values + related to the corresponding CRM case. + """ + result = super(mail_compose_message_extended, self).get_value(cr, uid, model, res_id, context=context) + model_obj = self.pool.get(model) + if getattr(model_obj, '_mail_compose_message', False) and res_id: + data = model_obj.browse(cr, uid , res_id, context) + user = self.pool.get('res.users').browse(cr, uid, uid, context=context) + result.update({ + 'model': model, + 'res_id': res_id, + 'email_from': user.user_email or tools.config.get('email_from', False), + 'email_to': data.email_from or False, + 'email_cc': tools.ustr(data.email_cc or ''), + 'subject': data.name or False, + 'body_text': '\n' + tools.ustr(user.signature or ''), + 'subtype': 'plain', + }) + if hasattr(data, 'section_id'): + result['reply_to'] = data.section_id and data.section_id.reply_to or False + return result + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/marketing_campaign/marketing_campaign.py b/addons/marketing_campaign/marketing_campaign.py index a6294182301..417bd694624 100644 --- a/addons/marketing_campaign/marketing_campaign.py +++ b/addons/marketing_campaign/marketing_campaign.py @@ -439,7 +439,7 @@ class marketing_campaign_activity(osv.osv): 'revenue': fields.float('Revenue', help="Set an expected revenue if you consider that every campaign item that has reached this point has generated a certain revenue. You can get revenue statistics in the Reporting section", digits_compute=dp.get_precision('Sale Price')), 'signal': fields.char('Signal', size=128, help='An activity with a signal can be called programmatically. Be careful, the workitem is always created when a signal is sent'), - 'keep_if_condition_not_met': fields.boolean("Don't delete workitems", + 'keep_if_condition_not_met': fields.boolean("Don't Delete Workitems", help="By activating this option, workitems that aren't executed because the condition is not met are marked as cancelled instead of being deleted.") } diff --git a/addons/marketing_campaign/marketing_campaign_view.xml b/addons/marketing_campaign/marketing_campaign_view.xml index 41ed78da709..6a06cb33f1d 100644 --- a/addons/marketing_campaign/marketing_campaign_view.xml +++ b/addons/marketing_campaign/marketing_campaign_view.xml @@ -9,6 +9,22 @@ Marketing Campaign ====================== --> + <act_window name="All Segments" + res_model="marketing.campaign.segment" + src_model="marketing.campaign" + view_type="form" + view_mode="tree,form" + id="act_marketing_campaing_segment_opened" + context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}" + /> + + <!-- Campaign Followups --> + <act_window + context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}" + id="act_marketing_campaing_followup" + name="Campaign Follow-up" res_model="marketing.campaign.workitem" + src_model="marketing.campaign" view_mode="tree,form" + view_type="form" /> <record model="ir.ui.view" id="view_marketing_campaign_form"> <field name="name">marketing.campaign.form</field> @@ -24,20 +40,30 @@ <field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,running,done"/> </header> <sheet string="Campaign"> + <div class="oe_right oe_button_box" name="button_box"> + <button type="action" + name="%(act_marketing_campaing_followup)d" + string="Follow-Up" /> + <button type="action" + name="%(act_marketing_campaing_segment_opened)d" + string="Segments" /> + </div> + <div class="oe_title"> + <label for="name" class="oe_edit_only"/> + <h1><field name="name" class="oe_inline"/></h1> + </div> <group> - <group string="Campaign"> - <field name="name"/> + <group> <field name="mode"/> + <field name="fixed_cost"/> </group> - <group string="Resource"> + <group> <field name="object_id"/> <field name="partner_field_id"/> <field name="unique_field_id"/> - </group> - <group string="Cost"> - <field name="fixed_cost"/> - </group> + </group> </group> + <separator string="Activities"/> <field name="activity_ids" context="{'default_object_id': object_id, 'default_campaign_id': active_id}" /> </sheet> </form> @@ -143,16 +169,11 @@ </header> <sheet string="Segments" > <group> - <group string="Segment"> + <group> <field name="name"/> <field name="campaign_id" on_change="onchange_campaign_id(campaign_id)"/> <field name="object_id" invisible="1"/> - </group> - <group string="Filter"> - <field name="ir_filter_id"/> - </group> - <group string="Synchronization"> - <field name="sync_mode" required="True"/> + <field name="sync_mode" required="True"/> <label for="sync_last_date"/> <div> <field name="sync_last_date" class="oe_inline"/> @@ -160,7 +181,8 @@ </div> <field name="date_next_sync"/> </group> - <group string="History"> + <group> + <field name="ir_filter_id"/> <field name="date_run" readonly="1"/> <field name="date_done" readonly="1"/> </group> @@ -243,33 +265,34 @@ <field name="arch" type="xml"> <form string="Activities" version="7.0"> <group> - <group string="Activity"> + <group> <field name="name"/> <field name="signal" groups="base.group_no_one"/> <field name="start"/> <field name="object_id" invisible="1"/> <field name="campaign_id" invisible="1"/> </group> - <group string="Cost / Revenue"> + <group> <field name="variable_cost"/> <field name="revenue"/> </group> </group> - <group string="Condition" col="4"> - <field name="condition" widget="char" colspan="4"/> - <field name="keep_if_condition_not_met"/> - </group> - <group col="4"> - <separator string="Action" colspan="4"/> - <field name="type"/> - <field name="email_template_id" attrs="{'required':[('type','=','email')], 'invisible':[('type','!=','email')]}" + <group > + <group> + <field name="condition" widget="char"/> + <field name="keep_if_condition_not_met"/> + </group> + <group> + <field name="type"/> + <field name="email_template_id" attrs="{'required':[('type','=','email')], 'invisible':[('type','!=','email')]}" context="{'default_model_id':object_id}" /> - <field name="server_action_id" attrs="{'required':[('type','=','action')],'invisible':[('type','!=','action')]}" domain="[('model_id','=',object_id)]"/> - <field name="report_id" attrs="{'required':[('type','=','report')],'invisible':[('type','!=','report')]}" context="{'object_id':object_id}"/> - <field name="report_directory_id" attrs="{'required':[('type','=','report')],'invisible':[('type','!=','report')]}"/> + <field name="server_action_id" attrs="{'required':[('type','=','action')],'invisible':[('type','!=','action')]}" domain="[('model_id','=',object_id)]"/> + <field name="report_id" attrs="{'required':[('type','=','report')],'invisible':[('type','!=','report')]}" context="{'object_id':object_id}"/> + <field name="report_directory_id" attrs="{'required':[('type','=','report')],'invisible':[('type','!=','report')]}"/> + </group> </group> - <separator string="Transitions"/> - <field name="from_ids" mode="tree,form" context="{'default_activity_to_id': active_id}"> + <separator string="Previous Activities"/> + <field name="from_ids" mode="tree" context="{'default_activity_to_id': active_id}"> <tree string="Incoming Transitions" editable="bottom"> <field name="activity_from_id" domain="[('campaign_id', '=', parent.campaign_id)]"/> <field name='trigger'/> @@ -285,7 +308,8 @@ </group> </form> </field> - <field name="to_ids" nolabel="1" mode="tree,form" context="{'default_activity_from_id': active_id}" colspan="2"> + <separator string="Next Activities"/> + <field name="to_ids" mode="tree" context="{'default_activity_from_id': active_id}"> <tree string="Outgoing Transitions" editable="bottom"> <field name="activity_to_id" domain="[('campaign_id', '=', parent.campaign_id)]"/> <field name='trigger'/> @@ -363,12 +387,13 @@ </header> <sheet> <group> - <group string="Campaign Step"> + <group> <field name="campaign_id"/> <field name="segment_id"/> <field name="activity_id" context="{'segment_id':segment_id}"/> <field name="date"/> - </group><group string="Related Resource"> + </group> + <group> <field name="object_id" readonly="True"/> <field name="res_name"/> <field name="res_id"/> diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml index 0b725108be4..6fe3d61a804 100644 --- a/addons/mrp/mrp_view.xml +++ b/addons/mrp/mrp_view.xml @@ -957,9 +957,8 @@ </xpath> <xpath expr="//field[@name='close_move']" position="after"> <group colspan="4" groups="product.group_mrp_properties"> - <separator colspan="4" string="Properties" /> - <field colspan="4" name="property_ids" nolabel="1"/> - </group> + <field colspan="4" name="property_ids" widget="many2many_tags"/> + </group> </xpath> </data> </field> diff --git a/addons/project/i18n/hr.po b/addons/project/i18n/hr.po index ea508ead52c..83182e409ef 100644 --- a/addons/project/i18n/hr.po +++ b/addons/project/i18n/hr.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2010-08-03 09:16+0000\n" -"Last-Translator: Mantavya Gajjar (Open ERP) <Unknown>\n" +"PO-Revision-Date: 2012-07-05 11:02+0000\n" +"Last-Translator: Marko Carevic <Unknown>\n" "Language-Team: Vinteh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-06-28 04:36+0000\n" -"X-Generator: Launchpad (build 15505)\n" +"X-Launchpad-Export-Date: 2012-07-06 04:58+0000\n" +"X-Generator: Launchpad (build 15558)\n" "Language: hr\n" #. module: project @@ -108,7 +108,7 @@ msgstr "Sati za procjenu" #. module: project #: view:project.project:0 msgid "Pending Projects" -msgstr "" +msgstr "Projekti na čekanju" #. module: project #: help:project.task,remaining_hours:0 @@ -191,7 +191,7 @@ msgstr "Tvrtka" #. module: project #: view:report.project.task.user:0 msgid "Pending tasks" -msgstr "" +msgstr "Zadaci na čekanju" #. module: project #: field:project.task.delegate,prefix:0 @@ -206,7 +206,7 @@ msgstr "" #. module: project #: model:process.transition.action,name:project.process_transition_action_openpendingtask0 msgid "Set pending" -msgstr "Postavite u tijeku" +msgstr "Staviti na čekanje" #. module: project #: selection:project.task,priority:0 @@ -641,7 +641,7 @@ msgstr "Srednji" #. module: project #: view:project.task:0 view:project.task.history.cumulative:0 msgid "Pending Tasks" -msgstr "" +msgstr "Zadaci na čekanju" #. module: project #: view:project.task:0 field:project.task,remaining_hours:0 @@ -705,7 +705,7 @@ msgstr "" #: selection:project.vs.hours,state:0 view:report.project.task.user:0 #: selection:report.project.task.user,state:0 selection:task.by.days,state:0 msgid "Pending" -msgstr "U toku" +msgstr "Na čekanju" #. module: project #: field:project.task.delegate,name:0 diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index f18cfe4b682..53a56735ec8 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -239,7 +239,7 @@ <t t-name="kanban-box"> <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_project oe_kanban_auto_height oe_kanban_global_click"> <div class="oe_dropdown_toggle oe_dropdown_kanban"> - <span class="oe_e">i</span> + <span class="oe_e">í</span> <ul class="oe_dropdown_menu"> <li><a type="edit">Edit...</a></li> <li><a type="delete">Delete</a></li> diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index fea7a64d2b7..5f9b0a369ca 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -27,9 +27,6 @@ from tools.translate import _ import binascii import time import tools -from crm import wizard - -wizard.mail_compose_message.SUPPORTED_MODELS.append('project.issue') class project_issue_version(osv.osv): _name = "project.issue.version" @@ -50,6 +47,7 @@ class project_issue(base_stage, osv.osv): _description = "Project Issue" _order = "priority, create_date desc" _inherit = ['ir.needaction_mixin', 'mail.thread'] + _mail_compose_message = True def _get_default_project_id(self, cr, uid, context=None): """ Gives default project by checking if present in the context """ diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml index d5d6b5346eb..f586305573b 100644 --- a/addons/sale/sale_view.xml +++ b/addons/sale/sale_view.xml @@ -175,7 +175,6 @@ <field domain="[('parent_id','=',partner_id)]" name="partner_invoice_id" groups="sale.group_delivery_invoice_address"/> <field domain="[('parent_id','=',partner_id)]" name="partner_shipping_id" groups="sale.group_delivery_invoice_address"/> - <field domain="[('type','=','sale')]" name="pricelist_id" groups="product.group_sale_pricelist" on_change="onchange_pricelist_id(pricelist_id,order_line)"/> <field name="project_id" context="{'partner_id':partner_id, 'pricelist_id':pricelist_id, 'default_name':name}" groups="sale.group_analytic_accounting" domain="[('type','in',['view','normal','contract'])]"/> </group> <group> @@ -235,9 +234,8 @@ <field name="delay"/> <field name="th_weight"/> <field name="address_allotment_id"/> + <field name="property_ids" widget="many2many_tags"/> </group> - <separator string="Properties" colspan="2"/> - <field name="property_ids" colspan="4" nolabel="1"/> <field name="notes" groups="base.group_sale_notes_subtotal" placeholder="Add a note on order line..."/> <div groups="base.group_no_one"> <separator colspan="4" string="Invoice Lines"/> diff --git a/addons/stock_planning/i18n/ja.po b/addons/stock_planning/i18n/ja.po index a9c9426d479..4e21f56fa79 100644 --- a/addons/stock_planning/i18n/ja.po +++ b/addons/stock_planning/i18n/ja.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-07-05 04:49+0000\n" -"X-Generator: Launchpad (build 15544)\n" +"X-Launchpad-Export-Date: 2012-07-06 04:58+0000\n" +"X-Generator: Launchpad (build 15558)\n" #. module: stock_planning #: code:addons/stock_planning/wizard/stock_planning_createlines.py:73 diff --git a/addons/survey/i18n/ja.po b/addons/survey/i18n/ja.po index b92f178c95a..b3670aba55e 100644 --- a/addons/survey/i18n/ja.po +++ b/addons/survey/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:37+0000\n" -"PO-Revision-Date: 2012-07-05 03:55+0000\n" +"PO-Revision-Date: 2012-07-06 03:16+0000\n" "Last-Translator: Akira Hiyama <Unknown>\n" "Language-Team: Japanese <ja@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-07-05 04:49+0000\n" -"X-Generator: Launchpad (build 15544)\n" +"X-Launchpad-Export-Date: 2012-07-06 04:58+0000\n" +"X-Generator: Launchpad (build 15558)\n" #. module: survey #: view:survey.print:0 @@ -30,7 +30,7 @@ msgid "" "Minimum Required Answer you entered is " "greater than the number of answer. " "Please use a number that is smaller than %d." -msgstr "あなたが入力した最低必要な回答数が回答の数よりも多くなっています。%d より小さい数を使って下さい。" +msgstr "あなたが入力した最小必要回答数が回答の数よりも多くなっています。%d より小さい数を使って下さい。" #. module: survey #: view:survey.question.wiz:0 @@ -50,7 +50,7 @@ msgid "" "Maximum Required Answer you entered for " "your maximum is greater than the number of answer. " " Please use a number that is smaller than %d." -msgstr "あなたが入力した最大必要な回答数が回答の数よりも多くなっています。%d より小さい数を使って下さい。" +msgstr "あなたが入力した最大必要回答数が回答の数よりも多くなっています。%d より小さい数を使って下さい。" #. module: survey #: view:survey:0 @@ -142,7 +142,7 @@ msgstr "コメント項目の許可" #: selection:survey.print,paper_size:0 #: selection:survey.print.answer,paper_size:0 msgid "A4 (210mm x 297mm)" -msgstr "" +msgstr "A4(210mm x 297mm)" #. module: survey #: field:survey.question,comment_maximum_date:0 @@ -163,7 +163,7 @@ msgstr "完了" #. module: survey #: selection:survey.question,required_type:0 msgid "Exactly" -msgstr "" +msgstr "一致" #. module: survey #: view:survey:0 @@ -212,7 +212,7 @@ msgstr "調査の質問" #. module: survey #: selection:survey.question,type:0 msgid "Matrix of Choices (Only One Answers Per Row)" -msgstr "選択肢(1行に付き1回答)" +msgstr "選択の行列(1行に付き1回答)" #. module: survey #: code:addons/survey/survey.py:470 @@ -240,7 +240,7 @@ msgstr "質問タイプが評価尺度の場合に使用" #: field:survey.print,page_number:0 #: field:survey.print.answer,page_number:0 msgid "Include Page Number" -msgstr "" +msgstr "ページ番号を含む" #. module: survey #: view:survey.page:0 @@ -305,7 +305,7 @@ msgstr "終了した調査の合計" #. module: survey #: view:survey.response.answer:0 msgid "(Use Only Question Type is matrix_of_drop_down_menus)" -msgstr "(質問タイプがドロップダウンメニューのマトリックスの時のみ使用)" +msgstr "(質問タイプがドロップダウンメニューの行列の時のみ使用)" #. module: survey #: model:ir.actions.report.xml,name:survey.survey_analysis @@ -391,7 +391,7 @@ msgstr "既存ユーザに注意喚起を送信" #. module: survey #: selection:survey.question,type:0 msgid "Multiple Choice (Multiple Answer)" -msgstr "複数選択(複数回答)" +msgstr "複数の選択肢(複数回答)" #. module: survey #: view:survey:0 @@ -411,7 +411,7 @@ msgstr "メニュー選択" #. module: survey #: selection:survey.question,required_type:0 msgid "At Most" -msgstr "" +msgstr "最大" #. module: survey #: view:survey:0 @@ -431,7 +431,7 @@ msgstr "キャンセル" #. module: survey #: field:survey.response.line,single_text:0 msgid "Text" -msgstr "" +msgstr "テキスト" #. module: survey #: constraint:res.users:0 @@ -442,7 +442,7 @@ msgstr "選択した会社は、このユーザに許された会社ではあり #: selection:survey.print,paper_size:0 #: selection:survey.print.answer,paper_size:0 msgid "Letter (8.5\" x 11\")" -msgstr "" +msgstr "レター(8.5\" x 11\")" #. module: survey #: view:survey:0 @@ -492,7 +492,7 @@ msgstr "コメントテキストを検証しない" #: selection:survey.question,comment_valid_type:0 #: selection:survey.question,validation_type:0 msgid "Must Be A Whole Number" -msgstr "整数にすべきです" +msgstr "整数が必須" #. module: survey #: field:survey.answer,question_id:0 @@ -530,6 +530,8 @@ msgid "" "etc. You can edit survey manually or click on the 'Edit Survey' for a " "WYSIWYG interface." msgstr "" +"異なる目的の調査を作成することができます:採用面接、従業員の期間毎の評価、マーケティングキャンペーンなど。調査は複数のタイプの質問を含むページで作成されま" +"す:テキスト、複数選択など。調査はWYSIWYGインタフェースで手動または調査の編集をクリックすることで編集可能です。" #. module: survey #: view:survey:0 @@ -548,7 +550,7 @@ msgstr "計画段階の評価" #: view:survey.page:0 #: view:survey.question:0 msgid "Between" -msgstr "" +msgstr "間" #. module: survey #: view:survey.print:0 @@ -635,7 +637,7 @@ msgstr "調査タイプ" #. module: survey #: field:survey.page,sequence:0 msgid "Page Nr" -msgstr "" +msgstr "ページ番号" #. module: survey #: view:survey:0 @@ -644,12 +646,12 @@ msgstr "" #: field:survey.question,descriptive_text:0 #: selection:survey.question,type:0 msgid "Descriptive Text" -msgstr "" +msgstr "説明文" #. module: survey #: field:survey.question,minimum_req_ans:0 msgid "Minimum Required Answer" -msgstr "" +msgstr "最小必要回答数" #. module: survey #: code:addons/survey/survey.py:479 @@ -662,7 +664,7 @@ msgstr "列見出しに1つ以上のメニュー選択の入力が必要ですï¼ #. module: survey #: field:survey.question,req_error_msg:0 msgid "Error Message" -msgstr "" +msgstr "エラーメッセージ" #. module: survey #: code:addons/survey/survey.py:477 @@ -673,13 +675,13 @@ msgstr "列見出しに1つ以上のメニュー選択の入力が必要です〠#. module: survey #: field:survey.request,date_deadline:0 msgid "Deadline date" -msgstr "" +msgstr "締切日" #. module: survey #: selection:survey.question,comment_valid_type:0 #: selection:survey.question,validation_type:0 msgid "Must Be A Date" -msgstr "" +msgstr "日付が必須" #. module: survey #: model:ir.model,name:survey.model_survey_print @@ -695,13 +697,13 @@ msgstr "列見出し" #. module: survey #: field:survey.question,is_require_answer:0 msgid "Require Answer to Question" -msgstr "" +msgstr "質問の回答が必要" #. module: survey #: model:ir.actions.act_window,name:survey.action_survey_request_tree #: model:ir.ui.menu,name:survey.menu_survey_type_form1 msgid "Survey Requests" -msgstr "" +msgstr "調査要求" #. module: survey #: code:addons/survey/survey.py:370 @@ -715,7 +717,7 @@ msgstr "1つ以上の列見出しの入力が必要です。" #: code:addons/survey/wizard/survey_answer.py:940 #, python-format msgid "Please enter an integer value" -msgstr "" +msgstr "整数値を入力して下さい。" #. module: survey #: model:ir.model,name:survey.model_survey_browse_answer @@ -725,7 +727,7 @@ msgstr "" #. module: survey #: selection:survey.question,comment_field_type:0 msgid "Paragraph of Text" -msgstr "" +msgstr "テキストの段落" #. module: survey #: code:addons/survey/survey.py:423 @@ -734,37 +736,37 @@ msgid "" "Maximum Required Answer you entered for " "your maximum is greater than the number of answer. " " Please use a number that is smaller than %d." -msgstr "" +msgstr "最大値のためにあなたが入力した最大必要回答数が回答の数よりも多くなっています。%d より小さい数を使って下さい。" #. module: survey #: view:survey:0 #: view:survey.page:0 #: view:survey.question:0 msgid "When the question is not answered, display this error message:" -msgstr "" +msgstr "質問に回答されない場合に、このエラーメッセージを表示します。" #. module: survey #: view:survey:0 #: view:survey.page:0 #: view:survey.question:0 msgid "Options" -msgstr "" +msgstr "オプション" #. module: survey #: view:survey.send.invitation.log:0 msgid "_Ok" -msgstr "" +msgstr "OK" #. module: survey #: model:ir.ui.menu,name:survey.menu_browse_survey_response msgid "Browse Answers" -msgstr "" +msgstr "回答のブラウズ" #. module: survey #: field:survey.response.answer,comment_field:0 #: view:survey.response.line:0 msgid "Comment" -msgstr "" +msgstr "コメント" #. module: survey #: model:ir.model,name:survey.model_survey_answer @@ -774,70 +776,70 @@ msgstr "" #: view:survey.response.answer:0 #: view:survey.response.line:0 msgid "Survey Answer" -msgstr "" +msgstr "調査の回答" #. module: survey #: selection:survey.answer,type:0 msgid "Selection" -msgstr "" +msgstr "選択" #. module: survey #: model:ir.actions.act_window,name:survey.action_browse_survey_response #: view:survey:0 msgid "Answer Survey" -msgstr "" +msgstr "調査の回答" #. module: survey #: view:survey:0 #: view:survey.page:0 #: view:survey.question:0 msgid "Comment Field" -msgstr "" +msgstr "コメント項目" #. module: survey #: selection:survey.response,response_type:0 msgid "Manually" -msgstr "" +msgstr "手動" #. module: survey #: view:survey.send.invitation:0 msgid "_Send" -msgstr "" +msgstr "送信" #. module: survey #: help:survey,responsible_id:0 msgid "User responsible for survey" -msgstr "" +msgstr "調査を担当するユーザ" #. module: survey #: field:survey,page_ids:0 #: view:survey.question:0 #: field:survey.response.line,page_id:0 msgid "Page" -msgstr "" +msgstr "ページ" #. module: survey #: field:survey.question,comment_column:0 msgid "Add comment column in matrix" -msgstr "" +msgstr "行列でコメント列に追加" #. module: survey #: field:survey.answer,response:0 msgid "#Answer" -msgstr "" +msgstr "回答番号" #. module: survey #: field:survey.print,without_pagebreak:0 #: field:survey.print.answer,without_pagebreak:0 msgid "Print Without Page Breaks" -msgstr "" +msgstr "改ページなしで印刷" #. module: survey #: view:survey:0 #: view:survey.page:0 #: view:survey.question:0 msgid "When the comment is an invalid format, display this error message" -msgstr "" +msgstr "コメントが無効なフォーマットの場合、このエラーメッセージを表示します。" #. module: survey #: code:addons/survey/wizard/survey_selection.py:83 @@ -845,85 +847,85 @@ msgstr "" msgid "" "You can not give more response. Please contact the author of this survey for " "further assistance." -msgstr "" +msgstr "あなたはこれ以上多くの応答を与えることができません。これ以上のサポートが必要であれば、この調査の作者に連絡をして下さい。" #. module: survey #: model:ir.actions.act_window,name:survey.act_survey_page_question #: model:ir.actions.act_window,name:survey.act_survey_question msgid "Questions" -msgstr "" +msgstr "質問" #. module: survey #: help:survey,response_user:0 msgid "Set to one if you require only one Answer per user" -msgstr "" +msgstr "1ユーザにつき1回答のみとする場合は、1を設定します。" #. module: survey #: field:survey,users:0 msgid "Users" -msgstr "" +msgstr "ユーザ" #. module: survey #: view:survey.send.invitation:0 msgid "Message" -msgstr "" +msgstr "メッセージ" #. module: survey #: view:survey:0 #: view:survey.request:0 msgid "MY" -msgstr "" +msgstr "私の" #. module: survey #: field:survey.question,maximum_req_ans:0 msgid "Maximum Required Answer" -msgstr "" +msgstr "最大必要回答数" #. module: survey #: field:survey.name.wiz,page_no:0 msgid "Page Number" -msgstr "" +msgstr "ページ番号" #. module: survey #: code:addons/survey/wizard/survey_answer.py:87 #, python-format msgid "Cannot locate survey for the question wizard!" -msgstr "" +msgstr "質問ウィザードのための調査を見つけることができません。" #. module: survey #: view:survey:0 #: view:survey.page:0 #: view:survey.question:0 msgid "and" -msgstr "" +msgstr "かつ" #. module: survey #: model:ir.actions.act_window,name:survey.action_view_survey_print_statistics #: view:survey.print.statistics:0 msgid "Survey Print Statistics" -msgstr "" +msgstr "調査印刷統計値" #. module: survey #: field:survey.send.invitation.log,note:0 msgid "Log" -msgstr "" +msgstr "ログ" #. module: survey #: view:survey:0 #: view:survey.page:0 #: view:survey.question:0 msgid "When the choices do not add up correctly, display this error message" -msgstr "" +msgstr "選択肢を正しく追加していない場合、このエラーメッセージが表示されます。" #. module: survey #: field:survey,date_close:0 msgid "Survey Close Date" -msgstr "" +msgstr "調査閉鎖日" #. module: survey #: field:survey,date_open:0 msgid "Survey Open Date" -msgstr "" +msgstr "調査開設日" #. module: survey #: field:survey.question.column.heading,in_visible_rating_weight:0 @@ -934,25 +936,25 @@ msgstr "評価尺度は非表示ですか?" #: view:survey.browse.answer:0 #: view:survey.name.wiz:0 msgid "Start" -msgstr "" +msgstr "開始" #. module: survey #: code:addons/survey/survey.py:472 #, python-format msgid "Maximum Required Answer is greater than Minimum Required Answer" -msgstr "" +msgstr "最大必要回答数は最小必要回答数よりも大きい。" #. module: survey #: field:survey.question,comment_maximum_no:0 #: field:survey.question,validation_maximum_no:0 msgid "Maximum number" -msgstr "" +msgstr "最大値" #. module: survey #: selection:survey.request,state:0 #: selection:survey.response.line,state:0 msgid "Draft" -msgstr "" +msgstr "ドラフト" #. module: survey #: model:ir.model,name:survey.model_survey_print_statistics @@ -962,12 +964,12 @@ msgstr "" #. module: survey #: selection:survey,state:0 msgid "Closed" -msgstr "" +msgstr "閉鎖" #. module: survey #: selection:survey.question,type:0 msgid "Matrix of Drop-down Menus" -msgstr "" +msgstr "ドロップダウンメニューの行列" #. module: survey #: view:survey:0 @@ -989,133 +991,133 @@ msgstr "" #: field:survey.send.invitation,partner_ids:0 #: field:survey.tbl.column.heading,response_table_id:0 msgid "Answer" -msgstr "" +msgstr "回答" #. module: survey #: field:survey,max_response_limit:0 msgid "Maximum Answer Limit" -msgstr "" +msgstr "回答上限最大値" #. module: survey #: model:ir.actions.act_window,name:survey.action_act_view_survey_send_invitation msgid "Send Invitations" -msgstr "" +msgstr "招待の送信" #. module: survey #: field:survey.name.wiz,store_ans:0 msgid "Store Answer" -msgstr "" +msgstr "回答の保存" #. module: survey #: selection:survey.question,type:0 msgid "Date and Time" -msgstr "" +msgstr "日付と時間" #. module: survey #: field:survey,state:0 #: field:survey.response,state:0 #: field:survey.response.line,state:0 msgid "Status" -msgstr "" +msgstr "状態" #. module: survey #: model:ir.actions.act_window,name:survey.action_view_survey_print msgid "Print Survey" -msgstr "" +msgstr "調査の印刷" #. module: survey #: field:survey,send_response:0 msgid "E-mail Notification on Answer" -msgstr "" +msgstr "回答のEメール通知" #. module: survey #: field:survey.response.answer,value_choice:0 msgid "Value Choice" -msgstr "" +msgstr "値の選択" #. module: survey #: view:survey:0 msgid "Started" -msgstr "" +msgstr "開始済" #. module: survey #: model:ir.actions.act_window,name:survey.action_view_survey_print_answer #: view:survey:0 #: view:survey.print.answer:0 msgid "Print Answer" -msgstr "" +msgstr "回答の印刷" #. module: survey #: selection:survey.question,type:0 msgid "Multiple Textboxes" -msgstr "" +msgstr "複数のテキストボックス" #. module: survey #: selection:survey.print,orientation:0 #: selection:survey.print.answer,orientation:0 msgid "Landscape(Horizontal)" -msgstr "" +msgstr "横向き" #. module: survey #: field:survey.question,no_of_rows:0 msgid "No of Rows" -msgstr "" +msgstr "行数" #. module: survey #: view:survey:0 #: view:survey.name.wiz:0 msgid "Survey Details" -msgstr "" +msgstr "調査の詳細" #. module: survey #: selection:survey.question,type:0 msgid "Multiple Textboxes With Different Type" -msgstr "" +msgstr "異なるタイプの複数のテキストボックス" #. module: survey #: view:survey.question.column.heading:0 msgid "Menu Choices (each choice on separate lines)" -msgstr "" +msgstr "メニュー選択(行毎に別の選択)" #. module: survey #: field:survey.response,response_type:0 msgid "Answer Type" -msgstr "" +msgstr "回答タイプ" #. module: survey #: view:survey:0 #: view:survey.page:0 #: view:survey.question:0 msgid "Validation" -msgstr "" +msgstr "検証" #. module: survey #: view:survey.request:0 #: selection:survey.request,state:0 msgid "Waiting Answer" -msgstr "" +msgstr "回答待ち" #. module: survey #: selection:survey.question,comment_valid_type:0 #: selection:survey.question,validation_type:0 msgid "Must Be A Decimal Number" -msgstr "" +msgstr "10進数値が必須" #. module: survey #: field:res.users,survey_id:0 msgid "Groups" -msgstr "" +msgstr "グループ" #. module: survey #: selection:survey.answer,type:0 #: selection:survey.question,type:0 msgid "Date" -msgstr "" +msgstr "日付" #. module: survey #: view:survey:0 msgid "All New Survey" -msgstr "" +msgstr "新規調査全て" #. module: survey #: model:ir.model,name:survey.model_survey_send_invitation @@ -1128,40 +1130,40 @@ msgstr "" #: field:survey.request,user_id:0 #: field:survey.response,user_id:0 msgid "User" -msgstr "" +msgstr "ユーザ" #. module: survey #: field:survey.name.wiz,transfer:0 msgid "Page Transfer" -msgstr "" +msgstr "ページ転送" #. module: survey #: selection:survey.response.line,state:0 msgid "Skiped" -msgstr "" +msgstr "スキップ済" #. module: survey #: field:survey.print,paper_size:0 #: field:survey.print.answer,paper_size:0 msgid "Paper Size" -msgstr "" +msgstr "用紙サイズ" #. module: survey #: field:survey.response.answer,column_id:0 #: field:survey.tbl.column.heading,column_id:0 msgid "Column" -msgstr "" +msgstr "列" #. module: survey #: model:ir.model,name:survey.model_survey_response_line msgid "Survey Response Line" -msgstr "" +msgstr "調査回答行" #. module: survey #: code:addons/survey/wizard/survey_selection.py:80 #, python-format msgid "You can not give response for this survey more than %s times" -msgstr "" +msgstr "この調査には %s 回を超えての応答はできません。" #. module: survey #: model:ir.actions.report.xml,name:survey.report_survey_form @@ -1182,7 +1184,7 @@ msgstr "" #: field:survey.request,survey_id:0 #: field:survey.response,survey_id:0 msgid "Survey" -msgstr "" +msgstr "調査" #. module: survey #: field:survey.question,in_visible_rating_weight:0 @@ -1192,12 +1194,12 @@ msgstr "評価尺度は非表示ですか?" #. module: survey #: selection:survey.answer,type:0 msgid "Integer" -msgstr "" +msgstr "整数" #. module: survey #: selection:survey.question,type:0 msgid "Numerical Textboxes" -msgstr "" +msgstr "数値のテキストボックス" #. module: survey #: model:ir.model,name:survey.model_survey_question_wiz @@ -1207,17 +1209,17 @@ msgstr "" #. module: survey #: view:survey:0 msgid "History" -msgstr "" +msgstr "履歴" #. module: survey #: view:survey.request:0 msgid "Late" -msgstr "" +msgstr "遅延" #. module: survey #: field:survey.type,code:0 msgid "Code" -msgstr "" +msgstr "コード" #. module: survey #: model:ir.ui.menu,name:survey.menu_print_survey_statistics @@ -1228,7 +1230,7 @@ msgstr "" #: field:survey.print,orientation:0 #: field:survey.print.answer,orientation:0 msgid "Orientation" -msgstr "" +msgstr "向き" #. module: survey #: view:survey:0 @@ -1236,55 +1238,55 @@ msgstr "" #: view:survey.page:0 #: view:survey.question:0 msgid "Seq" -msgstr "" +msgstr "順序" #. module: survey #: field:survey.request,email:0 msgid "E-mail" -msgstr "" +msgstr "Eメール" #. module: survey #: field:survey.question,comment_minimum_no:0 #: field:survey.question,validation_minimum_no:0 msgid "Minimum number" -msgstr "" +msgstr "最小値" #. module: survey #: field:survey.question,req_ans:0 msgid "#Required Answer" -msgstr "" +msgstr "要求される回答数" #. module: survey #: field:survey.answer,sequence:0 #: field:survey.question,sequence:0 msgid "Sequence" -msgstr "" +msgstr "順序" #. module: survey #: field:survey.question,comment_label:0 msgid "Field Label" -msgstr "" +msgstr "項目ラベル" #. module: survey #: view:survey:0 msgid "Other" -msgstr "" +msgstr "その他" #. module: survey #: view:survey.request:0 #: selection:survey.request,state:0 msgid "Done" -msgstr "" +msgstr "完了" #. module: survey #: view:survey:0 msgid "Test Survey" -msgstr "" +msgstr "テスト調査" #. module: survey #: field:survey.question,rating_allow_one_column_require:0 msgid "Allow Only One Answer per Column (Forced Ranking)" -msgstr "" +msgstr "列毎に1個の回答のみを許可(強制ランキング)" #. module: survey #: view:survey:0 @@ -1294,29 +1296,29 @@ msgstr "" #: view:survey.print.answer:0 #: view:survey.print.statistics:0 msgid "Cancel" -msgstr "" +msgstr "キャンセル" #. module: survey #: view:survey:0 msgid "Close" -msgstr "" +msgstr "閉じる" #. module: survey #: field:survey.question,comment_minimum_float:0 #: field:survey.question,validation_minimum_float:0 msgid "Minimum decimal number" -msgstr "" +msgstr "最小10進数" #. module: survey #: view:survey:0 #: selection:survey,state:0 msgid "Open" -msgstr "" +msgstr "開く" #. module: survey #: field:survey,tot_start_survey:0 msgid "Total Started Survey" -msgstr "" +msgstr "開始した調査合計" #. module: survey #: code:addons/survey/survey.py:462 @@ -1324,17 +1326,17 @@ msgstr "" msgid "" "#Required Answer you entered is greater than the number of answer. Please " "use a number that is smaller than %d." -msgstr "" +msgstr "入力した要求回答数が回答の数より大きいです。%d より小さな数を使用して下さい。" #. module: survey #: help:survey,max_response_limit:0 msgid "Set to one if survey is answerable only once" -msgstr "" +msgstr "調査が1回のみ回答可能な場合、1を設定します。" #. module: survey #: selection:survey.response,state:0 msgid "Finished " -msgstr "" +msgstr "完了 " #. module: survey #: model:ir.model,name:survey.model_survey_question_column_heading @@ -1344,17 +1346,17 @@ msgstr "調査質問の列見出し" #. module: survey #: field:survey.answer,average:0 msgid "#Avg" -msgstr "" +msgstr "平均数" #. module: survey #: selection:survey.question,type:0 msgid "Matrix of Choices (Multiple Answers Per Row)" -msgstr "" +msgstr "選択の行列(1行に付き複数回答)" #. module: survey #: model:ir.actions.act_window,name:survey.action_view_survey_name msgid "Give Survey Answer" -msgstr "" +msgstr "調査の回答を提供" #. module: survey #: model:ir.model,name:survey.model_res_users @@ -1365,60 +1367,60 @@ msgstr "" #: help:survey.browse.answer,response_id:0 msgid "" "If this field is empty, all answers of the selected survey will be print." -msgstr "" +msgstr "この項目が空の場合、選択された調査の回答の全てが印刷されます。" #. module: survey #: selection:survey.response.line,state:0 msgid "Answered" -msgstr "" +msgstr "回答済" #. module: survey #: code:addons/survey/wizard/survey_answer.py:425 #, python-format msgid "Complete Survey Answer" -msgstr "" +msgstr "調査の回答の完了" #. module: survey #: selection:survey.question,type:0 msgid "Comment/Essay Box" -msgstr "" +msgstr "コメント / エッセイボックス" #. module: survey #: field:survey.answer,type:0 msgid "Type of Answer" -msgstr "" +msgstr "回答のタイプ" #. module: survey #: field:survey.question,required_type:0 msgid "Respondent must answer" -msgstr "" +msgstr "回答者の回答必須" #. module: survey #: model:ir.actions.act_window,name:survey.action_view_survey_send_invitation #: view:survey.send.invitation:0 msgid "Send Invitation" -msgstr "" +msgstr "招待の送信" #. module: survey #: code:addons/survey/wizard/survey_answer.py:779 #, python-format msgid "You cannot select the same answer more than one time" -msgstr "" +msgstr "複数回の同じ回答は選択できません。" #. module: survey #: view:survey.question:0 msgid "Search Question" -msgstr "" +msgstr "質問の検索" #. module: survey #: field:survey,title:0 msgid "Survey Title" -msgstr "" +msgstr "調査タイトル" #. module: survey #: selection:survey.question,type:0 msgid "Single Textbox" -msgstr "" +msgstr "単数テキストボックス" #. module: survey #: view:survey:0 @@ -1428,17 +1430,17 @@ msgstr "" #: field:survey.page,note:0 #: view:survey.response.line:0 msgid "Description" -msgstr "" +msgstr "詳細" #. module: survey #: view:survey.name.wiz:0 msgid "Select Survey" -msgstr "" +msgstr "調査の選択" #. module: survey #: selection:survey.question,required_type:0 msgid "At Least" -msgstr "" +msgstr "最低" #. module: survey #: model:ir.actions.act_window,name:survey.action_view_survey_send_invitation_log @@ -1450,27 +1452,27 @@ msgstr "" #: selection:survey.print,orientation:0 #: selection:survey.print.answer,orientation:0 msgid "Portrait(Vertical)" -msgstr "" +msgstr "縦向き" #. module: survey #: selection:survey.question,comment_valid_type:0 #: selection:survey.question,validation_type:0 msgid "Must Be Specific Length" -msgstr "" +msgstr "長さ指定が必須" #. module: survey #: view:survey:0 #: view:survey.page:0 #: field:survey.question,page_id:0 msgid "Survey Page" -msgstr "" +msgstr "調査ページ" #. module: survey #: view:survey:0 #: view:survey.page:0 #: view:survey.question:0 msgid "Required Answer" -msgstr "" +msgstr "必要回答数" #. module: survey #: code:addons/survey/survey.py:468 @@ -1478,39 +1480,39 @@ msgstr "" msgid "" "Minimum Required Answer you entered is greater than the number of answer. " "Please use a number that is smaller than %d." -msgstr "" +msgstr "入力した最小必要回答数が回答数より大きくなっています。%d より小さな数を使用して下さい。" #. module: survey #: code:addons/survey/survey.py:453 #, python-format msgid "You must enter one or more answer." -msgstr "" +msgstr "1個以上の回答の入力が必要です。" #. module: survey #: view:survey:0 msgid "All Open Survey" -msgstr "" +msgstr "開いている調査全て" #. module: survey #: model:ir.actions.report.xml,name:survey.survey_browse_response #: field:survey.browse.answer,response_id:0 msgid "Survey Answers" -msgstr "" +msgstr "調査の回答" #. module: survey #: view:survey.browse.answer:0 msgid "Select Survey and Related Answer" -msgstr "" +msgstr "調査と関係する回答を選択" #. module: survey #: model:ir.ui.menu,name:survey.menu_print_survey_answer msgid "Surveys Answers" -msgstr "" +msgstr "調査の回答" #. module: survey #: model:ir.actions.act_window,name:survey.act_survey_pages msgid "Pages" -msgstr "" +msgstr "ページ" #. module: survey #: code:addons/survey/survey.py:401 @@ -1519,29 +1521,29 @@ msgid "" "#Required Answer you entered is greater " "than the number of answer. Please use a " "number that is smaller than %d." -msgstr "" +msgstr "入力した要求回答数は回答の数より大きくなっています。%d より小さな数を使用して下さい。" #. module: survey #: code:addons/survey/wizard/survey_answer.py:971 #, python-format msgid "You cannot select same answer more than one time'" -msgstr "" +msgstr "複数回の同じ回答は選択できません。" #. module: survey #: selection:survey.print,paper_size:0 #: selection:survey.print.answer,paper_size:0 msgid "Legal (8.5\" x 14\")" -msgstr "" +msgstr "リーガル(8.5\" x 14\")" #. module: survey #: field:survey.type,name:0 msgid "Name" -msgstr "" +msgstr "名称" #. module: survey #: view:survey.page:0 msgid "#Questions" -msgstr "" +msgstr "質問数" #. module: survey #: model:ir.model,name:survey.model_survey_response @@ -1554,19 +1556,19 @@ msgstr "" #: field:survey.question,numeric_required_sum_err_msg:0 #: field:survey.question,validation_valid_err_msg:0 msgid "Error message" -msgstr "" +msgstr "エラーメッセージ" #. module: survey #: view:survey.send.invitation:0 #: field:survey.send.invitation,send_mail:0 msgid "Send Mail for New User" -msgstr "" +msgstr "新規ユーザのためのメール送信" #. module: survey #: code:addons/survey/survey.py:382 #, python-format msgid "You must enter one or more Answer." -msgstr "" +msgstr "1つ以上の回答を入力する必要があります。" #. module: survey #: code:addons/survey/survey.py:411 @@ -1575,12 +1577,12 @@ msgid "" "Minimum Required Answer you entered is " "greater than the number of answer. Please " "use a number that is smaller than %d." -msgstr "" +msgstr "入力した最小必要回答数が回答数より大きくなっています。%d より小さな数を使用して下さい。" #. module: survey #: field:survey.answer,menu_choice:0 msgid "Menu Choices" -msgstr "" +msgstr "メニュー選択" #. module: survey #: field:survey,id:0 @@ -1593,28 +1595,28 @@ msgstr "" msgid "" "Maximum Required Answer is greater than " "Minimum Required Answer" -msgstr "" +msgstr "最大必要回答数は最小必要回答数よりも大きい。" #. module: survey #: view:survey.send.invitation.log:0 msgid "User creation" -msgstr "" +msgstr "ユーザの作成" #. module: survey #: selection:survey.question,required_type:0 msgid "All" -msgstr "" +msgstr "全て" #. module: survey #: selection:survey.question,comment_valid_type:0 #: selection:survey.question,validation_type:0 msgid "Must Be An Email Address" -msgstr "" +msgstr "Eメールアドレスが必須" #. module: survey #: selection:survey.question,type:0 msgid "Multiple Choice (Only One Answer)" -msgstr "" +msgstr "複数の選択肢(回答は1つのみ)" #. module: survey #: field:survey.answer,in_visible_answer_type:0 @@ -1629,44 +1631,44 @@ msgstr "" #. module: survey #: view:survey.answer:0 msgid "Menu Choices (each choice on separate by lines)" -msgstr "" +msgstr "メニュー選択(行毎に別の選択)" #. module: survey #: selection:survey.answer,type:0 msgid "Float" -msgstr "" +msgstr "実数" #. module: survey #: view:survey.response.line:0 msgid "Single Textboxes" -msgstr "" +msgstr "単数テキストボックス" #. module: survey #: code:addons/survey/wizard/survey_send_invitation.py:74 #, python-format msgid "%sSurvey is not in open state" -msgstr "" +msgstr "%s 調査は開いた状態ではありません。" #. module: survey #: field:survey.question.column.heading,rating_weight:0 msgid "Weight" -msgstr "" +msgstr "重量" #. module: survey #: selection:survey.answer,type:0 msgid "Date & Time" -msgstr "" +msgstr "日時" #. module: survey #: field:survey.response,date_create:0 #: field:survey.response.line,date_create:0 msgid "Create Date" -msgstr "" +msgstr "作成日" #. module: survey #: field:survey.question,column_name:0 msgid "Column Name" -msgstr "" +msgstr "カラム名" #. module: survey #: model:ir.actions.act_window,name:survey.action_survey_page_form @@ -1674,24 +1676,24 @@ msgstr "" #: model:ir.ui.menu,name:survey.menu_survey_page_form1 #: view:survey.page:0 msgid "Survey Pages" -msgstr "" +msgstr "調査ページ" #. module: survey #: field:survey.question,numeric_required_sum:0 msgid "Sum of all choices" -msgstr "" +msgstr "全選択の合計" #. module: survey #: selection:survey.question,type:0 #: view:survey.response.line:0 msgid "Table" -msgstr "" +msgstr "表" #. module: survey #: code:addons/survey/survey.py:630 #, python-format msgid "You cannot duplicate the resource!" -msgstr "" +msgstr "リソースの複製はできません。" #. module: survey #: field:survey.question,comment_minimum_date:0 @@ -1702,9 +1704,9 @@ msgstr "最小の日付" #. module: survey #: field:survey,response_user:0 msgid "Maximum Answer per User" -msgstr "" +msgstr "ユーザ毎の最大回答数" #. module: survey #: field:survey.name.wiz,page:0 msgid "Page Position" -msgstr "" +msgstr "ページ位置" diff --git a/addons/web_livechat/LICENSE b/addons/web_livechat/LICENSE deleted file mode 100644 index ff64be448e9..00000000000 --- a/addons/web_livechat/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -OpenERP, Open Source Management Solution -Copyright © 2010-2011 OpenERP SA (<http://openerp.com>). - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU Affero General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Affero General Public License for more details. - -You should have received a copy of the GNU Affero General Public Lice -along with this program. If not, see <http://www.gnu.org/licenses/>. diff --git a/addons/web_livechat/__openerp__.py b/addons/web_livechat/__openerp__.py deleted file mode 100644 index 860b7b162a9..00000000000 --- a/addons/web_livechat/__openerp__.py +++ /dev/null @@ -1,50 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2010-2011 OpenERP s.a. (<http://openerp.com>). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# -############################################################################## -{ - 'name': 'Live Chat Support', - 'version': '2.0', - 'category': 'Tools', - 'description': """ -Enable live chat support for those who have a maintenance contract. -=================================================================== - -Add "Support" button in header from where you can access OpenERP Support. - """, - 'author': 'OpenERP SA', - 'website': 'http://openerp.com', - 'depends': ['base'], - 'update_xml': [], - 'js' : [ - 'static/src/js/web_livechat.js', - ], - 'css' : [ - 'static/src/css/lc.css', - ], - 'qweb' : [ - "static/src/xml/*.xml", - ], - 'installable': True, - 'auto_install': False, - 'certificate': '0013762192410413', - 'images': ['static/src/img/web_livechat_support.jpeg'], -} - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/web_livechat/i18n/ar.po b/addons/web_livechat/i18n/ar.po deleted file mode 100644 index c4c5a7343b2..00000000000 --- a/addons/web_livechat/i18n/ar.po +++ /dev/null @@ -1,34 +0,0 @@ -# Arabic translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-01-07 23:53+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Arabic <ar@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "ذلك العقد قد تمّ تسجيله في النظام سابقاً." - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "publisher_warranty.contract" - -#~ msgid "Live Chat Support" -#~ msgstr "التحدث مع الدعم الفني" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "تمكين الدعم الفني المباشر للحاصلين علي عقد دعم فني" diff --git a/addons/web_livechat/i18n/bg.po b/addons/web_livechat/i18n/bg.po deleted file mode 100644 index 16d76a8898c..00000000000 --- a/addons/web_livechat/i18n/bg.po +++ /dev/null @@ -1,34 +0,0 @@ -# Bulgarian translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-03-01 14:52+0000\n" -"Last-Translator: Dimitar Markov <dimitar.markov@gmail.com>\n" -"Language-Team: Bulgarian <bg@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "" - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "publisher_warranty.contract" - -#~ msgid "Live Chat Support" -#~ msgstr "Поддръжка чат на живо" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "Разрешете live chat поддръжка ако имате договор за поддръжка" diff --git a/addons/web_livechat/i18n/ca.po b/addons/web_livechat/i18n/ca.po deleted file mode 100644 index 6a48c986a27..00000000000 --- a/addons/web_livechat/i18n/ca.po +++ /dev/null @@ -1,35 +0,0 @@ -# Catalan translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-03-05 23:39+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Catalan <ca@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "Aquest contracte ja està registrat al sistema." - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "editor_garantia.contracte" - -#~ msgid "Live Chat Support" -#~ msgstr "Xat d'assistència" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "" -#~ "Permet suport per xat per a aquells que ja tenen contracte de manteniment" diff --git a/addons/web_livechat/i18n/cs.po b/addons/web_livechat/i18n/cs.po deleted file mode 100644 index bb1aa79d289..00000000000 --- a/addons/web_livechat/i18n/cs.po +++ /dev/null @@ -1,28 +0,0 @@ -# Czech translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-04-06 04:48+0000\n" -"Last-Translator: Jiří Hajda <robie@centrum.cz>\n" -"Language-Team: Czech <cs@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n" -"X-Generator: Launchpad (build 15060)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "Tato smlouva je již v systému registrována." - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "publisher_warranty.contract" diff --git a/addons/web_livechat/i18n/da.po b/addons/web_livechat/i18n/da.po deleted file mode 100644 index 59c10e9eac8..00000000000 --- a/addons/web_livechat/i18n/da.po +++ /dev/null @@ -1,28 +0,0 @@ -# Danish translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-01-27 06:45+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Danish <da@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "" - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "" diff --git a/addons/web_livechat/i18n/de.po b/addons/web_livechat/i18n/de.po deleted file mode 100644 index 2d2def6b604..00000000000 --- a/addons/web_livechat/i18n/de.po +++ /dev/null @@ -1,34 +0,0 @@ -# German translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-02-21 20:28+0000\n" -"Last-Translator: Ferdinand @ Camptocamp <Unknown>\n" -"Language-Team: German <de@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "Der Wartungsvertrag wurde bereits im System registriert." - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "publisher_warranty.contract" - -#~ msgid "Live Chat Support" -#~ msgstr "Live Chat Unterstützung" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "Live Chat für Vetragsinhaber aktivieren" diff --git a/addons/web_livechat/i18n/es.po b/addons/web_livechat/i18n/es.po deleted file mode 100644 index 2df51c832a1..00000000000 --- a/addons/web_livechat/i18n/es.po +++ /dev/null @@ -1,36 +0,0 @@ -# Spanish translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-02-15 15:37+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Spanish <es@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "Ese contrato ya está registrado en el sistema." - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "editor_garantía.contrato" - -#~ msgid "Live Chat Support" -#~ msgstr "Chat de asistencia" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "" -#~ "Permite soporte por chat para aquellos que ya tienen contrato de " -#~ "mantenimiento" diff --git a/addons/web_livechat/i18n/es_CR.po b/addons/web_livechat/i18n/es_CR.po deleted file mode 100644 index c0bba0bc3f3..00000000000 --- a/addons/web_livechat/i18n/es_CR.po +++ /dev/null @@ -1,38 +0,0 @@ -# Spanish translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-02-18 23:24+0000\n" -"Last-Translator: Carlos Vásquez (CLEARCORP) " -"<carlos.vasquez@clearcorp.co.cr>\n" -"Language-Team: Spanish <es@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-19 05:43+0000\n" -"X-Generator: Launchpad (build 14814)\n" -"Language: es\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "Ese contrato ya está registrado en el sistema." - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "editor_garantía.contrato" - -#~ msgid "Live Chat Support" -#~ msgstr "Chat de asistencia" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "" -#~ "Permite soporte por chat para aquellos que ya tienen contrato de " -#~ "mantenimiento" diff --git a/addons/web_livechat/i18n/es_MX.po b/addons/web_livechat/i18n/es_MX.po deleted file mode 100644 index 1ae99905314..00000000000 --- a/addons/web_livechat/i18n/es_MX.po +++ /dev/null @@ -1,41 +0,0 @@ -# Spanish translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2011-01-11 11:16+0000\n" -"PO-Revision-Date: 2011-02-15 15:37+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Spanish <es@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-09-05 05:58+0000\n" -"X-Generator: Launchpad (build 13830)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "" -"Your publisher warranty contract is already subscribed in the system !" -msgstr "¡Su contrato de garantía del editor ya está inscrito en el sistema!" - -#. module: web_livechat -#: model:ir.module.module,shortdesc:web_livechat.module_meta_information -msgid "Live Chat Support" -msgstr "Chat de asistencia" - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "editor_garantía.contrato" - -#. module: web_livechat -#: model:ir.module.module,description:web_livechat.module_meta_information -msgid "Enable live chat support for whom have a maintenance contract" -msgstr "" -"Permite soporte por chat para aquellos que ya tienen contrato de " -"mantenimiento" diff --git a/addons/web_livechat/i18n/es_VE.po b/addons/web_livechat/i18n/es_VE.po deleted file mode 100644 index 1ae99905314..00000000000 --- a/addons/web_livechat/i18n/es_VE.po +++ /dev/null @@ -1,41 +0,0 @@ -# Spanish translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2011-01-11 11:16+0000\n" -"PO-Revision-Date: 2011-02-15 15:37+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Spanish <es@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-09-05 05:58+0000\n" -"X-Generator: Launchpad (build 13830)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "" -"Your publisher warranty contract is already subscribed in the system !" -msgstr "¡Su contrato de garantía del editor ya está inscrito en el sistema!" - -#. module: web_livechat -#: model:ir.module.module,shortdesc:web_livechat.module_meta_information -msgid "Live Chat Support" -msgstr "Chat de asistencia" - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "editor_garantía.contrato" - -#. module: web_livechat -#: model:ir.module.module,description:web_livechat.module_meta_information -msgid "Enable live chat support for whom have a maintenance contract" -msgstr "" -"Permite soporte por chat para aquellos que ya tienen contrato de " -"mantenimiento" diff --git a/addons/web_livechat/i18n/fi.po b/addons/web_livechat/i18n/fi.po deleted file mode 100644 index 10b984f68ab..00000000000 --- a/addons/web_livechat/i18n/fi.po +++ /dev/null @@ -1,34 +0,0 @@ -# Finnish translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-06-08 10:30+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Finnish <fi@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "Sopimus on jo rekisteröity järjestelmään." - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "" - -#~ msgid "Live Chat Support" -#~ msgstr "Chatin tuki" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "Aloita chatti tuki ylläpitosopimuksen toimittajan kanssa" diff --git a/addons/web_livechat/i18n/fr.po b/addons/web_livechat/i18n/fr.po deleted file mode 100644 index 7a1a07f8bcf..00000000000 --- a/addons/web_livechat/i18n/fr.po +++ /dev/null @@ -1,36 +0,0 @@ -# French translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-02-26 09:39+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: French <fr@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "Ce contrat est déjà enregistré dans le système." - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "publisher_warranty.contract" - -#~ msgid "Live Chat Support" -#~ msgstr "Support par messagerie instantanée" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "" -#~ "Valider le support par messagerie instantanée pour les détenteurs d'un " -#~ "contrat de maintenance" diff --git a/addons/web_livechat/i18n/gl.po b/addons/web_livechat/i18n/gl.po deleted file mode 100644 index f78ff364431..00000000000 --- a/addons/web_livechat/i18n/gl.po +++ /dev/null @@ -1,35 +0,0 @@ -# Galician translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-03-05 01:41+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Galician <gl@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "O contrato xa está rexistrado no sistema." - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "editor_garantía.contrato" - -#~ msgid "Live Chat Support" -#~ msgstr "Chat de asistencia" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "" -#~ "Permitir soporte por chat para aqueles que xa teñan contrato de mantemento" diff --git a/addons/web_livechat/i18n/hr.po b/addons/web_livechat/i18n/hr.po deleted file mode 100644 index 17a5919153b..00000000000 --- a/addons/web_livechat/i18n/hr.po +++ /dev/null @@ -1,34 +0,0 @@ -# Croatian translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-01-28 21:59+0000\n" -"Last-Translator: Goran Kliska <gkliska@gmail.com>\n" -"Language-Team: Croatian <hr@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "Navedeni ugovor je već registriran u sustavu." - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "publisher_warranty.contract" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "Omogući podršku za Live Chat za one koji imaju ugovor o održavanju" - -#~ msgid "Live Chat Support" -#~ msgstr "Podrška za Live Chat" diff --git a/addons/web_livechat/i18n/it.po b/addons/web_livechat/i18n/it.po deleted file mode 100644 index 30f68ea8157..00000000000 --- a/addons/web_livechat/i18n/it.po +++ /dev/null @@ -1,35 +0,0 @@ -# Italian translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-02-15 15:37+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Italian <it@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "" - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "publisher_warranty.contract" - -#~ msgid "Live Chat Support" -#~ msgstr "Supporto live chat" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "" -#~ "Abilita il supporto live chat per chi ha un contratto di manutenzione" diff --git a/addons/web_livechat/i18n/ja.po b/addons/web_livechat/i18n/ja.po deleted file mode 100644 index 1c50534b3ab..00000000000 --- a/addons/web_livechat/i18n/ja.po +++ /dev/null @@ -1,28 +0,0 @@ -# Japanese translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-06-16 21:21+0000\n" -"Last-Translator: Akira Hiyama <Unknown>\n" -"Language-Team: Japanese <ja@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-06-17 04:35+0000\n" -"X-Generator: Launchpad (build 15419)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "この契約は既にシステムに登録されています。" - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "" diff --git a/addons/web_livechat/i18n/nl.po b/addons/web_livechat/i18n/nl.po deleted file mode 100644 index db490d3768d..00000000000 --- a/addons/web_livechat/i18n/nl.po +++ /dev/null @@ -1,35 +0,0 @@ -# Dutch translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-02-21 10:22+0000\n" -"Last-Translator: Douwe Wullink (Dypalio) <Unknown>\n" -"Language-Team: Dutch <nl@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "Dat contract is al geregisteerd in het systeem." - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "publisher_warranty.contract" - -#~ msgid "Live Chat Support" -#~ msgstr "Live Chat Support" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "" -#~ "Live chat support aanzetten voor diegenen die een onderhoudscontract hebben" diff --git a/addons/web_livechat/i18n/oc.po b/addons/web_livechat/i18n/oc.po deleted file mode 100644 index 00b746269f3..00000000000 --- a/addons/web_livechat/i18n/oc.po +++ /dev/null @@ -1,36 +0,0 @@ -# Occitan (post 1500) translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-11-20 09:29+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Occitan (post 1500) <oc@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "Aqueste contracte es ja enregistrat dins lo sistèma." - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "publisher_warranty.contract" - -#~ msgid "Live Chat Support" -#~ msgstr "Supòrt per messatjariá instantanèa" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "" -#~ "Validar lo supòrt per messatjariá instantanèa pels detentors d'un contracte " -#~ "de mantenença" diff --git a/addons/web_livechat/i18n/pt.po b/addons/web_livechat/i18n/pt.po deleted file mode 100644 index d34c84f502b..00000000000 --- a/addons/web_livechat/i18n/pt.po +++ /dev/null @@ -1,36 +0,0 @@ -# Portuguese translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-07-31 22:18+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Portuguese <pt@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "O contrato já está registado no sistema." - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "Copy text \t publisher_warranty.contract" - -#~ msgid "Live Chat Support" -#~ msgstr "Suporte por mensagens instantâneas (chat)" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "" -#~ "Ativar suporte através de mensagens instantâneas para quem tenha contrato de " -#~ "suporte" diff --git a/addons/web_livechat/i18n/pt_BR.po b/addons/web_livechat/i18n/pt_BR.po deleted file mode 100644 index d914a85facd..00000000000 --- a/addons/web_livechat/i18n/pt_BR.po +++ /dev/null @@ -1,35 +0,0 @@ -# Brazilian Portuguese translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-01-18 02:51+0000\n" -"Last-Translator: Rafael Sales - http://www.tompast.com.br <Unknown>\n" -"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "Esse contato já está registrado no sistema." - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "publisher_warranty.contract" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "" -#~ "Ativa o suporte com conversa ao vivo para quem tem um contrato de manutenção" - -#~ msgid "Live Chat Support" -#~ msgstr "Suporte com Conversa ao Vivo" diff --git a/addons/web_livechat/i18n/ro.po b/addons/web_livechat/i18n/ro.po deleted file mode 100644 index 02d8930f340..00000000000 --- a/addons/web_livechat/i18n/ro.po +++ /dev/null @@ -1,36 +0,0 @@ -# Romanian translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-01-08 19:46+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Romanian <ro@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "Acel contract este deja inregistrat in sistem." - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "publisher_warranty.contract (contract. garantie_editor)" - -#~ msgid "Live Chat Support" -#~ msgstr "Asistentă tehnică pentru Discutiile online" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "" -#~ "Activează asistenta tehnică pentru discutiile online pentru cei care au un " -#~ "contract de mentenantă." diff --git a/addons/web_livechat/i18n/ru.po b/addons/web_livechat/i18n/ru.po deleted file mode 100644 index 893a8328967..00000000000 --- a/addons/web_livechat/i18n/ru.po +++ /dev/null @@ -1,36 +0,0 @@ -# Russian translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-03-09 17:08+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Russian <ru@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "Договор уже зарегистрирован в системе." - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "publisher_warranty.contract" - -#~ msgid "Live Chat Support" -#~ msgstr "Техподдержка в режиме живого общения" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "" -#~ "Включить поддержку живого общения для тех, у кого есть договор на " -#~ "обслуживание" diff --git a/addons/web_livechat/i18n/sk.po b/addons/web_livechat/i18n/sk.po deleted file mode 100644 index 5705a692a99..00000000000 --- a/addons/web_livechat/i18n/sk.po +++ /dev/null @@ -1,34 +0,0 @@ -# Slovak translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-02-21 13:46+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Slovak <sk@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "" - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "publisher_warranty.contract" - -#~ msgid "Live Chat Support" -#~ msgstr "Live Chat Podpora" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "Povoliť live chat podporu pre toho kto má servisnú zmluvu" diff --git a/addons/web_livechat/i18n/sl.po b/addons/web_livechat/i18n/sl.po deleted file mode 100644 index e772d67b8db..00000000000 --- a/addons/web_livechat/i18n/sl.po +++ /dev/null @@ -1,34 +0,0 @@ -# Slovenian translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-05-22 17:08+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Slovenian <sl@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "Ta pogodba je v sistemu že vnešena" - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "publisher_warranty.contract" - -#~ msgid "Live Chat Support" -#~ msgstr "Pomoč v živo" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "Omogoči pomoč v živo za uporabnike z vzdrževalno pogodbo" diff --git a/addons/web_livechat/i18n/sr@latin.po b/addons/web_livechat/i18n/sr@latin.po deleted file mode 100644 index 7baff43edea..00000000000 --- a/addons/web_livechat/i18n/sr@latin.po +++ /dev/null @@ -1,34 +0,0 @@ -# Serbian Latin translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-10-17 13:43+0000\n" -"Last-Translator: Milan Milosevic <Unknown>\n" -"Language-Team: Serbian Latin <sr@latin@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "" - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "publisher_warranty.contract" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "Omogući podršku ćaskanja uživo za one koji imaju ugovor o održavanju" - -#~ msgid "Live Chat Support" -#~ msgstr "Podrška ćaskanja uživo" diff --git a/addons/web_livechat/i18n/sv.po b/addons/web_livechat/i18n/sv.po deleted file mode 100644 index dd3ae799443..00000000000 --- a/addons/web_livechat/i18n/sv.po +++ /dev/null @@ -1,28 +0,0 @@ -# Swedish translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-06-04 15:38+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Swedish <sv@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-06-05 04:54+0000\n" -"X-Generator: Launchpad (build 15353)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "Det kontraktet har redan registrerats i systemet." - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "publisher_warranty.contract" diff --git a/addons/web_livechat/i18n/tr.po b/addons/web_livechat/i18n/tr.po deleted file mode 100644 index f9747e9d858..00000000000 --- a/addons/web_livechat/i18n/tr.po +++ /dev/null @@ -1,34 +0,0 @@ -# Turkish translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-04-26 14:31+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Turkish <tr@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "Bu sözleşme sistemde zaten kayıtlı !" - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "publisher_warranty.contract" - -#~ msgid "Live Chat Support" -#~ msgstr "Canlı Sohbet Desteği" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "Bakım sözleşmesi olanlar için canlı sohbet desteğini açar" diff --git a/addons/web_livechat/i18n/web_livechat.pot b/addons/web_livechat/i18n/web_livechat.pot deleted file mode 100644 index 1feb83270c6..00000000000 --- a/addons/web_livechat/i18n/web_livechat.pot +++ /dev/null @@ -1,46 +0,0 @@ -# #-#-#-#-# web_livechat.pot (OpenERP Server 6.1rc1) #-#-#-#-# -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * web_livechat -# -# #-#-#-#-# web_livechat.pot.web (PROJECT VERSION) #-#-#-#-# -# Translations template for PROJECT. -# Copyright (C) 2012 ORGANIZATION -# This file is distributed under the same license as the PROJECT project. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. -# -#, fuzzy -msgid "" -msgstr "" -"#-#-#-#-# web_livechat.pot (OpenERP Server 6.1rc1) #-#-#-#-#\n" -"Project-Id-Version: OpenERP Server 6.1rc1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-02-08 00:37+0000\n" -"PO-Revision-Date: 2012-02-08 00:37+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" -"#-#-#-#-# web_livechat.pot.web (PROJECT VERSION) #-#-#-#-#\n" -"Project-Id-Version: PROJECT VERSION\n" -"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 0.9.6\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "" - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "" diff --git a/addons/web_livechat/i18n/zh_CN.po b/addons/web_livechat/i18n/zh_CN.po deleted file mode 100644 index e8ce70adad1..00000000000 --- a/addons/web_livechat/i18n/zh_CN.po +++ /dev/null @@ -1,34 +0,0 @@ -# Chinese (Simplified) translation for openobject-addons -# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-04-08 07:20+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-09 07:09+0000\n" -"X-Generator: Launchpad (build 14763)\n" - -#. module: web_livechat -#: sql_constraint:publisher_warranty.contract:0 -msgid "That contract is already registered in the system." -msgstr "该合同已登记到系统中。" - -#. module: web_livechat -#: model:ir.model,name:web_livechat.model_publisher_warranty_contract -msgid "publisher_warranty.contract" -msgstr "publisher_warranty.contract" - -#~ msgid "Live Chat Support" -#~ msgstr "支持在线交流" - -#~ msgid "Enable live chat support for whom have a maintenance contract" -#~ msgstr "其中一个维护合同支持在线交流" diff --git a/addons/web_livechat/publisher_warranty.py b/addons/web_livechat/publisher_warranty.py deleted file mode 100644 index 0328e4181a7..00000000000 --- a/addons/web_livechat/publisher_warranty.py +++ /dev/null @@ -1,48 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2010-2011 OpenERP s.a. (<http://openerp.com>). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# -############################################################################## - -from osv import osv -from tools import cache - -def _gen_cache_clear(method): - def func(self, cr, *args, **kwargs): - s = super(publisher_warranty_contract, self) - r = getattr(s, method)(cr, *args, **kwargs) - self.is_livechat_enable.clear_cache(self) - return r - return func - -class publisher_warranty_contract(osv.osv): - _inherit = 'publisher_warranty.contract' - - create = _gen_cache_clear('create') - write = _gen_cache_clear('write') - unlink = _gen_cache_clear('unlink') - - @cache(skiparg=3, timeout=300) - def is_livechat_enable(self, cr, uid): - domain = [('state', '=', 'valid'), ('check_support', '=', True)] - return self.search_count(cr, uid, domain) != 0 - -publisher_warranty_contract() - - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/web_livechat/static/src/css/lc.css b/addons/web_livechat/static/src/css/lc.css deleted file mode 100644 index 7f1876a2793..00000000000 --- a/addons/web_livechat/static/src/css/lc.css +++ /dev/null @@ -1,7 +0,0 @@ -.livechat span.online { - text-shadow: 0 0 0.2em #9a0404, 0 0 0.2em #9a0404, 0 0 0.2em #9a0404, 0 0 0.2em #9a0404; -} -.livechat img { - vertical-align: middle; - margin-right: 0.5em; -} diff --git a/addons/web_livechat/static/src/img/available.png b/addons/web_livechat/static/src/img/available.png Binary files differdeleted file mode 100644 index e9eea88ae5f..00000000000 --- a/addons/web_livechat/static/src/img/available.png +++ /dev/null diff --git a/addons/web_livechat/static/src/img/away.png b/addons/web_livechat/static/src/img/away.png Binary files differdeleted file mode 100644 index f0a0847059f..00000000000 --- a/addons/web_livechat/static/src/img/away.png +++ /dev/null diff --git a/addons/web_livechat/static/src/img/busy.png b/addons/web_livechat/static/src/img/busy.png Binary files differdeleted file mode 100644 index ddb24377f0f..00000000000 --- a/addons/web_livechat/static/src/img/busy.png +++ /dev/null diff --git a/addons/web_livechat/static/src/js/web_livechat.js b/addons/web_livechat/static/src/js/web_livechat.js deleted file mode 100644 index 540af94310f..00000000000 --- a/addons/web_livechat/static/src/js/web_livechat.js +++ /dev/null @@ -1,127 +0,0 @@ -/*############################################################################ -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2011-2012 OpenERP SA (<http://openerp.com>). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# -############################################################################*/ - -var __lc_buttons = []; - -openerp.web_livechat = function (openerp) { - -openerp.web_livechat.Livechat = openerp.web.Widget.extend({ - template: 'Systray.LiveChat', - - start: function() { - this._super(); - if (!this.session) - return; - var self = this; - var pwc = new openerp.web.Model("publisher_warranty.contract"); - pwc.get_func('is_livechat_enable')().then(function(res) { - if(res) { - self.$element.click(self.do_load_livechat); - } else { - self.$element.click(self.do_open_url); - } - }); - }, - - do_open_url: function(evt) { - evt.preventDefault(); - openerp.webclient.action_manager.do_action({type: 'ir.actions.act.url', url: 'http://www.openerp.com/support-or-publisher-warranty-contract', target: 'new'}); - }, - - do_load_livechat: function(evt) { - var self = this; - if (evt) { - evt.preventDefault(); - } - - this.$element.unbind('click', this.do_load_livechat); - - var lc_id = _.uniqueId('livechat_'); - this.$element.attr('id', lc_id); - - var pwc = new openerp.web.Model("publisher_warranty.contract"); - - pwc.get_func('is_livechat_enable')().then(function(res) { - if(!res) { - return; - } - - // connect to LiveChat - __lc_load(); - - __lc_buttons.push({ - elementId: lc_id, //'livechat_status', - language: 'en', - skill: '2', - type: 'text', - labels: { - online: '<img src="/web_livechat/static/src/img/available.png"/>', - offline: '<img src="/web_livechat/static/src/img/away.png"/>', - } - }); - }); - } -}); - -openerp.web.UserMenu.include({ - do_update: function() { - var self = this; - this._super.apply(this, arguments); - this.update_promise.then(function() { - if (self.livechat) { - self.livechat.destroy(); - } - self.livechat = new openerp.web_livechat.Livechat(self); - self.livechat.appendTo(openerp.webclient.$element.find('.oe_systray')); - }); - } -}); - -if (openerp.webclient) { - // tracking code from LiveChat - var license = '1035052', - params = '', - lang = 'en', - skill = '0'; - __lc_load = function (p) { - if (typeof __lc_loaded != 'function') - if (p) { - var d = document, - l = d.createElement('script'), - s = d.getElementsByTagName('script')[0], - a = unescape('%26'), - h = ('https:' == d.location.protocol ? 'https://' : 'http://'); - l.type = 'text/javascript'; - l.async = true; - l.src = h + 'gis' + p +'.livechatinc.com/gis.cgi?serverType=control'+a+'licenseID='+license+a+'jsonp=__lc_load'; - if (!(typeof p['server'] !== 'string' || typeof __lc_serv === 'string')) { - l.src = h + (__lc_serv = p['server']) + '/licence/'+license+'/script.cgi?lang='+lang+a+'groups='+skill; - l.src += (params == '') ? '' : a+'params='+encodeURIComponent(encodeURIComponent(params)); - s.parentNode.insertBefore(l, s); - } else - setTimeout(__lc_load, 1000); - if(typeof __lc_serv != 'string'){ - s.parentNode.insertBefore(l, s); - } - } else __lc_load(Math.ceil(Math.random()*5)); - } -} - -}; diff --git a/addons/web_livechat/static/src/xml/web_livechat.xml b/addons/web_livechat/static/src/xml/web_livechat.xml deleted file mode 100644 index 0f1bf073bc2..00000000000 --- a/addons/web_livechat/static/src/xml/web_livechat.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- vim:fdl=1: ---> -<templates id="template" xml:space="preserve"> -<t t-name="Systray.LiveChat"> - <div class="oe_systray_livechat" title="Support"> - <a href="#"><img src="/web_livechat/static/src/img/busy.png"/></a> - </div> -</t> -</templates> diff --git a/addons/web_shortcuts/static/src/css/web_shortcuts.css b/addons/web_shortcuts/static/src/css/web_shortcuts.css index e39f7870249..8424e146d06 100644 --- a/addons/web_shortcuts/static/src/css/web_shortcuts.css +++ b/addons/web_shortcuts/static/src/css/web_shortcuts.css @@ -1,6 +1,6 @@ /* Shortcuts*/ -.oe_systray_shortcuts { - margin: 3px; +.oe_systray_shortcuts .oe_star_off { + color: #eee; } .oe_shortcuts_toggle { height: 20px; diff --git a/addons/web_shortcuts/static/src/xml/web_shortcuts.xml b/addons/web_shortcuts/static/src/xml/web_shortcuts.xml index ce4d61e66bd..0b9701f9f1a 100644 --- a/addons/web_shortcuts/static/src/xml/web_shortcuts.xml +++ b/addons/web_shortcuts/static/src/xml/web_shortcuts.xml @@ -3,8 +3,8 @@ --> <templates id="template" xml:space="preserve"> <t t-name="Systray.Shortcuts"> - <div class="oe_systray_shortcuts oe_dropdown_toggle"> - <a href="#"><img src="/web_shortcuts/static/src/img/icon.png" width="22" height="22" border="0"/></a> + <div class="oe_systray_shortcuts oe_topbar_item oe_dropdown_toggle"> + <span class="oe_e oe_star_off">7</span> <ul class="oe_systray_shortcuts_items oe_dropdown_menu"/> </div> </t> |
