| 636 | |
| 637 | |
| 638 | class TriggerQuerySerializer(serializers.Serializer): |
| 639 | name = serializers.CharField(required=False, allow_null=True, allow_blank=True, label=_('Trigger name')) |
| 640 | type = serializers.CharField(required=False, allow_blank=True, allow_null=True, label=_('Trigger type')) |
| 641 | is_active = serializers.BooleanField(required=False, allow_null=True, label=_('Is active')) |
| 642 | task = serializers.CharField(required=False, allow_blank=True, allow_null=True, label=_('Trigger task')) |
| 643 | create_user = serializers.CharField(required=False, allow_blank=True, allow_null=True, label=_('Create user')) |
| 644 | workspace_id = serializers.CharField(required=True, label=_('workspace id')) |
| 645 | |
| 646 | def get_query_set(self): |
| 647 | trigger_query_set = QuerySet( |
| 648 | model=get_dynamics_model({ |
| 649 | 't.name': models.CharField(), |
| 650 | 'trigger_type': models.CharField(), |
| 651 | 't.workspace_id': models.CharField(), |
| 652 | 't.is_active': models.BooleanField(), |
| 653 | 't.user_id': models.CharField(), |
| 654 | })) |
| 655 | task_query_set = QuerySet(model=get_dynamics_model({ |
| 656 | 'trigger_task_str': models.CharField(), |
| 657 | })) |
| 658 | trigger_query_set = trigger_query_set.filter(**{'t.workspace_id': self.data.get("workspace_id")}) |
| 659 | if self.data.get("name"): |
| 660 | trigger_query_set = trigger_query_set.filter(**{'t.name__icontains': self.data.get("name")}) |
| 661 | if self.data.get("type"): |
| 662 | trigger_query_set = trigger_query_set.filter(trigger_type=self.data.get("type")) |
| 663 | if self.data.get("is_active") is not None: |
| 664 | trigger_query_set = trigger_query_set.filter(**{"t.is_active": self.data.get("is_active")}) |
| 665 | if self.data.get("task"): |
| 666 | task_query_set = task_query_set.filter(trigger_task_str__icontains=self.data.get("task")) |
| 667 | if self.data.get("create_user"): |
| 668 | trigger_query_set = trigger_query_set.filter(**{"t.user_id": self.data.get("create_user")}) |
| 669 | |
| 670 | return {"trigger_query_set": trigger_query_set, "task_query_set": task_query_set} |
| 671 | |
| 672 | def page(self, current_page: int, page_size: int, with_valid=True): |
| 673 | if with_valid: |
| 674 | self.is_valid(raise_exception=True) |
| 675 | return native_page_search(current_page, page_size, self.get_query_set(), get_file_content( |
| 676 | os.path.join(PROJECT_DIR, "apps", "trigger", "sql", "get_trigger_page_list.sql") |
| 677 | )) |
| 678 | |
| 679 | def list(self, with_valid=True): |
| 680 | if with_valid: |
| 681 | self.is_valid(raise_exception=True) |
| 682 | return native_search(self.get_query_set(), select_string=get_file_content( |
| 683 | os.path.join(PROJECT_DIR, "apps", "trigger", "sql", "get_trigger_page_list.sql"))) |