Allow clearing matches
This commit is contained in:
parent
6bfa0aa73b
commit
46c7d96310
|
@ -306,4 +306,9 @@ urlpatterns = [
|
||||||
notifications.RuleDelete.as_view(),
|
notifications.RuleDelete.as_view(),
|
||||||
name="rule_delete",
|
name="rule_delete",
|
||||||
),
|
),
|
||||||
|
path(
|
||||||
|
"rule/<str:type>/clear/<str:pk>/",
|
||||||
|
notifications.RuleClear.as_view(),
|
||||||
|
name="rule_clear",
|
||||||
|
),
|
||||||
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
|
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin
|
from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin
|
||||||
|
from django.shortcuts import render
|
||||||
|
from rest_framework.views import APIView
|
||||||
|
|
||||||
from core.forms import NotificationRuleForm, NotificationSettingsForm
|
from core.forms import NotificationRuleForm, NotificationSettingsForm
|
||||||
from core.models import NotificationRule, NotificationSettings
|
from core.models import NotificationRule, NotificationSettings
|
||||||
|
@ -61,3 +63,24 @@ class RuleUpdate(LoginRequiredMixin, PermissionRequiredMixin, ObjectUpdate):
|
||||||
class RuleDelete(LoginRequiredMixin, PermissionRequiredMixin, ObjectDelete):
|
class RuleDelete(LoginRequiredMixin, PermissionRequiredMixin, ObjectDelete):
|
||||||
permission_required = "use_rules"
|
permission_required = "use_rules"
|
||||||
model = NotificationRule
|
model = NotificationRule
|
||||||
|
|
||||||
|
|
||||||
|
class RuleClear(LoginRequiredMixin, PermissionRequiredMixin, APIView):
|
||||||
|
permission_required = "use_rules"
|
||||||
|
|
||||||
|
def post(self, request, type, pk):
|
||||||
|
template_name = "partials/notify.html"
|
||||||
|
rule = NotificationRule.objects.get(pk=pk, user=request.user)
|
||||||
|
if isinstance(rule.match, dict):
|
||||||
|
for index in rule.match:
|
||||||
|
rule.match[index] = False
|
||||||
|
rule.save()
|
||||||
|
|
||||||
|
cleared_indices = ", ".join(rule.match)
|
||||||
|
context = {
|
||||||
|
"message": f"Cleared match status for indices: {cleared_indices}",
|
||||||
|
"class": "success",
|
||||||
|
}
|
||||||
|
response = render(request, template_name, context)
|
||||||
|
response["HX-Trigger"] = "notificationruleEvent"
|
||||||
|
return response
|
||||||
|
|
Loading…
Reference in New Issue