wbcompliance 1.54.17__tar.gz → 1.58.2__tar.gz
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.
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/PKG-INFO +1 -1
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/filters/risk_management/checks.py +8 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/models/compliance_task.py +5 -5
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/models/enums.py +1 -1
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/models/risk_management/checks.py +6 -3
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/models/risk_management/incidents.py +8 -3
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/models/risk_management/mixins.py +2 -2
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/models/risk_management/rules.py +6 -3
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/serializers/risk_management/checks.py +1 -1
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tests/disable_signals.py +11 -10
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tests/test_views.py +1 -1
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/buttons/compliance_form.py +3 -3
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/buttons/compliance_task.py +14 -14
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/risk_management/checks.py +14 -3
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/risk_management/mixins.py +1 -1
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/.gitignore +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/pyproject.toml +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/admin/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/admin/compliance_form.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/admin/compliance_task.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/admin/compliance_type.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/admin/risk_management/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/admin/risk_management/checks.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/admin/risk_management/incidents.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/admin/risk_management/rules.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/admin/utils.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/apps.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/factories/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/factories/compliance.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/factories/risk_management/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/factories/risk_management/backends.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/factories/risk_management/checks.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/factories/risk_management/incidents.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/factories/risk_management/rules.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/filters/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/filters/compliances.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/filters/risk_management/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/filters/risk_management/incidents.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/filters/risk_management/rules.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/filters/risk_management/tables.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/filters/risk_management/utils.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/fixtures/compliance.yaml +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/locale/de/LC_MESSAGES/django.mo +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/locale/de/LC_MESSAGES/django.po +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/locale/en/LC_MESSAGES/django.mo +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/locale/en/LC_MESSAGES/django.po +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/locale/fr/LC_MESSAGES/django.mo +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/locale/fr/LC_MESSAGES/django.po +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/management/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/migrations/0001_initial_squashed_squashed_0010_alter_checkedobjectincidentrelationship_resolved_by_and_more.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/migrations/0011_alter_riskrule_parameters.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/migrations/0012_alter_compliancetype_options.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/migrations/0013_alter_riskrule_unique_together.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/migrations/0014_alter_reviewcompliancetask_year.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/migrations/0015_auto_20240103_0957.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/migrations/0016_checkedobjectincidentrelationship_report_details_and_more.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/migrations/0017_alter_rulebackend_incident_report_template.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/migrations/0018_alter_rulecheckedobjectrelationship_unique_together.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/migrations/0019_rulegroup_riskrule_activation_date_and_more.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/migrations/0020_rename_trigger_content_type_riskcheck_checked_object_content_type_and_more.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/migrations/0021_riskcheck_passive_check.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/migrations/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/models/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/models/compliance_form.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/models/compliance_type.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/models/risk_management/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/models/risk_management/backend.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/models/risk_management/dispatch.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/permissions.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/serializers/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/serializers/compliance_form.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/serializers/compliance_task.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/serializers/compliance_type.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/serializers/risk_management/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/serializers/risk_management/incidents.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/serializers/risk_management/rules.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tasks.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/templates/compliance/compliance_form.html +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/templates/compliance/review_compliance_task_report.html +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/templates/risk_management/incident_notification.html +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/templates/risk_management/incident_report.html +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tests/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tests/conftest.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tests/mixins.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tests/risk_management/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tests/risk_management/models/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tests/risk_management/models/test_backends.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tests/risk_management/models/test_checks.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tests/risk_management/models/test_incidents.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tests/risk_management/models/test_rules.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tests/signals.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tests/test_filters.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tests/test_models.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tests/test_serializers.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tests/tests.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/urls.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/buttons/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/buttons/risk_managment/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/buttons/risk_managment/checks.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/buttons/risk_managment/incidents.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/buttons/risk_managment/rules.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/compliance_form.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/compliance_task.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/compliance_type.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/display/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/display/compliance_form.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/display/compliance_task.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/display/compliance_type.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/display/risk_managment/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/display/risk_managment/checks.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/display/risk_managment/incidents.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/display/risk_managment/rules.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/display/risk_managment/tables.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/endpoints/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/endpoints/compliance_form.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/endpoints/compliance_task.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/endpoints/compliance_type.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/endpoints/risk_managment/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/endpoints/risk_managment/checks.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/endpoints/risk_managment/incidents.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/endpoints/risk_managment/rules.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/endpoints/risk_managment/tables.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/menu/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/menu/compliance_form.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/menu/compliance_task.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/menu/compliance_type.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/menu/risk_management.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/risk_management/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/risk_management/incidents.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/risk_management/rules.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/risk_management/tables.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/titles/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/titles/compliance_form.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/titles/compliance_task.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/titles/compliance_type.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/titles/risk_managment/__init__.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/titles/risk_managment/checks.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/titles/risk_managment/incidents.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/titles/risk_managment/rules.py +0 -0
- {wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/titles/risk_managment/tables.py +0 -0
|
@@ -12,6 +12,14 @@ class RiskCheckFilterSet(wb_filters.FilterSet):
|
|
|
12
12
|
distinct=True,
|
|
13
13
|
hidden=True,
|
|
14
14
|
)
|
|
15
|
+
activators = wb_filters.MultipleChoiceContentTypeFilter(
|
|
16
|
+
label="Activators",
|
|
17
|
+
field_name="activators",
|
|
18
|
+
object_id_label="activator_id",
|
|
19
|
+
content_type_label="activator_content_type",
|
|
20
|
+
distinct=True,
|
|
21
|
+
hidden=True,
|
|
22
|
+
)
|
|
15
23
|
passive_check = wb_filters.BooleanFilter(initial=True, required=True, label="Passive")
|
|
16
24
|
|
|
17
25
|
class Meta:
|
|
@@ -75,7 +75,7 @@ class ComplianceTask(WBModel):
|
|
|
75
75
|
@classmethod
|
|
76
76
|
def get_color_map(cls) -> list:
|
|
77
77
|
colors = [WBColor.GREEN_LIGHT.value, WBColor.YELLOW_LIGHT.value, WBColor.RED_LIGHT.value]
|
|
78
|
-
return [choice for choice in zip(cls, colors)]
|
|
78
|
+
return [choice for choice in zip(cls, colors, strict=False)]
|
|
79
79
|
|
|
80
80
|
title = models.CharField(max_length=255, verbose_name=_("Title"))
|
|
81
81
|
description = models.TextField(default="", blank=True, verbose_name=_("Description"))
|
|
@@ -171,7 +171,7 @@ class ComplianceTaskInstance(models.Model):
|
|
|
171
171
|
WBColor.BLUE_LIGHT.value,
|
|
172
172
|
WBColor.RED_LIGHT.value,
|
|
173
173
|
]
|
|
174
|
-
return [choice for choice in zip(cls, colors)]
|
|
174
|
+
return [choice for choice in zip(cls, colors, strict=False)]
|
|
175
175
|
|
|
176
176
|
task = models.ForeignKey(
|
|
177
177
|
on_delete=models.CASCADE,
|
|
@@ -235,7 +235,7 @@ class ComplianceAction(models.Model):
|
|
|
235
235
|
@classmethod
|
|
236
236
|
def get_color_map(cls) -> list:
|
|
237
237
|
colors = [WBColor.GREY.value, WBColor.YELLOW_LIGHT.value, WBColor.GREEN_LIGHT.value]
|
|
238
|
-
return [choice for choice in zip(cls, colors)]
|
|
238
|
+
return [choice for choice in zip(cls, colors, strict=False)]
|
|
239
239
|
|
|
240
240
|
title = models.CharField(max_length=255, verbose_name=_("Title"))
|
|
241
241
|
description = models.TextField(
|
|
@@ -310,7 +310,7 @@ class ComplianceEvent(models.Model):
|
|
|
310
310
|
@classmethod
|
|
311
311
|
def get_color_map(cls) -> list:
|
|
312
312
|
colors = [WBColor.GREY.value, WBColor.BLUE_LIGHT.value]
|
|
313
|
-
return [choice for choice in zip(cls, colors)]
|
|
313
|
+
return [choice for choice in zip(cls, colors, strict=False)]
|
|
314
314
|
|
|
315
315
|
type_event = models.CharField(
|
|
316
316
|
max_length=32,
|
|
@@ -414,7 +414,7 @@ class ReviewComplianceTask(ComplianceDocumentMixin, ComplexToStringMixin, WBMode
|
|
|
414
414
|
WBColor.YELLOW_LIGHT.value,
|
|
415
415
|
WBColor.GREEN_LIGHT.value,
|
|
416
416
|
]
|
|
417
|
-
return [choice for choice in zip(cls, colors)]
|
|
417
|
+
return [choice for choice in zip(cls, colors, strict=False)]
|
|
418
418
|
|
|
419
419
|
class Meta:
|
|
420
420
|
verbose_name = "Review Compliance Task"
|
|
@@ -10,4 +10,4 @@ class IncidentSeverity(models.TextChoices):
|
|
|
10
10
|
@classmethod
|
|
11
11
|
def get_color_map(cls) -> list:
|
|
12
12
|
colors = [WBColor.GREEN_LIGHT.value, WBColor.YELLOW_LIGHT.value, WBColor.RED_LIGHT.value]
|
|
13
|
-
return [choice for choice in zip(cls, colors)]
|
|
13
|
+
return [choice for choice in zip(cls, colors, strict=False)]
|
|
@@ -99,9 +99,12 @@ class RiskCheck(ComplexToStringMixin, WBModel):
|
|
|
99
99
|
@property
|
|
100
100
|
def needs_incident(self) -> bool:
|
|
101
101
|
# if the there is a similar checked object relationship, we needs to create a general incident if the check evaluates to a breach
|
|
102
|
-
return
|
|
103
|
-
|
|
104
|
-
|
|
102
|
+
return (
|
|
103
|
+
self.rule.checked_object_relationships.filter(
|
|
104
|
+
checked_object_content_type=self.checked_object_content_type, checked_object_id=self.checked_object_id
|
|
105
|
+
).exists()
|
|
106
|
+
or self.activator_id is not None
|
|
107
|
+
)
|
|
105
108
|
|
|
106
109
|
@property
|
|
107
110
|
def previous_check(self) -> Self | None:
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/models/risk_management/incidents.py
RENAMED
|
@@ -29,7 +29,6 @@ from wbcore.metadata.configs.buttons import ActionButton, ButtonDefaultColor
|
|
|
29
29
|
from wbcore.metadata.configs.display.instance_display.shortcuts import (
|
|
30
30
|
create_simple_display,
|
|
31
31
|
)
|
|
32
|
-
from wbcore.models import WBModel
|
|
33
32
|
from wbcore.utils.models import ComplexToStringMixin
|
|
34
33
|
|
|
35
34
|
User: BaseUser = get_user_model()
|
|
@@ -109,7 +108,7 @@ class RiskIncidentMixin(models.Model):
|
|
|
109
108
|
abstract = True
|
|
110
109
|
|
|
111
110
|
|
|
112
|
-
class CheckedObjectIncidentRelationship(ComplexToStringMixin, RiskIncidentMixin
|
|
111
|
+
class CheckedObjectIncidentRelationship(ComplexToStringMixin, RiskIncidentMixin):
|
|
113
112
|
incident = models.ForeignKey(
|
|
114
113
|
to="wbcompliance.RiskIncident",
|
|
115
114
|
related_name="checked_object_relationships",
|
|
@@ -229,6 +228,9 @@ class CheckedObjectIncidentRelationship(ComplexToStringMixin, RiskIncidentMixin,
|
|
|
229
228
|
models.Index(fields=["incident", "rule_check"]),
|
|
230
229
|
]
|
|
231
230
|
|
|
231
|
+
def __str__(self) -> str:
|
|
232
|
+
return super().__str__()
|
|
233
|
+
|
|
232
234
|
def compute_str(self) -> str:
|
|
233
235
|
return _("{} {} Sub Incident for checked_object {}").format(self.status, self.severity, self.rule_check)
|
|
234
236
|
|
|
@@ -259,7 +261,7 @@ class RiskIncidentDefaultManager(models.Manager):
|
|
|
259
261
|
)
|
|
260
262
|
|
|
261
263
|
|
|
262
|
-
class RiskIncident(ComplexToStringMixin, RiskIncidentMixin
|
|
264
|
+
class RiskIncident(ComplexToStringMixin, RiskIncidentMixin):
|
|
263
265
|
"""
|
|
264
266
|
Instance defining the incident that has happened during a check initiated by a certain rule
|
|
265
267
|
"""
|
|
@@ -382,6 +384,9 @@ class RiskIncident(ComplexToStringMixin, RiskIncidentMixin, WBModel):
|
|
|
382
384
|
)
|
|
383
385
|
]
|
|
384
386
|
|
|
387
|
+
def __str__(self) -> str:
|
|
388
|
+
return super().__str__()
|
|
389
|
+
|
|
385
390
|
def save(self, *args, **kwargs):
|
|
386
391
|
if not self.breached_object_repr:
|
|
387
392
|
self.breached_object_repr = str(self.breached_content_object)
|
|
@@ -97,8 +97,8 @@ class RiskCheckMixin(models.Model):
|
|
|
97
97
|
)[0]
|
|
98
98
|
if asynchronously:
|
|
99
99
|
transaction.on_commit(
|
|
100
|
-
lambda: evaluate_as_task.delay(
|
|
101
|
-
|
|
100
|
+
lambda check_id=check.id: evaluate_as_task.delay(
|
|
101
|
+
check_id, *dto, override_incident=True, ignore_informational_threshold=True
|
|
102
102
|
)
|
|
103
103
|
)
|
|
104
104
|
else:
|
|
@@ -47,6 +47,9 @@ class RuleGroup(models.Model):
|
|
|
47
47
|
self.name = self.key.title()
|
|
48
48
|
super().save(*args, **kwargs)
|
|
49
49
|
|
|
50
|
+
def __str__(self) -> str:
|
|
51
|
+
return self.name
|
|
52
|
+
|
|
50
53
|
@classmethod
|
|
51
54
|
def get_representation_endpoint(cls) -> str:
|
|
52
55
|
return "wbcompliance:rulegrouprepresentation-list"
|
|
@@ -60,7 +63,7 @@ class RuleGroup(models.Model):
|
|
|
60
63
|
return "{{name}}"
|
|
61
64
|
|
|
62
65
|
|
|
63
|
-
class RuleCheckedObjectRelationship(ComplexToStringMixin
|
|
66
|
+
class RuleCheckedObjectRelationship(ComplexToStringMixin):
|
|
64
67
|
rule = models.ForeignKey(
|
|
65
68
|
to="wbcompliance.RiskRule", related_name="checked_object_relationships", on_delete=models.CASCADE
|
|
66
69
|
)
|
|
@@ -261,7 +264,7 @@ class RuleBackend(models.Model):
|
|
|
261
264
|
return "{{name}}"
|
|
262
265
|
|
|
263
266
|
|
|
264
|
-
class RuleThreshold(ComplexToStringMixin
|
|
267
|
+
class RuleThreshold(ComplexToStringMixin):
|
|
265
268
|
"""
|
|
266
269
|
Represent the list of threshold and its associated severity link to a certain rule
|
|
267
270
|
"""
|
|
@@ -447,7 +450,7 @@ class RiskRule(PermissionObjectModelMixin, WBModel):
|
|
|
447
450
|
def checked_object_representation(self) -> str:
|
|
448
451
|
try:
|
|
449
452
|
backend_class = self.rule_backend.backend_class
|
|
450
|
-
checked_object_repr =
|
|
453
|
+
checked_object_repr = backend_class.OBJECT_FIELD_NAME.title()
|
|
451
454
|
except AttributeError:
|
|
452
455
|
checked_object_repr = "Object"
|
|
453
456
|
return checked_object_repr
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/serializers/risk_management/checks.py
RENAMED
|
@@ -17,7 +17,7 @@ class RiskCheckModelSerializer(wb_serializers.ModelSerializer):
|
|
|
17
17
|
_rule = RiskRuleRepresentationSerializer(source="rule")
|
|
18
18
|
_checked_object_content_type = ContentTypeRepresentationSerializer(source="checked_object_content_type")
|
|
19
19
|
|
|
20
|
-
incident_reports = wb_serializers.TextField()
|
|
20
|
+
incident_reports = wb_serializers.TextField(read_only=True)
|
|
21
21
|
status_icon = IconSelectField(read_only=True)
|
|
22
22
|
|
|
23
23
|
@wb_serializers.register_resource()
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
from collections import defaultdict
|
|
2
2
|
|
|
3
|
-
from django.db.models.signals import
|
|
3
|
+
from django.db.models.signals import (
|
|
4
|
+
post_delete,
|
|
5
|
+
post_init,
|
|
6
|
+
post_migrate,
|
|
7
|
+
post_save,
|
|
8
|
+
pre_delete,
|
|
9
|
+
pre_init,
|
|
10
|
+
pre_migrate,
|
|
11
|
+
pre_save,
|
|
12
|
+
)
|
|
4
13
|
|
|
5
14
|
|
|
6
15
|
class DisableSignals(object):
|
|
@@ -50,7 +59,7 @@ class DisableSignals(object):
|
|
|
50
59
|
# self.disconnect(signal)
|
|
51
60
|
|
|
52
61
|
|
|
53
|
-
class
|
|
62
|
+
class TempDisconnectSignal:
|
|
54
63
|
"""Temporarily disconnect a model from a signal"""
|
|
55
64
|
|
|
56
65
|
def __init__(self, signal, receiver, sender, dispatch_uid=None):
|
|
@@ -72,11 +81,3 @@ class temp_disconnect_signal:
|
|
|
72
81
|
sender=self.sender,
|
|
73
82
|
dispatch_uid=self.dispatch_uid,
|
|
74
83
|
)
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
class DisableSignalsNotification(temp_disconnect_signal):
|
|
78
|
-
def __init__(self, dispatch_uid=None):
|
|
79
|
-
self.signal = post_save
|
|
80
|
-
self.receiver = post_create_notification
|
|
81
|
-
self.sender = Notification
|
|
82
|
-
self.dispatch_uid = dispatch_uid
|
|
@@ -342,7 +342,7 @@ class TestSpecificViewsets(UserTestMixin):
|
|
|
342
342
|
assert response.data.get("results")
|
|
343
343
|
|
|
344
344
|
@pytest.mark.parametrize("mvs", [ComplianceTaskMatrixPandasViewSet])
|
|
345
|
-
def
|
|
345
|
+
def test_pandasapiview(self, mvs, compliance_task_factory, compliance_task_instance_factory):
|
|
346
346
|
request = APIRequestFactory().get("")
|
|
347
347
|
request.user = get_or_create_superuser()
|
|
348
348
|
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/buttons/compliance_form.py
RENAMED
|
@@ -20,9 +20,9 @@ class AbstractComplianceDocumentButtonConfig:
|
|
|
20
20
|
return bt.ActionButton(
|
|
21
21
|
method=RequestType.PATCH,
|
|
22
22
|
key="regenerate_document",
|
|
23
|
-
action_label=_("
|
|
24
|
-
title=_("
|
|
25
|
-
label=_("
|
|
23
|
+
action_label=_("PDF Document is being generated"),
|
|
24
|
+
title=_("Generate PDF Document"),
|
|
25
|
+
label=_("Generate PDF Document"),
|
|
26
26
|
icon=WBIcon.DOCUMENT.icon,
|
|
27
27
|
serializer=ComplianceDocumentSerializer,
|
|
28
28
|
instance_display=create_simple_display([["send_email"]]),
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/buttons/compliance_task.py
RENAMED
|
@@ -22,12 +22,12 @@ def get_custom_report(_request, review: ReviewComplianceTask):
|
|
|
22
22
|
try:
|
|
23
23
|
content_type = ContentType.objects.get(app_label="wbcompliance", model="reviewcompliancetask")
|
|
24
24
|
ReportVersion = apps.get_model("wbreport", "ReportVersion")
|
|
25
|
-
|
|
25
|
+
buttons = []
|
|
26
26
|
versions = ReportVersion.objects.filter(
|
|
27
27
|
version_date=review.to_date, report__content_type=content_type, report__is_active=True
|
|
28
28
|
).filter(Q(parameters__type=review.type.name) | Q(parameters__type=review.type.id))
|
|
29
29
|
for version in versions:
|
|
30
|
-
|
|
30
|
+
buttons.append(
|
|
31
31
|
bt.HyperlinkButton(
|
|
32
32
|
endpoint=reverse("report:reportversion-html", args=[version.id], request=_request),
|
|
33
33
|
label=_("Show {}").format(version.title),
|
|
@@ -35,7 +35,7 @@ def get_custom_report(_request, review: ReviewComplianceTask):
|
|
|
35
35
|
)
|
|
36
36
|
)
|
|
37
37
|
if not version.lock:
|
|
38
|
-
|
|
38
|
+
buttons.append(
|
|
39
39
|
bt.ActionButton(
|
|
40
40
|
method=RequestType.GET,
|
|
41
41
|
identifiers=("wbreport:reportversion",),
|
|
@@ -51,12 +51,12 @@ def get_custom_report(_request, review: ReviewComplianceTask):
|
|
|
51
51
|
title=_("Update {}").format(version.title),
|
|
52
52
|
),
|
|
53
53
|
)
|
|
54
|
-
if
|
|
54
|
+
if buttons:
|
|
55
55
|
return {
|
|
56
56
|
bt.DropDownButton(
|
|
57
57
|
label=_("Report"),
|
|
58
58
|
icon=WBIcon.UNFOLD.icon,
|
|
59
|
-
buttons=tuple(
|
|
59
|
+
buttons=tuple(buttons),
|
|
60
60
|
),
|
|
61
61
|
}
|
|
62
62
|
except LookupError:
|
|
@@ -70,11 +70,11 @@ class ComplianceTaskButtonConfig(ButtonViewConfig):
|
|
|
70
70
|
class OccuredSerializer(wb_serializers.Serializer):
|
|
71
71
|
occured = wb_serializers.DateField(required=True)
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
buttons = []
|
|
74
74
|
if self.view.kwargs.get("pk", None) and self.request.user.is_superuser:
|
|
75
75
|
review = self.view.get_object()
|
|
76
76
|
if review.active:
|
|
77
|
-
|
|
77
|
+
buttons += [
|
|
78
78
|
bt.ActionButton(
|
|
79
79
|
method=RequestType.PATCH,
|
|
80
80
|
identifiers=("wbcompliance:compliancetask",),
|
|
@@ -87,7 +87,7 @@ class ComplianceTaskButtonConfig(ButtonViewConfig):
|
|
|
87
87
|
instance_display=create_simple_display([["occured"]]),
|
|
88
88
|
)
|
|
89
89
|
]
|
|
90
|
-
return {*
|
|
90
|
+
return {*buttons}
|
|
91
91
|
|
|
92
92
|
|
|
93
93
|
class ReviewComplianceTaskButtonConfig(ButtonViewConfig):
|
|
@@ -100,17 +100,17 @@ class ReviewComplianceTaskButtonConfig(ButtonViewConfig):
|
|
|
100
100
|
choices=[("ADD", "Add existing indicators"), ("REMOVE", "Remove existing Indicators")],
|
|
101
101
|
)
|
|
102
102
|
|
|
103
|
-
|
|
103
|
+
buttons = []
|
|
104
104
|
if self.view.kwargs.get("pk", None) and self.request.user.has_perm("wbcompliance.administrate_compliance"):
|
|
105
105
|
review = self.view.get_object()
|
|
106
106
|
if review.is_instance:
|
|
107
|
-
|
|
107
|
+
buttons = get_custom_report(_request=self.request, review=review)
|
|
108
108
|
else:
|
|
109
109
|
if review.status == ReviewComplianceTask.Status.VALIDATED:
|
|
110
|
-
|
|
110
|
+
buttons += [AbstractComplianceDocumentButtonConfig._get_compliance_document_button()]
|
|
111
111
|
|
|
112
112
|
if self.request.user.has_perm("wbcompliance.administrate_compliance"):
|
|
113
|
-
|
|
113
|
+
buttons += [
|
|
114
114
|
bt.ActionButton(
|
|
115
115
|
method=RequestType.PATCH,
|
|
116
116
|
identifiers=("wbcompliance:reviewcompliancetask",),
|
|
@@ -125,7 +125,7 @@ class ReviewComplianceTaskButtonConfig(ButtonViewConfig):
|
|
|
125
125
|
]
|
|
126
126
|
|
|
127
127
|
if review.status == ReviewComplianceTask.Status.DRAFT and self.request.user.is_superuser:
|
|
128
|
-
|
|
128
|
+
buttons += [
|
|
129
129
|
bt.ActionButton(
|
|
130
130
|
method=RequestType.PATCH,
|
|
131
131
|
identifiers=("wbcompliance:reviewcompliancetask",),
|
|
@@ -147,4 +147,4 @@ class ReviewComplianceTaskButtonConfig(ButtonViewConfig):
|
|
|
147
147
|
),
|
|
148
148
|
]
|
|
149
149
|
|
|
150
|
-
return {*
|
|
150
|
+
return {*buttons}
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/risk_management/checks.py
RENAMED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
from django.contrib.auth import get_user_model
|
|
2
2
|
from django.contrib.postgres.aggregates import StringAgg
|
|
3
3
|
from django.db import models
|
|
4
|
-
from django.db.models import F
|
|
4
|
+
from django.db.models import F, OuterRef, Subquery, Value
|
|
5
|
+
from django.db.models.functions import Concat
|
|
5
6
|
from wbcore import viewsets
|
|
6
7
|
|
|
7
8
|
from wbcompliance.filters.risk_management.checks import RiskCheckFilterSet
|
|
9
|
+
from wbcompliance.models import CheckedObjectIncidentRelationship
|
|
8
10
|
from wbcompliance.models.risk_management import RiskCheck
|
|
9
11
|
from wbcompliance.serializers import (
|
|
10
12
|
RiskCheckModelSerializer,
|
|
@@ -35,8 +37,17 @@ class RiskCheckModelViewSet(viewsets.ModelViewSet):
|
|
|
35
37
|
filterset_class = RiskCheckFilterSet
|
|
36
38
|
|
|
37
39
|
def get_queryset(self):
|
|
40
|
+
rel = (
|
|
41
|
+
CheckedObjectIncidentRelationship.objects.filter(rule_check=OuterRef("id"))
|
|
42
|
+
.annotate(
|
|
43
|
+
title=Concat(F("incident__breached_object_repr"), Value(" ( "), F("breached_value"), Value(" ) "))
|
|
44
|
+
)
|
|
45
|
+
.values("rule_check")
|
|
46
|
+
.annotate(incident_reports=StringAgg("title", delimiter="<br>"))
|
|
47
|
+
.values("incident_reports")
|
|
48
|
+
)
|
|
38
49
|
return (
|
|
39
|
-
RiskCheck.
|
|
50
|
+
RiskCheck.all_objects.annotate(
|
|
40
51
|
status_icon=models.Case(
|
|
41
52
|
*[
|
|
42
53
|
models.When(status=value, then=models.Value(RiskCheck.CheckStatus[value].icon))
|
|
@@ -44,7 +55,7 @@ class RiskCheckModelViewSet(viewsets.ModelViewSet):
|
|
|
44
55
|
],
|
|
45
56
|
default=models.Value("none"),
|
|
46
57
|
),
|
|
47
|
-
incident_reports=
|
|
58
|
+
incident_reports=Subquery(rel),
|
|
48
59
|
)
|
|
49
60
|
.select_related(
|
|
50
61
|
"rule",
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/risk_management/mixins.py
RENAMED
|
@@ -18,7 +18,7 @@ class RiskCheckViewSetMixin:
|
|
|
18
18
|
icon = RiskCheck.CheckStatus[instance.get_worst_check_status()].icon
|
|
19
19
|
if instance.checks.exists():
|
|
20
20
|
return bt.WidgetButton(
|
|
21
|
-
endpoint=f'{reverse("wbcompliance:riskcheck-list", args=[], request=self.request)}?checked_objects=[[{instance.checked_object_content_type.id},{instance.checked_object.id}]]',
|
|
21
|
+
endpoint=f'{reverse("wbcompliance:riskcheck-list", args=[], request=self.request)}?checked_objects=[[{instance.checked_object_content_type.id},{instance.checked_object.id}]]&evaluation_date={instance.check_evaluation_date}&activators=[[{instance.activator_content_type.id},{instance.activator_id}]]&passive_check=False',
|
|
22
22
|
label=self._get_risk_checks_button_title(),
|
|
23
23
|
icon=icon,
|
|
24
24
|
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/admin/risk_management/incidents.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/factories/risk_management/__init__.py
RENAMED
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/factories/risk_management/backends.py
RENAMED
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/factories/risk_management/checks.py
RENAMED
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/factories/risk_management/incidents.py
RENAMED
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/factories/risk_management/rules.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/filters/risk_management/__init__.py
RENAMED
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/filters/risk_management/incidents.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/migrations/0015_auto_20240103_0957.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/migrations/0021_riskcheck_passive_check.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/models/risk_management/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/models/risk_management/dispatch.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/serializers/risk_management/__init__.py
RENAMED
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/serializers/risk_management/incidents.py
RENAMED
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/serializers/risk_management/rules.py
RENAMED
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/templates/compliance/compliance_form.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tests/risk_management/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/tests/risk_management/models/test_rules.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/buttons/risk_managment/checks.py
RENAMED
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/buttons/risk_managment/rules.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/display/compliance_form.py
RENAMED
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/display/compliance_task.py
RENAMED
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/display/compliance_type.py
RENAMED
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/display/risk_managment/checks.py
RENAMED
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/display/risk_managment/rules.py
RENAMED
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/display/risk_managment/tables.py
RENAMED
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/endpoints/compliance_form.py
RENAMED
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/endpoints/compliance_task.py
RENAMED
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/endpoints/compliance_type.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/endpoints/risk_managment/rules.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/risk_management/__init__.py
RENAMED
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/risk_management/incidents.py
RENAMED
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/risk_management/tables.py
RENAMED
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/titles/compliance_form.py
RENAMED
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/titles/compliance_task.py
RENAMED
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/titles/compliance_type.py
RENAMED
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/titles/risk_managment/__init__.py
RENAMED
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/titles/risk_managment/checks.py
RENAMED
|
File without changes
|
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/titles/risk_managment/rules.py
RENAMED
|
File without changes
|
{wbcompliance-1.54.17 → wbcompliance-1.58.2}/wbcompliance/viewsets/titles/risk_managment/tables.py
RENAMED
|
File without changes
|