odoo-addon-automation-oca 16.0.1.3.0__py3-none-any.whl → 16.0.1.4.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.
@@ -7,7 +7,7 @@ Automation Oca
7
7
  !! This file is generated by oca-gen-addon-readme !!
8
8
  !! changes will be overwritten. !!
9
9
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10
- !! source digest: sha256:7590da06e1c26c7c195b09fd60c5cfdbc01f941e5b611fc3c9cd7b3e0526374d
10
+ !! source digest: sha256:6b8f1cf697f8dd49bee14bd4b103cdb239ee9beaa400398c8840337d31c107a6
11
11
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
12
 
13
13
  .. |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.3.0",
8
+ "version": "16.0.1.4.0",
9
9
  "license": "AGPL-3",
10
10
  "category": "Automation",
11
11
  "author": "Dixmit,Odoo Community Association (OCA)",
@@ -132,6 +132,11 @@ msgstr ""
132
132
  msgid "Activity Action Count"
133
133
  msgstr ""
134
134
 
135
+ #. module: automation_oca
136
+ #: model:ir.model.fields,field_description:automation_oca.field_automation_record_step__activity_cancel_on
137
+ msgid "Activity Cancel On"
138
+ msgstr ""
139
+
135
140
  #. module: automation_oca
136
141
  #. odoo-python
137
142
  #: code:addons/automation_oca/models/automation_record_step.py:0
@@ -154,6 +159,13 @@ msgstr ""
154
159
  msgid "Activity User Type"
155
160
  msgstr ""
156
161
 
162
+ #. module: automation_oca
163
+ #. odoo-python
164
+ #: code:addons/automation_oca/models/automation_configuration_step.py:0
165
+ #, python-format
166
+ msgid "Activity has been cancelled"
167
+ msgstr ""
168
+
157
169
  #. module: automation_oca
158
170
  #. odoo-python
159
171
  #: code:addons/automation_oca/models/automation_configuration_step.py:0
@@ -168,6 +180,13 @@ msgstr ""
168
180
  msgid "Activity has not been finished"
169
181
  msgstr ""
170
182
 
183
+ #. module: automation_oca
184
+ #. odoo-python
185
+ #: code:addons/automation_oca/models/automation_configuration_step.py:0
186
+ #, python-format
187
+ msgid "Activity not cancelled"
188
+ msgstr ""
189
+
171
190
  #. module: automation_oca
172
191
  #. odoo-python
173
192
  #: code:addons/automation_oca/models/automation_configuration_step.py:0
@@ -178,6 +197,7 @@ msgstr ""
178
197
  #. module: automation_oca
179
198
  #. odoo-python
180
199
  #: code:addons/automation_oca/models/automation_configuration_step.py:0
200
+ #: code:addons/automation_oca/models/automation_configuration_step.py:0
181
201
  #, python-format
182
202
  msgid "After finished"
183
203
  msgstr ""
@@ -6,15 +6,15 @@ msgid ""
6
6
  msgstr ""
7
7
  "Project-Id-Version: Odoo Server 16.0\n"
8
8
  "Report-Msgid-Bugs-To: \n"
9
- "PO-Revision-Date: 2024-06-20 19:34+0000\n"
10
- "Last-Translator: Abraham Anes <abraham@studio73.es>\n"
9
+ "PO-Revision-Date: 2025-04-08 07:24+0000\n"
10
+ "Last-Translator: Enric Tobella <etobella@creublanca.es>\n"
11
11
  "Language-Team: none\n"
12
12
  "Language: es\n"
13
13
  "MIME-Version: 1.0\n"
14
14
  "Content-Type: text/plain; charset=UTF-8\n"
15
15
  "Content-Transfer-Encoding: \n"
16
16
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
17
- "X-Generator: Weblate 4.17\n"
17
+ "X-Generator: Weblate 5.10.4\n"
18
18
 
19
19
  #. module: automation_oca
20
20
  #: model:ir.model.fields,help:automation_oca.field_automation_configuration__domain
@@ -28,6 +28,14 @@ msgid ""
28
28
  " * user\n"
29
29
  " * ref "
30
30
  msgstr ""
31
+ "\n"
32
+ " Filtros a aplicar\n"
33
+ " Las siguientes variables pueden ser usadas en el filtro :\n"
34
+ " * datetime\n"
35
+ " * dateutil\n"
36
+ " * time\n"
37
+ " * user\n"
38
+ " * ref "
31
39
 
32
40
  #. module: automation_oca
33
41
  #. odoo-python
@@ -58,7 +66,7 @@ msgstr "<i class=\"fa fa-envelope\" title=\"Correos\"/>"
58
66
  #. module: automation_oca
