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 3db7ae9fa49..5b41e43c5bd 100644 Binary files a/addons/fleet/static/src/img/icon.png and b/addons/fleet/static/src/img/icon.png differ 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();