odoo-addon-automation-oca 16.0.1.5.4.1__py3-none-any.whl → 16.0.1.5.5.1__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:f8ad9dc9fe9dcc4fa324aadc5c89f580c5e73b1c020060870593c1c336f0b596
14
+ !! source digest: sha256:bf7f94a060a16c6d36248bb970d9cbc5925480da1127a49bfb77208b1a1821e5
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.4",
8
+ "version": "16.0.1.5.5",
9
9
  "license": "AGPL-3",
10
10
  "category": "Automation",
11
11
  "author": "Dixmit,Odoo Community Association (OCA)",
@@ -33,6 +33,11 @@ msgstr ""
33
33
  msgid "%s configurations needs a parent"
34
34
  msgstr ""
35
35
 
36
+ #. module: automation_oca
37
+ #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
38
+ msgid "<i class=\"fa fa-calendar pe-1\" role=\"img\" aria-label=\"At\" title=\"At\"/>"
39
+ msgstr ""
40
+
36
41
  #. module: automation_oca
37
42
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
38
43
  msgid ""
@@ -77,6 +82,13 @@ msgid ""
77
82
  " "
78
83
  msgstr ""
79
84
 
85
+ #. module: automation_oca
86
+ #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
87
+ msgid ""
88
+ "<span class=\"col-2\" attrs=\"{'invisible': [('trigger_date_kind', '!=', 'offset')]}\">after</span>\n"
89
+ " <span class=\"col-2\" attrs=\"{'invisible': [('trigger_date_kind', '=', 'offset')]}\">when</span>"
90
+ msgstr ""
91
+
80
92
  #. module: automation_oca
81
93
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
82
94
  msgid "<span class=\"col-2\">after</span>"
@@ -567,6 +579,11 @@ msgstr ""
567
579
  msgid "Field"
568
580
  msgstr ""
569
581
 
582
+ #. module: automation_oca
583
+ #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__trigger_date_field
584
+ msgid "Field Label"
585
+ msgstr ""
586
+
570
587
  #. module: automation_oca
571
588
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration__filter_id
572
589
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
@@ -621,6 +638,11 @@ msgstr ""
621
638
  msgid "Followers (Partners)"
622
639
  msgstr ""
623
640
 
641
+ #. module: automation_oca
642
+ #: model:ir.model.fields.selection,name:automation_oca.selection__automation_configuration_step__trigger_date_kind__date
643
+ msgid "Force on Record Date"
644
+ msgstr ""
645
+
624
646
  #. module: automation_oca
625
647
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
626
648
  msgid "Generate new records"
@@ -988,6 +1010,11 @@ msgstr ""
988
1010
  msgid "Number of messages with delivery error"
989
1011
  msgstr ""
990
1012
 
1013
+ #. module: automation_oca
1014
+ #: model:ir.model.fields.selection,name:automation_oca.selection__automation_configuration_step__trigger_date_kind__offset
1015
+ msgid "Offset"
1016
+ msgstr ""
1017
+
991
1018
  #. module: automation_oca
992
1019
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
993
1020
  msgid ""
@@ -1318,6 +1345,13 @@ msgstr ""
1318
1345
  msgid "Tests"
1319
1346
  msgstr ""
1320
1347
 
1348
+ #. module: automation_oca
1349
+ #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
1350
+ msgid ""
1351
+ "The scheduled date will be the date of the record at the moment we generate the new record.\n"
1352
+ " Later changes of the field will not affect the scheduled date."
1353
+ msgstr ""
1354
+
1321
1355
  #. module: automation_oca
1322
1356
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
1323
1357
  msgid ""
@@ -1356,6 +1390,16 @@ msgstr ""
1356
1390
  msgid "Trigger Child Types"
1357
1391
  msgstr ""
1358
1392
 
1393
+ #. module: automation_oca
1394
+ #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__trigger_date_field_id
1395
+ msgid "Trigger Date Field"
1396
+ msgstr ""
1397
+
1398
+ #. module: automation_oca
1399
+ #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__trigger_date_kind
1400
+ msgid "Trigger Date Kind"
1401
+ msgstr ""
1402
+
1359
1403
  #. module: automation_oca
1360
1404
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__trigger_interval
1361
1405
  msgid "Trigger Interval"
@@ -44,6 +44,13 @@ msgstr ""
44
44
  msgid "%s configurations needs a parent"
45
45
  msgstr "%s configuraciones necesitan un padre"
46
46
 
47
+ #. module: automation_oca
48
+ #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
49
+ msgid ""
50
+ "<i class=\"fa fa-calendar pe-1\" role=\"img\" aria-label=\"At\" title=\"At\"/"
51
+ ">"
52
+ msgstr ""
53
+
47
54
  #. module: automation_oca
48
55
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
49
56
  msgid ""
@@ -98,6 +105,15 @@ msgstr ""
98
105
  " <p>Saludos cordiales,</p>\n"
99
106
  " "
100
107
 
108
+ #. module: automation_oca
109
+ #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
110
+ msgid ""
111
+ "<span class=\"col-2\" attrs=\"{'invisible': [('trigger_date_kind', '!=', "
112
+ "'offset')]}\">after</span>\n"
113
+ " <span class=\"col-2\" "
114
+ "attrs=\"{'invisible': [('trigger_date_kind', '=', 'offset')]}\">when</span>"
115
+ msgstr ""
116
+
101
117
  #. module: automation_oca
102
118
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
103
119
  msgid "<span class=\"col-2\">after</span>"
@@ -587,6 +603,11 @@ msgstr "Tipo de intervalo de expiración"
587
603
  msgid "Field"
588
604
  msgstr "Campo"
589
605
 
606
+ #. module: automation_oca
607
+ #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__trigger_date_field
608
+ msgid "Field Label"
609
+ msgstr ""
610
+
590
611
  #. module: automation_oca
591
612
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration__filter_id
592
613
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
@@ -648,6 +669,11 @@ msgstr "Seguidores"
648
669
  msgid "Followers (Partners)"
649
670
  msgstr "Seguidores (Contactos)"
650
671
 
672
+ #. module: automation_oca
673
+ #: model:ir.model.fields.selection,name:automation_oca.selection__automation_configuration_step__trigger_date_kind__date
674
+ msgid "Force on Record Date"
675
+ msgstr ""
676
+
651
677
  #. module: automation_oca
652
678
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
653
679
  msgid "Generate new records"
@@ -1016,6 +1042,11 @@ msgstr "Número de mensajes que requieren acción"
1016
1042
  msgid "Number of messages with delivery error"
1017
1043
  msgstr "Número de mensajes con error de entrega"
1018
1044
 
1045
+ #. module: automation_oca
1046
+ #: model:ir.model.fields.selection,name:automation_oca.selection__automation_configuration_step__trigger_date_kind__offset
1047
+ msgid "Offset"
1048
+ msgstr ""
1049
+
1019
1050
  #. module: automation_oca
1020
1051
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
1021
1052
  msgid ""
@@ -1364,6 +1395,15 @@ msgstr "Configuración de prueba"
1364
1395
  msgid "Tests"
1365
1396
  msgstr "Pruebas"
1366
1397
 
1398
+ #. module: automation_oca
1399
+ #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
1400
+ msgid ""
1401
+ "The scheduled date will be the date of the record at the moment we generate "
1402
+ "the new record.\n"
1403
+ " Later changes of the field will not affect "
1404
+ "the scheduled date."
1405
+ msgstr ""
1406
+
1367
1407
  #. module: automation_oca
1368
1408
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
1369
1409
  msgid ""
@@ -1413,6 +1453,16 @@ msgstr "Disparador"
1413
1453
  msgid "Trigger Child Types"
1414
1454
  msgstr "Tipos de hijos de disparador"
1415
1455
 
1456
+ #. module: automation_oca
1457
+ #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__trigger_date_field_id
1458
+ msgid "Trigger Date Field"
1459
+ msgstr ""
1460
+
1461
+ #. module: automation_oca
1462
+ #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__trigger_date_kind
1463
+ msgid "Trigger Date Kind"
1464
+ msgstr ""
1465
+
1416
1466
  #. module: automation_oca
1417
1467
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__trigger_interval
1418
1468
  msgid "Trigger Interval"
@@ -36,6 +36,13 @@ msgstr ""
36
36
  msgid "%s configurations needs a parent"
37
37
  msgstr ""
38
38
 
39
+ #. module: automation_oca
40
+ #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
41
+ msgid ""
42
+ "<i class=\"fa fa-calendar pe-1\" role=\"img\" aria-label=\"At\" title=\"At\"/"
43
+ ">"
44
+ msgstr ""
45
+
39
46
  #. module: automation_oca
40
47
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
41
48
  msgid ""
@@ -86,6 +93,15 @@ msgstr ""
86
93
  " <p>Cordialement,</p>\n"
87
94
  " "
88
95
 
96
+ #. module: automation_oca
97
+ #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
98
+ msgid ""
99
+ "<span class=\"col-2\" attrs=\"{'invisible': [('trigger_date_kind', '!=', "
100
+ "'offset')]}\">after</span>\n"
101
+ " <span class=\"col-2\" "
102
+ "attrs=\"{'invisible': [('trigger_date_kind', '=', 'offset')]}\">when</span>"
103
+ msgstr ""
104
+
89
105
  #. module: automation_oca
90
106
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
91
107
  msgid "<span class=\"col-2\">after</span>"
@@ -575,6 +591,11 @@ msgstr ""
575
591
  msgid "Field"
576
592
  msgstr "Champ"
577
593
 
594
+ #. module: automation_oca
595
+ #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__trigger_date_field
596
+ msgid "Field Label"
597
+ msgstr ""
598
+
578
599
  #. module: automation_oca
579
600
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration__filter_id
580
601
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
@@ -629,6 +650,11 @@ msgstr "Abonnés"
629
650
  msgid "Followers (Partners)"
630
651
  msgstr "Abonnés (partenaires)"
631
652
 
653
+ #. module: automation_oca
654
+ #: model:ir.model.fields.selection,name:automation_oca.selection__automation_configuration_step__trigger_date_kind__date
655
+ msgid "Force on Record Date"
656
+ msgstr ""
657
+
632
658
  #. module: automation_oca
633
659
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
634
660
  msgid "Generate new records"
@@ -996,6 +1022,11 @@ msgstr "Nombre de messages qui requièrent une action"
996
1022
  msgid "Number of messages with delivery error"
997
1023
  msgstr "Nombre de messages avec une erreur de livraison"
998
1024
 
1025
+ #. module: automation_oca
1026
+ #: model:ir.model.fields.selection,name:automation_oca.selection__automation_configuration_step__trigger_date_kind__offset
1027
+ msgid "Offset"
1028
+ msgstr ""
1029
+
999
1030
  #. module: automation_oca
1000
1031
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
1001
1032
  msgid ""
@@ -1341,6 +1372,15 @@ msgstr ""
1341
1372
  msgid "Tests"
1342
1373
  msgstr ""
1343
1374
 
1375
+ #. module: automation_oca
1376
+ #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
1377
+ msgid ""
1378
+ "The scheduled date will be the date of the record at the moment we generate "
1379
+ "the new record.\n"
1380
+ " Later changes of the field will not affect "
1381
+ "the scheduled date."
1382
+ msgstr ""
1383
+
1344
1384
  #. module: automation_oca
1345
1385
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
1346
1386
  msgid ""
@@ -1385,6 +1425,16 @@ msgstr "Déclencheur"
1385
1425
  msgid "Trigger Child Types"
1386
1426
  msgstr ""
1387
1427
 
1428
+ #. module: automation_oca
1429
+ #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__trigger_date_field_id
1430
+ msgid "Trigger Date Field"
1431
+ msgstr ""
1432
+
1433
+ #. module: automation_oca
1434
+ #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__trigger_date_kind
1435
+ msgid "Trigger Date Kind"
1436
+ msgstr ""
1437
+
1388
1438
  #. module: automation_oca
1389
1439
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__trigger_interval
1390
1440
  msgid "Trigger Interval"
@@ -45,6 +45,13 @@ msgstr ""
45
45
  msgid "%s configurations needs a parent"
46
46
  msgstr "La configurazione %s richiede un padre"
47
47
 
48
+ #. module: automation_oca
49
+ #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
50
+ msgid ""
51
+ "<i class=\"fa fa-calendar pe-1\" role=\"img\" aria-label=\"At\" title=\"At\"/"
52
+ ">"
53
+ msgstr ""
54
+
48
55
  #. module: automation_oca
49
56
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
50
57
  msgid ""
@@ -99,6 +106,15 @@ msgstr ""
99
106
  " <p>Cordiali saluti,</p>\n"
100
107
  " "
101
108
 
109
+ #. module: automation_oca
110
+ #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
111
+ msgid ""
112
+ "<span class=\"col-2\" attrs=\"{'invisible': [('trigger_date_kind', '!=', "
113
+ "'offset')]}\">after</span>\n"
114
+ " <span class=\"col-2\" "
115
+ "attrs=\"{'invisible': [('trigger_date_kind', '=', 'offset')]}\">when</span>"
116
+ msgstr ""
117
+
102
118
  #. module: automation_oca
103
119
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
104
120
  msgid "<span class=\"col-2\">after</span>"
@@ -588,6 +604,11 @@ msgstr "Tipo intervallo scadenza"
588
604
  msgid "Field"
589
605
  msgstr "Campo"
590
606
 
607
+ #. module: automation_oca
608
+ #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__trigger_date_field
609
+ msgid "Field Label"
610
+ msgstr ""
611
+
591
612
  #. module: automation_oca
592
613
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration__filter_id
593
614
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
@@ -650,6 +671,11 @@ msgstr "Seguito da"
650
671
  msgid "Followers (Partners)"
651
672
  msgstr "Seguito da (partner)"
652
673
 
674
+ #. module: automation_oca
675
+ #: model:ir.model.fields.selection,name:automation_oca.selection__automation_configuration_step__trigger_date_kind__date
676
+ msgid "Force on Record Date"
677
+ msgstr ""
678
+
653
679
  #. module: automation_oca
654
680
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
655
681
  msgid "Generate new records"
@@ -1019,6 +1045,11 @@ msgstr "Numero di messaggi che richiedono un'azione"
1019
1045
  msgid "Number of messages with delivery error"
1020
1046
  msgstr "Numero di messaggi con errore di consegna"
1021
1047
 
1048
+ #. module: automation_oca
1049
+ #: model:ir.model.fields.selection,name:automation_oca.selection__automation_configuration_step__trigger_date_kind__offset
1050
+ msgid "Offset"
1051
+ msgstr ""
1052
+
1022
1053
  #. module: automation_oca
1023
1054
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
1024
1055
  msgid ""
@@ -1368,6 +1399,15 @@ msgstr "Configurazione test"
1368
1399
  msgid "Tests"
1369
1400
  msgstr "Test"
1370
1401
 
1402
+ #. module: automation_oca
1403
+ #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_step_form_view
1404
+ msgid ""
1405
+ "The scheduled date will be the date of the record at the moment we generate "
1406
+ "the new record.\n"
1407
+ " Later changes of the field will not affect "
1408
+ "the scheduled date."
1409
+ msgstr ""
1410
+
1371
1411
  #. module: automation_oca
1372
1412
  #: model_terms:ir.ui.view,arch_db:automation_oca.automation_configuration_form_view
1373
1413
  msgid ""
@@ -1417,6 +1457,16 @@ msgstr "Attivazione"
1417
1457
  msgid "Trigger Child Types"
1418
1458
  msgstr "Tipi figli attivazione"
1419
1459
 
1460
+ #. module: automation_oca
1461
+ #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__trigger_date_field_id
1462
+ msgid "Trigger Date Field"
1463
+ msgstr ""
1464
+
1465
+ #. module: automation_oca
1466
+ #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__trigger_date_kind
1467
+ msgid "Trigger Date Kind"
1468
+ msgstr ""
1469
+
1420
1470
  #. module: automation_oca
1421
1471
  #: model:ir.model.fields,field_description:automation_oca.field_automation_configuration_step__trigger_interval
1422
1472
  msgid "Trigger Interval"
@@ -45,6 +45,14 @@ class AutomationConfigurationStep(models.Model):
45
45
  )
46
46
  step_icon = fields.Char(compute="_compute_step_info")
47
47
  step_name = fields.Char(compute="_compute_step_info")
48
+ trigger_date_kind = fields.Selection(
49
+ [
50
+ ("offset", "Offset"),
51
+ ("date", "Force on Record Date"),
52
+ ],
53
+ required=True,
54
+ default="offset",
55
+ )
48
56
  trigger_interval_hours = fields.Integer(
49
57
  compute="_compute_trigger_interval_hours", store=True
50
58
  )
@@ -56,6 +64,11 @@ class AutomationConfigurationStep(models.Model):
56
64
  trigger_interval_type = fields.Selection(
57
65
  [("hours", "Hour(s)"), ("days", "Day(s)")], required=True, default="hours"
58
66
  )
