wbcompliance 1.58.1__tar.gz → 1.58.3__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.
Files changed (142) hide show
  1. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/PKG-INFO +1 -1
  2. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/models/risk_management/checks.py +6 -3
  3. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/serializers/risk_management/checks.py +1 -1
  4. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/risk_management/checks.py +13 -2
  5. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/.gitignore +0 -0
  6. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/pyproject.toml +0 -0
  7. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/__init__.py +0 -0
  8. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/admin/__init__.py +0 -0
  9. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/admin/compliance_form.py +0 -0
  10. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/admin/compliance_task.py +0 -0
  11. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/admin/compliance_type.py +0 -0
  12. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/admin/risk_management/__init__.py +0 -0
  13. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/admin/risk_management/checks.py +0 -0
  14. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/admin/risk_management/incidents.py +0 -0
  15. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/admin/risk_management/rules.py +0 -0
  16. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/admin/utils.py +0 -0
  17. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/apps.py +0 -0
  18. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/factories/__init__.py +0 -0
  19. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/factories/compliance.py +0 -0
  20. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/factories/risk_management/__init__.py +0 -0
  21. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/factories/risk_management/backends.py +0 -0
  22. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/factories/risk_management/checks.py +0 -0
  23. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/factories/risk_management/incidents.py +0 -0
  24. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/factories/risk_management/rules.py +0 -0
  25. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/filters/__init__.py +0 -0
  26. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/filters/compliances.py +0 -0
  27. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/filters/risk_management/__init__.py +0 -0
  28. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/filters/risk_management/checks.py +0 -0
  29. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/filters/risk_management/incidents.py +0 -0
  30. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/filters/risk_management/rules.py +0 -0
  31. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/filters/risk_management/tables.py +0 -0
  32. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/filters/risk_management/utils.py +0 -0
  33. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/fixtures/compliance.yaml +0 -0
  34. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/locale/de/LC_MESSAGES/django.mo +0 -0
  35. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/locale/de/LC_MESSAGES/django.po +0 -0
  36. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/locale/en/LC_MESSAGES/django.mo +0 -0
  37. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/locale/en/LC_MESSAGES/django.po +0 -0
  38. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/locale/fr/LC_MESSAGES/django.mo +0 -0
  39. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/locale/fr/LC_MESSAGES/django.po +0 -0
  40. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/management/__init__.py +0 -0
  41. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/migrations/0001_initial_squashed_squashed_0010_alter_checkedobjectincidentrelationship_resolved_by_and_more.py +0 -0
  42. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/migrations/0011_alter_riskrule_parameters.py +0 -0
  43. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/migrations/0012_alter_compliancetype_options.py +0 -0
  44. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/migrations/0013_alter_riskrule_unique_together.py +0 -0
  45. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/migrations/0014_alter_reviewcompliancetask_year.py +0 -0
  46. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/migrations/0015_auto_20240103_0957.py +0 -0
  47. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/migrations/0016_checkedobjectincidentrelationship_report_details_and_more.py +0 -0
  48. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/migrations/0017_alter_rulebackend_incident_report_template.py +0 -0
  49. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/migrations/0018_alter_rulecheckedobjectrelationship_unique_together.py +0 -0
  50. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/migrations/0019_rulegroup_riskrule_activation_date_and_more.py +0 -0
  51. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/migrations/0020_rename_trigger_content_type_riskcheck_checked_object_content_type_and_more.py +0 -0
  52. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/migrations/0021_riskcheck_passive_check.py +0 -0
  53. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/migrations/__init__.py +0 -0
  54. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/models/__init__.py +0 -0
  55. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/models/compliance_form.py +0 -0
  56. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/models/compliance_task.py +0 -0
  57. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/models/compliance_type.py +0 -0
  58. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/models/enums.py +0 -0
  59. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/models/risk_management/__init__.py +0 -0
  60. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/models/risk_management/backend.py +0 -0
  61. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/models/risk_management/dispatch.py +0 -0
  62. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/models/risk_management/incidents.py +0 -0
  63. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/models/risk_management/mixins.py +0 -0
  64. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/models/risk_management/rules.py +0 -0
  65. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/permissions.py +0 -0
  66. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/serializers/__init__.py +0 -0
  67. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/serializers/compliance_form.py +0 -0
  68. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/serializers/compliance_task.py +0 -0
  69. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/serializers/compliance_type.py +0 -0
  70. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/serializers/risk_management/__init__.py +0 -0
  71. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/serializers/risk_management/incidents.py +0 -0
  72. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/serializers/risk_management/rules.py +0 -0
  73. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/tasks.py +0 -0
  74. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/templates/compliance/compliance_form.html +0 -0
  75. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/templates/compliance/review_compliance_task_report.html +0 -0
  76. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/templates/risk_management/incident_notification.html +0 -0
  77. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/templates/risk_management/incident_report.html +0 -0
  78. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/tests/__init__.py +0 -0
  79. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/tests/conftest.py +0 -0
  80. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/tests/disable_signals.py +0 -0
  81. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/tests/mixins.py +0 -0
  82. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/tests/risk_management/__init__.py +0 -0
  83. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/tests/risk_management/models/__init__.py +0 -0
  84. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/tests/risk_management/models/test_backends.py +0 -0
  85. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/tests/risk_management/models/test_checks.py +0 -0
  86. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/tests/risk_management/models/test_incidents.py +0 -0
  87. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/tests/risk_management/models/test_rules.py +0 -0
  88. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/tests/signals.py +0 -0
  89. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/tests/test_filters.py +0 -0
  90. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/tests/test_models.py +0 -0
  91. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/tests/test_serializers.py +0 -0
  92. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/tests/test_views.py +0 -0
  93. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/tests/tests.py +0 -0
  94. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/urls.py +0 -0
  95. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/__init__.py +0 -0
  96. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/buttons/__init__.py +0 -0
  97. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/buttons/compliance_form.py +0 -0
  98. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/buttons/compliance_task.py +0 -0
  99. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/buttons/risk_managment/__init__.py +0 -0
  100. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/buttons/risk_managment/checks.py +0 -0
  101. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/buttons/risk_managment/incidents.py +0 -0
  102. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/buttons/risk_managment/rules.py +0 -0
  103. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/compliance_form.py +0 -0
  104. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/compliance_task.py +0 -0
  105. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/compliance_type.py +0 -0
  106. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/display/__init__.py +0 -0
  107. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/display/compliance_form.py +0 -0
  108. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/display/compliance_task.py +0 -0
  109. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/display/compliance_type.py +0 -0
  110. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/display/risk_managment/__init__.py +0 -0
  111. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/display/risk_managment/checks.py +0 -0
  112. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/display/risk_managment/incidents.py +0 -0
  113. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/display/risk_managment/rules.py +0 -0
  114. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/display/risk_managment/tables.py +0 -0
  115. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/endpoints/__init__.py +0 -0
  116. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/endpoints/compliance_form.py +0 -0
  117. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/endpoints/compliance_task.py +0 -0
  118. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/endpoints/compliance_type.py +0 -0
  119. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/endpoints/risk_managment/__init__.py +0 -0
  120. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/endpoints/risk_managment/checks.py +0 -0
  121. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/endpoints/risk_managment/incidents.py +0 -0
  122. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/endpoints/risk_managment/rules.py +0 -0
  123. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/endpoints/risk_managment/tables.py +0 -0
  124. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/menu/__init__.py +0 -0
  125. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/menu/compliance_form.py +0 -0
  126. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/menu/compliance_task.py +0 -0
  127. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/menu/compliance_type.py +0 -0
  128. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/menu/risk_management.py +0 -0
  129. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/risk_management/__init__.py +0 -0
  130. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/risk_management/incidents.py +0 -0
  131. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/risk_management/mixins.py +0 -0
  132. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/risk_management/rules.py +0 -0
  133. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/risk_management/tables.py +0 -0
  134. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/titles/__init__.py +0 -0
  135. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/titles/compliance_form.py +0 -0
  136. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/titles/compliance_task.py +0 -0
  137. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/titles/compliance_type.py +0 -0
  138. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/titles/risk_managment/__init__.py +0 -0
  139. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/titles/risk_managment/checks.py +0 -0
  140. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/titles/risk_managment/incidents.py +0 -0
  141. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/titles/risk_managment/rules.py +0 -0
  142. {wbcompliance-1.58.1 → wbcompliance-1.58.3}/wbcompliance/viewsets/titles/risk_managment/tables.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wbcompliance
3
- Version: 1.58.1
3
+ Version: 1.58.3
4
4
  Summary: A workbench module for managing compliance.
5
5
  Author-email: Christopher Wittlinger <c.wittlinger@stainly.com>
6
6
  Requires-Dist: wbcore
@@ -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 self.rule.checked_object_relationships.filter(
103
- checked_object_content_type=self.checked_object_content_type, checked_object_id=self.checked_object_id
104
- ).exists()
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:
@@ -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,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,6 +37,15 @@ 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
50
  RiskCheck.all_objects.annotate(
40
51
  status_icon=models.Case(
@@ -44,7 +55,7 @@ class RiskCheckModelViewSet(viewsets.ModelViewSet):
44
55
  ],
45
56
  default=models.Value("none"),
46
57
  ),
47
- incident_reports=StringAgg(F("incidents__incident__breached_object_repr"), delimiter="<br>"),
58
+ incident_reports=Subquery(rel),
48
59
  )
49
60
  .select_related(
50
61
  "rule",
File without changes