[MERGE] forward port of branch 7.0 up to f5f7609
This commit is contained in:
commit
60a82133cc
|
@ -249,6 +249,10 @@ class users(osv.osv):
|
||||||
return user_id
|
return user_id
|
||||||
registry = RegistryManager.get(db)
|
registry = RegistryManager.get(db)
|
||||||
with registry.cursor() as cr:
|
with registry.cursor() as cr:
|
||||||
|
cr.execute("SELECT id, active FROM res_users WHERE lower(login)=%s", (login,))
|
||||||
|
res = cr.fetchone()
|
||||||
|
if res:
|
||||||
|
return False
|
||||||
ldap_obj = registry.get('res.company.ldap')
|
ldap_obj = registry.get('res.company.ldap')
|
||||||
for conf in ldap_obj.get_ldap_dicts(cr):
|
for conf in ldap_obj.get_ldap_dicts(cr):
|
||||||
entry = ldap_obj.authenticate(conf, login, password)
|
entry = ldap_obj.authenticate(conf, login, password)
|
||||||
|
|
|
@ -352,6 +352,7 @@ class pos_session(osv.osv):
|
||||||
if not cashids:
|
if not cashids:
|
||||||
cashids = journal_proxy.search(cr, uid, [('journal_user','=',True)], context=context)
|
cashids = journal_proxy.search(cr, uid, [('journal_user','=',True)], context=context)
|
||||||
|
|
||||||
|
journal_proxy.write(cr, uid, cashids, {'journal_user': True})
|
||||||
jobj.write(cr, uid, [pos_config.id], {'journal_ids': [(6,0, cashids)]})
|
jobj.write(cr, uid, [pos_config.id], {'journal_ids': [(6,0, cashids)]})
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,7 @@ import simplejson
|
||||||
import time
|
import time
|
||||||
import traceback
|
import traceback
|
||||||
import types
|
import types
|
||||||
|
from collections import defaultdict
|
||||||
|
|
||||||
import babel.dates
|
import babel.dates
|
||||||
import dateutil.parser
|
import dateutil.parser
|
||||||
|
@ -2660,6 +2661,9 @@ class BaseModel(object):
|
||||||
if len(constraints) == 1:
|
if len(constraints) == 1:
|
||||||
# Is it the right constraint?
|
# Is it the right constraint?
|
||||||
cons, = constraints
|
cons, = constraints
|
||||||
|
if self.is_transient() and not dest_model.is_transient():
|
||||||
|
# transient foreign keys are added as cascade by default
|
||||||
|
ondelete = ondelete or 'cascade'
|
||||||
if cons['ondelete_rule'] != POSTGRES_CONFDELTYPES.get((ondelete or 'set null').upper(), 'a')\
|
if cons['ondelete_rule'] != POSTGRES_CONFDELTYPES.get((ondelete or 'set null').upper(), 'a')\
|
||||||
or cons['foreign_table'] != dest_model._table:
|
or cons['foreign_table'] != dest_model._table:
|
||||||
# Wrong FK: drop it and recreate
|
# Wrong FK: drop it and recreate
|
||||||
|
@ -3812,6 +3816,7 @@ class BaseModel(object):
|
||||||
"""
|
"""
|
||||||
readonly = None
|
readonly = None
|
||||||
self.check_field_access_rights(cr, user, 'write', vals.keys())
|
self.check_field_access_rights(cr, user, 'write', vals.keys())
|
||||||
|
deleted_related = defaultdict(list)
|
||||||
for field in vals.copy():
|
for field in vals.copy():
|
||||||
fobj = None
|
fobj = None
|
||||||
if field in self._columns:
|
if field in self._columns:
|
||||||
|
@ -3820,6 +3825,10 @@ class BaseModel(object):
|
||||||
fobj = self._inherit_fields[field][2]
|
fobj = self._inherit_fields[field][2]
|
||||||
if not fobj:
|
if not fobj:
|
||||||
continue
|
continue
|
||||||
|
if fobj._type in ['one2many', 'many2many'] and vals[field]:
|
||||||
|
for wtuple in vals[field]:
|
||||||
|
if isinstance(wtuple, (tuple, list)) and wtuple[0] == 2:
|
||||||
|
deleted_related[fobj._obj].append(wtuple[1])
|
||||||
groups = fobj.write
|
groups = fobj.write
|
||||||
|
|
||||||
if groups:
|
if groups:
|
||||||
|
@ -4026,7 +4035,8 @@ class BaseModel(object):
|
||||||
for id in ids_to_update:
|
for id in ids_to_update:
|
||||||
if id not in done[key]:
|
if id not in done[key]:
|
||||||
done[key][id] = True
|
done[key][id] = True
|
||||||
todo.append(id)
|
if id not in deleted_related[object]:
|
||||||
|
todo.append(id)
|
||||||
self.pool[model_name]._store_set_values(cr, user, todo, fields_to_recompute, context)
|
self.pool[model_name]._store_set_values(cr, user, todo, fields_to_recompute, context)
|
||||||
|
|
||||||
self.step_workflow(cr, user, ids, context=context)
|
self.step_workflow(cr, user, ids, context=context)
|
||||||
|
|
Loading…
Reference in New Issue