| 206 | |
| 207 | |
| 208 | class Report_Runner(): |
| 209 | |
| 210 | def __init__( |
| 211 | self, |
| 212 | session, |
| 213 | report_template_id: int = None, |
| 214 | report_template_data: dict = None, |
| 215 | metadata: dict = None, |
| 216 | member = None, |
| 217 | project_string_id = None |
| 218 | |
| 219 | ): |
| 220 | |
| 221 | self.session = session |
| 222 | self.report_template_id = report_template_id |
| 223 | self.report_template_data = report_template_data |
| 224 | |
| 225 | self.time_created_normalized = None |
| 226 | |
| 227 | self.metadata_untrusted = metadata |
| 228 | self.member = member |
| 229 | |
| 230 | self.project_string_id = project_string_id |
| 231 | self.project = Project.get_by_string_id(self.session, self.project_string_id) |
| 232 | |
| 233 | self.log = regular_log.default() |
| 234 | |
| 235 | # Context of say report list or something else... |
| 236 | if not self.metadata_untrusted: |
| 237 | return |
| 238 | |
| 239 | self.metadata = self.validate_report_spec( |
| 240 | metadata_untrusted = self.metadata_untrusted) |
| 241 | if len(self.log["error"].keys()) >= 1: |
| 242 | return |
| 243 | |
| 244 | if 'all' in self.metadata.get('member_list', []): |
| 245 | project = Project.get_by_string_id(session, self.metadata['project_string_id']) |
| 246 | users = project.users |
| 247 | member_ids = [u.member_id for u in users] |
| 248 | self.metadata['member_list'] = member_ids |
| 249 | |
| 250 | @staticmethod |
| 251 | def string_to_class(item_of_interest: str): |
| 252 | """ |
| 253 | We assume that item_of_interest has been |
| 254 | converted to lower case already here |
| 255 | |
| 256 | more general approach - more scale |
| 257 | get_class = lambda x: globals()[x] |
| 258 | form_class = get_class(report.customization_forms.form_class_name) |
| 259 | """ |
| 260 | |
| 261 | class_dict = { |
| 262 | 'instance': Instance, |
| 263 | 'user': User, |
| 264 | 'file': File, |
| 265 | 'task': TaskEvent, |
no outgoing calls
no test coverage detected