[MERGE] Sync with trunk
bzr revid: tde@openerp.com-20130425104400-13azs2fzf9oyl96m
This commit is contained in:
commit
eb2815a550
|
@ -869,15 +869,17 @@ class ir_model_data(osv.osv):
|
|||
raise ValueError('No such external ID currently defined in the system: %s.%s' % (module, xml_id))
|
||||
return res['model'], res['res_id']
|
||||
|
||||
def check_object_reference(self, cr, uid, module, xml_id):
|
||||
def check_object_reference(self, cr, uid, module, xml_id, raise_on_access_error=False):
|
||||
"""Returns (model, res_id) corresponding to a given module and xml_id (cached), if and only if the user has the necessary access rights
|
||||
to see that object, otherwise raise ValueError"""
|
||||
to see that object, otherwise raise a ValueError if raise_on_access_error is True or returns a tuple (model found, False)"""
|
||||
model, res_id = self.get_object_reference(cr, uid, module, xml_id)
|
||||
#search on id found in result to check if current user has read access right
|
||||
check_right = self.pool.get(model).search(cr, uid, [('id', '=', res_id)])
|
||||
if check_right:
|
||||
return model, res_id
|
||||
raise ValueError('Not enough access rights on the external ID: %s.%s' % (module, xml_id))
|
||||
if raise_on_access_error:
|
||||
raise ValueError('Not enough access rights on the external ID: %s.%s' % (module, xml_id))
|
||||
return model, False
|
||||
|
||||
def get_object(self, cr, uid, module, xml_id, context=None):
|
||||
"""Returns a browsable record for the given module name and xml_id or raise ValueError if not found"""
|
||||
|
|
|
@ -253,7 +253,7 @@ class res_company(osv.osv):
|
|||
vals.update({'partner_id': partner_id})
|
||||
self.cache_restart(cr)
|
||||
company_id = super(res_company, self).create(cr, uid, vals, context=context)
|
||||
obj_partner.write(cr, uid, partner_id, {'company_id': company_id}, context=context)
|
||||
obj_partner.write(cr, uid, [partner_id], {'company_id': company_id}, context=context)
|
||||
return company_id
|
||||
|
||||
def write(self, cr, uid, ids, values, context=None):
|
||||
|
|
|
@ -213,15 +213,19 @@ class res_partner(osv.osv, format_address):
|
|||
_commercial_partner_id = lambda self, *args, **kwargs: self._commercial_partner_compute(*args, **kwargs)
|
||||
_display_name = lambda self, *args, **kwargs: self._display_name_compute(*args, **kwargs)
|
||||
|
||||
_commercial_partner_store_triggers = {
|
||||
_commercial_partner_store_triggers = {
|
||||
'res.partner': (lambda self,cr,uid,ids,context=None: self.search(cr, uid, [('id','child_of',ids)]),
|
||||
['parent_id', 'is_company'], 10)
|
||||
}
|
||||
}
|
||||
_display_name_store_triggers = {
|
||||
'res.partner': (lambda self,cr,uid,ids,context=None: self.search(cr, uid, [('id','child_of',ids)]),
|
||||
['parent_id', 'is_company', 'name'], 10)
|
||||
}
|
||||
|
||||
_order = "display_name"
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=128, required=True, select=True),
|
||||
'display_name': fields.function(_display_name, type='char', string='Name', store=_commercial_partner_store_triggers),
|
||||
'display_name': fields.function(_display_name, type='char', string='Name', store=_display_name_store_triggers),
|
||||
'date': fields.date('Date', select=1),
|
||||
'title': fields.many2one('res.partner.title', 'Title'),
|
||||
'parent_id': fields.many2one('res.partner', 'Related Company'),
|
||||
|
@ -442,7 +446,7 @@ class res_partner(osv.osv, format_address):
|
|||
commercial_fields = self._commercial_fields(cr, uid, context=context)
|
||||
sync_vals = self._update_fields_values(cr, uid, partner.commercial_partner_id,
|
||||
commercial_fields, context=context)
|
||||
return self.write(cr, uid, partner.id, sync_vals, context=context)
|
||||
partner.write(sync_vals)
|
||||
|
||||
def _commercial_sync_to_children(self, cr, uid, partner, context=None):
|
||||
""" Handle sync of commercial fields to descendants """
|
||||
|
@ -468,7 +472,7 @@ class res_partner(osv.osv, format_address):
|
|||
use_parent_address=partner.use_parent_address,
|
||||
parent_id=partner.parent_id.id,
|
||||
context=context).get('value', {})
|
||||
self.update_address(cr, uid, partner.id, onchange_vals, context=context)
|
||||
partner.update_address(onchange_vals)
|
||||
|
||||
# 2. To DOWNSTREAM: sync children
|
||||
if partner.child_ids:
|
||||
|
|
|
@ -30,7 +30,7 @@ RELEASE_LEVELS_DISPLAY = {ALPHA: ALPHA,
|
|||
# properly comparable using normal operarors, for example:
|
||||
# (6,1,0,'beta',0) < (6,1,0,'candidate',1) < (6,1,0,'candidate',2)
|
||||
# (6,1,0,'candidate',2) < (6,1,0,'final',0) < (6,1,2,'final',0)
|
||||
version_info = (7, 0, 0, FINAL, 0)
|
||||
version_info = (8, 0, 0, ALPHA, 1)
|
||||
version = '.'.join(map(str, version_info[:2])) + RELEASE_LEVELS_DISPLAY[version_info[3]] + str(version_info[4] or '')
|
||||
serie = major_version = '.'.join(map(str, version_info[:2]))
|
||||
|
||||
|
|
|
@ -182,7 +182,7 @@ class Multicorn(object):
|
|||
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||
self.socket.setblocking(0)
|
||||
self.socket.bind(self.address)
|
||||
self.socket.listen(8)
|
||||
self.socket.listen(8*self.population)
|
||||
# long polling socket
|
||||
self.long_polling_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
self.long_polling_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||
|
|
Loading…
Reference in New Issue