Implement AI workspace and mitigation workflow

This commit is contained in:
2026-02-15 04:27:28 +00:00
parent de2b9a9bbb
commit 2d3b8fdac6
64 changed files with 7669 additions and 769 deletions

View File

@@ -1,12 +1,14 @@
from django.contrib.auth.mixins import LoginRequiredMixin
from mixins.views import AbortSave, ObjectCreate, ObjectDelete, ObjectList, ObjectUpdate
from django.db import IntegrityError
from mixins.views import AbortSave, ObjectCreate, ObjectDelete, ObjectList, ObjectUpdate
from core.forms import PersonIdentifierForm
from core.models import PersonIdentifier, Person
from core.models import Person, PersonIdentifier
from core.util import logs
log = logs.get_logger(__name__)
class IdentifierPermissionMixin:
def set_extra_args(self, user):
self.extra_permission_args = {
@@ -14,6 +16,7 @@ class IdentifierPermissionMixin:
"person__pk": self.kwargs["person"],
}
class PersonIdentifierList(LoginRequiredMixin, IdentifierPermissionMixin, ObjectList):
list_template = "partials/identifier-list.html"
model = PersonIdentifier
@@ -26,7 +29,9 @@ class PersonIdentifierList(LoginRequiredMixin, IdentifierPermissionMixin, Object
submit_url_args = ["type", "person"]
class PersonIdentifierCreate(LoginRequiredMixin, IdentifierPermissionMixin, ObjectCreate):
class PersonIdentifierCreate(
LoginRequiredMixin, IdentifierPermissionMixin, ObjectCreate
):
model = PersonIdentifier
form_class = PersonIdentifierForm
@@ -52,7 +57,10 @@ class PersonIdentifierCreate(LoginRequiredMixin, IdentifierPermissionMixin, Obje
log.error(f"Person {self.kwargs['person']} does not exist")
raise AbortSave("person does not exist or you don't have access")
class PersonIdentifierUpdate(LoginRequiredMixin, IdentifierPermissionMixin, ObjectUpdate):
class PersonIdentifierUpdate(
LoginRequiredMixin, IdentifierPermissionMixin, ObjectUpdate
):
model = PersonIdentifier
form_class = PersonIdentifierForm
@@ -60,5 +68,7 @@ class PersonIdentifierUpdate(LoginRequiredMixin, IdentifierPermissionMixin, Obje
submit_url_args = ["type", "pk", "person"]
class PersonIdentifierDelete(LoginRequiredMixin, IdentifierPermissionMixin, ObjectDelete):
model = PersonIdentifier
class PersonIdentifierDelete(
LoginRequiredMixin, IdentifierPermissionMixin, ObjectDelete
):
model = PersonIdentifier