summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2018-05-09 13:55:27 +0200
committerChristophe Simonis <chs@odoo.com>2018-05-09 13:55:27 +0200
commiteeae2b80ea9e679a86ca7c8982e679b9ee9c9023 (patch)
treefff56bc907eb6874dc7a9b78382bd9837441b918
parent7b67a1474b4f8df411804cebf8ebd7afa193d0dd (diff)
parentb793e23ae53b5f1edab8c98bbed7ac5f5f921280 (diff)
[MERGE] forward port branch 11.0 up to b793e23ae53
-rw-r--r--addons/stock/models/procurement.py2
-rw-r--r--addons/website/models/website.py3
-rw-r--r--addons/website/views/website_templates.xml2
-rw-r--r--odoo/addons/base/models/ir_actions.py1
-rw-r--r--odoo/models.py4
-rw-r--r--odoo/tools/convert.py7
6 files changed, 14 insertions, 5 deletions
diff --git a/addons/stock/models/procurement.py b/addons/stock/models/procurement.py
index ba047badef8..fd08b362949 100644
--- a/addons/stock/models/procurement.py
+++ b/addons/stock/models/procurement.py
@@ -77,7 +77,7 @@ class ProcurementRule(models.Model):
data = self._get_stock_move_values(product_id, product_qty, product_uom, location_id, name, origin, values, group_id)
# Since action_confirm launch following procurement_group we should activate it.
- move = self.env['stock.move'].sudo().create(data)
+ move = self.env['stock.move'].sudo().with_context(force_company=data.get('company_id', False)).create(data)
move._action_confirm()
return True
diff --git a/addons/website/models/website.py b/addons/website/models/website.py
index 1a18cae3ca6..0dbb1842235 100644
--- a/addons/website/models/website.py
+++ b/addons/website/models/website.py
@@ -885,9 +885,10 @@ class Menu(models.Model):
for menu in data['data']:
menu_id = self.browse(menu['id'])
# if the url match a website.page, set the m2o relation
- page = self.env['website.page'].search([('url', '=', menu['url'])], limit=1)
+ page = self.env['website.page'].search(['|', ('url', '=', menu['url']), ('url', '=', '/' + menu['url'])], limit=1)
if page:
menu['page_id'] = page.id
+ menu['url'] = page.url
elif menu_id.page_id:
menu_id.page_id.write({'url': menu['url']})
menu_id.write(menu)
diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml
index 34e8c8abbfd..2fcfd335f9b 100644
--- a/addons/website/views/website_templates.xml
+++ b/addons/website/views/website_templates.xml
@@ -74,7 +74,7 @@
<span t-field="submenu.name"/>
</a>
</li>
- <li t-if="submenu.is_visible and submenu.child_id.filtered(lambda menu: menu.is_visible)" t-attf-class="dropdown #{
+ <li t-if="submenu.child_id.filtered(lambda menu: menu.is_visible)" t-attf-class="dropdown #{
(submenu.clean_url() and submenu.clean_url() != '/' and any([request.httprequest.path == child.url for child in submenu.child_id if child.url]) or
(submenu.clean_url() and request.httprequest.path == submenu.clean_url())) and 'active'
}">
diff --git a/odoo/addons/base/models/ir_actions.py b/odoo/addons/base/models/ir_actions.py
index f9ec9413e2f..5559429709d 100644
--- a/odoo/addons/base/models/ir_actions.py
+++ b/odoo/addons/base/models/ir_actions.py
@@ -34,6 +34,7 @@ class IrActions(models.Model):
binding_model_id = fields.Many2one('ir.model', ondelete='cascade',
help="Setting a value makes this action available in the sidebar for the given model.")
binding_type = fields.Selection([('action', 'Action'),
+ ('action_form_only', "Form-only"),
('report', 'Report')],
required=True, default='action')
diff --git a/odoo/models.py b/odoo/models.py
index 3d074b3679a..6b93f68972e 100644
--- a/odoo/models.py
+++ b/odoo/models.py
@@ -1392,6 +1392,9 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})):
resaction = [action
for action in bindings['action']
if view_type == 'tree' or not action.get('multi')]
+ resrelate = []
+ if view_type == 'form':
+ resrelate = bindings['action_form_only']
for res in itertools.chain(resreport, resaction):
res['string'] = res['name']
@@ -1399,6 +1402,7 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})):
result['toolbar'] = {
'print': resreport,
'action': resaction,
+ 'relate': resrelate,
}
return result
diff --git a/odoo/tools/convert.py b/odoo/tools/convert.py
index 9a46a88f175..16dd569239f 100644
--- a/odoo/tools/convert.py
+++ b/odoo/tools/convert.py
@@ -426,11 +426,14 @@ form: module.record_id""" % (xml_id,)
if rec.get('target'):
res['target'] = rec.get('target','')
+ if rec.get('multi'):
+ res['multi'] = safe_eval(rec.get('multi', 'False'))
if src_model:
res['binding_model_id'] = self.env['ir.model']._get(src_model).id
res['binding_type'] = 'report' if rec.get('key2') == 'client_print_multi' else 'action'
- if rec.get('multi'):
- res['multi'] = safe_eval(rec.get('multi', 'False'))
+ if rec.get('key2') in (None, 'client_action_relate'):
+ if not res.get('multi'):
+ res['binding_type'] = 'action_form_only'
id = self.env['ir.model.data']._update('ir.actions.act_window', self.module, res, xml_id, noupdate=self.isnoupdate(data_node), mode=self.mode)
self.idref[xml_id] = int(id)