From 27c672b1fc1556602764d066de4b63cdb1eeb158 Mon Sep 17 00:00:00 2001 From: Arnaud Pineux Date: Thu, 15 Nov 2012 16:09:45 +0100 Subject: [PATCH] [FIX] bzr revid: api@openerp.com-20121115150945-6zf30o1hk56bv5sf --- .../account_accountant_data.xml | 4 ++-- addons/account_asset/account_asset.py | 18 +++++++------- addons/base_crypt/crypt.py | 22 ++---------------- addons/crm/crm_data.xml | 2 +- addons/fleet/static/src/img/icon.png | Bin 11334 -> 23083 bytes addons/hr_evaluation/hr_evaluation_data.xml | 4 ++-- addons/hr_recruitment/hr_recruitment_data.xml | 2 +- addons/mail/data/mail_group_data.xml | 4 ++-- addons/mail/mail_group.py | 2 +- addons/mail/static/src/css/mail.css | 5 +++- addons/mail/static/src/css/mail_group.css | 2 +- addons/mrp/mrp_data.xml | 2 +- addons/note/__openerp__.py | 1 + addons/project/project_data.xml | 2 +- addons/project_gtd/__openerp__.py | 2 +- addons/project_gtd/project_gtd_data.xml | 2 +- addons/project_issue/project_issue_data.xml | 4 ++-- addons/project_issue/project_issue_demo.xml | 10 ++++---- addons/sale/sale_data.xml | 2 +- addons/web_linkedin/static/src/js/linkedin.js | 4 ++-- 20 files changed, 41 insertions(+), 53 deletions(-) diff --git a/addons/account_accountant/account_accountant_data.xml b/addons/account_accountant/account_accountant_data.xml index 14d8f59a5fe..c7d6eb80bc6 100644 --- a/addons/account_accountant/account_accountant_data.xml +++ b/addons/account_accountant/account_accountant_data.xml @@ -28,8 +28,8 @@ notification Accounting and Finance application installed! - With OpenERP's accounting, you get instant access to your financial data, and can setup analytic accounting, forecast taxes, control budgets, easily create and send invoices, record bank statements, etc.

-

The accounting features are fully integrated with other OpenERP applications to automate all your processes: creation of customer invoices, control of supplier invoices, point-of-sale integration, automated follow-ups, etc.

]]>
+ With OpenERP's accounting, you get instant access to your financial data, and can setup analytic accounting, forecast taxes, control budgets, easily create and send invoices, record bank statements, etc.

+

