[MERGE] Sync with trunk
authorThibault Delavallée <tde@openerp.com>
Wed, 12 Jun 2013 12:34:29 +0000 (14:34 +0200)
committerThibault Delavallée <tde@openerp.com>
Wed, 12 Jun 2013 12:34:29 +0000 (14:34 +0200)
bzr revid: tde@openerp.com-20130612123429-a4mp0wiicdhlvk0m

17 files changed:
1  2 
addons/crm/crm.py
addons/crm/crm_case_section_view.xml
addons/event/event_view.xml
addons/hr/hr_view.xml
addons/hr_recruitment/hr_recruitment.py
addons/hr_recruitment/hr_recruitment_view.xml
addons/mail/mail_group.py
addons/mail/mail_mail.py
addons/mail/mail_thread.py
addons/mail/res_users.py
addons/mail/res_users_view.xml
addons/mail/static/src/css/mail.css
addons/mail/static/src/js/mail.js
addons/mail/tests/test_mail_gateway.py
addons/project/project.py
addons/project_issue/project_issue.py
addons/project_issue/project_issue_view.xml

Simple merge
                                      </ul>
                                  </div>
                                  <div class="oe_kanban_content">
-                                     <h4><field name="name"/></h4>
-                                     <div class="oe_kanban_alias" t-if="record.alias_id.value">
-                                         <span class="oe_e oe_e_alias">%%</span><small><field name="alias_id"/></small>
+                                     <h4 class="oe_center"><field name="name"/></h4>
+                                     <div class="oe_kanban_alias oe_center" t-if="record.use_leads.raw_value and record.alias_id.value">
 -                                        <small><span class="oe_e" style="float: none;">%%</span><t t-raw="record.alias_id.raw_value[1]"/></small>
++                                        <small><span class="oe_e oe_e_alias" style="float: none;">%%</span><t t-raw="record.alias_id.raw_value[1]"/></small>
                                      </div>
                                      <div class="oe_items_list">
-                                         <a t-if="record.use_leads.raw_value" name="%(crm_case_form_view_salesteams_lead)d" type="action">
-                                             <t t-raw="record.open_lead_ids.raw_value.length"/>
-                                             <t t-if="record.open_lead_ids.raw_value.length &gt;= 2">Leads</t>
-                                             <t t-if="record.open_lead_ids.raw_value.length &lt; 2">Lead</t></a>
-                                         <a name="%(crm_case_form_view_salesteams_opportunity)d" type="action">
-                                             <t t-raw="record.open_opportunity_ids.raw_value.length"/>
-                                             <t t-if="record.open_opportunity_ids.raw_value.length &gt;= 2">Opportunities</t>
-                                             <t t-if="record.open_opportunity_ids.raw_value.length &lt; 2">Opportunity</t></a>
-                                     </div>
-                                     <div class="oe_avatars">
-                                         <img t-if="record.user_id.raw_value" t-att-src="kanban_image('res.users', 'image_small', record.user_id.raw_value)" t-att-data-member_id="record.user_id.raw_value"/>
-                                         <t t-foreach="record.member_ids.raw_value.slice(0,11)" t-as="member">
-                                             <img t-att-src="kanban_image('res.users', 'image_small', member)" t-att-data-member_id="member"/>
-                                         </t>
+                                         <div class="oe_salesteams_leads" t-if="record.use_leads.raw_value">
+                                             <a name="%(crm_case_form_view_salesteams_lead)d" type="action">Leads</a>
+                                             <a name="%(action_report_crm_lead)d" type="action" class="oe_sparkline_bar_link"><field name="monthly_open_leads" widget="sparkline_bar">Open Leads per Month<br/>Click to see a detailed analysis of leads.</field></a>
+                                         </div>
+                                         <div class="oe_salesteams_opportunities">
+                                             <a name="%(crm_case_form_view_salesteams_opportunity)d" type="action">Opportunities</a>
+                                             <a name="%(action_report_crm_opportunity)d" type="action"><field name="monthly_planned_revenue" widget="sparkline_bar">Planned Revenue per Month<br/>Click to see a detailed analysis of opportunities.</field></a>
+                                         </div>
                                      </div>
                                  </div>
                              </div>
                  <form string="Sales Team" version="7.0">
                      <sheet>
                          <div class="oe_title">
-                             <label for="name" class="oe_edit_only" string="Project Name"/>
+                             <label for="name" class="oe_edit_only" string="Sales team"/>
                              <h1>
-                                 <field name="name" string="Project Name"/>
+                                 <field name="name" string="Salesteam"/>
                              </h1>
 -                            <div name="group_alias"
 -                                    attrs="{'invisible': [('alias_domain', '=', False)]}">
 -                                <label for="alias_id" string="Email Alias"/>
 -                                <field name="alias_id" class="oe_inline oe_read_only" required="0" nolabel="1"/>
 -                                <span name="edit_alias" class="oe_edit_only">
 -                                    <field name="alias_name" class="oe_inline"
 -                                            attrs="{'required': [('use_leads', '=', True), ('alias_id', '!=', False)]}"/>
 -                                    @
 -                                    <field name="alias_domain" class="oe_inline" readonly="1"/>
 -                                </span>
 -                            </div>
                              <div name="options_active">
                                  <field name="use_leads" class="oe_inline"/><label for="use_leads"/>
                              </div>
                          </div>
                          <group>
                              <group>