59
67
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_kanban_view
60
68
  msgid "<i class=\"fa fa-hand-pointer-o\" title=\"Clicks\"/>"
61
- msgstr ""
69
+ msgstr "<i class=\"fa fa-hand-pointer-o\" title=\"Clicks\"/>"
62
70
 
63
71
  #. module: automation_oca
64
72
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
@@ -100,10 +108,15 @@ msgstr "<span class=\"col-2\">después</span>"
100
108
  msgid "<span class=\"col-2\">of</span>"
101
109
  msgstr "<span class=\"col-2\">de</span>"
102
110
 
111
+ #. module: automation_oca
112
+ #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
113
+ msgid "<span class=\"pe-1\">Immediatly</span>"
114
+ msgstr "<span class=\"pe-1\">Immediatamente</span>"
115
+
103
116
  #. module: automation_oca
104
117
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_record_form_view
105
118
  msgid "<span>This record is an orphan record</span>"
106
- msgstr ""
119
+ msgstr "<span>Este registro es huérfano</span>"
107
120
 
108
121
  #. module: automation_oca
109
122
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration__message_needaction
@@ -203,7 +216,7 @@ msgstr "Dominio aplicado"
203
216
  #. module: automation_oca
204
217
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__apply_parent_domain
205
218
  msgid "Apply Parent Domain"
206
- msgstr ""
219
+ msgstr "Aplicar el dominio anterior"
207
220
 
208
221
  #. module: automation_oca
209
222
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
@@ -361,7 +374,7 @@ msgstr "Clics"
361
374
  #. module: automation_oca
362
375
  #: model:ir.model.fields,field_description:automation_oca.field_automation_tag__color
363
376
  msgid "Color"
364
- msgstr ""
377
+ msgstr "Color"
365
378
 
366
379
  #. module: automation_oca
367
380
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration__company_id
@@ -412,7 +425,7 @@ msgstr "Creado en"
412
425
  #: model:ir.model.fields.selection,name:automation_oca.selection__automation_configuration_step__expiry_interval_type__days
413
426
  #: model:ir.model.fields.selection,name:automation_oca.selection__automation_configuration_step__trigger_interval_type__days
414
427
  msgid "Day(s)"
415
- msgstr ""
428
+ msgstr "Día(s)"
416
429
 
417
430
  #. module: automation_oca
418
431
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
@@ -435,6 +448,11 @@ msgstr "Borrar"
435
448
  msgid "Display Name"
436
449
  msgstr "Nombre mostrado"
437
450
 
451
+ #. module: automation_oca
452
+ #: model:ir.model.fields,field_description:automation_oca.field_automation_record_step__do_not_wait
453
+ msgid "Do Not Wait"
454
+ msgstr "No esperar"
455
+
438
456
  #. module: automation_oca
439
457
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration__domain
440
458
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__domain
@@ -506,7 +524,7 @@ msgstr "Forzar generación"
506
524
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_record_step_search_view
507
525
  #, python-format
508
526
  msgid "Error"
509
- msgstr ""
527
+ msgstr "Error"
510
528
 
511
529
  #. module: automation_oca
512
530
  #: model:ir.model.fields,field_description:automation_oca.field_automation_record_step__error_trace
@@ -577,6 +595,13 @@ msgid ""
577
595
  " * user\n"
578
596
  " * ref "
579
597
  msgstr ""
598
+ "Filtros a aplicar\n"
599
+ " Las siguientes variables puede ser usadas en el filtro :\n"
600
+ " * datetime\n"
601
+ " * dateutil\n"
602
+ " * time\n"
603
+ " * user\n"
604
+ " * ref "
580
605
 
581
606
  #. module: automation_oca
582
607
  #: model:ir.model.fields,help:automation_oca.field_automation_configuration_step__domain
@@ -617,17 +642,17 @@ msgstr "Usuario genérico del registro"
617
642
  #. module: automation_oca
618
643
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__graph_data
619
644
  msgid "Graph Data"
620
- msgstr ""
645
+ msgstr "Datos del Gráfico"
621
646
 
622
647
  #. module: automation_oca
623
648
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__graph_done
624
649
  msgid "Graph Done"
625
- msgstr ""
650
+ msgstr "Gráfico de Realización"
626
651
 
627
652
  #. module: automation_oca
628
653
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__graph_error
629
654
  msgid "Graph Error"
630
- msgstr ""
655
+ msgstr "Gráfico de Error"
631
656
 
632
657
  #. module: automation_oca
633
658
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration__has_message
@@ -638,7 +663,7 @@ msgstr "Tiene mensaje"
638
663
  #: model:ir.model.fields.selection,name:automation_oca.selection__automation_configuration_step__expiry_interval_type__hours
639
664
  #: model:ir.model.fields.selection,name:automation_oca.selection__automation_configuration_step__trigger_interval_type__hours
640
665
  msgid "Hour(s)"
641
- msgstr ""
666
+ msgstr "Hora(s)"
642
667
 
643
668
  #. module: automation_oca
644
669
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration__id
@@ -649,7 +674,7 @@ msgstr ""
649
674
  #: model:ir.model.fields,field_description:automation_oca.field_automation_record_step__id
650
675
  #: model:ir.model.fields,field_description:automation_oca.field_automation_tag__id
651
676
  msgid "ID"
652
- msgstr ""
677
+ msgstr "ID"
653
678
 
654
679
  #. module: automation_oca
655
680
  #: model:ir.model.fields,help:automation_oca.field_automation_configuration__message_needaction
@@ -661,10 +686,18 @@ msgstr "Si está marcado, los nuevos mensajes requieren su atención."
661
686
  msgid "If checked, some messages have a delivery error."
662
687
  msgstr "Si está marcado, algunos mensajes tienen un error de entrega."
663
688
 
689
+ #. module: automation_oca
690
+ #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
691
+ msgid ""
692
+ "In this case, the task will be executed automatically when we create it in "
693
+ "the same process."
694
+ msgstr ""
695
+ "En este caso, la tarea se ejecutará inmediatamente cuando se cree la acción."
696
+
664
697
  #. module: automation_oca
665
698
  #: model:ir.model.fields,help:automation_oca.field_automation_record__is_orphan_record
666
699
  msgid "Indicates if this record is a placeholder for a missing resource."
667
- msgstr ""
700
+ msgstr "Indica si este registro está relacionada con un registro desaparecido."
668
701
 
669
702
  #. module: automation_oca
670
703
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration__message_is_follower
@@ -674,7 +707,7 @@ msgstr "Es seguidor"
674
707
  #. module: automation_oca
675
708
  #: model:ir.model.fields,field_description:automation_oca.field_automation_record__is_orphan_record
676
709
  msgid "Is Orphan Record"
677
- msgstr ""
710
+ msgstr "Es un Registro Huérfano"
678
711
 
679
712
  #. module: automation_oca
680
713
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration__is_periodic
@@ -866,7 +899,7 @@ msgstr "Modelo donde se aplica la configuración"
866
899
  #. module: automation_oca
867
900
  #: model:ir.model.fields.selection,name:automation_oca.selection__automation_configuration_step__activity_date_deadline_range_type__months
868
901
  msgid "Month(s)"
869
- msgstr ""
902
+ msgstr "Mes(es)"
870
903
 
871
904
  #. module: automation_oca
872
905
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration__name
@@ -1024,7 +1057,7 @@ msgstr "Abierto después"
1024
1057
  #: code:addons/automation_oca/models/automation_record.py:0
1025
1058
  #, python-format
1026
1059
  msgid "Orphan Record"
1027
- msgstr ""
1060
+ msgstr "Registro Huérfano"
1028
1061
 
1029
1062
  #. module: automation_oca
1030
1063
  #: model:ir.model,name:automation_oca.model_mail_mail
@@ -1187,6 +1220,18 @@ msgstr "Enviado"
1187
1220
  msgid "Server Action"
1188
1221
  msgstr "Acción de servidor"
1189
1222
 
1223
+ #. module: automation_oca
1224
+ #: model:ir.model.fields,help:automation_oca.field_automation_configuration_step__trigger_interval
1225
+ msgid ""
1226
+ "Set a negative time trigger if you want the step to be executed\n"
1227
+ " immediately, in parallel with the previous step, without waiting for "
1228
+ "it to\n"
1229
+ " finish."
1230
+ msgstr ""
1231
+ "Define un un tiempo negativo si quieres que el registro se ejecute\n"
1232
+ " inmediatamente, en paralelo, sin esperar que acabe el \n"
1233
+ " anterior."
1234
+
1190
1235
  #. module: automation_oca
1191
1236
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
1192
1237
  msgid "Specific Domain"
@@ -1400,7 +1445,7 @@ msgstr "Nombre del campo de usuario"
1400
1445
  #. module: automation_oca
1401
1446
  #: model:ir.model.fields.selection,name:automation_oca.selection__automation_configuration_step__activity_date_deadline_range_type__weeks
1402
1447
  msgid "Week(s)"
1403
- msgstr ""
1448
+ msgstr "Semana(s)"
1404
1449
 
1405
1450
  #. module: automation_oca
1406
1451
  #: model:mail.template,name:automation_oca.demo_welcome_template
@@ -96,6 +96,11 @@ msgstr "<span class=\"col-2\">après</span>"
96
96
  msgid "<span class=\"col-2\">of</span>"
97
97
  msgstr "<span class=\"col-2\">de</span>"
98
98
 
99
+ #. module: automation_oca
100
+ #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
101
+ msgid "<span class=\"pe-1\">Immediatly</span>"
102
+ msgstr ""
103
+
99
104
  #. module: automation_oca
100
105
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_record_form_view
101
106
  msgid "<span>This record is an orphan record</span>"
@@ -431,6 +436,11 @@ msgstr "Supprimer"
431
436
  msgid "Display Name"
432
437
  msgstr "Nom"
433
438
 
439
+ #. module: automation_oca
440
+ #: model:ir.model.fields,field_description:automation_oca.field_automation_record_step__do_not_wait
441
+ msgid "Do Not Wait"
442
+ msgstr ""
443
+
434
444
  #. module: automation_oca
435
445
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration__domain
436
446
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__domain
@@ -657,6 +667,13 @@ msgstr "Si coché, des nouveaux messages requièrent votre attention."
657
667
  msgid "If checked, some messages have a delivery error."
658
668
  msgstr "Si coché, des messages ont des erreurs de délivrabilité."
659
669
 
670
+ #. module: automation_oca
671
+ #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
672
+ msgid ""
673
+ "In this case, the task will be executed automatically when we create it in "
674
+ "the same process."
675
+ msgstr ""
676
+
660
677
  #. module: automation_oca
661
678
  #: model:ir.model.fields,help:automation_oca.field_automation_record__is_orphan_record
662
679
  msgid "Indicates if this record is a placeholder for a missing resource."
@@ -1183,6 +1200,15 @@ msgstr "Envoyé"
1183
1200
  msgid "Server Action"
1184
1201
  msgstr "Action serveur"
1185
1202
 
1203
+ #. module: automation_oca
1204
+ #: model:ir.model.fields,help:automation_oca.field_automation_configuration_step__trigger_interval
1205
+ msgid ""
1206
+ "Set a negative time trigger if you want the step to be executed\n"
1207
+ " immediately, in parallel with the previous step, without waiting for "
1208
+ "it to\n"
1209
+ " finish."
1210
+ msgstr ""
1211
+
1186
1212
  #. module: automation_oca
1187
1213
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
1188
1214
  msgid "Specific Domain"
@@ -6,7 +6,7 @@ msgid ""
6
6
  msgstr ""
7
7
  "Project-Id-Version: Odoo Server 16.0\n"
8
8
  "Report-Msgid-Bugs-To: \n"
9
- "PO-Revision-Date: 2025-03-27 15:06+0000\n"
9
+ "PO-Revision-Date: 2025-04-08 10:24+0000\n"
10
10
  "Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
11
11
  "Language-Team: none\n"
12
12
  "Language: it\n"
@@ -14,7 +14,7 @@ msgstr ""
14
14
  "Content-Type: text/plain; charset=UTF-8\n"
15
15
  "Content-Transfer-Encoding: \n"
16
16
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
17
- "X-Generator: Weblate 5.10.2\n"
17
+ "X-Generator: Weblate 5.10.4\n"
18
18
 
19
19
  #. module: automation_oca
20
20
  #: model:ir.model.fields,help:automation_oca.field_automation_configuration__domain
@@ -109,6 +109,11 @@ msgstr "<span class=\"col-2\">dopo</span>"
109
109
  msgid "<span class=\"col-2\">of</span>"
110
110
  msgstr "<span class=\"col-2\">di</span>"
111
111
 
112
+ #. module: automation_oca
113
+ #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
114
+ msgid "<span class=\"pe-1\">Immediatly</span>"
115
+ msgstr "<span class=\"pe-1\">Immediatamente</span>"
116
+
112
117
  #. module: automation_oca
113
118
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_record_form_view
114
119
  msgid "<span>This record is an orphan record</span>"
@@ -444,6 +449,11 @@ msgstr "Cancella"
444
449
  msgid "Display Name"
445
450
  msgstr "Nome visualizzato"
446
451
 
452
+ #. module: automation_oca
453
+ #: model:ir.model.fields,field_description:automation_oca.field_automation_record_step__do_not_wait
454
+ msgid "Do Not Wait"
455
+ msgstr "Non aspettare"
456
+
447
457
  #. module: automation_oca
448
458
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration__domain
449
459
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__domain
@@ -678,6 +688,15 @@ msgstr "Se selezionata, nuovi messaggi richiedono attenzione."
678
688
  msgid "If checked, some messages have a delivery error."
679
689
  msgstr "Se selezionata, alcuni messaggi hanno un errore di consegna."
680
690
 
