[MERGE] forward port branch 9.0 up to e2ede31
This commit is contained in:
@@ -1383,7 +1383,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'),
|
||||
|
||||
@@ -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'}
|
||||
|
||||
|
||||
|
||||
@@ -448,7 +448,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
|
||||
@@ -457,7 +457,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 {}
|
||||
|
||||
@@ -378,7 +378,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
|
||||
|
||||
@@ -1,16 +1,13 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<data noupdate="1">
|
||||
<!-- Sequence and picking type dropship-->
|
||||
|
||||
<record id="seq_picking_type_dropship" model="ir.sequence">
|
||||
<field name="name">Dropship</field>
|
||||
<field name="prefix">DS</field>
|
||||
<field name="padding">5</field>
|
||||
<field name="company_id" eval="False"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="picking_type_dropship" model="stock.picking.type">
|
||||
<field name="name">Dropship</field>
|
||||
<field name="sequence_id" ref="seq_picking_type_dropship"/>
|
||||
@@ -19,8 +16,7 @@
|
||||
<field name="default_location_src_id" ref="stock.stock_location_suppliers"/>
|
||||
<field name="default_location_dest_id" ref="stock.stock_location_customers"/>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
<!-- Drop Shipping-->
|
||||
<record id="route_drop_shipping" model='stock.location.route'>
|
||||
<field name="name">Drop Shipping</field>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -498,6 +498,7 @@ class module(osv.osv):
|
||||
known_dep_ids, exclude_states, context))
|
||||
return list(known_dep_ids)
|
||||
|
||||
@api.returns('self')
|
||||
def upstream_dependencies(self, cr, uid, ids, known_dep_ids=None,
|
||||
exclude_states=['installed', 'uninstallable', 'to remove'],
|
||||
context=None):
|
||||
|
||||
@@ -1126,6 +1126,8 @@ class BaseModel(object):
|
||||
:param dict context:
|
||||
:returns: {ids: list(int)|False, messages: [Message]}
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
cr.execute('SAVEPOINT model_load')
|
||||
messages = []
|
||||
|
||||
@@ -1180,6 +1182,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 context.get('defer_parent_store_computation'):
|
||||
self._parent_store_compute(cr)
|
||||
|
||||
return {'ids': ids, 'messages': messages}
|
||||
|
||||
def _add_fake_fields(self, cr, uid, fields, context=None):
|
||||
|
||||
@@ -711,9 +711,11 @@ class expression(object):
|
||||
""" Return a domain implementing the child_of operator for [(left,child_of,ids)],
|
||||
either as a range using the parent_left/right tree lookup fields
|
||||
(when available), or as an expanded [(left,in,child_ids)] """
|
||||
if context is None:
|
||||
context = {}
|
||||
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','<',o.parent_right),(prefix+'.parent_left','>=',o.parent_left)]
|
||||
doms = []
|
||||
@@ -736,7 +738,9 @@ 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 context is None:
|
||||
context = {}
|
||||
if left_model._parent_store and (not left_model.pool._init) and (not context.get('defer_parent_store_computation')):
|
||||
doms = []
|
||||
for node in left_model.browse(cr, uid, ids, context=context):
|
||||
if doms:
|
||||
@@ -828,7 +832,7 @@ class expression(object):
|
||||
|
||||
elif left == 'id' and operator in HIERARCHY_FUNCS:
|
||||
ids2 = to_ids(right, model, context)
|
||||
dom = HIERARCHY_FUNCS[operator](left, ids2, model)
|
||||
dom = HIERARCHY_FUNCS[operator](left, ids2, model, context=context)
|
||||
for dom_leaf in reversed(dom):
|
||||
new_leaf = create_substitution_leaf(leaf, dom_leaf, model)
|
||||
push(new_leaf)
|
||||
@@ -949,9 +953,9 @@ class expression(object):
|
||||
elif column._type == 'one2many' and operator in HIERARCHY_FUNCS:
|
||||
ids2 = to_ids(right, comodel, context)
|
||||
if column._obj != model._name:
|
||||
dom = HIERARCHY_FUNCS[operator](left, ids2, comodel, prefix=column._obj)
|
||||
dom = HIERARCHY_FUNCS[operator](left, ids2, comodel, prefix=column._obj, context=context)
|
||||
else:
|
||||
dom = HIERARCHY_FUNCS[operator]('id', ids2, model, parent=left)
|
||||
dom = HIERARCHY_FUNCS[operator]('id', ids2, model, parent=left, context=context)
|
||||
for dom_leaf in reversed(dom):
|
||||
push(create_substitution_leaf(leaf, dom_leaf, model))
|
||||
|
||||
@@ -1007,7 +1011,7 @@ class expression(object):
|
||||
return select_from_where(cr, rel_id1, rel_table, rel_id2, ids, operator)
|
||||
|
||||
ids2 = to_ids(right, comodel, context)
|
||||
dom = HIERARCHY_FUNCS[operator]('id', ids2, comodel)
|
||||
dom = HIERARCHY_FUNCS[operator]('id', ids2, comodel, context=context)
|
||||
ids2 = comodel.search(cr, uid, dom, context=context)
|
||||
push(create_substitution_leaf(leaf, ('id', 'in', _rec_convert(ids2)), model))
|
||||
else:
|
||||
@@ -1046,9 +1050,9 @@ class expression(object):
|
||||
if operator in HIERARCHY_FUNCS:
|
||||
ids2 = to_ids(right, comodel, context)
|
||||
if column._obj != model._name:
|
||||
dom = HIERARCHY_FUNCS[operator](left, ids2, comodel, prefix=column._obj)
|
||||
dom = HIERARCHY_FUNCS[operator](left, ids2, comodel, prefix=column._obj, context=context)
|
||||
else:
|
||||
dom = HIERARCHY_FUNCS[operator]('id', ids2, model, parent=left)
|
||||
dom = HIERARCHY_FUNCS[operator]('id', ids2, model, parent=left, context=context)
|
||||
for dom_leaf in reversed(dom):
|
||||
push(create_substitution_leaf(leaf, dom_leaf, model))
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user