# Copyright (c) Guy's and St Thomas' NHS Foundation Trust & King's College London
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
from enum import StrEnum
[docs]
class ProjectAuditAction(StrEnum):
DELETE = "DELETE"
EDIT = "EDIT"
APPROVE = "APPROVE"
STAGE = "STAGE"
UNSTAGE = "UNSTAGE"
[docs]
class ModelAuditAction(StrEnum):
DELETE = "DELETE"
EDIT = "EDIT"
# Status-transition audits keyed by the new ModelStatus value. Recorded in
# update_model_status so the model lifecycle UI can render real dates for
# "Prepared / Training started / Results uploaded" instead of static "done"
# labels. Only stages surfaced in the lifecycle bar are tracked.
PREPARED = "PREPARED"
TRAINING_STARTED = "TRAINING_STARTED"
RESULTS_UPLOADED = "RESULTS_UPLOADED"
[docs]
class TrustAuditAction(StrEnum):
"""Lifecycle events for the trust registry.
Captured by `trusts_services.utils.audit_helper.audit_trust_action`:
`register_trust` writes REGISTERED, `delete_trust` writes DELETED. The
audit row is stored in `trusts_audit` with no FK to `trust.id`, so it
persists past a hard delete.
"""
REGISTERED = "REGISTERED"
DELETED = "DELETED"