diff --git a/addons/account/models/account_invoice.py b/addons/account/models/account_invoice.py index bd51c9b30d8..7c301821d45 100644 --- a/addons/account/models/account_invoice.py +++ b/addons/account/models/account_invoice.py @@ -1396,7 +1396,7 @@ class AccountPaymentTerm(models.Model): class AccountPaymentTermLine(models.Model): _name = "account.payment.term.line" _description = "Payment Term Line" - _order = "sequence" + _order = "sequence, id" value = fields.Selection([ ('balance', 'Balance'), diff --git a/addons/event_sale/wizard/event_edit_registration.py b/addons/event_sale/wizard/event_edit_registration.py index bce6f86dde0..00070903383 100644 --- a/addons/event_sale/wizard/event_edit_registration.py +++ b/addons/event_sale/wizard/event_edit_registration.py @@ -53,6 +53,9 @@ class SaleOrderEventRegistration(models.TransientModel): registration_line.registration_id.write(values) else: self.env['event.registration'].create(values) + if self.env.context.get('active_model') == 'sale.order': + for order in self.env['sale.order'].browse(self.env.context.get('active_ids', [])): + order.order_line._update_registrations(confirm=True) return {'type': 'ir.actions.act_window_close'} diff --git a/addons/product/product.py b/addons/product/product.py index 9de0fa220f9..088302b1b9f 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -455,7 +455,7 @@ class product_template(osv.osv): names = [names] res = {id: {} for id in ids} templates = self.browse(cr, uid, ids, context=context) - unique_templates = [template.id for template in templates if template.product_variant_count == 1] + unique_templates = [template.id for template in templates if len(template.product_variant_ids) == 1] for template in templates: for name in names: res[template.id][name] = getattr(template.product_variant_ids[0], name) if template.id in unique_templates else 0.0 @@ -464,7 +464,7 @@ class product_template(osv.osv): def _set_product_template_field(self, cr, uid, product_tmpl_id, name, value, args, context=None): ''' Set the standard price modification on the variant if there is only one variant ''' template = self.pool['product.template'].browse(cr, uid, product_tmpl_id, context=context) - if template.product_variant_count == 1: + if len(template.product_variant_ids) == 1: variant = self.pool['product.product'].browse(cr, uid, template.product_variant_ids.id, context=context) return variant.write({name: value}) return {} diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 9869590052f..c3680f3f40b 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -381,7 +381,8 @@ class PurchaseOrder(models.Model): 'date': self.date_order, 'origin': self.name, 'location_dest_id': self._get_destination_location(), - 'location_id': self.partner_id.property_stock_supplier.id + 'location_id': self.partner_id.property_stock_supplier.id, + 'company_id': self.company_id.id, } @api.multi diff --git a/addons/stock_dropshipping/stock_dropshipping.xml b/addons/stock_dropshipping/stock_dropshipping.xml index 7637e4fe260..7714e26fca3 100644 --- a/addons/stock_dropshipping/stock_dropshipping.xml +++ b/addons/stock_dropshipping/stock_dropshipping.xml @@ -1,16 +1,13 @@ - + - Dropship DS 5 - - Dropship @@ -19,8 +16,7 @@ - - + Drop Shipping diff --git a/addons/web/static/src/less/form_view.less b/addons/web/static/src/less/form_view.less index 97d8dcccccd..ef0bcb44be4 100644 --- a/addons/web/static/src/less/form_view.less +++ b/addons/web/static/src/less/form_view.less @@ -55,8 +55,9 @@ > .o_form_field { .o-flex(1, 0, 100px); + position: initial; max-width: 100%; - + > .o_form_input_dropdown > .o_form_input { border-style: none!important; } diff --git a/openerp/models.py b/openerp/models.py index 4251ee25807..d04a95aa149 100644 --- a/openerp/models.py +++ b/openerp/models.py @@ -1075,6 +1075,10 @@ class BaseModel(object): if any(message['type'] == 'error' for message in messages): cr.execute('ROLLBACK TO SAVEPOINT model_load') ids = False + + if ids and self._context.get('defer_parent_store_computation'): + self._parent_store_compute() + return {'ids': ids, 'messages': messages} def _add_fake_fields(self, fields): diff --git a/openerp/osv/expression.py b/openerp/osv/expression.py index 3b2e3970cc9..362ab6f90af 100644 --- a/openerp/osv/expression.py +++ b/openerp/osv/expression.py @@ -717,7 +717,7 @@ class expression(object): (when available), or as an expanded [(left,in,child_ids)] """ if not ids: return FALSE_DOMAIN - if left_model._parent_store and (not left_model.pool._init): + if left_model._parent_store and (not left_model.pool._init) and (not context.get('defer_parent_store_computation')): # TODO: Improve where joins are implemented for many with '.', replace by: # doms += ['&',(prefix+'.parent_left','<',rec.parent_right),(prefix+'.parent_left','>=',rec.parent_left)] doms = [] @@ -740,7 +740,7 @@ class expression(object): """ Return a domain implementing the parent_of operator for [(left,parent_of,ids)], either as a range using the parent_left/right tree lookup fields (when available), or as an expanded [(left,in,parent_ids)] """ - if left_model._parent_store and (not left_model.pool._init): + if left_model._parent_store and (not left_model.pool._init) and (not context.get('defer_parent_store_computation')): doms = [] for rec in left_model.browse(ids): if doms: