From 5a254a55b07e4e641ba56aa65d905e0bce378eed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 11 Apr 2022 23:24:21 +0200 Subject: [PATCH] Add validate_fields to ModelStorage issue11303 review386191002 --- marketing_automation.py | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/marketing_automation.py b/marketing_automation.py index 3e3b2f9676..881547dadc 100644 --- a/marketing_automation.py +++ b/marketing_automation.py @@ -156,13 +156,15 @@ class Scenario(Workflow, ModelSQL, ModelView): return count @classmethod - def validate(cls, scenarios): - super().validate(scenarios) + def validate_fields(cls, scenarios, field_names): + super().validate_fields(scenarios, field_names) cls.check_domain(scenarios) @classmethod - def check_domain(cls, scenarios): + def check_domain(cls, scenarios, field_names=None): pool = Pool() + if field_names and not (field_names & {'model', 'domain'}): + return for scenario in scenarios: Model = pool.get(scenario.model) try: @@ -435,14 +437,16 @@ class Activity(ModelSQL, ModelView): return count @classmethod - def validate(cls, activities): - super().validate(activities) + def validate_fields(cls, activities, fields_names): + super().validate_fields(activities, fields_names) for activity in activities: - activity.check_condition() - activity.check_email_title() - activity.check_email_template() + activity.check_condition(fields_names) + activity.check_email_title(fields_names) + activity.check_email_template(fields_names) - def check_condition(self): + def check_condition(self, fields_names=None): + if fields_names and 'condition' not in fields_names: + return if not self.condition: return try: @@ -454,7 +458,9 @@ class Activity(ModelSQL, ModelView): activity=self.rec_name, exception=exception)) from exception - def check_email_template(self): + def check_email_template(self, fields_names=None): + if fields_names and 'email_template' not in fields_names: + return if not self.email_template: return try: @@ -466,7 +472,9 @@ class Activity(ModelSQL, ModelView): activity=self.rec_name, exception=exception)) from exception - def check_email_title(self): + def check_email_title(self, fields_names=None): + if fields_names and 'email_title' not in fields_names: + return if not self.email_title: return try: