@@ -85,47 +85,11 @@ def _create_compliance_manager(self, program):
85
85
self .ensure_one ()
86
86
program .ensure_one ()
87
87
self ._check_compliance_manager_info ()
88
- if self .compliance_kind == "g2p.program_membership.manager.default" :
89
- manager = (
90
- self .env [self .compliance_kind ]
91
- .sudo ()
92
- .create (
93
- {
94
- "name" : "Default" ,
95
- "program_id" : program .id ,
96
- "admin_area_ids" : [(6 , 0 , self .admin_area_ids .ids )],
97
- "eligibility_domain" : self .compliance_domain ,
98
- }
99
- )
100
- )
101
- elif self .compliance_kind == "g2p.program_membership.manager.sql" :
102
- manager = (
103
- self .env [self .compliance_kind ]
104
- .sudo ()
105
- .create (
106
- {
107
- "name" : "SQL Query" ,
108
- "program_id" : program .id ,
109
- "sql_query" : self .compliance_sql ,
110
- "sql_query_valid" : "valid" ,
111
- "sql_query_valid_message" : "" ,
112
- "sql_record_count" : 0 ,
113
- }
114
- )
115
- )
116
- elif self .compliance_kind == "g2p.program_membership.manager.tags" :
117
- manager = (
118
- self .env [self .compliance_kind ]
119
- .sudo ()
120
- .create (
121
- {
122
- "name" : "Tags Manager" ,
123
- "program_id" : program .id ,
124
- "tags_id" : self .compliance_tag_id .id ,
125
- "area_id" : self .area_id .id ,
126
- }
127
- )
128
- )
88
+ manager = (
89
+ self .env [self .compliance_kind ]
90
+ .sudo ()
91
+ .create (self ._prepare_compliance_criteria_create_vals (program ))
92
+ )
129
93
program .write (
130
94
{
131
95
"compliance_managers" : [
@@ -140,3 +104,47 @@ def _create_compliance_manager(self, program):
140
104
],
141
105
}
142
106
)
107
+
108
+ def _prepare_compliance_criteria_create_vals (self , program ):
109
+ """
110
+ Preparing vals for creating compliance criteria manager for new program.
111
+
112
+ :param program: instance of g2p.program()
113
+ :return (dictionary): create vals for compliance criteria manager
114
+ :raise: NotImplementedError for compliance_kind not yet existed
115
+
116
+ How to inherit this function:
117
+ ```python
118
+ def _prepare_compliance_criteria_create_vals(self, program):
119
+ if self.compliance_kind = "new.manager.type":
120
+ return {
121
+ "key": "value",
122
+ ...
123
+ }
124
+ return super()._prepare_compliance_criteria_create_vals(program)
125
+ ```
126
+ """
127
+ if self .compliance_kind == "g2p.program_membership.manager.default" :
128
+ return {
129
+ "name" : "Default" ,
130
+ "program_id" : program .id ,
131
+ "admin_area_ids" : [(6 , 0 , self .admin_area_ids .ids )],
132
+ "eligibility_domain" : self .compliance_domain ,
133
+ }
134
+ elif self .compliance_kind == "g2p.program_membership.manager.sql" :
135
+ return {
136
+ "name" : "SQL Query" ,
137
+ "program_id" : program .id ,
138
+ "sql_query" : self .compliance_sql ,
139
+ "sql_query_valid" : "valid" ,
140
+ "sql_query_valid_message" : "" ,
141
+ "sql_record_count" : 0 ,
142
+ }
143
+ elif self .compliance_kind == "g2p.program_membership.manager.tags" :
144
+ return {
145
+ "name" : "Tags Manager" ,
146
+ "program_id" : program .id ,
147
+ "tags_id" : self .compliance_tag_id .id ,
148
+ "area_id" : self .area_id .id ,
149
+ }
150
+ raise NotImplementedError ()
0 commit comments