[MERGE] forward port branch 8.0 up to d16d1c6
This commit is contained in:
@@ -404,6 +404,7 @@ class product_pricelist_version(osv.osv):
|
|||||||
'company_id': fields.related('pricelist_id','company_id',type='many2one',
|
'company_id': fields.related('pricelist_id','company_id',type='many2one',
|
||||||
readonly=True, relation='res.company', string='Company', store={
|
readonly=True, relation='res.company', string='Company', store={
|
||||||
'product.pricelist': (_get_product_pricelist, ['company_id'], 20),
|
'product.pricelist': (_get_product_pricelist, ['company_id'], 20),
|
||||||
|
'product.pricelist.version': (lambda self, cr, uid, ids, c=None: ids, ['pricelist_id'], 20),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
_defaults = {
|
_defaults = {
|
||||||
@@ -505,6 +506,13 @@ class product_pricelist_item(osv.osv):
|
|||||||
result.add(item_id.id)
|
result.add(item_id.id)
|
||||||
return list(result)
|
return list(result)
|
||||||
|
|
||||||
|
def _get_product_pricelist_version(self, cr, uid, ids, context=None):
|
||||||
|
result = set()
|
||||||
|
for version in self.pool['product.pricelist.version'].browse(cr, uid, ids, context=context):
|
||||||
|
for item_id in version.items_id:
|
||||||
|
result.add(item_id.id)
|
||||||
|
return list(result)
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
'name': fields.char('Rule Name', help="Explicit rule name for this pricelist line."),
|
'name': fields.char('Rule Name', help="Explicit rule name for this pricelist line."),
|
||||||
'price_version_id': fields.many2one('product.pricelist.version', 'Price List Version', required=True, select=True, ondelete='cascade'),
|
'price_version_id': fields.many2one('product.pricelist.version', 'Price List Version', required=True, select=True, ondelete='cascade'),
|
||||||
@@ -536,6 +544,8 @@ class product_pricelist_item(osv.osv):
|
|||||||
'company_id': fields.related('price_version_id','company_id',type='many2one',
|
'company_id': fields.related('price_version_id','company_id',type='many2one',
|
||||||
readonly=True, relation='res.company', string='Company', store={
|
readonly=True, relation='res.company', string='Company', store={
|
||||||
'product.pricelist': (_get_product_pricelist, ['company_id'], 30),
|
'product.pricelist': (_get_product_pricelist, ['company_id'], 30),
|
||||||
|
'product.pricelist.version': (_get_product_pricelist_version, ['pricelist_id'], 30),
|
||||||
|
'product.pricelist.item': (lambda self, cr, uid, ids, c=None: ids, ['price_version_id'], 30),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -928,6 +928,7 @@ class sale_order_line(osv.osv):
|
|||||||
'salesman_id':fields.related('order_id', 'user_id', type='many2one', relation='res.users', store=True, string='Salesperson'),
|
'salesman_id':fields.related('order_id', 'user_id', type='many2one', relation='res.users', store=True, string='Salesperson'),
|
||||||
'company_id': fields.related('order_id', 'company_id', type='many2one', relation='res.company', string='Company', store={
|
'company_id': fields.related('order_id', 'company_id', type='many2one', relation='res.company', string='Company', store={
|
||||||
'sale.order': (_get_sale_order, ['company_id'], 20),
|
'sale.order': (_get_sale_order, ['company_id'], 20),
|
||||||
|
'sale.order.line': (lambda self, cr, uid, ids, c=None: ids, ['order_id'], 20),
|
||||||
}, readonly=True),
|
}, readonly=True),
|
||||||
'delay': fields.float('Delivery Lead Time', required=True, help="Number of days between the order confirmation and the shipping of the products to the customer", readonly=True, states={'draft': [('readonly', False)]}),
|
'delay': fields.float('Delivery Lead Time', required=True, help="Number of days between the order confirmation and the shipping of the products to the customer", readonly=True, states={'draft': [('readonly', False)]}),
|
||||||
'procurement_ids': fields.one2many('procurement.order', 'sale_line_id', 'Procurements'),
|
'procurement_ids': fields.one2many('procurement.order', 'sale_line_id', 'Procurements'),
|
||||||
|
|||||||
@@ -4030,7 +4030,6 @@ class stock_package(osv.osv):
|
|||||||
context = dict(context or {}, active_ids=ids)
|
context = dict(context or {}, active_ids=ids)
|
||||||
return self.pool.get("report").get_action(cr, uid, ids, 'stock.report_package_barcode_small', context=context)
|
return self.pool.get("report").get_action(cr, uid, ids, 'stock.report_package_barcode_small', context=context)
|
||||||
|
|
||||||
|
|
||||||
def unpack(self, cr, uid, ids, context=None):
|
def unpack(self, cr, uid, ids, context=None):
|
||||||
quant_obj = self.pool.get('stock.quant')
|
quant_obj = self.pool.get('stock.quant')
|
||||||
for package in self.browse(cr, uid, ids, context=context):
|
for package in self.browse(cr, uid, ids, context=context):
|
||||||
@@ -4038,8 +4037,6 @@ class stock_package(osv.osv):
|
|||||||
quant_obj.write(cr, SUPERUSER_ID, quant_ids, {'package_id': package.parent_id.id or False}, context=context)
|
quant_obj.write(cr, SUPERUSER_ID, quant_ids, {'package_id': package.parent_id.id or False}, context=context)
|
||||||
children_package_ids = [child_package.id for child_package in package.children_ids]
|
children_package_ids = [child_package.id for child_package in package.children_ids]
|
||||||
self.write(cr, uid, children_package_ids, {'parent_id': package.parent_id.id or False}, context=context)
|
self.write(cr, uid, children_package_ids, {'parent_id': package.parent_id.id or False}, context=context)
|
||||||
#delete current package since it contains nothing anymore
|
|
||||||
self.unlink(cr, uid, ids, context=context)
|
|
||||||
return self.pool.get('ir.actions.act_window').for_xml_id(cr, uid, 'stock', 'action_package_view', context=context)
|
return self.pool.get('ir.actions.act_window').for_xml_id(cr, uid, 'stock', 'action_package_view', context=context)
|
||||||
|
|
||||||
def get_content(self, cr, uid, ids, context=None):
|
def get_content(self, cr, uid, ids, context=None):
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ instance.web_gantt.GanttView = instance.web.View.extend({
|
|||||||
if (group_bys.length == 0) {
|
if (group_bys.length == 0) {
|
||||||
group_bys = ["_pseudo_group_by"];
|
group_bys = ["_pseudo_group_by"];
|
||||||
_.each(tasks, function(el) {
|
_.each(tasks, function(el) {
|
||||||
el._pseudo_group_by = "Gantt View";
|
el._pseudo_group_by = _t("Gantt View");
|
||||||
});
|
});
|
||||||
this.fields._pseudo_group_by = {type: "string"};
|
this.fields._pseudo_group_by = {type: "string"};
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-2
@@ -740,8 +740,11 @@ class BaseModel(object):
|
|||||||
cls = type(self)
|
cls = type(self)
|
||||||
methods = []
|
methods = []
|
||||||
for attr, func in getmembers(cls, is_constraint):
|
for attr, func in getmembers(cls, is_constraint):
|
||||||
if not all(name in cls._fields for name in func._constrains):
|
for name in func._constrains:
|
||||||
_logger.warning("@constrains%r parameters must be field names", func._constrains)
|
if name not in cls._fields:
|
||||||
|
_logger.warning("method %s.%s: @constrains parameter %r is not a field name", cls._name, attr, name)
|
||||||
|
if not cls._fields[name].store:
|
||||||
|
_logger.warning("method %s.%s: @constrains parameter %r is not stored", cls._name, attr, name)
|
||||||
methods.append(func)
|
methods.append(func)
|
||||||
|
|
||||||
# optimization: memoize result on cls, it will not be recomputed
|
# optimization: memoize result on cls, it will not be recomputed
|
||||||
|
|||||||
Reference in New Issue
Block a user