The accounting features are fully integrated with other OpenERP applications to automate all your processes: creation of customer invoices, control of supplier invoices, point-of-sale integration, automated follow-ups, etc.

]]>
diff --git a/addons/account_asset/account_asset.py b/addons/account_asset/account_asset.py index 0dddf441c59..a44226e76c8 100644 --- a/addons/account_asset/account_asset.py +++ b/addons/account_asset/account_asset.py @@ -377,9 +377,8 @@ class account_asset_depreciation_line(osv.osv): move_line_obj = self.pool.get('account.move.line') currency_obj = self.pool.get('res.currency') created_move_ids = [] + asset_ids = [] for line in self.browse(cr, uid, ids, context=context): - if currency_obj.is_zero(cr, uid, line.asset_id.currency_id, line.remaining_value): - can_close = True depreciation_date = time.strftime('%Y-%m-%d') period_ids = period_obj.find(cr, uid, depreciation_date, context=context) company_currency = line.asset_id.company_id.currency_id.id @@ -409,8 +408,8 @@ class account_asset_depreciation_line(osv.osv): 'period_id': period_ids and period_ids[0] or False, 'journal_id': journal_id, 'partner_id': partner_id, - 'currency_id': company_currency <> current_currency and current_currency or False, - 'amount_currency': company_currency <> current_currency and - sign * line.amount or 0.0, + 'currency_id': company_currency != current_currency and current_currency or False, + 'amount_currency': company_currency != current_currency and - sign * line.amount or 0.0, 'date': depreciation_date, }) move_line_obj.create(cr, uid, { @@ -423,16 +422,19 @@ class account_asset_depreciation_line(osv.osv): 'period_id': period_ids and period_ids[0] or False, 'journal_id': journal_id, 'partner_id': partner_id, - 'currency_id': company_currency <> current_currency and current_currency or False, - 'amount_currency': company_currency <> current_currency and sign * line.amount or 0.0, + 'currency_id': company_currency != current_currency and current_currency or False, + 'amount_currency': company_currency != current_currency and sign * line.amount or 0.0, 'analytic_account_id': line.asset_id.category_id.account_analytic_id.id, 'date': depreciation_date, 'asset_id': line.asset_id.id }) self.write(cr, uid, line.id, {'move_id': move_id}, context=context) created_move_ids.append(move_id) - if can_close: - asset_obj.write(cr, uid, [line.asset_id.id], {'state': 'close'}, context=context) + asset_ids.append(line.asset_id.id) + # we re-evaluate the assets to determine whether we can close them + for asset in asset_obj.browse(cr, uid, list(set(asset_ids)), context=context): + if currency_obj.is_zero(cr, uid, asset.currency_id, asset.value_residual): + asset.write({'state': 'close'}) return created_move_ids account_asset_depreciation_line() diff --git a/addons/base_crypt/crypt.py b/addons/base_crypt/crypt.py index bdb3521ec63..14e029eb988 100644 --- a/addons/base_crypt/crypt.py +++ b/addons/base_crypt/crypt.py @@ -43,7 +43,6 @@ import pooler from tools.translate import _ from service import security import logging -import pdb magic_md5 = '$1$' _logger = logging.getLogger(__name__) @@ -184,8 +183,7 @@ class users(osv.osv): cr = None try: cr = pooler.get_db(db).cursor() - test = self._login(cr, db, login, password) - return test + return self._login(cr, db, login, password) except Exception: _logger.exception('Cannot authenticate.') return Exception('Access denied.') @@ -203,23 +201,6 @@ class users(osv.osv): # Return early if no one has a login name like that. return False - cr.execute('SELECT id FROM ir_module_module WHERE name = \'auth_openid\' and state = \'installed\'') - if cr.rowcount: - cr.execute( 'SELECT password, id FROM res_users WHERE login=%s AND openid_key = %s AND active', - (login.encode('utf-8'),password.encode('utf-8'))) - if cr.rowcount: - # Check if the encrypted password matches against the one in the db. - cr.execute("""UPDATE res_users - SET login_date=now() AT TIME ZONE 'UTC' - WHERE id=%s AND openid_key=%s AND active - RETURNING id""", - (int(id), password.encode('utf-8'))) - res = cr.fetchone() - cr.commit() - - if res: - return res[0] - stored_pw = self.maybe_encrypt(cr, stored_pw, id) if not stored_pw: @@ -252,6 +233,7 @@ class users(osv.osv): if not passwd: # empty passwords disallowed for obvious security reasons raise security.ExceptionNoTb('AccessDenied') + # Get a chance to hash all passwords in db before using the uid_cache. obj = pooler.get_pool(db).get('res.users') if not hasattr(obj, "_salt_cache"): diff --git a/addons/crm/crm_data.xml b/addons/crm/crm_data.xml index 91117d2d83e..f2bf56e34ac 100644 --- a/addons/crm/crm_data.xml +++ b/addons/crm/crm_data.xml @@ -61,7 +61,7 @@ CRM application installed! From the top Sales menu you can track leads and opportunities, get accurate forecast on your sales pipeline, plan meetings and phonecalls, get realtime statistics and efficiently organize the communication with your prospects.

-
To manage quotations and sale orders, install the "Sales Management" application.

]]>
+

To manage quotations and sale orders, install the "Sales Management" application.

]]>
diff --git a/addons/fleet/static/src/img/icon.png b/addons/fleet/static/src/img/icon.png index 3db7ae9fa4962307aae3d3e446abfa47329ecc39..5b41e43c5bddb80c5b13b6a9e04ae6f0725163f5 100644 GIT binary patch literal 23083 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 MK?6}EXBqZ?0O=Vi(*OVf diff --git a/addons/hr_evaluation/hr_evaluation_data.xml b/addons/hr_evaluation/hr_evaluation_data.xml index 45100b14e2a..2afb5200091 100644 --- a/addons/hr_evaluation/hr_evaluation_data.xml +++ b/addons/hr_evaluation/hr_evaluation_data.xml @@ -811,8 +811,8 @@ Once the form had been filled, the employee send it to his supervisor. The comment you entered is in an invalid format. * His direct reports will be invited through OpenERP to express a feedback on their supervisor's leadership and to give their opinion about their own engagement and effectiveness, the continuous improvement and openness in action in the company, ... -* The employees will send back their anonymous answers to OpenERP. The data will be handled by the HR manager and a brief summary of the data will be sent to the concerned supervisor, to his team and to the supervisor's supervisor. -* The appraiser should rate the employee’s major work accomplishments and performance according to the metric provided below : +* The employees will send back their anonymous answers to OpenERP. The data will be handled by the HR manager and a brief summary of the data will be sent to the concerned supervisor, to his team and to the supervisor's supervisor. +* The appraiser should rate the employee’s major work accomplishments and performance according to the metric provided below : 1 - Significantly exceeds standards and expectations required of the position 2 - Exceeds standards and expectations diff --git a/addons/hr_recruitment/hr_recruitment_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml index f1c8ed46aca..adaeed81205 100644 --- a/addons/hr_recruitment/hr_recruitment_data.xml +++ b/addons/hr_recruitment/hr_recruitment_data.xml @@ -8,7 +8,7 @@ notification Recruitment Process application installed! - Manage job positions and your company's recruitment process. This application is integrated with the Survey application to help you define interviews for different jobs.

+ Manage job positions and your company's recruitment process. This application is integrated with the Survey application to help you define interviews for different jobs.

You can automatically receive job application though an email gateway, see the Human Resources settings.

]]>
diff --git a/addons/mail/data/mail_group_data.xml b/addons/mail/data/mail_group_data.xml index aae30226bf2..64d989f9e9d 100644 --- a/addons/mail/data/mail_group_data.xml +++ b/addons/mail/data/mail_group_data.xml @@ -19,8 +19,8 @@ notification Welcome to OpenERP! - Your homepage is a summary of messages you received and key information about documents you follow.
-The top menu bar contains all applications you installed. You can use this <i>Settings</i> menu to install more applications, activate others features or give access to new users.
+ Your homepage is a summary of messages you received and key information about documents you follow.