67
+ trigger_date_field_id = fields.Many2one(
68
+ "ir.model.fields",
69
+ domain="[('model_id', '=', model_id), ('ttype', 'in', ['date', 'datetime'])]",
70
+ )
71
+ trigger_date_field = fields.Char(related="trigger_date_field_id.field_description")
59
72
  allow_expiry = fields.Boolean(compute="_compute_allow_expiry")
60
73
  expiry = fields.Boolean(compute="_compute_expiry", store=True, readonly=False)
61
74
  expiry_interval = fields.Integer()
@@ -510,8 +523,8 @@ class AutomationConfigurationStep(models.Model):
510
523
  for record in self:
511
524
  record._check_configuration()
512
525
 
513
- def _get_record_activity_scheduled_date(self):
514
- if self.trigger_type in [
526
+ def _get_record_activity_scheduled_date(self, record, force=False):
527
+ if not force and self.trigger_type in [
515
528
  "mail_open",
516
529
  "mail_bounce",
517
530
  "mail_click",
@@ -522,7 +535,15 @@ class AutomationConfigurationStep(models.Model):
522
535
  "activity_cancel",
523
536
  ]:
524
537
  return False
525
- return fields.Datetime.now() + relativedelta(
538
+ if (
539
+ self.trigger_date_kind == "date"
540
+ and self.trigger_date_field_id
541
+ and record[self.trigger_date_field_id.name]
542
+ ):
543
+ date = fields.Datetime.to_datetime(record[self.trigger_date_field_id.name])
544
+ else:
545
+ date = fields.Datetime.now()
546
+ return date + relativedelta(
526
547
  **{self.trigger_interval_type: self.trigger_interval}
527
548
  )
528
549
 
@@ -534,7 +555,7 @@ class AutomationConfigurationStep(models.Model):
534
555
  )
535
556
 
536
557
  def _create_record_activity_vals(self, record, **kwargs):
537
- scheduled_date = self._get_record_activity_scheduled_date()
558
+ scheduled_date = self._get_record_activity_scheduled_date(record)
538
559
  do_not_wait = scheduled_date and scheduled_date < fields.Datetime.now()
539
560
  return {
540
561
  "configuration_step_id": self.id,
@@ -323,8 +323,8 @@ class AutomationRecordStep(models.Model):
323
323
  current_date = fields.Datetime.now()
324
324
  for record in todo:
325
325
  config = record.configuration_step_id
326
- scheduled_date = fields.Datetime.now() + relativedelta(
327
- **{config.trigger_interval_type: config.trigger_interval}
326
+ scheduled_date = config._get_record_activity_scheduled_date(
327
+ record.record_id.resource_ref, force=True
328
328
  )
329
329
  record.write(
330
330
  {
@@ -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:f8ad9dc9fe9dcc4fa324aadc5c89f580c5e73b1c020060870593c1c336f0b596
375
+ !! source digest: sha256:bf7f94a060a16c6d36248bb970d9cbc5925480da1127a49bfb77208b1a1821e5
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>
@@ -361,6 +361,38 @@ class TestAutomationBase(AutomationTestCase):
361
361
  record_activity.scheduled_date, datetime(2022, 1, 1, 1, 0, 0, 0)
362
362
  )
363
363
 
364
+ def test_schedule_date_force(self):
365
+ partner_01 = self.env["res.partner"].create(
366
+ {
367
+ "name": "Demo partner",
368
+ "comment": "Demo",
369
+ "email": "test@test.com",
370
+ "date": "2025-01-01",
371
+ }
372
+ )
373
+ with freeze_time("2024-01-01 00:00:00"):
374
+ activity = self.create_server_action(
375
+ trigger_date_kind="date",
376
+ trigger_date_field_id=self.env["ir.model.fields"]
377
+ .search(
378
+ [
379
+ ("name", "=", "date"),
380
+ ("model", "=", "res.partner"),
381
+ ]
382
+ )
383
+ .id,
384
+ trigger_interval=1,
385
+ trigger_interval_type="days",
386
+ )
387
+ self.configuration.editable_domain = "[('id', '=', %s)]" % partner_01.id
388
+ self.configuration.start_automation()
389
+ self.env["automation.configuration"].cron_automation()
390
+ record_activity = self.env["automation.record.step"].search(
391
+ [("configuration_step_id", "=", activity.id)]
392
+ )
393
+ self.assertEqual("scheduled", record_activity.state)
394
+ self.assertEqual(record_activity.scheduled_date, datetime(2025, 1, 2))
395
+
364
396
  def test_schedule_date_computation_days(self):
365
397
  with freeze_time("2022-01-01"):
366
398
  activity = self.create_server_action(
@@ -207,6 +207,7 @@
207
207
  <field name="parent_position" />
208
208
  <field name="trigger_child_types" />
209
209
  <field name="trigger_type_data" />
210
+ <field name="trigger_date_kind" />
210
211
  <field name="step_icon" />
211
212
  <field name="step_name" />
212
213
  <templates>
@@ -245,6 +246,17 @@
245
246
  t-esc="record.trigger_type_data.raw_value.message_configuration"
246
247
  />
247
248
  </div>
249
+ <div
250
+ t-if="record.trigger_date_kind.raw_value == 'date'"
251
+ >
252
+ <i
253
+ class="fa fa-calendar pe-1"
254
+ role="img"
255
+ aria-label="At"
256
+ title="At"
257
+ />
258
+ <field name="trigger_date_field" />
259
+ </div>
248
260
  <strong>
249
261
  <i
250
262
  class="fa fa-clock-o pe-1"
@@ -30,6 +30,7 @@
30
30
  <field name="model" invisible="1" />
31
31
  </group>
32
32
  <group>
33
+ <field name="trigger_date_kind" />
33
34
  <label for="trigger_interval" string="Trigger" />
34
35
  <div class="container ps-0">
35
36
  <div class="row">
@@ -42,8 +43,26 @@
42
43
  nolabel="1"
43
44
  /></div>
44
45
  </div>
45
- <div class="row">
46
+ <div
47
+ class="row"
48
+ attrs="{'invisible': [('trigger_date_kind', '!=', 'date')]}"
49
+ >
46
50
  <span class="col-2">after</span>
51
+ <div class="col-10"><field
52
+ name="trigger_date_field_id"
53
+ nolabel="1"
54
+ attrs="{'required': [('trigger_date_kind', '=', 'date')]}"
55
+ /></div>
56
+ </div>
57
+ <div class="row">
58
+ <span
59
+ class="col-2"
60
+ attrs="{'invisible': [('trigger_date_kind', '!=', 'offset')]}"
61
+ >after</span>
62
+ <span
63
+ class="col-2"
64
+ attrs="{'invisible': [('trigger_date_kind', '=', 'offset')]}"
65
+ >when</span>
47
66
  <div class="col-10"><field
48
67
  name="trigger_type"
49
68
  nolabel="1"
@@ -62,6 +81,14 @@
62
81
  </div>
63
82
  </div>
64
83
  <field name="allow_expiry" invisible="1" />
84
+ <div
85
+ class="container ps-0 alert alert-warning"
86
+ colspan="2"
87
+ attrs="{'invisible': [('trigger_date_kind', '!=', 'date')]}"
88
+ >
89
+ The scheduled date will be the date of the record at the moment we generate the new record.
90
+ Later changes of the field will not affect the scheduled date.
91
+ </div>
65
92
  <field
66
93
  name="expiry"
67
94
  attrs="{'invisible': [('allow_expiry', '=', False)]}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-automation_oca
3
- Version: 16.0.1.5.4.1
3
+ Version: 16.0.1.5.5.1
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:f8ad9dc9fe9dcc4fa324aadc5c89f580c5e73b1c020060870593c1c336f0b596
29
+ !! source digest: sha256:bf7f94a060a16c6d36248bb970d9cbc5925480da1127a49bfb77208b1a1821e5
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=8qVWovzijsZQAitkT-2j6okJpLkNYsezwoqMmRGoE18,7127
1
+ odoo/addons/automation_oca/README.rst,sha256=xDyJpAjc6O9N6fFD8CeOHpM_dXFpkljZhi2JJ5VEso4,7127
2
2
  odoo/addons/automation_oca/__init__.py,sha256=dnUeA_K1torbiMNF3tt2dtECdk-FkWm01DByr9MBMIA,69
3
- odoo/addons/automation_oca/__manifest__.py,sha256=D2bYN9Zr8dsiMP8mm3XlIskIIhPZau78iUee3LPlASo,1181
3
+ odoo/addons/automation_oca/__manifest__.py,sha256=HqA97n4NxxLIACpgXkspezO6ZlnIMrG-ZSpisKe1W1E,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=GT-2I6Zr-uwaLgX0uMeJbfJUWoYSbJNkvmuEYagSNyI,52559
9
- odoo/addons/automation_oca/i18n/es.po,sha256=rQpb0mDzq-9xSiBd7QbuiI2lcJYgkkP-fUnB2V-Vb1Y,59506
10
- odoo/addons/automation_oca/i18n/fr.po,sha256=kLNqj5fT_Y4LfZ2huBQJexkb4LiEHW3XekzRZERZo_M,56132
11
- odoo/addons/automation_oca/i18n/it.po,sha256=XtCe3FZ2qFf_WhyIK_1yOyqsCUotMK1SJ_NcAKgHxA8,59140
8
+ odoo/addons/automation_oca/i18n/automation_oca.pot,sha256=Lkbq0dLRgwNWKr2Eq5B5k_eNR4xFt4yxn-wXoZYTn_o,54360
9
+ odoo/addons/automation_oca/i18n/es.po,sha256=614OBR8M7kUtf02KmRozHdicAxA8tqD6bMBLjPAjkcc,61325
10
+ odoo/addons/automation_oca/i18n/fr.po,sha256=aMhFfpZ0DJbFndisLtfvzYDCm3cF2mlhcayv4_JGZEc,57951
11
+ odoo/addons/automation_oca/i18n/it.po,sha256=fgYYesmpKQXB2BzC3l0dptC2e1-miTS86EyhpRKUP1Q,60959
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=euIPXQ8OFPPLKJrxSUbyQJQqdj9jo1rh8_mdbHYpZOs,20752
14
+ odoo/addons/automation_oca/models/automation_configuration_step.py,sha256=NXoKLeJsiGHddpQYNHyKaB8J8jY75FVhV4u_eJ4cyCI,21538
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=lL6d7DM4zuuvqUlutFY74ePh2CtSfiPTlA6qkNl58zA,17189
17
+ odoo/addons/automation_oca/models/automation_record_step.py,sha256=FhES8rUKBGEdYN8ZT7CfFuePoZ9GVfvUreR3n-coOps,17178
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=BAn8qG7downgK7nKjYIL-ERCnRum30LxLm-5_-uBKdA,18438
32
+ odoo/addons/automation_oca/static/description/index.html,sha256=FKt9bpP6TStXZecRLpRM7FkuU1ldUe1ZiVV0hWT2WhQ,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
@@ -41,11 +41,11 @@ odoo/addons/automation_oca/tests/__init__.py,sha256=5VS2h2Hl3gUzMQqKgPUYnq-_Wkk7
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
43
  odoo/addons/automation_oca/tests/test_automation_activity.py,sha256=qxFLK1OAfOgDApNRC5pZPjuf3JUXHDfFewkungxcAbg,15269
44
- odoo/addons/automation_oca/tests/test_automation_base.py,sha256=SjBtUxD7JRvG0neCWpPi36fcxafV3nR4IKg9jmNvFcw,28453
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
- odoo/addons/automation_oca/views/automation_configuration.xml,sha256=d6jypvuN2wjNLadVZ7cDEEiPIN5ukXYv6oQztm1eIG4,25999
48
- odoo/addons/automation_oca/views/automation_configuration_step.xml,sha256=x2ZfzH1xa4lk4Sz8CSxpThFvhWDws7QrInZnp69CftE,9936
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
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.4.1.dist-info/METADATA,sha256=4hNZSFRV27UPk6923hOzyefsizgmSCI5Sxxqj-ockxY,7646
60
- odoo_addon_automation_oca-16.0.1.5.4.1.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
61
- odoo_addon_automation_oca-16.0.1.5.4.1.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
62
- odoo_addon_automation_oca-16.0.1.5.4.1.dist-info/RECORD,,
59
+ odoo_addon_automation_oca-16.0.1.5.5.1.dist-info/METADATA,sha256=iQaY_MhCDnnPYJa8aGZUnWQMvFaDiMr743GSwYr8iIU,7646
60
+ odoo_addon_automation_oca-16.0.1.5.5.1.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
61
+ odoo_addon_automation_oca-16.0.1.5.5.1.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
62
+ odoo_addon_automation_oca-16.0.1.5.5.1.dist-info/RECORD,,