diff --git a/openerp/addons/base/base.sql b/openerp/addons/base/base.sql index 26d70b7ede6..441fe536a0a 100644 --- a/openerp/addons/base/base.sql +++ b/openerp/addons/base/base.sql @@ -146,17 +146,15 @@ select setval('ir_ui_menu_id_seq', 2); CREATE TABLE res_users ( id serial NOT NULL, - name varchar(64) not null, active boolean default True, login varchar(64) NOT NULL UNIQUE, password varchar(64) default null, - email varchar(64) default null, - context_tz varchar(64) default null, - signature text, - context_lang varchar(64) default '', + tz varchar(64) default null, + lang varchar(64) default '', -- No FK references below, will be added later by ORM -- (when the destination rows exist) company_id int, + partner_id int, primary key(id) ); alter table res_users add constraint res_users_login_uniq unique (login); @@ -385,7 +383,7 @@ CREATE TABLE ir_model_relation ( -- Users --------------------------------- -insert into res_users (id,login,password,name,active,company_id,context_lang) values (1,'admin','admin','Administrator',True,1,'en_US'); +insert into res_users (id,login,password,active,company_id,partner_id,lang) values (1,'admin','admin',True,1,1,'en_US'); insert into ir_model_data (name,module,model,noupdate,res_id) values ('user_root','base','res.users',True,1); -- Compatibility purpose, to remove V6.0 diff --git a/openerp/addons/base/base_data.xml b/openerp/addons/base/base_data.xml index 672925143aa..1f8c97007e3 100644 --- a/openerp/addons/base/base_data.xml +++ b/openerp/addons/base/base_data.xml @@ -1094,19 +1094,23 @@ - - Administrator + + Administrator + + + + + + - + + Administrator - - - diff --git a/openerp/addons/base/ir/ir_actions.py b/openerp/addons/base/ir/ir_actions.py index 72fd6aab349..a5d04d7f1bc 100644 --- a/openerp/addons/base/ir/ir_actions.py +++ b/openerp/addons/base/ir/ir_actions.py @@ -625,8 +625,8 @@ class actions_server(osv.osv): if not email_from: _logger.debug('--email-from command line option is not specified, using a fallback value instead.') - if user.user_email: - email_from = user.user_email + if user.email: + email_from = user.email else: email_from = "%s@%s" % (user.login, gethostname()) diff --git a/openerp/addons/base/publisher_warranty/publisher_warranty.py b/openerp/addons/base/publisher_warranty/publisher_warranty.py index f6fdd04de14..897210ce817 100644 --- a/openerp/addons/base/publisher_warranty/publisher_warranty.py +++ b/openerp/addons/base/publisher_warranty/publisher_warranty.py @@ -86,7 +86,7 @@ class publisher_warranty_contract(osv.osv): db_create_date = self.pool.get('ir.config_parameter').get_param(cr, uid, 'database.create_date') user = self.pool.get("res.users").browse(cr, uid, uid) user_name = user.name - email = user.user_email + email = user.email msg = {'contract_name': valid_contract.name, 'tb': tb, @@ -333,7 +333,7 @@ def get_sys_logs(cr, uid): "db_create_date": db_create_date, "version": release.version, "contracts": [c.name for c in contracts], - "language": user.context_lang, + "language": user.lang, } add_arg = {"timeout":30} if sys.version_info >= (2,6) else {} diff --git a/openerp/addons/base/res/photo.png b/openerp/addons/base/res/photo.png deleted file mode 100644 index 1d124127b2b..00000000000 Binary files a/openerp/addons/base/res/photo.png and /dev/null differ diff --git a/openerp/addons/base/res/res_company.py b/openerp/addons/base/res/res_company.py index 77fb9b635e5..526ad0e0bad 100644 --- a/openerp/addons/base/res/res_company.py +++ b/openerp/addons/base/res/res_company.py @@ -149,11 +149,9 @@ class res_company(osv.osv): def _search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False, access_rights_uid=None): - if context is None: context = {} - user_preference = context.get('user_preference', False) - if user_preference: + if context.get('user_preference'): # We browse as superuser. Otherwise, the user would be able to # select only the currently visible companies (according to rules, # which are probably to allow to see the child companies) even if diff --git a/openerp/addons/base/res/res_partner.py b/openerp/addons/base/res/res_partner.py index d275c0c7b4e..4376cb694d3 100644 --- a/openerp/addons/base/res/res_partner.py +++ b/openerp/addons/base/res/res_partner.py @@ -20,6 +20,7 @@ ############################################################################## import math +import openerp import os from osv import osv, fields import re @@ -27,6 +28,10 @@ import tools from tools.translate import _ import logging import pooler +import pytz + +def _tz_get(self,cr,uid, context=None): + return [(x, x) for x in pytz.all_timezones] class res_payterm(osv.osv): _description = 'Payment term' @@ -150,7 +155,12 @@ class res_partner(osv.osv): 'parent_id': fields.many2one('res.partner', 'Owned by'), 'child_ids': fields.one2many('res.partner', 'parent_id', 'Contacts'), 'ref': fields.char('Reference', size=64, select=1), - 'lang': fields.selection(_lang_get, 'Language', help="If the selected language is loaded in the system, all documents related to this partner will be printed in this language. If not, it will be english."), + 'lang': fields.selection(_lang_get, 'Language', + help="If the selected language is loaded in the system, all documents related to this partner will be printed in this language. If not, it will be english."), + 'tz': fields.selection(_tz_get, 'Timezone', size=64, + help="The partner's timezone, used to output proper date and time values inside printed reports. " + "It is important to set a value for this field. You should use the same timezone " + "that is otherwise used to pick and render date and time values: your computer's timezone."), 'user_id': fields.many2one('res.users', 'Salesperson', help='The internal user that is in charge of communicating with this partner if any.'), 'vat': fields.char('VAT',size=32 ,help="Value Added Tax number. Check the box if the partner is subjected to the VAT. Used by the VAT legal statement."), 'bank_ids': fields.one2many('res.partner.bank', 'partner_id', 'Banks'), @@ -165,10 +175,10 @@ class res_partner(osv.osv): 'supplier': fields.boolean('Supplier', help="Check this box if the partner is a supplier. If it's not checked, purchase people will not see it when encoding a purchase order."), 'employee': fields.boolean('Employee', help="Check this box if the partner is an Employee."), 'function': fields.char('Job Position', size=128), - 'type': fields.selection( [('default','Default'),('invoice','Invoice'), + 'type': fields.selection( [('default','Default'), ('invoice','Invoice'), ('delivery','Delivery'), ('contact','Contact'), - ('other','Other')], - 'Address Type', help="Used to select automatically the right address according to the context in sales and purchases documents."), + ('other', 'Other')], 'Address Type', + help="Used to select automatically the right address according to the context in sales and purchases documents."), 'street': fields.char('Street', size=128), 'street2': fields.char('Street2', size=128), 'zip': fields.char('Zip', change_default=True, size=24), @@ -217,13 +227,15 @@ class res_partner(osv.osv): def _get_default_image(self, cr, uid, is_company, context=None): if is_company: - image_path = os.path.join( tools.config['root_path'], 'addons', 'base', 'res', 'company_icon.png') + image_path = openerp.modules.get_module_resource('base', 'static/src/img', 'company_image.png') else: - image_path = os.path.join( tools.config['root_path'], 'addons', 'base', 'res', 'photo.png') + image_path = openerp.modules.get_module_resource('base', 'static/src/img', 'partner_image.png') return tools.image_resize_image_big(open(image_path, 'rb').read().encode('base64')) _defaults = { 'active': True, + 'lang': lambda self, cr, uid, context: context.get('lang', 'en_US'), + 'tz': lambda self, cr, uid, context: context.get('tz', False), 'customer': True, 'category_id': _default_category, 'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'res.partner', context=c), @@ -318,7 +330,8 @@ class res_partner(osv.osv): def update_address(self, cr, uid, ids, vals, context=None): addr_vals = dict((key, vals[key]) for key in POSTAL_ADDRESS_FIELDS if vals.get(key)) - return super(res_partner, self).write(cr, uid, ids, addr_vals, context) + if addr_vals: + return super(res_partner, self).write(cr, uid, ids, addr_vals, context) def name_get(self, cr, uid, ids, context=None): if context is None: diff --git a/openerp/addons/base/res/res_partner_demo.xml b/openerp/addons/base/res/res_partner_demo.xml index ae179910a92..eed67483358 100644 --- a/openerp/addons/base/res/res_partner_demo.xml +++ b/openerp/addons/base/res/res_partner_demo.xml @@ -6,7 +6,7 @@ --> - Customer + Partner Supplier @@ -18,15 +18,15 @@ Employee - Gold Partner + Gold - Silver Partner + Silver - Bronze Partner + Bronze @@ -35,35 +35,27 @@ Consultancy Services - Components Buyer - Services - Office Supplies - Distributor - Manufacturer - Wholesaler - Retailer - Company Contact diff --git a/openerp/addons/base/res/res_partner_view.xml b/openerp/addons/base/res/res_partner_view.xml index 7324379c2b5..43a37d1a79c 100644 --- a/openerp/addons/base/res/res_partner_view.xml +++ b/openerp/addons/base/res/res_partner_view.xml @@ -95,7 +95,7 @@
- +