mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-05-21 03:49:22 +02:00
added form for DomainApplicationAdmin which limits the list of statuses to those which are available to transition to
This commit is contained in:
parent
74ea2e0be7
commit
a592b5ff71
1 changed files with 26 additions and 0 deletions
|
@ -1,4 +1,6 @@
|
||||||
import logging
|
import logging
|
||||||
|
from django import forms
|
||||||
|
from django_fsm import get_available_FIELD_transitions
|
||||||
from django.contrib import admin, messages
|
from django.contrib import admin, messages
|
||||||
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
|
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
|
@ -224,6 +226,29 @@ class ContactAdmin(ListHeaderAdmin):
|
||||||
search_help_text = "Search by firstname, lastname or email."
|
search_help_text = "Search by firstname, lastname or email."
|
||||||
|
|
||||||
|
|
||||||
|
class DomainApplicationAdminForm(forms.ModelForm):
|
||||||
|
"""Custom form to limit transitions to available transitions"""
|
||||||
|
class Meta:
|
||||||
|
model = models.DomainApplication
|
||||||
|
fields = '__all__'
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
instance = kwargs.get('instance')
|
||||||
|
if instance and instance.pk:
|
||||||
|
current_state = instance.status
|
||||||
|
transitions = get_available_FIELD_transitions(
|
||||||
|
instance, models.DomainApplication._meta.get_field('status'))
|
||||||
|
# first option in status transitions is current state
|
||||||
|
available_transitions = [(current_state, current_state)]
|
||||||
|
|
||||||
|
for transition in transitions:
|
||||||
|
available_transitions.append((transition.target, transition.target))
|
||||||
|
|
||||||
|
self.fields['status'].widget.choices = available_transitions
|
||||||
|
|
||||||
|
|
||||||
class DomainApplicationAdmin(ListHeaderAdmin):
|
class DomainApplicationAdmin(ListHeaderAdmin):
|
||||||
|
|
||||||
"""Customize the applications listing view."""
|
"""Customize the applications listing view."""
|
||||||
|
@ -255,6 +280,7 @@ class DomainApplicationAdmin(ListHeaderAdmin):
|
||||||
search_help_text = "Search by domain or submitter."
|
search_help_text = "Search by domain or submitter."
|
||||||
|
|
||||||
# Detail view
|
# Detail view
|
||||||
|
form = DomainApplicationAdminForm
|
||||||
fieldsets = [
|
fieldsets = [
|
||||||
(None, {"fields": ["status", "investigator", "creator"]}),
|
(None, {"fields": ["status", "investigator", "creator"]}),
|
||||||
(
|
(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue