# -*- coding: utf-8 -*- ############################################################################## # # Author: Nicolas Bessi. Copyright Camptocamp SA # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # ############################################################################## from openerp.osv import orm from openerp.tools.translate import _ class ResUsers(orm.Model): _inherit = 'res.users' def create(self, cr, user, vals, context=None): """To support data backward compatibility we have to keep this overwrite even if we use fnct_inv: otherwise we can't create entry because lastname is mandatory and module will not install if there is demo data This fixes the unittests in stock when partner_firstname is installed """ vals2 = vals.copy() if 'name' in vals: vals2['lastname'] = vals2['name'] elif 'login' in vals and 'lastname' not in vals: vals2['lastname'] = vals2['login'] return super(ResUsers, self).create(cr, user, vals2, context=context) def copy_data(self, cr, uid, _id, default=None, context=None): """Avoid to replicate the firstname into the name when duplicating a user """ default = default or {} if not default.get('lastname'): default = default.copy() default['lastname'] = ( _('%s (copy)') % self.read( cr, uid, [_id], ['lastname'], context=context )[0]['lastname'] ) if default.get('name'): del(default['name']) return super(ResUsers, self).copy_data( cr, uid, _id, default, context=context )