691
+ #. module: automation_oca
692
+ #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
693
+ msgid ""
694
+ "In this case, the task will be executed automatically when we create it in "
695
+ "the same process."
696
+ msgstr ""
697
+ "In questo caso, il lavoro verrà eseguito automaticamente alla creazione "
698
+ "nello stesso processo."
699
+
681
700
  #. module: automation_oca
682
701
  #: model:ir.model.fields,help:automation_oca.field_automation_record__is_orphan_record
683
702
  msgid "Indicates if this record is a placeholder for a missing resource."
@@ -1204,6 +1223,19 @@ msgstr "Inviata"
1204
1223
  msgid "Server Action"
1205
1224
  msgstr "Azione server"
1206
1225
 
1226
+ #. module: automation_oca
1227
+ #: model:ir.model.fields,help:automation_oca.field_automation_configuration_step__trigger_interval
1228
+ msgid ""
1229
+ "Set a negative time trigger if you want the step to be executed\n"
1230
+ " immediately, in parallel with the previous step, without waiting for "
1231
+ "it to\n"
1232
+ " finish."
1233
+ msgstr ""
1234
+ "Impostare un trigger temporale negativo se si vuole che il passaggio \n"
1235
+ " venga eseguito immediatamente, parallelamente al passaggio "
1236
+ "precedente,\n"
1237
+ " senza attendere che termini."
1238
+
1207
1239
  #. module: automation_oca
1208
1240
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
1209
1241
  msgid "Specific Domain"
@@ -394,6 +394,14 @@ class AutomationConfigurationStep(models.Model):
394
394
  "message_configuration": _("After finished"),
395
395
  "message": _("Activity not done"),
396
396
  },
397
+ "activity_cancel": {
398
+ "name": _("Activity has been cancelled"),
399
+ "step_type": ["activity"],
400
+ "color": "text-warning",
401
+ "icon": "fa fa-ban",
402
+ "message_configuration": _("After finished"),
403
+ "message": _("Activity not cancelled"),
404
+ },
397
405
  "activity_not_done": {
398
406
  "name": _("Activity has not been finished"),
399
407
  "allow_expiry": True,
@@ -500,6 +508,7 @@ class AutomationConfigurationStep(models.Model):
500
508
  "mail_reply",
501
509
  "mail_not_reply",
502
510
  "activity_done",
511
+ "activity_cancel",
503
512
  ]:
504
513
  return False
505
514
  return fields.Datetime.now() + relativedelta(
@@ -68,6 +68,7 @@ class AutomationRecordStep(models.Model):
68
68
  mail_replied_on = fields.Datetime(readonly=True)
69
69
  mail_opened_on = fields.Datetime(readonly=True)
70
70
  activity_done_on = fields.Datetime(readonly=True)
71
+ activity_cancel_on = fields.Datetime(readonly=True)
71
72
  is_test = fields.Boolean(related="record_id.is_test", store=True)
72
73
  step_actions = fields.Json(compute="_compute_step_actions")
73
74
 
@@ -131,7 +132,7 @@ class AutomationRecordStep(models.Model):
131
132
  )
132
133
  or not self._check_to_execute()
133
134
  ):
134
- self.write({"state": "rejected", "processed_on": fields.Datetime.now()})
135
+ self._reject()
135
136
  return self.browse()
136
137
  try:
137
138
  result = getattr(self, "_run_%s" % self.configuration_step_id.step_type)()
@@ -154,6 +155,9 @@ class AutomationRecordStep(models.Model):
154
155
  )
155
156
  return self.browse()
156
157
 
158
+ def _reject(self):
159
+ self.write({"state": "rejected", "processed_on": fields.Datetime.now()})
160
+
157
161
  def _fill_childs(self, **kwargs):
