summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2017-06-12 19:19:42 +0200
committerChristophe Simonis <chs@odoo.com>2017-06-12 19:19:42 +0200
commitaae12c2bad05c39e677df75d8a3178917ce145fb (patch)
tree7ab834c37319a390cde9222423248616c89760bc
parent222cca2feb11a2dc0e1c709c9c85804090014057 (diff)
parent62fec71568f204ce07a935edcf1a8b774a3537ed (diff)
[MERGE] forward port branch saas-14 up to 62fec71568f
-rw-r--r--addons/account/views/account_payment_view.xml4
-rw-r--r--addons/auth_oauth/models/res_config.py4
-rw-r--r--addons/hr_expense/models/hr_expense.py7
-rw-r--r--addons/hr_expense/report/report_expense_sheet.xml31
-rw-r--r--addons/hr_expense/views/hr_expense_views.xml1
-rw-r--r--addons/point_of_sale/models/pos_order.py4
-rw-r--r--addons/sale_margin/report/sale_report.py2
-rw-r--r--addons/stock/security/stock_security.xml7
-rw-r--r--addons/web/static/src/js/views/form_view.js3
-rw-r--r--addons/web_kanban/static/src/js/kanban_view.js7
-rw-r--r--odoo/addons/base/ir/ir_model_view.xml4
-rw-r--r--odoo/addons/base/res/res_company.py13
12 files changed, 57 insertions, 30 deletions
diff --git a/addons/account/views/account_payment_view.xml b/addons/account/views/account_payment_view.xml
index 620d6638e65..17651333b3c 100644
--- a/addons/account/views/account_payment_view.xml
+++ b/addons/account/views/account_payment_view.xml
@@ -142,7 +142,7 @@
<field name="res_model">account.payment</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,graph</field>
- <field name="context">{'default_payment_type': 'inbound'}</field>
+ <field name="context">{'default_payment_type': 'inbound', 'default_partner_type': 'customer'}</field>
<field name="domain">[('partner_type', '=', 'customer')]</field>
<field name="view_id" ref="view_account_payment_tree"/>
<field name="help" type="html">
@@ -160,7 +160,7 @@
<field name="res_model">account.payment</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,graph</field>
- <field name="context">{'default_payment_type': 'outbound'}</field>
+ <field name="context">{'default_payment_type': 'outbound', 'default_partner_type': 'supplier'}</field>
<field name="domain">[('partner_type', '=', 'supplier')]</field>
<field name="view_id" ref="view_account_supplier_payment_tree"/>
<field name="help" type="html">
diff --git a/addons/auth_oauth/models/res_config.py b/addons/auth_oauth/models/res_config.py
index 39c72880a38..20784bd9d18 100644
--- a/addons/auth_oauth/models/res_config.py
+++ b/addons/auth_oauth/models/res_config.py
@@ -32,7 +32,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,
@@ -42,7 +42,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/hr_expense/models/hr_expense.py b/addons/hr_expense/models/hr_expense.py
index facef9e2f6f..5c03e56c495 100644
--- a/addons/hr_expense/models/hr_expense.py
+++ b/addons/hr_expense/models/hr_expense.py
@@ -473,9 +473,12 @@ class HrExpenseSheet(models.Model):
self.department_id = self.employee_id.department_id
@api.one
- @api.depends('expense_line_ids', 'expense_line_ids.total_amount')
+ @api.depends('expense_line_ids', 'expense_line_ids.total_amount', 'expense_line_ids.currency_id')
def _compute_amount(self):
- self.total_amount = sum(self.expense_line_ids.mapped('total_amount'))
+ if len(self.expense_line_ids.mapped('currency_id')) < 2:
+ self.total_amount = sum(self.expense_line_ids.mapped('total_amount'))
+ else:
+ self.total_amount = 0.0
# FIXME: A 4 command is missing to explicitly declare the one2many relation
# between the sheet and the lines when using 'default_expense_line_ids':[ids]
diff --git a/addons/hr_expense/report/report_expense_sheet.xml b/addons/hr_expense/report/report_expense_sheet.xml
index e033d7920c1..f2fb3575005 100644
--- a/addons/hr_expense/report/report_expense_sheet.xml
+++ b/addons/hr_expense/report/report_expense_sheet.xml
@@ -71,26 +71,27 @@
</td>
<td class="text-right">
<span t-field="line.total_amount"
- t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
+ t-options='{"widget": "monetary", "display_currency": line.currency_id}'/>
</td>
</tr>
</tbody>
</table>
- <div class="row">
- <div class="col-xs-4 pull-right">
- <table class="table table-condensed">
- <tr class="border-black">
- <td><strong>Total</strong></td>
- <td class="text-right">
- <span t-field="o.total_amount"
- t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
- </td>
- </tr>
- </table>
+ <t t-if="len(o.mapped('expense_line_ids').mapped('currency_id')) &lt; 2">
+ <div class="row">
+ <div class="col-xs-4 pull-right">
+ <table class="table table-condensed">
+ <tr class="border-black">
+ <td><strong>Total</strong></td>
+ <td class="text-right">
+ <span t-field="o.total_amount"
+ t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
+ </td>
+ </tr>
+ </table>
+ </div>
</div>
- </div>
-
+ </t>
<p>Certified honest and conform,<br/>(Date and signature).<br/><br/></p>
</div>
</t>
@@ -110,4 +111,4 @@
<field name="print_report_name">'Expenses'+'-'+(object.employee_id.name)+'-'+(object.name)</field>
</record>
-</odoo> \ No newline at end of file
+</odoo>
diff --git a/addons/hr_expense/views/hr_expense_views.xml b/addons/hr_expense/views/hr_expense_views.xml
index efed47fd890..afe006a9b43 100644
--- a/addons/hr_expense/views/hr_expense_views.xml
+++ b/addons/hr_expense/views/hr_expense_views.xml
@@ -459,6 +459,7 @@
<field name="date"/>
<field name="name"/>
<field name="state" invisible="1"/>
+ <field name="currency_id" invisible="1"/>
<field name="analytic_account_id" groups="analytic.group_analytic_accounting"/>
<field name="message_unread" invisible="1"/>
<field name="attachment_number" string=" "/>
diff --git a/addons/point_of_sale/models/pos_order.py b/addons/point_of_sale/models/pos_order.py
index acd6d87999e..1bec12c7eb1 100644
--- a/addons/point_of_sale/models/pos_order.py
+++ b/addons/point_of_sale/models/pos_order.py
@@ -608,11 +608,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/stock/security/stock_security.xml b/addons/stock/security/stock_security.xml
index 7763c6666df..2d9a0be85b5 100644
--- a/addons/stock/security/stock_security.xml
+++ b/addons/stock/security/stock_security.xml
@@ -133,5 +133,12 @@
<field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
+
+ <record model="ir.rule" id="stock_location_route_comp_rule">
+ <field name="name">stock_location_route multi-company</field>
+ <field name="model_id" ref="model_stock_location_route"/>
+ <field name="global" eval="True"/>
+ <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
+ </record>
</data>
</odoo>
diff --git a/addons/web/static/src/js/views/form_view.js b/addons/web/static/src/js/views/form_view.js
index 0471f6d3156..096ae4adad6 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 39ea7a1a91e..3033cb1b00d 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 ad4307b9e76..5e04ac92eda 100644
--- a/odoo/addons/base/ir/ir_model_view.xml
+++ b/odoo/addons/base/ir/ir_model_view.xml
@@ -218,7 +218,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>
@@ -327,7 +327,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 18fbd6a0a3e..9f240f314fa 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>