+                                 <field name="user_id"/>
+                                 <field name="code"/>
 -                            </group>
 -                            <group>
                                  <field name="parent_id"/>
-                                 <field name="resource_calendar_id"/>
+                                 <field name="change_responsible"/>
                                  <field name="active"/>
                              </group>
 +                            <group>
 +                                <label for="alias_name" string="Email Alias"
 +                                        attrs="{'invisible': [('alias_domain', '=', False)]}"/>
 +                                <div name="alias_def"
 +                                        attrs="{'invisible': [('alias_domain', '=', False)]}">
 +                                    <field name="alias_id" class="oe_read_only oe_inline"
 +                                            string="Email Alias" required="0"/>
 +                                    <div class="oe_edit_only oe_inline" name="edit_alias" style="display: inline;" >
 +                                        <field name="alias_name" class="oe_inline"/>@<field name="alias_domain" class="oe_inline" readonly="1"/>
 +                                    </div>
 +                                </div>
 +                                <field name="alias_contact" class="oe_inline"
 +                                        string="Accept Emails From"
 +                                        attrs="{'invisible': [('alias_domain', '=', False)]}"/>
-                                 <field name="user_id"/>
-                                 <field name="code"/>
 +                            </group>
 +                            <group colspan="4" attrs="{'invisible': [('use_leads', '=', False)]}">
 +                                
 +                            </group>
                          </group>
                          <notebook colspan="4">
-                             <page string="Sales Team">
-                                <group>
-                                     <field name="change_responsible"/>
-                                 </group>
-                                 <separator string="Team Members"/>
+                             <page string="Team Members">
                                  <field name="member_ids" widget="many2many_kanban">
                                      <kanban quick_create="false" create="true">
                                          <field name="name"/>
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -101,13 -101,16 +101,17 @@@ class mail_thread(osv.AbstractModel)
  
          if catchall_domain and model and res_id:  # specific res_id -> find its alias (i.e. section_id specified)
              object_id = self.pool.get(model).browse(cr, uid, res_id, context=context)
-             if object_id.alias_id and object_id.alias_id.alias_name:  # avoid void aliases
+             # check that the alias effectively creates new records
 -            if object_id.alias_id and object_id.alias_id.alias_model_id and \
++            if object_id.alias_id and object_id.alias_id.alias_name and \
++                    object_id.alias_id.alias_model_id and \
+                     object_id.alias_id.alias_model_id.model == self._name and \
+                     object_id.alias_id.alias_force_thread_id == 0:
                  alias = object_id.alias_id
          elif catchall_domain and model:  # no specific res_id given -> generic help message, take an example alias (i.e. alias of some section_id)
              model_id = self.pool.get('ir.model').search(cr, uid, [("model", "=", self._name)], context=context)[0]
              alias_obj = self.pool.get('mail.alias')
-             alias_ids = alias_obj.search(cr, uid, [("alias_model_id", "=", model_id), ("alias_name", "!=", False)], context=context, limit=1, order='id ASC')
-             if alias_ids:
 -            alias_ids = alias_obj.search(cr, uid, [("alias_model_id", "=", model_id), ('alias_force_thread_id', '=', 0)], context=context, order='id ASC')
++            alias_ids = alias_obj.search(cr, uid, [("alias_model_id", "=", model_id), ("alias_name", "!=", False), ('alias_force_thread_id', '=', 0)], context=context, order='id ASC')
+             if alias_ids and len(alias_ids) == 1:  # if several aliases -> incoherent to propose one guessed from nowhere, therefore avoid if several aliases
                  alias = alias_obj.browse(cr, uid, alias_ids[0], context=context)
  
          if alias:
@@@ -38,6 -38,12 +39,11 @@@ class res_users(osv.Model)
          'alias_id': fields.many2one('mail.alias', 'Alias', ondelete="cascade", required=True,
              help="Email address internally associated with this user. Incoming "\
                   "emails will appear in the user's notifications."),
+         'display_groups_suggestions': fields.boolean("Display Groups Suggestions"),
+     }
+     _defaults = {
 -        'alias_domain': False,  # always hide alias during creation
+         'display_groups_suggestions': True,
      }
  
      def __init__(self, pool, cr):
                  <field name="signature" position="before">
                      <field name="notification_email_send"/>
                  </field>
 -                <field name="signature" position="before">
 -                    <field name="alias_domain" invisible="1"/>
 -                    <field name="alias_id" readonly="1" required="0" attrs="{'invisible': [('alias_domain', '=', False)]}"/>
 +                <field name="email" position="after">
 +                    <label for="alias_id" string="Alias"/>
 +                    <div name="group_alias"
 +                                    attrs="{'invisible': [('alias_domain', '=', False)]}">
 +                        <field name="alias_id" class="oe_inline oe_read_only" required="0" nolabel="1"/>
 +                        <div name="edit_alias" class="oe_edit_only">
 +                            <field name="alias_name" class="oe_inline"/>@<field name="alias_domain" class="oe_inline" readonly="1"/>
 +                        </div>
 +                    </div>
 +                    <field name="alias_contact" string="Accept Emails From"/>
                  </field>
+                 <group string="Email preferences" position="after">
+                     <group name="misc" string="Miscellaneous"
+                             groups="base.group_no_one">
+                         <field name="display_groups_suggestions"/>
+                     </group>
+                 </group>
              </data>
              </field>
          </record>
Simple merge
Simple merge
Simple merge
Simple merge