odoo-addon-automation-oca 16.0.1.5.6__py3-none-any.whl → 16.0.1.6.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,7 +11,7 @@ Automation Oca
11
11
  !! This file is generated by oca-gen-addon-readme !!
12
12
  !! changes will be overwritten. !!
13
13
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
14
- !! source digest: sha256:a369ef73855dc483ca78285ab8aa15ad9eb6b6aedfc1c0e409e07342cf763240
14
+ !! source digest: sha256:9c31f66d5f65928b8de9a05fcc341d7ab3363aef2735d3e3d5f327ea73e1c8c7
15
15
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16
16
 
17
17
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -5,7 +5,7 @@
5
5
  "name": "Automation Oca",
6
6
  "summary": """
7
7
  Automate actions in threaded models""",
8
- "version": "16.0.1.5.6",
8
+ "version": "16.0.1.6.0",
9
9
  "license": "AGPL-3",
10
10
  "category": "Automation",
11
11
  "author": "Dixmit,Odoo Community Association (OCA)",
@@ -171,6 +171,16 @@ msgstr ""
171
171
  msgid "Activity User Type"
172
172
  msgstr ""
173
173
 
174
+ #. module: automation_oca
175
+ #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__activity_verification_domain
176
+ msgid "Activity Verification Domain"
177
+ msgstr ""
178
+
179
+ #. module: automation_oca
180
+ #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__activity_verification_domain_error
181
+ msgid "Activity Verification Domain Error"
182
+ msgstr ""
183
+
174
184
  #. module: automation_oca
175
185
  #. odoo-python
176
186
  #: code:addons/automation_oca/models/automation_configuration_step.py:0
@@ -617,6 +627,11 @@ msgstr ""
617
627
  msgid "Filter to apply specifically"
618
628
  msgstr ""
619
629
 
630
+ #. module: automation_oca
631
+ #: model:ir.model.fields,help:automation_oca.field_automation_configuration_step__activity_verification_domain
632
+ msgid "Filter to verify when the activity is done"
633
+ msgstr ""
634
+
620
635
  #. module: automation_oca
621
636
  #: model:ir.actions.act_window,name:automation_oca.automation_filter_act_window
622
637
  #: model:ir.ui.menu,name:automation_oca.automation_filter_menu
@@ -885,6 +900,11 @@ msgstr ""
885
900
  msgid "Message Delivery error"
886
901
  msgstr ""
887
902
 
903
+ #. module: automation_oca
904
+ #: model:ir.model.fields,help:automation_oca.field_automation_configuration_step__activity_verification_domain_error
905
+ msgid "Message to show when the activity domain is not as expected"
906
+ msgstr ""
907
+
888
908
  #. module: automation_oca
889
909
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration__message_ids
890
910
  msgid "Messages"
@@ -1345,6 +1365,15 @@ msgstr ""
1345
1365
  msgid "Tests"
1346
1366
  msgstr ""
1347
1367
 
1368
+ #. module: automation_oca
1369
+ #. odoo-python
1370
+ #: code:addons/automation_oca/models/automation_record_step.py:0
1371
+ #, python-format
1372
+ msgid ""
1373
+ "The record does not fulfill the expected domain:\n"
1374
+ "%(domain)s"
1375
+ msgstr ""
1376
+
1348
1377
  #. module: automation_oca
1349
1378
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
1350
1379
  msgid ""
@@ -107,6 +107,13 @@ class AutomationConfigurationStep(models.Model):
107
107
  activity_note = fields.Html(
108
108
  "Note", compute="_compute_activity_info", readonly=False, store=True
109
109
  )
110
+ activity_verification_domain = fields.Char(
111
+ required=True, default="[]", help="Filter to verify when the activity is done"
112
+ )
113
+ activity_verification_domain_error = fields.Text(
114
+ translate=True,
115
+ help="Message to show when the activity domain is not as expected",
116
+ )
110
117
  activity_date_deadline_range = fields.Integer(
111
118
  string="Due Date In",
112
119
  compute="_compute_activity_info",
@@ -9,6 +9,7 @@ import werkzeug.urls
9
9
  from dateutil.relativedelta import relativedelta
10
10
 
11
11
  from odoo import _, api, fields, models, tools
12
+ from odoo.exceptions import ValidationError
12
13
  from odoo.tools.safe_eval import safe_eval
13
14
 
14
15
 
@@ -345,6 +346,17 @@ class AutomationRecordStep(models.Model):
345
346
  todo._trigger_activities()
346
347
 
347
348
  def _set_activity_done(self):
349
+ domain = safe_eval(
350
+ self.configuration_step_id.activity_verification_domain or "[]",
351
+ self.configuration_step_id.configuration_id._get_eval_context(),
352
+ )
353
+ if domain and not self.record_id.resource_ref.filtered_domain(domain):
354
+ raise ValidationError(
355
+ _(
356
+ "The record does not fulfill the expected domain:\n%(domain)s",
357
+ domain=self.configuration_step_id.activity_verification_domain_error,
358
+ )
359
+ )
348
360
  self.write({"activity_done_on": fields.Datetime.now()})
349
361
  self.child_ids.filtered(
350
362
  lambda r: r.trigger_type == "activity_done"
@@ -372,7 +372,7 @@ ul.auto-toc {
372
372
  !! This file is generated by oca-gen-addon-readme !!
373
373
  !! changes will be overwritten. !!
374
374
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
375
- !! source digest: sha256:a369ef73855dc483ca78285ab8aa15ad9eb6b6aedfc1c0e409e07342cf763240
375
+ !! source digest: sha256:9c31f66d5f65928b8de9a05fcc341d7ab3363aef2735d3e3d5f327ea73e1c8c7
376
376
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
377
377
  <p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/license-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/automation/tree/16.0/automation_oca"><img alt="OCA/automation" src="https://img.shields.io/badge/github-OCA%2Fautomation-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/automation-16-0/automation-16-0-automation_oca"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/automation&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
378
378
  <p>This module allows to automate several process according to some rules.</p>
@@ -1,5 +1,6 @@
1
1
  # Copyright 2024 Dixmit
2
2
  # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3
+ from odoo.exceptions import ValidationError
3
4
  from odoo.tests import Form, new_test_user
4
5
 
5
6
  from .common import AutomationTestCase
@@ -89,6 +90,42 @@ class TestAutomationActivity(AutomationTestCase):
89
90
  ]
90
91
  )
91
92
 
93
+ def test_activity_execution_check_domain(self):
94
+ """
95
+ We will check the execution of activity tasks (generation of an activity)
96
+ """
97
+ activity = self.create_activity_action(
98
+ activity_verification_domain="[('name', '=', 'My Expected Name')]"
99
+ )
100
+ self.partner_01.name = "Not My Expected Name"
101
+ self.configuration.editable_domain = "[('id', '=', %s)]" % self.partner_01.id
102
+ self.configuration.start_automation()
103
+ self.env["automation.configuration"].cron_automation()
104
+ self.assertFalse(self.partner_01.activity_ids)
105
+ self.env["automation.record.step"]._cron_automation_steps()
106
+ self.assertTrue(self.partner_01.activity_ids)
107
+ record_activity = self.env["automation.record.step"].search(
108
+ [("configuration_step_id", "=", activity.id)]
109
+ )
110
+ self.assertEqual(
111
+ record_activity, self.partner_01.activity_ids.automation_record_step_id
112
+ )
113
+ self.assertFalse(record_activity.activity_done_on)
114
+ record_activity.invalidate_recordset()
115
+ self.assertFalse(
116
+ [
117
+ step
118
+ for step in record_activity.step_actions
119
+ if step["done"] and step["icon"] == "fa fa-clock-o"
120
+ ]
121
+ )
122
+ with self.assertRaises(ValidationError):
123
+ self.partner_01.activity_ids.action_feedback()
124
+ self.assertFalse(record_activity.activity_done_on)
125
+ self.partner_01.name = "My Expected Name"
126
+ self.partner_01.activity_ids.action_feedback()
127
+ self.assertTrue(record_activity.activity_done_on)
128
+
92
129
  def test_activity_execution_child(self):
93
130
  """
94
131
  We will check the execution of the child task (activity_done) is only scheduled
@@ -192,6 +192,12 @@
192
192
  <group>
193
193
  <field name="activity_summary" />
194
194
  <field name="activity_note" />
195
+ <field
196
+ name="activity_verification_domain"
197
+ widget="domain"
198
+ options="{'foldable': True, 'model': 'model'}"
199
+ />
200
+ <field name="activity_verification_domain_error" />
195
201
  </group>
196
202
  </page>
197
203
  <page name="action" string="Server Action">
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-automation_oca
3
- Version: 16.0.1.5.6
3
+ Version: 16.0.1.6.0
4
4
  Summary: Automate actions in threaded models
5
5
  Home-page: https://github.com/OCA/automation
6
6
  Author: Dixmit,Odoo Community Association (OCA)
@@ -26,7 +26,7 @@ Automation Oca
26
26
  !! This file is generated by oca-gen-addon-readme !!
27
27
  !! changes will be overwritten. !!
28
28
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
29
- !! source digest: sha256:a369ef73855dc483ca78285ab8aa15ad9eb6b6aedfc1c0e409e07342cf763240
29
+ !! source digest: sha256:9c31f66d5f65928b8de9a05fcc341d7ab3363aef2735d3e3d5f327ea73e1c8c7
30
30
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
31
31
 
32
32
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -1,20 +1,20 @@
1
- odoo/addons/automation_oca/README.rst,sha256=WhBK1531m6Xn2PU8KngrB5uIyBGhaV0xfDbtY4mTlDo,7127
1
+ odoo/addons/automation_oca/README.rst,sha256=1FUWHlgdmEUckjDXeod3LmvQyf522d8AJfKmZjFKOAk,7127
2
2
  odoo/addons/automation_oca/__init__.py,sha256=dnUeA_K1torbiMNF3tt2dtECdk-FkWm01DByr9MBMIA,69
3
- odoo/addons/automation_oca/__manifest__.py,sha256=Q25Kewt09UEDHtituj4SVYNCYP1aUiRX7xM-EYHVyoQ,1181
3
+ odoo/addons/automation_oca/__manifest__.py,sha256=rh-p-RSrlgiiXOC25eYsIlvgmyNwGDFlhItdyB_dCXw,1181
4
4
  odoo/addons/automation_oca/controllers/__init__.py,sha256=4KFqEP2QHFbPN66eQJMdGsmNz2v7ywWv_FR1pW_kkLk,19
5
5
  odoo/addons/automation_oca/controllers/main.py,sha256=DRL6AJKy18ekRPaKtmRoEh5i6fNQDWpoq2GTHztKOKI,2355
6
6
  odoo/addons/automation_oca/data/cron.xml,sha256=viAGNb5X619yXQyfpO_HcJOAiQGzEE-m6Sp4y6F4gDs,1297
7
7
  odoo/addons/automation_oca/demo/demo.xml,sha256=beyrfyRzVTDZ1Mm2sL5Y57W4GDsUvj9gOMUlrEMM1M8,2838
8
- odoo/addons/automation_oca/i18n/automation_oca.pot,sha256=Lkbq0dLRgwNWKr2Eq5B5k_eNR4xFt4yxn-wXoZYTn_o,54360
8
+ odoo/addons/automation_oca/i18n/automation_oca.pot,sha256=jNVgPC8AOqF3ZEL9HPIMMF3geVTYDBG_5YeJ9lXT_Ls,55398
9
9
  odoo/addons/automation_oca/i18n/es.po,sha256=614OBR8M7kUtf02KmRozHdicAxA8tqD6bMBLjPAjkcc,61325
10
10
  odoo/addons/automation_oca/i18n/fr.po,sha256=aMhFfpZ0DJbFndisLtfvzYDCm3cF2mlhcayv4_JGZEc,57951
11
11
  odoo/addons/automation_oca/i18n/it.po,sha256=9TLY5wTfz9S4afL-qD7Eu3il0NwGap5H94A5_k04LKI,61572
12
12
  odoo/addons/automation_oca/models/__init__.py,sha256=gRWvgicyFDELSeVnpRow1mGuWjfm3ima2Lo-NqlymKg,318
13
13
  odoo/addons/automation_oca/models/automation_configuration.py,sha256=VaWXg_6EnUnTdLDV_eZnWKXXVU27nGmZR_lnGIeKstA,12086
14
- odoo/addons/automation_oca/models/automation_configuration_step.py,sha256=NXoKLeJsiGHddpQYNHyKaB8J8jY75FVhV4u_eJ4cyCI,21538
14
+ odoo/addons/automation_oca/models/automation_configuration_step.py,sha256=fdK2ngsokOk0xT7atWRcyLdIRUU0rWazIcLwM2J8Lb0,21839
15
15
  odoo/addons/automation_oca/models/automation_filter.py,sha256=W8VM977yXH_hZUKCO8ZDKsvzIjYegoIGMN1QLEvikOY,706
16
16
  odoo/addons/automation_oca/models/automation_record.py,sha256=LYZ1fkijB2R3QjBoJN_gnsPzqjkp-Gk_6LyPywMQAQA,7172
17
- odoo/addons/automation_oca/models/automation_record_step.py,sha256=d_aVazlj5YiArasxAoSW3ggo6GtTHPYqwp7LT50LO5A,17627
17
+ odoo/addons/automation_oca/models/automation_record_step.py,sha256=nJjuwO1QcsbZ12z8RvKxB92qRip2OUp8exNdXb-X24c,18202
18
18
  odoo/addons/automation_oca/models/automation_tag.py,sha256=mIsuTsLQv8ZLLdykBmvLQ6fLKHJMKZ8qfAwaVibw78c,488
19
19
  odoo/addons/automation_oca/models/link_tracker.py,sha256=F8TxTsq5Mzd1H18RygZn4YDjZs8WIPO-B9o1EhaADYg,1745
20
20
  odoo/addons/automation_oca/models/mail_activity.py,sha256=D5l4CeIM_IvZ_a5g3iMC8qiD1u1iUIYRmGvDRRSHv9o,855
@@ -29,7 +29,7 @@ odoo/addons/automation_oca/security/security.xml,sha256=pT37-cLbQIP--Tzp0fljiyvN
29
29
  odoo/addons/automation_oca/static/description/configuration.png,sha256=W8cAn7-cQEVhf7Zy979xMDHi1cKWbDH7uyWkjvGi9gc,55863
30
30
  odoo/addons/automation_oca/static/description/icon.png,sha256=abhQ1HbvsatZ_WVS_G6qroJgWNa1Hppd961RD7vrAug,37729
31
31
  odoo/addons/automation_oca/static/description/icon.svg,sha256=NkJAwQ9YAXML6VIKe90VZzKUZb58-zGNL029-GC8Pm4,4641
32
- odoo/addons/automation_oca/static/description/index.html,sha256=YUUjr6XThK4K3M4L4a3kCsyMvZQgpjiWhOeh4E23gOM,18438
32
+ odoo/addons/automation_oca/static/description/index.html,sha256=k8PKmoqtU7cddqxhLxcD4hDKQwrYMh_6EgjznqDWe6o,18438
33
33
  odoo/addons/automation_oca/static/src/fields/automation_activity/automation_activity.esm.js,sha256=pbzjSHVYdYcMOXzXtC-lyVYrydk_1YRtMVh88XpTo-E,1779
34
34
  odoo/addons/automation_oca/static/src/fields/automation_graph/automation_graph.esm.js,sha256=vbPRaNzH1_wbB0gEBhZvm0gT0VXdgtElQIYeAOJZuNM,3214
35
35
  odoo/addons/automation_oca/static/src/fields/automation_graph/automation_graph.xml,sha256=86VqoFswW3ZppaR0KFG4_giKPeT8vgdC1A1vpBtPjFk,297
@@ -40,12 +40,12 @@ odoo/addons/automation_oca/static/src/views/automation_kanban/automation_kanban_
40
40
  odoo/addons/automation_oca/tests/__init__.py,sha256=5VS2h2Hl3gUzMQqKgPUYnq-_Wkk7SfD_k0YgTsfXj3g,185
41
41
  odoo/addons/automation_oca/tests/common.py,sha256=Zu5AcWGMgoDKdsQ4VMyhHTnot1f7Hunh4tDH9CSHbXw,3558
42
42
  odoo/addons/automation_oca/tests/test_automation_action.py,sha256=GT7Kja9l1Z-9MzWhKPuDc1a5-IkdHNgABtNVX50Sr24,8994
43
- odoo/addons/automation_oca/tests/test_automation_activity.py,sha256=qxFLK1OAfOgDApNRC5pZPjuf3JUXHDfFewkungxcAbg,15269
43
+ odoo/addons/automation_oca/tests/test_automation_activity.py,sha256=K3wMhr-Mb0FvNu0HfNdAZT4Z1m3J4EdQGbyxPEc-7Xw,16938
44
44
  odoo/addons/automation_oca/tests/test_automation_base.py,sha256=xb1qTY_iN0JbC7Revn-thamJn8cjXxDrSHOxpZl9VGE,29752
45
45
  odoo/addons/automation_oca/tests/test_automation_mail.py,sha256=zOzRfhH0-Zz0Jm1TX15efgXibjj7Au19597DZWvAQGc,24704
46
46
  odoo/addons/automation_oca/tests/test_automation_security.py,sha256=iazrh9TJDCLaK1vXKXMNqBf0bizedBd3QxUwCodjesY,3883
47
47
  odoo/addons/automation_oca/views/automation_configuration.xml,sha256=F6nYKsI9Un0mfzObfxfEUbZ_j2jXengWFYNLXHzxRzA,26768
48
- odoo/addons/automation_oca/views/automation_configuration_step.xml,sha256=sycheGzBwAoW9m-Yp56KyQ12_0JXPOO-Zwjz6WVMsyA,11623
48
+ odoo/addons/automation_oca/views/automation_configuration_step.xml,sha256=QMGqUKULEINQjLCHc7-DT1OXau0HqHy0Q8ESCasdeII,11988
49
49
  odoo/addons/automation_oca/views/automation_filter.xml,sha256=Mx0SBoVk2U3QY-hseKymbOphlK-hOjHdFzLtPgU2jok,2271
50
50
  odoo/addons/automation_oca/views/automation_record.xml,sha256=ebHj_9Ioks9xWykw8QtPVZ8jgfDMQXVntQoKhhtoibk,16047
51
51
  odoo/addons/automation_oca/views/automation_record_step.xml,sha256=cBao3BLIo9Db_Mv4VpyugpnTfzMmjLXQ5Eu2aYwD9uE,5263
@@ -56,7 +56,7 @@ odoo/addons/automation_oca/wizards/__init__.py,sha256=1yOQpQirzOswywec7gg_gshvEP
56
56
  odoo/addons/automation_oca/wizards/automation_configuration_test.py,sha256=YK0HD6Ds6B4PMaI97MUpVQaB-wsVTmw6Hpbh532tU-g,1363
57
57
  odoo/addons/automation_oca/wizards/automation_configuration_test.xml,sha256=r9lUzD3SeFSLStlc07iXxO1b9e9RbZdUCrvMA46zfm8,1916
58
58
  odoo/addons/automation_oca/wizards/mail_compose_message.py,sha256=XL6UGz8_fEwniXM80DhQXink4SMnWg7HHR0kHLekMyc,612
59
- odoo_addon_automation_oca-16.0.1.5.6.dist-info/METADATA,sha256=Q49MkA7NmvXcXlyAfOlL9gS2XfKMvzs_bgXG-MO68e0,7644
60
- odoo_addon_automation_oca-16.0.1.5.6.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
61
- odoo_addon_automation_oca-16.0.1.5.6.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
62
- odoo_addon_automation_oca-16.0.1.5.6.dist-info/RECORD,,
59
+ odoo_addon_automation_oca-16.0.1.6.0.dist-info/METADATA,sha256=pzDEd996VQH-01Mqa-9jMCI5gzk20bJ-ku9RX2excfo,7644
60
+ odoo_addon_automation_oca-16.0.1.6.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
61
+ odoo_addon_automation_oca-16.0.1.6.0.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
62
+ odoo_addon_automation_oca-16.0.1.6.0.dist-info/RECORD,,