Skip to content

Commit 88aaf44

Browse files
committed
[MIG] server_action_mass_edit: Migration to 17.0
1 parent f594a31 commit 88aaf44

10 files changed

+137
-115
lines changed

server_action_mass_edit/__manifest__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
33
{
44
"name": "Mass Editing",
5-
"version": "16.0.2.0.3",
5+
"version": "17.0.1.0.0",
66
"author": "Serpent Consulting Services Pvt. Ltd., "
77
"Tecnativa, "
88
"GRAP, "

server_action_mass_edit/migrations/16.0.2.0.0/pre-migration.py

-20
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
from . import ir_actions_server
22
from . import ir_actions_server_mass_edit_line
3+
from . import ir_ui_view

server_action_mass_edit/models/ir_actions_server.py

+12
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,23 @@ def _run_action_mass_edit_multi(self, eval_context=None):
5050
"""Show report label wizard"""
5151
context = dict(self.env.context)
5252
context.update({"server_action_id": self.id})
53+
view_id = self.env.ref("server_action_mass_edit.view_mass_editing_wizard_form")
54+
view_id.mass_server_action_id = self.id
55+
if view_id:
56+
view_temp = view_id.copy(
57+
{
58+
"name": "Temporary Mass Editing Wizard",
59+
"type": "form",
60+
"model": "mass.editing.wizard",
61+
}
62+
)
63+
5364
return {
5465
"name": self.name,
5566
"type": "ir.actions.act_window",
5667
"res_model": "mass.editing.wizard",
5768
"context": str(context),
5869
"view_mode": "form",
70+
"views": [[view_temp.id, "form"]],
5971
"target": "new",
6072
}

server_action_mass_edit/models/ir_actions_server_mass_edit_line.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from odoo import _, api, fields, models
77
from odoo.exceptions import ValidationError
88

9-
MAGIC_FIELDS = models.MAGIC_COLUMNS + [models.BaseModel.CONCURRENCY_CHECK_FIELD]
9+
MAGIC_FIELDS = models.MAGIC_COLUMNS
1010

1111

1212
class IrActionsServerMassEditLine(models.Model):
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from odoo import fields, models
2+
3+
4+
class View(models.Model):
5+
_inherit = "ir.ui.view"
6+
7+
mass_server_action_id = fields.Many2one("ir.actions.server")

server_action_mass_edit/tests/test_mass_editing.py

+8-9
Original file line numberDiff line numberDiff line change
@@ -133,19 +133,21 @@ def test_wiz_fields_view_get(self):
133133
"""Test whether fields_view_get method returns arch.
134134
with dynamic fields.
135135
"""
136+
view_id = self.env.ref("server_action_mass_edit.view_mass_editing_wizard_form")
137+
view_id.mass_server_action_id = False
136138
result = self.MassEditingWizard.with_context(
137139
active_ids=[],
138-
).get_view()
140+
).get_view(view_id=view_id.id)
139141
arch = result.get("arch", "")
140142
self.assertTrue(
141143
"selection__email" not in arch,
142144
"Fields view get must return architecture w/o fields" "created dynamicaly",
143145
)
144-
146+
view_id.mass_server_action_id = self.mass_editing_user
145147
result = self.MassEditingWizard.with_context(
146148
server_action_id=self.mass_editing_user.id,
147149
active_ids=[],
148-
).get_view()
150+
).get_view(view_id=view_id.id)
149151
arch = result.get("arch", "")
150152
self.assertTrue(
151153
"selection__email" in arch,
@@ -163,7 +165,7 @@ def test_wiz_fields_view_get(self):
163165
result = self.MassEditingWizard.with_context(
164166
server_action_id=self.mass_editing_user.id,
165167
active_ids=[],
166-
).get_view()
168+
).get_view(view_id=view_id.id)
167169
arch = result.get("arch", "")
168170
self.assertIn(
169171
"<tree editable=",
@@ -325,7 +327,7 @@ def test_mass_edit_m2m_categ(self):
325327
vend_categ_id = self.env.ref("base.res_partner_category_0").id
326328
vals = {
327329
"selection__category_id": "add",
328-
"category_id": [[6, 0, [dist_categ_id, vend_categ_id]]],
330+
"category_id": [[4, dist_categ_id], [4, vend_categ_id]],
329331
}
330332
self._create_wizard_and_apply_values(self.mass_editing_user, self.user, vals)
331333
self.assertTrue(
@@ -338,7 +340,7 @@ def test_mass_edit_m2m_categ(self):
338340
# Remove one m2m category
339341
vals = {
340342
"selection__category_id": "remove_m2m",
341-
"category_id": [[6, 0, [vend_categ_id]]],
343+
"category_id": [[4, vend_categ_id]],
342344
}
343345
self._create_wizard_and_apply_values(self.mass_editing_user, self.user, vals)
344346
self.assertTrue(
@@ -382,9 +384,6 @@ def test_onchanges(self):
382384
self.assertEqual(mass_edit_line_form.widget_option, "image")
383385
mass_edit_line_form.field_id = self.env.ref("base.field_res_company__logo")
384386
self.assertEqual(mass_edit_line_form.widget_option, "image")
385-
# binary
386-
mass_edit_line_form.field_id = self.env.ref("base.field_res_company__favicon")
387-
self.assertEqual(mass_edit_line_form.widget_option, False)
388387

389388
mass_edit_line_form.field_id = self.env.ref("base.field_res_users__country_id")
390389
self.assertFalse(mass_edit_line_form.widget_option)

server_action_mass_edit/views/ir_actions_server.xml

+34-38
Original file line numberDiff line numberDiff line change
@@ -5,44 +5,40 @@
55
<field name="model">ir.actions.server</field>
66
<field name="inherit_id" ref="base.view_server_action_form" />
77
<field name="arch" type="xml">
8-
<page name="security" position="before">
9-
<page
10-
name="mass_edit_line_ids"
11-
string="Fields"
12-
attrs="{'invisible': [('state', '!=', 'mass_edit')]}"
13-
>
14-
<field name="mass_edit_line_ids" nolabel="1">
15-
<tree editable="bottom">
16-
<field name="model_id" invisible="1" />
17-
<field name="server_action_id" invisible="1" />
18-
<field name="sequence" widget="handle" />
19-
<field
20-
name="field_id"
21-
options="{'no_create': True, 'no_create_edit': True}"
22-
/>
23-
<field name="widget_option" />
24-
<field name="apply_domain" />
25-
</tree>
26-
</field>
27-
<field name="mass_edit_apply_domain_in_lines" invisible="1" />
28-
<div
29-
colspan="2"
30-
class="text-warning"
31-
attrs="{'invisible': [('mass_edit_apply_domain_in_lines', '=', False)]}"
32-
>
33-
<b
34-
>WARNING</b>: Take into account that adding a field with a domain, and not including the fields of such domain in this operation definition, will lead to an error when trying to perform it. Make sure you include them.
35-
</div>
36-
</page>
37-
<page
38-
name="mass_edit_message"
39-
string="Message"
40-
attrs="{'invisible': [('state', '!=', 'mass_edit')]}"
41-
>
42-
<field name="mass_edit_message" />
43-
</page>
44-
</page>
8+
<sheet position="inside">
9+
<notebook invisible="state != 'mass_edit'">
10+
<page name="mass_edit_line_ids" string="Fields">
11+
<field name="mass_edit_line_ids" nolabel="1">
12+
<tree editable="bottom">
13+
<field name="model_id" column_invisible="True" />
14+
<field
15+
name="server_action_id"
16+
column_invisible="True"
17+
/>
18+
<field name="sequence" widget="handle" />
19+
<field
20+
name="field_id"
21+
options="{'no_create': True, 'no_create_edit': True}"
22+
/>
23+
<field name="widget_option" />
24+
<field name="apply_domain" />
25+
</tree>
26+
</field>
27+
<field name="mass_edit_apply_domain_in_lines" invisible="1" />
28+
<div
29+
colspan="2"
30+
class="text-warning"
31+
invisible="not mass_edit_apply_domain_in_lines"
32+
>
33+
<b
34+
>WARNING</b>: Take into account that adding a field with a domain, and not including the fields of such domain in this operation definition, will lead to an error when trying to perform it. Make sure you include them.
35+
</div>
36+
</page>
37+
<page name="mass_edit_message" string="Message">
38+
<field name="mass_edit_message" />
39+
</page>
40+
</notebook>
41+
</sheet>
4542
</field>
4643
</record>
47-
4844
</odoo>

0 commit comments

Comments
 (0)