+The top menu bar contains all applications you installed. You can use the Settings menu to install more applications, activate others features or give access to new users.

To setup your preferences (name, email signature, avatar), click on the top right corner.

]]>
diff --git a/addons/mail/mail_group.py b/addons/mail/mail_group.py index d4c9c565bf3..b163882577b 100644 --- a/addons/mail/mail_group.py +++ b/addons/mail/mail_group.py @@ -130,7 +130,7 @@ class mail_group(osv.Model): params = { 'search_view_id': search_ref and search_ref[1] or False, 'domain': [('model', '=', 'mail.group'), ('res_id', '=', mail_group_id)], - 'context': {'default_model': 'mail.group', 'default_res_id': mail_group_id}, + 'context': {'default_model': 'mail.group', 'default_res_id': mail_group_id, 'search_default_message_unread': True}, 'res_model': 'mail.message', 'thread_level': 1, } diff --git a/addons/mail/static/src/css/mail.css b/addons/mail/static/src/css/mail.css index 0bcfd0d3733..b0ce6d499b5 100644 --- a/addons/mail/static/src/css/mail.css +++ b/addons/mail/static/src/css/mail.css @@ -87,8 +87,11 @@ margin-bottom: 0px; margin-top: 2px; } -.openerp .oe_mail .oe_msg .oe_msg_content .oe_msg_body p{ +.openerp .oe_mail .oe_msg .oe_msg_content .oe_msg_body p:first-of-type { margin-top: 0px; +} + +.openerp .oe_mail .oe_msg .oe_msg_content .oe_msg_body p { margin-bottom: 0px; } diff --git a/addons/mail/static/src/css/mail_group.css b/addons/mail/static/src/css/mail_group.css index 467bc53d80f..c1cefee9070 100644 --- a/addons/mail/static/src/css/mail_group.css +++ b/addons/mail/static/src/css/mail_group.css @@ -52,7 +52,7 @@ border-collapse: separate; -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); - box-shadow: 0 1px 4px 3px rgba(0, 0, 0, 0.4); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); -o-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); } diff --git a/addons/mrp/mrp_data.xml b/addons/mrp/mrp_data.xml index 1d92609eb7e..a6b65b7c475 100644 --- a/addons/mrp/mrp_data.xml +++ b/addons/mrp/mrp_data.xml @@ -8,7 +8,7 @@ notification MRP application installed! - Manage your manufacturing process with OpenERP by defining your bills of materials (BoM), routings and work centers.
+ Manage your manufacturing process with OpenERP by defining your bills of materials (BoM), routings and work centers.

This application supports complete integration and production scheduling for stockable goods, consumables, and services.

From the Manufacturing Settings, you can choose to compute production schedules periodically or just-in-time.

]]>
diff --git a/addons/note/__openerp__.py b/addons/note/__openerp__.py index d87ee70086d..797270637e2 100644 --- a/addons/note/__openerp__.py +++ b/addons/note/__openerp__.py @@ -38,6 +38,7 @@ Notes can be found in the 'Home' menu. 'author': 'OpenERP SA', 'website': 'http://openerp.com', 'summary': 'Sticky notes, Collaborative, Memos', + 'sequence': 9, 'depends': [ 'mail', ], diff --git a/addons/project/project_data.xml b/addons/project/project_data.xml index c5980ecddd2..08981bd126a 100644 --- a/addons/project/project_data.xml +++ b/addons/project/project_data.xml @@ -128,7 +128,7 @@ Project Management application installed! Manage multi-level projects and tasks. You can delegate tasks, track task work, and review your planning.

