mirror of https://github.com/OCA/web.git
[MIG] web_m2x_options_manager: Migration to 18.0
parent
5f257c3ae4
commit
55db77be66
|
@ -75,6 +75,12 @@ Contributors
|
||||||
- Duong (Tran Quoc) <duongtq@trobz.com>
|
- Duong (Tran Quoc) <duongtq@trobz.com>
|
||||||
- Chau Le <chaulb@trobz.com>
|
- Chau Le <chaulb@trobz.com>
|
||||||
|
|
||||||
|
Other credits
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The migration of this module from 17.0 to 18.0 was financially supported
|
||||||
|
by Camptocamp
|
||||||
|
|
||||||
Maintainers
|
Maintainers
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
"summary": 'Adds an interface to manage the "Create" and'
|
"summary": 'Adds an interface to manage the "Create" and'
|
||||||
' "Create and Edit" options for specific models and'
|
' "Create and Edit" options for specific models and'
|
||||||
" fields.",
|
" fields.",
|
||||||
"version": "17.0.1.0.0",
|
"version": "18.0.1.0.0",
|
||||||
"author": "Camptocamp, Odoo Community Association (OCA)",
|
"author": "Camptocamp, Odoo Community Association (OCA)",
|
||||||
"license": "AGPL-3",
|
"license": "AGPL-3",
|
||||||
"category": "Web",
|
"category": "Web",
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<odoo>
|
<odoo>
|
||||||
|
|
||||||
<record id="res_partner_demo_form_view" model="ir.ui.view">
|
<record id="res_partner_demo_form_view" model="ir.ui.view">
|
||||||
<field name="name">res.partner.demo.form.view</field>
|
<field name="name">res.partner.demo.form.view</field>
|
||||||
<field name="model">res.partner</field>
|
<field name="model">res.partner</field>
|
||||||
|
@ -15,15 +14,14 @@
|
||||||
<field name="category_id" options="{'create': False}" />
|
<field name="category_id" options="{'create': False}" />
|
||||||
<!-- One2many -->
|
<!-- One2many -->
|
||||||
<field name="user_ids">
|
<field name="user_ids">
|
||||||
<tree>
|
<list>
|
||||||
<!-- Many2one within tree -->
|
<!-- Many2one within list -->
|
||||||
<field name="company_id" options="{'create': False}" />
|
<field name="company_id" options="{'create': False}" />
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</group>
|
</group>
|
||||||
</sheet>
|
</sheet>
|
||||||
</form>
|
</form>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Copyright 2021 Camptocamp SA
|
# Copyright 2021 Camptocamp SA
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
from odoo import _, api, fields, models
|
from odoo import api, fields, models
|
||||||
from odoo.exceptions import ValidationError
|
from odoo.exceptions import ValidationError
|
||||||
from odoo.tools.cache import ormcache
|
from odoo.tools.cache import ormcache
|
||||||
from odoo.tools.safe_eval import safe_eval
|
from odoo.tools.safe_eval import safe_eval
|
||||||
|
@ -123,7 +123,7 @@ class M2xCreateEditOption(models.Model):
|
||||||
def _check_field_in_model(self):
|
def _check_field_in_model(self):
|
||||||
for opt in self:
|
for opt in self:
|
||||||
if opt.field_id.model_id != opt.model_id:
|
if opt.field_id.model_id != opt.model_id:
|
||||||
msg = _(
|
msg = self.env._(
|
||||||
"'%(field_name)s' is not a valid field for model '%(model_name)s'!",
|
"'%(field_name)s' is not a valid field for model '%(model_name)s'!",
|
||||||
field_name=opt.field_name,
|
field_name=opt.field_name,
|
||||||
model_name=opt.model_name,
|
model_name=opt.model_name,
|
||||||
|
@ -134,7 +134,7 @@ class M2xCreateEditOption(models.Model):
|
||||||
def _check_field_type(self):
|
def _check_field_type(self):
|
||||||
ttypes = ("many2many", "many2one")
|
ttypes = ("many2many", "many2one")
|
||||||
if any(o.field_id.ttype not in ttypes for o in self):
|
if any(o.field_id.ttype not in ttypes for o in self):
|
||||||
msg = _("Only Many2many and Many2one fields can be chosen!")
|
msg = self.env._("Only Many2many and Many2one fields can be chosen!")
|
||||||
raise ValidationError(msg)
|
raise ValidationError(msg)
|
||||||
|
|
||||||
def _apply_options(self, node):
|
def _apply_options(self, node):
|
||||||
|
@ -145,14 +145,14 @@ class M2xCreateEditOption(models.Model):
|
||||||
options = safe_eval(options, dict(self.env.context or [])) or {}
|
options = safe_eval(options, dict(self.env.context or [])) or {}
|
||||||
|
|
||||||
for k in ("create", "create_edit"):
|
for k in ("create", "create_edit"):
|
||||||
opt = self["option_%s" % k]
|
opt = self[f"option_{k}"]
|
||||||
if opt == "none":
|
if opt == "none":
|
||||||
continue
|
continue
|
||||||
mode, val = opt.split("_")
|
mode, val = opt.split("_")
|
||||||
if k not in options:
|
if k not in options:
|
||||||
options[k] = val == "true"
|
options[k] = val == "true"
|
||||||
if mode == "force":
|
if mode == "force":
|
||||||
options["no_%s" % k] = val == "false"
|
options[f"no_{k}"] = val == "false"
|
||||||
if not self.option_create_edit_wizard:
|
if not self.option_create_edit_wizard:
|
||||||
options["no_quick_create"] = True
|
options["no_quick_create"] = True
|
||||||
node.set("options", str(options))
|
node.set("options", str(options))
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
The migration of this module from 17.0 to 18.0 was financially supported by Camptocamp
|
|
@ -380,7 +380,8 @@ Many2one and Many2many fields directly from the ir.model form view.</p>
|
||||||
<li><a class="reference internal" href="#credits" id="toc-entry-3">Credits</a><ul>
|
<li><a class="reference internal" href="#credits" id="toc-entry-3">Credits</a><ul>
|
||||||
<li><a class="reference internal" href="#authors" id="toc-entry-4">Authors</a></li>
|
<li><a class="reference internal" href="#authors" id="toc-entry-4">Authors</a></li>
|
||||||
<li><a class="reference internal" href="#contributors" id="toc-entry-5">Contributors</a></li>
|
<li><a class="reference internal" href="#contributors" id="toc-entry-5">Contributors</a></li>
|
||||||
<li><a class="reference internal" href="#maintainers" id="toc-entry-6">Maintainers</a></li>
|
<li><a class="reference internal" href="#other-credits" id="toc-entry-6">Other credits</a></li>
|
||||||
|
<li><a class="reference internal" href="#maintainers" id="toc-entry-7">Maintainers</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -420,8 +421,13 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
|
||||||
<li>Chau Le <<a class="reference external" href="mailto:chaulb@trobz.com">chaulb@trobz.com</a>></li>
|
<li>Chau Le <<a class="reference external" href="mailto:chaulb@trobz.com">chaulb@trobz.com</a>></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="section" id="other-credits">
|
||||||
|
<h2><a class="toc-backref" href="#toc-entry-6">Other credits</a></h2>
|
||||||
|
<p>The migration of this module from 17.0 to 18.0 was financially supported
|
||||||
|
by Camptocamp</p>
|
||||||
|
</div>
|
||||||
<div class="section" id="maintainers">
|
<div class="section" id="maintainers">
|
||||||
<h2><a class="toc-backref" href="#toc-entry-6">Maintainers</a></h2>
|
<h2><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h2>
|
||||||
<p>This module is maintained by the OCA.</p>
|
<p>This module is maintained by the OCA.</p>
|
||||||
<a class="reference external image-reference" href="https://odoo-community.org">
|
<a class="reference external image-reference" href="https://odoo-community.org">
|
||||||
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
|
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<odoo>
|
<odoo>
|
||||||
|
|
||||||
<record id="view_model_form_inherit" model="ir.ui.view">
|
<record id="view_model_form_inherit" model="ir.ui.view">
|
||||||
<field name="name">view.model.form.inherit</field>
|
<field name="name">view.model.form.inherit</field>
|
||||||
<field name="model">ir.model</field>
|
<field name="model">ir.model</field>
|
||||||
|
@ -17,7 +16,7 @@
|
||||||
nolabel="1"
|
nolabel="1"
|
||||||
context="{'default_model_name': model}"
|
context="{'default_model_name': model}"
|
||||||
>
|
>
|
||||||
<tree editable="bottom">
|
<list editable="bottom">
|
||||||
<field name="model_name" column_invisible="1" />
|
<field name="model_name" column_invisible="1" />
|
||||||
<field
|
<field
|
||||||
name="field_id"
|
name="field_id"
|
||||||
|
@ -28,11 +27,10 @@
|
||||||
<field name="option_create" />
|
<field name="option_create" />
|
||||||
<field name="option_create_edit" />
|
<field name="option_create_edit" />
|
||||||
<field name="option_create_edit_wizard" />
|
<field name="option_create_edit_wizard" />
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
</xpath>
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|
Loading…
Reference in New Issue