diff options
| author | Christophe Simonis <chs@odoo.com> | 2017-06-12 18:52:53 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2017-06-12 18:52:53 +0200 |
| commit | fcc33f3e09cf8f0e302886969b4c8b6275af7ffb (patch) | |
| tree | 2270a64c4fc56a04a91bc34f48d2f5d08f38c420 | |
| parent | b5a224a5837bb9b608fb1185e3e44e8c409fdfb0 (diff) | |
| parent | 6ceecffcad6bd0c8c2d73f44e8d6fdb4e520990b (diff) | |
[MERGE] forward port branch saas-11 up to 6ceecffcad6
| -rw-r--r-- | addons/auth_oauth/models/res_config.py | 4 | ||||
| -rw-r--r-- | addons/point_of_sale/models/pos_order.py | 4 | ||||
| -rw-r--r-- | addons/sale_margin/report/sale_report.py | 2 | ||||
| -rw-r--r-- | addons/web/static/src/js/views/form_view.js | 3 | ||||
| -rw-r--r-- | addons/web_kanban/static/src/js/kanban_view.js | 7 | ||||
| -rw-r--r-- | odoo/addons/base/ir/ir_model_view.xml | 4 | ||||
| -rw-r--r-- | odoo/addons/base/res/res_company.py | 13 |
7 files changed, 26 insertions, 11 deletions
diff --git a/addons/auth_oauth/models/res_config.py b/addons/auth_oauth/models/res_config.py index 2fb55d5ab09..f1a22005b13 100644 --- a/addons/auth_oauth/models/res_config.py +++ b/addons/auth_oauth/models/res_config.py @@ -33,7 +33,7 @@ class BaseConfigSettings(models.TransientModel): @api.model def get_oauth_providers(self, fields): - google_provider = self.env.ref('auth_oauth.provider_google') + google_provider = self.env.ref('auth_oauth.provider_google', False) return { 'auth_oauth_google_enabled': google_provider.enabled, 'auth_oauth_google_client_id': google_provider.client_id, @@ -43,7 +43,7 @@ class BaseConfigSettings(models.TransientModel): @api.multi def set_oauth_providers(self): self.ensure_one() - google_provider = self.env.ref('auth_oauth.provider_google') + google_provider = self.env.ref('auth_oauth.provider_google', False) rg = { 'enabled': self.auth_oauth_google_enabled, 'client_id': self.auth_oauth_google_client_id, diff --git a/addons/point_of_sale/models/pos_order.py b/addons/point_of_sale/models/pos_order.py index 402ae6ea585..6f2972dc404 100644 --- a/addons/point_of_sale/models/pos_order.py +++ b/addons/point_of_sale/models/pos_order.py @@ -611,11 +611,11 @@ class PosOrder(models.Model): 'location_id': location_id, 'location_dest_id': destination_id, } - pos_qty = any([x.qty > 0 for x in order.lines]) + pos_qty = any([x.qty > 0 for x in order.lines if x.product_id.type in ['product', 'consu']]) if pos_qty: order_picking = Picking.create(picking_vals.copy()) order_picking.message_post(body=message) - neg_qty = any([x.qty < 0 for x in order.lines]) + neg_qty = any([x.qty < 0 for x in order.lines if x.product_id.type in ['product', 'consu']]) if neg_qty: return_vals = picking_vals.copy() return_vals.update({ diff --git a/addons/sale_margin/report/sale_report.py b/addons/sale_margin/report/sale_report.py index 5bfcaaacf34..f69a0e2c023 100644 --- a/addons/sale_margin/report/sale_report.py +++ b/addons/sale_margin/report/sale_report.py @@ -10,4 +10,4 @@ class SaleReport(models.Model): margin = fields.Float('Margin') def _select(self): - return super(SaleReport, self)._select() + ", SUM(l.margin) AS margin" + return super(SaleReport, self)._select() + ", SUM(l.margin / COALESCE(cr.rate, 1.0)) AS margin" diff --git a/addons/web/static/src/js/views/form_view.js b/addons/web/static/src/js/views/form_view.js index 640644b482a..2ca20d5f9ab 100644 --- a/addons/web/static/src/js/views/form_view.js +++ b/addons/web/static/src/js/views/form_view.js @@ -160,9 +160,10 @@ var FormView = View.extend(common.FieldManagerMixin, { if (this.fields_view.toolbar) { this.sidebar.add_toolbar(this.fields_view.toolbar); } + var canDuplicate = this.is_action_enabled('create') && this.is_action_enabled('duplicate'); this.sidebar.add_items('other', _.compact([ this.is_action_enabled('delete') && { label: _t('Delete'), callback: this.on_button_delete }, - this.is_action_enabled('create') && { label: _t('Duplicate'), callback: this.on_button_duplicate } + canDuplicate && { label: _t('Duplicate'), callback: this.on_button_duplicate } ])); this.sidebar.appendTo($node); diff --git a/addons/web_kanban/static/src/js/kanban_view.js b/addons/web_kanban/static/src/js/kanban_view.js index 4d2aed09323..83a6de85042 100644 --- a/addons/web_kanban/static/src/js/kanban_view.js +++ b/addons/web_kanban/static/src/js/kanban_view.js @@ -741,14 +741,15 @@ var KanbanView = View.extend({ add_new_column: function (event) { var self = this; var model = new Model(this.relation, this.search_context); - model.call('create', [{name: event.data.value}], { + var name = event.data.value; + model.call('name_create', [name], { context: this.search_context, - }).then(function (id) { + }).then(function (result) { var dataset = new data.DataSetSearch(self, self.model, self.dataset.get_context(), []); var group_data = { records: [], title: event.data.value, - id: id, + id: result[0], attributes: {folded: false}, dataset: dataset, values: {}, diff --git a/odoo/addons/base/ir/ir_model_view.xml b/odoo/addons/base/ir/ir_model_view.xml index 0a8e973d5b4..f7f55779b80 100644 --- a/odoo/addons/base/ir/ir_model_view.xml +++ b/odoo/addons/base/ir/ir_model_view.xml @@ -221,7 +221,7 @@ <record id="view_model_fields_form" model="ir.ui.view"> <field name="model">ir.model.fields</field> <field name="arch" type="xml"> - <form string="Fields"> + <form string="Fields" duplicate="false"> <sheet> <group> <group> @@ -333,7 +333,7 @@ <record id="view_model_fields_tree" model="ir.ui.view"> <field name="model">ir.model.fields</field> <field name="arch" type="xml"> - <tree string="Fields"> + <tree string="Fields" duplicate="false"> <field name="name"/> <field name="field_description"/> <field name="model_id"/> diff --git a/odoo/addons/base/res/res_company.py b/odoo/addons/base/res/res_company.py index bdfd6dc62b8..81d0ac2a8e0 100644 --- a/odoo/addons/base/res/res_company.py +++ b/odoo/addons/base/res/res_company.py @@ -13,6 +13,19 @@ class Company(models.Model): _description = 'Companies' _order = 'sequence, name' + @api.multi + def copy(self, default=None): + """ + Duplicating a company without specifying a partner duplicate the partner + """ + self.ensure_one() + default = dict(default or {}) + if not default.get('name') and not default.get('partner_id'): + copy_partner = self.partner_id.copy() + default['partner_id'] = copy_partner.id + default['name'] = copy_partner.name + return super(Company, self).copy(default) + _header = """ <header> <pageTemplate> |