-

You can manage todo lists on tasks by installing the "Todo Lists" application, supporting the Getting Things Done (GTD) methodology.

+

You can manage todo lists on tasks by installing the Todo Lists application, supporting the Getting Things Done (GTD) methodology.

You can also manage issues/bugs in projects by installing the "Issue Tracker" application.

]]>
diff --git a/addons/project_gtd/__openerp__.py b/addons/project_gtd/__openerp__.py index 441f8859dc6..c99535f63fd 100644 --- a/addons/project_gtd/__openerp__.py +++ b/addons/project_gtd/__openerp__.py @@ -24,7 +24,7 @@ 'name': 'Todo Lists', 'version': '1.0', 'category': 'Project Management', - 'sequence': 9, + 'sequence': 100, 'summary': 'Personal Tasks, Contexts, Timeboxes', 'description': """ Implement concepts of the "Getting Things Done" methodology diff --git a/addons/project_gtd/project_gtd_data.xml b/addons/project_gtd/project_gtd_data.xml index 1536ac4be3f..9d8c99f23ff 100644 --- a/addons/project_gtd/project_gtd_data.xml +++ b/addons/project_gtd/project_gtd_data.xml @@ -32,7 +32,7 @@ notification Todo Lists application installed! - Add todo items on project tasks, to help you organize your work. + Add todo items on project tasks, to help you organize your work.

This application supports the Getting Things Done (GTD) methodology, based on David Allen's book.

]]>
diff --git a/addons/project_issue/project_issue_data.xml b/addons/project_issue/project_issue_data.xml index d70cd71e240..c1460167097 100644 --- a/addons/project_issue/project_issue_data.xml +++ b/addons/project_issue/project_issue_data.xml @@ -38,8 +38,8 @@ notification Issue Tracker application installed! - Manage the issues you might face in a project, such as bugs in a system, client complaints or material breakdowns. -You can record issues, assign them to a responsible person, and keep track of their status as they evolve over time. + Manage the issues you might face in a project, such as bugs in a system, client complaints or material breakdowns.

+You can record issues, assign them to a responsible person, and keep track of their status as they evolve over time.

Access all issues from the top Project menu, and access the issues of a specific project via the projects gallery view.

]]>
diff --git a/addons/project_issue/project_issue_demo.xml b/addons/project_issue/project_issue_demo.xml index 86e4c59b571..63fa37c84c3 100644 --- a/addons/project_issue/project_issue_demo.xml +++ b/addons/project_issue/project_issue_demo.xml @@ -2,19 +2,19 @@ - + - + - + - + - + diff --git a/addons/sale/sale_data.xml b/addons/sale/sale_data.xml index d5ed8e810d6..3fe03966da2 100644 --- a/addons/sale/sale_data.xml +++ b/addons/sale/sale_data.xml @@ -41,7 +41,7 @@ Sales Management application installed! This application lets you create and send quotations and process your sales orders; from delivery to invoicing.

-

If you need to manage your sales pipeline (leads, opportunities, phonecalls), the <i>CRM</i> application may be useful. Use the Settings menu to install it.

]]>
+

If you need to manage your sales pipeline (leads, opportunities, phonecalls), the CRM application may be useful. Use the Settings menu to install it.

]]>
diff --git a/addons/web_linkedin/static/src/js/linkedin.js b/addons/web_linkedin/static/src/js/linkedin.js index ec58c3736f4..d6237e48d51 100644 --- a/addons/web_linkedin/static/src/js/linkedin.js +++ b/addons/web_linkedin/static/src/js/linkedin.js @@ -20,7 +20,7 @@ openerp.web_linkedin = function(instance) { var tag = document.createElement('script'); tag.type = 'text/javascript'; tag.src = "http://platform.linkedin.com/in.js"; - tag.innerHTML = 'api_key : ' + self.api_key + '\nauthorize : true'; + tag.innerHTML = 'api_key : ' + self.api_key + '\nauthorize : true\nscope: r_network r_contactinfo'; document.getElementsByTagName('head')[0].appendChild(tag); self.linkedin_added = true; $(tag).load(function() { @@ -107,7 +107,7 @@ openerp.web_linkedin = function(instance) { } to_change.website = entity.websiteUrl; to_change.phone = false; - _.each(entity.locations.values || [], function(el) { + _.each((entity.locations || {}).values || [], function(el) { to_change.phone = el.contactInfo.phone1; }); var children_def = $.Deferred();