Freeze global WG states. See #644

- Legacy-Id: 3013
This commit is contained in:
Emilio A. Sánchez López 2011-03-30 18:24:33 +00:00
parent e681c5e3c9
commit 8527cdaf6b
3 changed files with 12 additions and 4 deletions

View file

@ -78,7 +78,7 @@
</tr>
{% for state in default_states %}
<tr class="{% cycle "oddrow" "evenrow" %}">
<td><input type="checkbox" id="id_states_{{ state.pk }}" name="states" value="{{ state.pk }}" {% if state.used %}checked="checked" {% endif %}/></td>
<td><input type="checkbox" id="id_states_{{ state.pk }}" name="states" value="{{ state.pk }}" {% if state.used %}checked="checked" {% endif %}{% if state.freeze %} disabled="disabled"{% endif %}/></td>
<td><label for="id_states_{{ state.pk }}">{{ state.name }}</label></td>
</tr>
{% endfor %}

View file

@ -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

View file

@ -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