From 8527cdaf6b69414b846b6dc98f206683f163e554 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20A=2E=20S=C3=A1nchez=20L=C3=B3pez?= Date: Wed, 30 Mar 2011 18:24:33 +0000 Subject: [PATCH] Freeze global WG states. See #644 - Legacy-Id: 3013 --- ietf/templates/wgchairs/manage_workflow.html | 2 +- ietf/wgchairs/forms.py | 11 ++++++++--- ietf/wgchairs/views.py | 3 +++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ietf/templates/wgchairs/manage_workflow.html b/ietf/templates/wgchairs/manage_workflow.html index 5ac578ffd..8c1b4ed02 100644 --- a/ietf/templates/wgchairs/manage_workflow.html +++ b/ietf/templates/wgchairs/manage_workflow.html @@ -78,7 +78,7 @@ {% for state in default_states %} - + {% endfor %} diff --git a/ietf/wgchairs/forms.py b/ietf/wgchairs/forms.py index 89ec4b081..722101212 100644 --- a/ietf/wgchairs/forms.py +++ b/ietf/wgchairs/forms.py @@ -7,8 +7,9 @@ from django.utils.safestring import mark_safe from ietf.wgchairs.models import WGDelegate, ProtoWriteUp from ietf.wgchairs.accounts import get_person_for_user +from ietf.ietfworkflows.constants import REQUIRED_STATES from ietf.ietfworkflows.utils import (get_default_workflow_for_wg, get_workflow_for_wg, - update_tags, FOLLOWUP_TAG) + update_tags, FOLLOWUP_TAG, get_state_by_name) from ietf.idtracker.models import PersonOrOrgInfo from workflows.models import Transition @@ -36,7 +37,7 @@ class RelatedWGForm(forms.Form): class TagForm(RelatedWGForm): tags = forms.ModelMultipleChoiceField(get_default_workflow_for_wg().annotation_tags.all(), - widget=forms.CheckboxSelectMultiple) + widget=forms.CheckboxSelectMultiple, required=False) def save(self): workflow = get_workflow_for_wg(self.wg) @@ -49,7 +50,7 @@ class TagForm(RelatedWGForm): class StateForm(RelatedWGForm): states = forms.ModelMultipleChoiceField(get_default_workflow_for_wg().states.all(), - widget=forms.CheckboxSelectMultiple) + widget=forms.CheckboxSelectMultiple, required=False) def update_transitions(self, workflow): for transition in workflow.transitions.all(): @@ -68,6 +69,10 @@ class StateForm(RelatedWGForm): workflow.selected_states.clear() for state in self.cleaned_data['states']: workflow.selected_states.add(state) + for name in REQUIRED_STATES: + rstate = get_state_by_name(name) + if rstate: + workflow.selected_states.add(rstate) self.update_transitions(workflow) return workflow diff --git a/ietf/wgchairs/views.py b/ietf/wgchairs/views.py index ac1990b6a..11ee6ea14 100644 --- a/ietf/wgchairs/views.py +++ b/ietf/wgchairs/views.py @@ -15,6 +15,7 @@ from ietf.wgchairs.accounts import (can_manage_delegates_in_group, get_person_fo can_manage_writeup_of_a_document, can_manage_writeup_of_a_document_no_state, ) +from ietf.ietfworkflows.constants import REQUIRED_STATES from ietf.ietfworkflows.utils import (get_workflow_for_wg, get_default_workflow_for_wg, get_state_by_name, @@ -70,6 +71,8 @@ def manage_workflow(request, acronym): for i in default_states: if states.filter(name=i.name).count() == 1: i.used = True + if i.name in REQUIRED_STATES: + i.freeze = True for i in default_tags: if tags.filter(name=i.name).count() == 1: i.used = True