158
162
  return self.create(
159
163
  [
@@ -305,6 +309,24 @@ class AutomationRecordStep(models.Model):
305
309
  and not r.scheduled_date
306
310
  and r.state == "scheduled"
307
311
  )._activate()
312
+ self.child_ids.filtered(
313
+ lambda r: r.trigger_type == "activity_cancel"
314
+ and not r.scheduled_date
315
+ and r.state == "scheduled"
316
+ )._reject()
317
+
318
+ def _set_activity_cancel(self):
319
+ self.write({"activity_cancel_on": fields.Datetime.now()})
320
+ self.child_ids.filtered(
321
+ lambda r: r.trigger_type == "activity_cancel"
322
+ and not r.scheduled_date
323
+ and r.state == "scheduled"
324
+ )._activate()
325
+ self.child_ids.filtered(
326
+ lambda r: r.trigger_type == "activity_done"
327
+ and not r.scheduled_date
328
+ and r.state == "scheduled"
329
+ )._reject()
308
330
 
309
331
  def _set_mail_bounced(self):
310
332
  self.write({"mail_status": "bounce"})
@@ -12,4 +12,16 @@ class MailActivity(models.Model):
12
12
  def _action_done(self, *args, **kwargs):
13
13
  if self.automation_record_step_id:
14
14
  self.automation_record_step_id._set_activity_done()
15
- return super()._action_done(*args, **kwargs)
15
+ return super(
16
+ MailActivity,
17
+ self.with_context(
18
+ automation_done=True,
19
+ ),
20
+ )._action_done(*args, **kwargs)
21
+
22
+ def unlink(self):
23
+ if self.automation_record_step_id and not self.env.context.get(
24
+ "automation_done"
25
+ ):
26
+ self.automation_record_step_id._set_activity_cancel()
27
+ return super(MailActivity, self).unlink()
@@ -367,7 +367,7 @@ ul.auto-toc {
367
367
  !! This file is generated by oca-gen-addon-readme !!
368
368
  !! changes will be overwritten. !!
369
369
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
370
- !! source digest: sha256:7590da06e1c26c7c195b09fd60c5cfdbc01f941e5b611fc3c9cd7b3e0526374d
370
+ !! source digest: sha256:6b8f1cf697f8dd49bee14bd4b103cdb239ee9beaa400398c8840337d31c107a6
371
371
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
372
372
  <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/licence-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>
373
373
  <p>This module allows to automate several process according to some rules.</p>
@@ -46,7 +46,7 @@ class TestAutomationActivity(AutomationTestCase):
46
46
 
47
47
  def test_activity_execution_child(self):
48
48
  """
49
- We will check the execution of the hild task (activity_done) is only scheduled
49
+ We will check the execution of the child task (activity_done) is only scheduled
50
50
  after the activity is done
51
51
  """
52
52
  activity = self.create_activity_action()
@@ -72,6 +72,92 @@ class TestAutomationActivity(AutomationTestCase):
72
72
  self.assertTrue(record_activity.activity_done_on)
73
73
  self.assertTrue(record_child_activity.scheduled_date)
74
74
 
75
+ def test_activity_execution_on_cancel(self):
76
+ """
77
+ We will check the execution of the child task (activity_done) is only scheduled
78
+ after the activity is done
79
+ """
80
+ activity = self.create_activity_action()
81
+ child_activity = self.create_server_action(
82
+ parent_id=activity.id, trigger_type="activity_done"
83
+ )
84
+ self.configuration.editable_domain = "[('id', '=', %s)]" % self.partner_01.id
85
+ self.configuration.start_automation()
86
+ self.env["automation.configuration"].cron_automation()
87
+ self.env["automation.record.step"]._cron_automation_steps()
88
+ record_activity = self.env["automation.record.step"].search(
89
+ [("configuration_step_id", "=", activity.id)]
90
+ )
91
+ record_child_activity = self.env["automation.record.step"].search(
92
+ [("configuration_step_id", "=", child_activity.id)]
93
+ )
94
+ self.assertEqual(
95
+ record_activity, self.partner_01.activity_ids.automation_record_step_id
96
+ )
97
+ self.assertFalse(record_activity.activity_done_on)
98
+ self.assertFalse(record_child_activity.scheduled_date)
99
+ self.partner_01.activity_ids.unlink()
100
+ self.assertFalse(record_activity.activity_done_on)
101
+ self.assertFalse(record_child_activity.scheduled_date)
102
+ self.assertEqual(record_child_activity.state, "rejected")
103
+
104
+ def test_activity_execution_cancel_child(self):
105
+ """
106
+ We will check the execution of the child task (activity_cancel) is only scheduled
107
+ after the activity is cancel
108
+ """
109
+ activity = self.create_activity_action()
110
+ child_activity = self.create_server_action(
111
+ parent_id=activity.id, trigger_type="activity_cancel"
112
+ )
113
+ self.configuration.editable_domain = "[('id', '=', %s)]" % self.partner_01.id
114
+ self.configuration.start_automation()
115
+ self.env["automation.configuration"].cron_automation()
116
+ self.env["automation.record.step"]._cron_automation_steps()
117
+ record_activity = self.env["automation.record.step"].search(
118
+ [("configuration_step_id", "=", activity.id)]
119
+ )
120
+ record_child_activity = self.env["automation.record.step"].search(
121
+ [("configuration_step_id", "=", child_activity.id)]
122
+ )
123
+ self.assertEqual(
124
+ record_activity, self.partner_01.activity_ids.automation_record_step_id
125
+ )
126
+ self.assertFalse(record_activity.activity_cancel_on)
127
+ self.assertFalse(record_child_activity.scheduled_date)
128
+ self.partner_01.activity_ids.unlink()
129
+ self.assertTrue(record_activity.activity_cancel_on)
130
+ self.assertTrue(record_child_activity.scheduled_date)
131
+
132
+ def test_activity_execution_cancel_child_on_done(self):
133
+ """
134
+ We will check the execution of the child task (activity_cancel) is not scheduled
135
+ after the activity is done
136
+ """
137
+ activity = self.create_activity_action()
138
+ child_activity = self.create_server_action(
139
+ parent_id=activity.id, trigger_type="activity_cancel"
140
+ )
141
+ self.configuration.editable_domain = "[('id', '=', %s)]" % self.partner_01.id
142
+ self.configuration.start_automation()
143
+ self.env["automation.configuration"].cron_automation()
144
+ self.env["automation.record.step"]._cron_automation_steps()
145
+ record_activity = self.env["automation.record.step"].search(
146
+ [("configuration_step_id", "=", activity.id)]
147
+ )
148
+ record_child_activity = self.env["automation.record.step"].search(
149
+ [("configuration_step_id", "=", child_activity.id)]
150
+ )
151
+ self.assertEqual(
152
+ record_activity, self.partner_01.activity_ids.automation_record_step_id
153
+ )
154
+ self.assertFalse(record_activity.activity_cancel_on)
155
+ self.assertFalse(record_child_activity.scheduled_date)
156
+ self.partner_01.activity_ids.action_feedback()
157
+ self.assertFalse(record_activity.activity_cancel_on)
158
+ self.assertFalse(record_child_activity.scheduled_date)
159
+ self.assertEqual(record_child_activity.state, "rejected")
160
+
75
161
  def test_activity_execution_not_done_child_done(self):
76
162
  """
77
163
  We will check the execution of the tasks with activity_not_done is not executed
@@ -539,9 +539,9 @@ class TestAutomationBase(AutomationTestCase):
539
539
  },
540
540
  set(mail.trigger_child_types.keys()),
541
541
  )
542
- self.assertEqual(3, len(activity.trigger_child_types))
542
+ self.assertEqual(4, len(activity.trigger_child_types))
543
543
  self.assertEqual(
544
- {"after_step", "activity_done", "activity_not_done"},
544
+ {"after_step", "activity_done", "activity_not_done", "activity_cancel"},
545
545
  set(activity.trigger_child_types.keys()),
546
546
  )
547
547
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-automation_oca
3
- Version: 16.0.1.3.0
3
+ Version: 16.0.1.4.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)
@@ -22,7 +22,7 @@ Automation Oca
22
22
  !! This file is generated by oca-gen-addon-readme !!
23
23
  !! changes will be overwritten. !!
24
24
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
25
- !! source digest: sha256:7590da06e1c26c7c195b09fd60c5cfdbc01f941e5b611fc3c9cd7b3e0526374d
25
+ !! source digest: sha256:6b8f1cf697f8dd49bee14bd4b103cdb239ee9beaa400398c8840337d31c107a6
26
26
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
27
27
 
28
28
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -1,23 +1,23 @@
1
- odoo/addons/automation_oca/README.rst,sha256=3BeUQ9xh-1Hyy9owzpuYk-WKdcbG232k3mKv8l7N1CE,6962
1
+ odoo/addons/automation_oca/README.rst,sha256=FV4-Gql3x1lfbJxRvRSmy9ib_F27bZ8abf0a2j2iuH0,6962
2
2
  odoo/addons/automation_oca/__init__.py,sha256=dnUeA_K1torbiMNF3tt2dtECdk-FkWm01DByr9MBMIA,69
3
- odoo/addons/automation_oca/__manifest__.py,sha256=PvQWKc3S0lh7yte3hsjJRoCH-1hHNngiiFc1MhrGJxU,1181
3
+ odoo/addons/automation_oca/__manifest__.py,sha256=hN4UCzPOt7LnYMne4uQ9ARKdXY2MDnik2Os1LIUmDvU,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=tx_0kaITykM6HZKKivdyQtFwlAVMIqKQmiquxNafHxg,51526
9
- odoo/addons/automation_oca/i18n/es.po,sha256=2muwuW9g_Kd9scH1FHZXyez5eaidTu9CxIqL3ZuTtnM,56471
10
- odoo/addons/automation_oca/i18n/fr.po,sha256=aSOY-jAHTLrT2l7TWyW0YY9qTzv25ZLjZkAO9j1ZbdQ,54292
11
- odoo/addons/automation_oca/i18n/it.po,sha256=-Dpb86X-rYojjhKZftgaP7IaemYKuGeKdrhSTL67siw,56804
8
+ odoo/addons/automation_oca/i18n/automation_oca.pot,sha256=fDlFwY58heIAS5zYd-ovJZzeKRD4uPpgtMLPP83xGJU,52118
9
+ odoo/addons/automation_oca/i18n/es.po,sha256=2E6JAiyRH6RAkCD-uwdlc5W_ldwCmncA3jIe29ctC84,58387
10
+ odoo/addons/automation_oca/i18n/fr.po,sha256=V4wJhweHc_goZHW7gr2yHPq47hm9Po1R8PP859rFNMk,55171
11
+ odoo/addons/automation_oca/i18n/it.po,sha256=w0_U2lLL2r5cPDiYFO1bx9wLEE5pueLECZlaZLu-caw,58038
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=3je70PMzMFkJP36L8OlOPIjD7befywVmY47o3tnzFV8,19973
14
+ odoo/addons/automation_oca/models/automation_configuration_step.py,sha256=dU3d-FTrcopgO9rSnTOv4KAmgePx_GKHVH1P6PijELI,20349
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=Q6aO1pbHHqXeWkugzURHc_U2jp9fP2_RGqPmH_Dbl_k,7362
17
- odoo/addons/automation_oca/models/automation_record_step.py,sha256=kgoxSDz8_8LSWIUYcNZ_FF_S50CWnkTrdaMtmuYZiPk,15257
17
+ odoo/addons/automation_oca/models/automation_record_step.py,sha256=A7_bM2BOidjlPCY8xHGOlH0ThqD8xhpqr4aZhPM0bFE,16024
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
- odoo/addons/automation_oca/models/mail_activity.py,sha256=RIw89CNjEMWRE2azgEHsZeXtr64VU6AGWnv5DOERP4k,470
20
+ odoo/addons/automation_oca/models/mail_activity.py,sha256=OTC8RJ3ZYMPFGixMmIWFPNzHi110trdadf7GVFoulQ0,841
21
21
  odoo/addons/automation_oca/models/mail_mail.py,sha256=g0hDGkcsdcFl2CLOhPsM5FlzBUsGaYjlCudblHJnZZk,1773
22
22
  odoo/addons/automation_oca/models/mail_thread.py,sha256=a1n52bOGi79RGm8G2LT8VTIkMLaliW3jWQfumVUoGFc,2639
23
23
  odoo/addons/automation_oca/readme/CONTRIBUTORS.md,sha256=p8_-Mu8Mj7YOCCgizqC5Y02wD8jghcxSizPsYhmQQDs,52
@@ -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=qnLdRYyKeBkhjC1FCsMmiil8v_KA7yBUlJI-wBAu44k,18215
32
+ odoo/addons/automation_oca/static/description/index.html,sha256=hEeH9ARMQfJCGZRCADP6GcbCzQB5ZgacWbhunU7tD68,18215
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,8 +40,8 @@ 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=LLw57To88U6Ercinc0bH49_FRueqKfYHI_FKsw1aA8s,8370
43
- odoo/addons/automation_oca/tests/test_automation_activity.py,sha256=OHUMONBVY0pYbmlTCfWzPdJPSYaExCfJCS_LPtpEhuE,6385
44
- odoo/addons/automation_oca/tests/test_automation_base.py,sha256=vUQPlxRM-zkJfzslPE4_V4eXq0RSRFCo1BLhrVzi_s8,24421
43
+ odoo/addons/automation_oca/tests/test_automation_activity.py,sha256=OLJs-D3hAUzVHX8EtnEE4_1e5XIJQ2JVoFrlpSA52Ls,10549
44
+ odoo/addons/automation_oca/tests/test_automation_base.py,sha256=ThzNwQqlIrWvFHBe8jwXqlXebNPLkONtkSt-8Wt9iOA,24440
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=VU_Hn1cOjZ_z8MbCAgareo3K1PNof0krjW7Nrz90FYQ,25986
@@ -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.3.0.dist-info/METADATA,sha256=ofRbvoJWoAMoM9kaMTPSoPeATj0EqeVvfW8TX_caUmM,7479
60
- odoo_addon_automation_oca-16.0.1.3.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
61
- odoo_addon_automation_oca-16.0.1.3.0.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
62
- odoo_addon_automation_oca-16.0.1.3.0.dist-info/RECORD,,
59
+ odoo_addon_automation_oca-16.0.1.4.0.dist-info/METADATA,sha256=W887-ymYirzsL_CdsyBvReqQw8d6ObYnJLsPT1GRjUk,7479
60
+ odoo_addon_automation_oca-16.0.1.4.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
61
+ odoo_addon_automation_oca-16.0.1.4.0.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
62
+ odoo_addon_automation_oca-16.0.1.4.0.dist-info/RECORD,,