Refactor members and chair edit forms of group with the new models.

Delete public key edit form becouse FormPreview doesn't work with FileField see https://code.djangoproject.com/ticket/7808
See #904 #905
 - Legacy-Id: 5093
This commit is contained in:
Emilio Jiménez 2012-12-03 17:28:08 +00:00
parent ddb10c4b0e
commit b9e94b20d5
2 changed files with 14 additions and 51 deletions

View file

@ -7,8 +7,7 @@ from django.conf import settings
from ietf.ietfauth.decorators import has_role
from ietf.utils import fields as custom_fields
from ietf.group.models import Role
from ietf.nomcom.models import NomComGroup
from ietf.group.models import Group, Role
from ietf.name.models import RoleName
from ietf.person.models import Email
@ -16,6 +15,13 @@ from ietf.person.models import Email
ROLODEX_URL = getattr(settings, 'ROLODEX_URL', None)
def get_group_or_404(year):
return get_object_or_404(Group,
acronym__icontains=year,
state__slug='active',
nomcom__isnull=False)
class EditMembersForm(forms.Form):
members = custom_fields.MultiEmailField(label="Members email", required=False)
@ -27,9 +33,7 @@ class EditMembersFormPreview(FormPreview):
def __call__(self, request, *args, **kwargs):
year = kwargs['year']
group = get_object_or_404(NomComGroup,
acronym__icontains=year,
state__slug='active')
group = get_group_or_404(year)
is_group_chair = group.is_chair(request.user)
is_secretariat = has_role(request.user, "Secretariat")
if not is_secretariat and not is_group_chair:
@ -95,9 +99,7 @@ class EditChairFormPreview(FormPreview):
def __call__(self, request, *args, **kwargs):
year = kwargs['year']
group = get_object_or_404(NomComGroup,
acronym__icontains=year,
state__slug='active')
group = get_group_or_404(year)
is_secretariat = has_role(request.user, "Secretariat")
if not is_secretariat:
return HttpResponseForbidden("Must be a secretariat")
@ -139,40 +141,3 @@ class EditChairFormPreview(FormPreview):
email=chair_info['email_obj'])
return HttpResponseRedirect(reverse('edit_chair', kwargs={'year': self.year}))
class EditPublicKeyForm(forms.Form):
public_key = forms.CharField(label="Public Key", widget=forms.Textarea)
class EditPublicKeyFormPreview(FormPreview):
form_template = 'nomcom/edit_publickey.html'
preview_template = 'nomcom/edit_publickey_preview.html'
def __call__(self, request, *args, **kwargs):
year = kwargs['year']
group = get_object_or_404(NomComGroup,
acronym__icontains=year,
state__slug='active')
is_group_chair = group.is_chair(request.user)
if not is_group_chair:
return HttpResponseForbidden("Must be group chair")
self.state['group'] = group
self.group = group
self.year = year
return super(EditPublicKeyFormPreview, self).__call__(request, *args, **kwargs)
def parse_params(self, *args, **kwargs):
if self.group.public_key:
self.form.base_fields['public_key'].initial = self.group.public_key
def done(self, request, cleaned_data):
public_key = cleaned_data['public_key']
if public_key:
self.group.public_key = public_key
self.group.save()
return HttpResponseRedirect(reverse('edit_publickey', kwargs={'year': self.year}))

View file

@ -1,10 +1,8 @@
from django.conf.urls.defaults import patterns, url
#from ietf.nomcom.forms import EditChairForm, EditChairFormPreview, \
#EditMembersForm, EditMembersFormPreview, \
#EditPublicKeyForm, EditPublicKeyFormPreview
from ietf.nomcom.forms import EditChairForm, EditChairFormPreview, \
EditMembersForm, EditMembersFormPreview
urlpatterns = patterns('ietf.nomcom.views',
#url(r'^(?P<year>\d{4})/edit-chair/$', EditChairFormPreview(EditChairForm), name='edit_chair'),
#url(r'^(?P<year>\d{4})/edit-members/$', EditMembersFormPreview(EditMembersForm), name='edit_members'),
#url(r'^(?P<year>\d{4})/edit-publickey/$', EditPublicKeyFormPreview(EditPublicKeyForm), name='edit_publickey'),
url(r'^(?P<year>\d{4})/edit-chair/$', EditChairFormPreview(EditChairForm), name='edit_chair'),
url(r'^(?P<year>\d{4})/edit-members/$', EditMembersFormPreview(EditMembersForm), name='edit_members'),
)