[MIG] base_dynamic_list from v10 to v14

This commit is contained in:
Alexis de Lattre
2021-08-24 21:54:06 +02:00
parent 2a7ec92a37
commit e08d658b25
3 changed files with 21 additions and 43 deletions

View File

@@ -1,11 +1,10 @@
# -*- coding: utf-8 -*- # Copyright 2020-2021 Akretion France (http://www.akretion.com)
# Copyright 2020 Akretion France (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com> # @author Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{ {
'name': 'Base Dynamic List', 'name': 'Base Dynamic List',
'version': '10.0.1.0.0', 'version': '14.0.1.0.0',
'category': 'Tools', 'category': 'Tools',
'license': 'AGPL-3', 'license': 'AGPL-3',
'summary': 'Dynamic lists', 'summary': 'Dynamic lists',
@@ -28,7 +27,7 @@ To use it, you need to do 2 or 3 things :
1) Add an entry in the domain field and the object you selected: 1) Add an entry in the domain field and the object you selected:
domain = fields.Selection(selection_add=[('risk.type', "Risk Type")]) domain = fields.Selection(selection_add=[('risk.type', "Risk Type")], ondelete={"risk.type": "set null"})
2) Add the many2one field on your object: 2) Add the many2one field on your object:

View File

@@ -1,5 +1,4 @@
# -*- coding: utf-8 -*- # Copyright 2020-2021 Akretion France (http://www.akretion.com)
# Copyright 2020 Akretion France (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com> # @author Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
@@ -12,7 +11,7 @@ class DynamicList(models.Model):
_order = 'sequence, id' _order = 'sequence, id'
name = fields.Char(required=True) name = fields.Char(required=True)
sequence = fields.Integer() sequence = fields.Integer(default=10)
active = fields.Boolean(default=True) active = fields.Boolean(default=True)
domain = fields.Selection([], string='Domain', required=True, index=True) domain = fields.Selection([], string='Domain', required=True, index=True)
@@ -29,7 +28,7 @@ class DynamicListTranslate(models.Model):
_order = 'sequence, id' _order = 'sequence, id'
name = fields.Char(translate=True, required=True) name = fields.Char(translate=True, required=True)
sequence = fields.Integer() sequence = fields.Integer(default=10)
active = fields.Boolean(default=True) active = fields.Boolean(default=True)
domain = fields.Selection([], string='Domain', required=True, index=True) domain = fields.Selection([], string='Domain', required=True, index=True)
@@ -47,7 +46,7 @@ class DynamicListCode(models.Model):
code = fields.Char(required=True) code = fields.Char(required=True)
name = fields.Char(translate=True, required=True) name = fields.Char(translate=True, required=True)
sequence = fields.Integer() sequence = fields.Integer(default=10)
active = fields.Boolean(default=True) active = fields.Boolean(default=True)
domain = fields.Selection([], string='Domain', required=True, index=True) domain = fields.Selection([], string='Domain', required=True, index=True)
@@ -61,7 +60,7 @@ class DynamicListCode(models.Model):
def name_get(self): def name_get(self):
res = [] res = []
for rec in self: for rec in self:
res.append((rec.id, u'[%s] %s' % (rec.code, rec.name))) res.append((rec.id, '[%s] %s' % (rec.code, rec.name)))
return res return res
@api.model @api.model
@@ -74,7 +73,7 @@ class DynamicListCode(models.Model):
[('code', '=', name)] + args, limit=limit) [('code', '=', name)] + args, limit=limit)
if recs: if recs:
return recs.name_get() return recs.name_get()
return super(DynamicListCode, self).name_search( return super().name_search(
name=name, args=args, operator=operator, limit=limit) name=name, args=args, operator=operator, limit=limit)
@@ -85,7 +84,7 @@ class DynamicListCodeTranslate(models.Model):
code = fields.Char(required=True) code = fields.Char(required=True)
name = fields.Char(translate=True, required=True) name = fields.Char(translate=True, required=True)
sequence = fields.Integer() sequence = fields.Integer(default=10)
active = fields.Boolean(default=True) active = fields.Boolean(default=True)
domain = fields.Selection([], string='Domain', required=True, index=True) domain = fields.Selection([], string='Domain', required=True, index=True)
@@ -99,7 +98,7 @@ class DynamicListCodeTranslate(models.Model):
def name_get(self): def name_get(self):
res = [] res = []
for rec in self: for rec in self:
res.append((rec.id, u'[%s] %s' % (rec.code, rec.name))) res.append((rec.id, '[%s] %s' % (rec.code, rec.name)))
return res return res
@api.model @api.model
@@ -112,5 +111,5 @@ class DynamicListCodeTranslate(models.Model):
[('code', '=', name)] + args, limit=limit) [('code', '=', name)] + args, limit=limit)
if recs: if recs:
return recs.name_get() return recs.name_get()
return super(DynamicListCodeTranslate, self).name_search( return super().name_search(
name=name, args=args, operator=operator, limit=limit) name=name, args=args, operator=operator, limit=limit)

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright 2020 Akretion France (http://www.akretion.com/) Copyright 2020-2021 Akretion France (http://www.akretion.com/)
@author: Alexis de Lattre <alexis.delattre@akretion.com> @author: Alexis de Lattre <alexis.delattre@akretion.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
--> -->
@@ -15,16 +15,11 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form> <form>
<sheet> <sheet>
<div class="oe_button_box" name="button_box"> <widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
<button name="toggle_active" type="object"
class="oe_stat_button" icon="fa-archive">
<field name="active" widget="boolean_button"
options='{"terminology": "archive"}'/>
</button>
</div>
<group name="main"> <group name="main">
<field name="name"/> <field name="name"/>
<field name="domain" invisible="not context.get('dynamic_list_main_view')"/> <field name="domain" invisible="not context.get('dynamic_list_main_view')"/>
<field name="active" invisible="1"/>
</group> </group>
</sheet> </sheet>
</form> </form>
@@ -70,16 +65,11 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form> <form>
<sheet> <sheet>
<div class="oe_button_box" name="button_box"> <widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
<button name="toggle_active" type="object"
class="oe_stat_button" icon="fa-archive">
<field name="active" widget="boolean_button"
options='{"terminology": "archive"}'/>
</button>
</div>
<group name="main"> <group name="main">
<field name="name"/> <field name="name"/>
<field name="domain" invisible="not context.get('dynamic_list_translate_main_view')"/> <field name="domain" invisible="not context.get('dynamic_list_translate_main_view')"/>
<field name="active" invisible="1"/>
</group> </group>
</sheet> </sheet>
</form> </form>
@@ -125,17 +115,12 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form> <form>
<sheet> <sheet>
<div class="oe_button_box" name="button_box"> <widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
<button name="toggle_active" type="object"
class="oe_stat_button" icon="fa-archive">
<field name="active" widget="boolean_button"
options='{"terminology": "archive"}'/>
</button>
</div>
<group name="main"> <group name="main">
<field name="code"/> <field name="code"/>
<field name="name"/> <field name="name"/>
<field name="domain" invisible="not context.get('dynamic_list_code_main_view')"/> <field name="domain" invisible="not context.get('dynamic_list_code_main_view')"/>
<field name="active" invisible="1"/>
</group> </group>
</sheet> </sheet>
</form> </form>
@@ -183,17 +168,12 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form> <form>
<sheet> <sheet>
<div class="oe_button_box" name="button_box"> <widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
<button name="toggle_active" type="object"
class="oe_stat_button" icon="fa-archive">
<field name="active" widget="boolean_button"
options='{"terminology": "archive"}'/>
</button>
</div>
<group name="main"> <group name="main">
<field name="code"/> <field name="code"/>
<field name="name"/> <field name="name"/>
<field name="domain" invisible="not context.get('dynamic_list_code_translate_main_view')"/> <field name="domain" invisible="not context.get('dynamic_list_code_translate_main_view')"/>
<field name="active" invisible="1"/>
</group> </group>
</sheet> </sheet>
</form> </form>