diff --git a/addons/event_sale/event_sale.py b/addons/event_sale/event_sale.py index 2dd40a7c285..f4d7fcaa013 100644 --- a/addons/event_sale/event_sale.py +++ b/addons/event_sale/event_sale.py @@ -39,7 +39,7 @@ class sale_order_line(osv.osv): _columns = { 'event_id': fields.many2one('event.event', 'Event', help="Choose an event and it will automatically create a registration for this event."), #those 2 fields are used for dynamic domains and filled by onchange - 'event_type_id': fields.related('event_type_id', type='many2one', relation="event.type", string="Event Type"), + 'event_type_id': fields.related('product_id','event_type_id', type='many2one', relation="event.type", string="Event Type"), 'event_ok': fields.related('product_id', 'event_ok', string='event_ok', type='boolean'), } diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 543bd9a9173..83bebc67034 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -264,6 +264,22 @@ class sale_order(osv.osv): return osv.osv.unlink(self, cr, uid, unlink_ids, context=context) + def copy_quotation(self, cr, uid, ids, context=None): + id = self.copy(cr, uid, ids[0], context=None) + view_ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'sale', 'view_order_form') + view_id = view_ref and view_ref[1] or False, + return { + 'type': 'ir.actions.act_window', + 'name': _('Sales Order'), + 'res_model': 'sale.order', + 'res_id': id, + 'view_type': 'form', + 'view_mode': 'form', + 'view_id': view_id, + 'target': 'current', + 'nodestroy': True, + } + def onchange_pricelist_id(self, cr, uid, ids, pricelist_id, order_lines, context=None): if not pricelist_id: return {} diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml index 838c63f34a1..da8d1b3b9c2 100644 --- a/addons/sale/sale_view.xml +++ b/addons/sale/sale_view.xml @@ -176,6 +176,7 @@ attrs="{'invisible': [('invoice_exists', '=', False)]}" groups="base.group_user"/>