from django import forms from django.utils.translation import gettext_lazy as _ from .models import Risk, Control, Incident, ResidualRisk # --------------------------------------------------------------------------- # Base form for status field (DRY for Risk/Control/Incident) # --------------------------------------------------------------------------- class BaseStatusForm(forms.ModelForm): """Abstract base form for models with a 'status' field.""" class Meta: fields = ["status"] labels = {"status": _("Status")} widgets = {"status": forms.Select(attrs={"class": "select"})} # --------------------------------------------------------------------------- # RiskStatusForm # --------------------------------------------------------------------------- class RiskStatusForm(BaseStatusForm): class Meta(BaseStatusForm.Meta): model = Risk # --------------------------------------------------------------------------- # ControlStatusForm # --------------------------------------------------------------------------- class ControlStatusForm(BaseStatusForm): class Meta(BaseStatusForm.Meta): model = Control # --------------------------------------------------------------------------- # IncidentStatusForm # --------------------------------------------------------------------------- class IncidentStatusForm(BaseStatusForm): class Meta(BaseStatusForm.Meta): model = Incident # --------------------------------------------------------------------------- # ResidualReviewForm # --------------------------------------------------------------------------- class ResidualReviewForm(forms.ModelForm): class Meta: model = ResidualRisk fields = ["review_required"] labels = {"review_required": _("Review required")} widgets = {"review_required": forms.CheckboxInput(attrs={"class": "checkbox"})}