[MERGE] forward port of branch 7.0 up to revid 9954 chs@openerp.com-20140403153129...
authorChristophe Simonis <chs@openerp.com>
Thu, 3 Apr 2014 15:59:04 +0000 (17:59 +0200)
committerChristophe Simonis <chs@openerp.com>
Thu, 3 Apr 2014 15:59:04 +0000 (17:59 +0200)
bzr revid: chs@openerp.com-20140403155904-ya5mas5s3g7ivihb

1  2 
addons/account_voucher/account_voucher.py
addons/crm/crm_lead.py
addons/hr_payroll/hr_payroll.py
addons/project/project.py
addons/project/project_view.xml
addons/project_issue/project_issue.py
addons/sale/wizard/sale_line_invoice.py

@@@ -241,14 -264,14 +241,14 @@@ class crm_lead(format_address, osv.osv)
          'opt_out': fields.boolean('Opt-Out', oldname='optout',
              help="If opt-out is checked, this contact has refused to receive emails for mass mailing and marketing campaign. "
                      "Filter 'Available for Mass Mailing' allows users to filter the leads when performing mass mailing."),
-         'type':fields.selection([ ('lead','Lead'), ('opportunity','Opportunity'), ],'Type', help="Type is used to separate Leads and Opportunities"),
+         'type': fields.selection([ ('lead','Lead'), ('opportunity','Opportunity'), ],'Type', select=True, help="Type is used to separate Leads and Opportunities"),
          'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority', select=True),
          'date_closed': fields.datetime('Closed', readonly=True),
-         'stage_id': fields.many2one('crm.case.stage', 'Stage', track_visibility='onchange',
+         'stage_id': fields.many2one('crm.case.stage', 'Stage', track_visibility='onchange', select=True,
 -                        domain="['&', '&', ('fold', '=', False), ('section_ids', '=', section_id), '|', ('type', '=', type), ('type', '=', 'both')]"),
 +                        domain="['&', ('section_ids', '=', section_id), '|', ('type', '=', type), ('type', '=', 'both')]"),
          'user_id': fields.many2one('res.users', 'Salesperson', select=True, track_visibility='onchange'),
          'referred': fields.char('Referred By', size=64),
 -        'date_open': fields.datetime('Opened', readonly=True),
 +        'date_open': fields.datetime('Assigned', readonly=True),
          'day_open': fields.function(_compute_day, string='Days to Open', \
                                  multi='day_open', type="float", store=True),
          'day_close': fields.function(_compute_day, string='Days to Close', \
Simple merge
@@@ -752,8 -766,15 +752,8 @@@ class task(osv.osv)
          'description': fields.text('Description'),
          'priority': fields.selection([('4','Very Low'), ('3','Low'), ('2','Medium'), ('1','Important'), ('0','Very important')], 'Priority', select=True),
          'sequence': fields.integer('Sequence', select=True, help="Gives the sequence order when displaying a list of tasks."),
-         'stage_id': fields.many2one('project.task.type', 'Stage', track_visibility='onchange',
+         'stage_id': fields.many2one('project.task.type', 'Stage', track_visibility='onchange', select=True,
 -                        domain="['&', ('fold', '=', False), ('project_ids', '=', project_id)]"),
 -        'state': fields.related('stage_id', 'state', type="selection", store=True,
 -                selection=_TASK_STATE, string="Status", readonly=True, select=True,
 -                help='The status is set to \'Draft\', when a case is created.\
 -                      If the case is in progress the status is set to \'Open\'.\
 -                      When the case is over, the status is set to \'Done\'.\
 -                      If the case needs to be reviewed then the status is \
 -                      set to \'Pending\'.'),
 +                        domain="[('project_ids', '=', project_id)]"),
          'categ_ids': fields.many2many('project.category', string='Tags'),
          'kanban_state': fields.selection([('normal', 'Normal'),('blocked', 'Blocked'),('done', 'Ready for next stage')], 'Kanban State',
                                           track_visibility='onchange',
          'date_start': fields.datetime('Starting Date',select=True),
          'date_end': fields.datetime('Ending Date',select=True),
          'date_deadline': fields.date('Deadline',select=True),
 -        'project_id': fields.many2one('project.project', 'Project', ondelete='set null', select=True, track_visibility='onchange'),
 +        'date_last_stage_update': fields.datetime('Last Stage Update', select=True),
-         'project_id': fields.many2one('project.project', 'Project', ondelete='set null', select="1", track_visibility='onchange', change_default=True),
++        'project_id': fields.many2one('project.project', 'Project', ondelete='set null', select=True, track_visibility='onchange', change_default=True),
          'parent_ids': fields.many2many('project.task', 'project_task_parent_rel', 'task_id', 'parent_id', 'Parent Tasks'),
          'child_ids': fields.many2many('project.task', 'project_task_parent_rel', 'parent_id', 'task_id', 'Delegated Tasks'),
          'notes': fields.text('Notes'),
                      </h1>
                      <group>
                          <group>
-                             <field name="project_id"  on_change="onchange_project(project_id)" context="{'default_use_tasks':1}"/>
+                             <field name="project_id" domain="[('state', '!=', 'close')]" on_change="onchange_project(project_id)" context="{'default_use_tasks':1}"/>
 -                            <field name="user_id" attrs="{'readonly':[('state','in',['done', 'cancelled'])]}" options='{"no_open": True}'/>
 +                            <field name="user_id"
 +                                options='{"no_open": True}'
 +                                context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'project.group_project_user']}"/>
                              <field name="planned_hours" widget="float_time"
                                      groups="project.group_time_work_estimation_tasks"
                                      on_change="onchange_planned(planned_hours, effective_hours)"/>
@@@ -264,9 -283,9 +264,9 @@@ class project_issue(osv.Model)
          'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority', select=True),
          'version_id': fields.many2one('project.issue.version', 'Version'),
          'stage_id': fields.many2one ('project.task.type', 'Stage',
-                         track_visibility='onchange',
+                         track_visibility='onchange', select=True,
 -                        domain="['&', ('fold', '=', False), ('project_ids', '=', project_id)]"),
 +                        domain="[('project_ids', '=', project_id)]"),
-         'project_id':fields.many2one('project.project', 'Project', track_visibility='onchange'),
+         'project_id': fields.many2one('project.project', 'Project', track_visibility='onchange', select=True),
          'duration': fields.float('Duration'),
          'task_id': fields.many2one('project.task', 'Task', domain="[('project_id','=',project_id)]"),
          'day_open': fields.function(_compute_day, string='Days to Open', \
@@@ -100,8 -100,7 +100,7 @@@ class sale_order_line_make_invoice(osv.
                      flag = False
                      break
              if flag:
 -                wf_service.trg_validate(uid, 'sale.order', order.id, 'manual_invoice', cr)
 +                workflow.trg_validate(uid, 'sale.order', order.id, 'manual_invoice', cr)
-                 sales_order_obj.write(cr, uid, [order.id], {'state': 'progress'})
  
          if not invoices:
              raise osv.except_osv(_('Warning!'), _('Invoice cannot be created for this Sales Order Line due to one of the following reasons:\n1.The state of this sales order line is either "draft" or "cancel"!\n2.The Sales Order Line is Invoiced!'))