From fa4a3fbc11fc6d08e673c939feb008dfdbd5afa9 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Mon, 12 Oct 2009 15:45:06 +0200 Subject: [PATCH] Moved setting the user field widget to correct location in UserPermissionForm --- example/exampleapp/forms.py | 2 +- example/urls.py | 5 +++++ src/authority/forms.py | 14 +++++++------- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/example/exampleapp/forms.py b/example/exampleapp/forms.py index 165cd69..21f47f0 100644 --- a/example/exampleapp/forms.py +++ b/example/exampleapp/forms.py @@ -4,4 +4,4 @@ from django.utils.translation import ugettext_lazy as _ from authority.forms import UserPermissionForm class SpecialUserPermissionForm(UserPermissionForm): - user = forms.CharField(label=_('Special user')) + user = forms.CharField(label=_('Special user'), widget=forms.Textarea()) diff --git a/example/urls.py b/example/urls.py index 97626cd..75430ba 100644 --- a/example/urls.py +++ b/example/urls.py @@ -19,6 +19,11 @@ urlpatterns = patterns('', name="authority-add-permission", kwargs={'approved': True, 'form_class': SpecialUserPermissionForm} ), + url(r'^request/add/(?P[\w\-]+)/(?P[\w\-]+)/(?P\d+)/$', + view='authority.views.add_permission', + name="authority-add-permission-request", + kwargs={'approved': False, 'form_class': SpecialUserPermissionForm} + ), (r'^authority/', include('authority.urls')), (r'^accounts/login/$', 'django.contrib.auth.views.login'), url(r'^(?P[\/0-9A-Za-z]+)$', 'example.exampleapp.views.top_secret', {'lala': 'oh yeah!'}), diff --git a/src/authority/forms.py b/src/authority/forms.py index 7c34b9c..57f9177 100644 --- a/src/authority/forms.py +++ b/src/authority/forms.py @@ -17,16 +17,11 @@ class BasePermissionForm(forms.ModelForm): self.perm = perm self.obj = obj self.approved = approved - if not self.approved: - self.base_fields['user'].widget = forms.HiddenInput() - else: - self.base_fields['user'].widget = forms.TextInput() if obj and perm: self.base_fields['codename'].widget = forms.HiddenInput() elif obj and (not perm or not approved): - perm_choices = get_choices_for(self.obj) - self.base_fields['codename'].widget = forms.Select( - choices=perm_choices) + perms = get_choices_for(self.obj) + self.base_fields['codename'].widget = forms.Select(choices=perms) super(BasePermissionForm, self).__init__(*args, **kwargs) def save(self, request, commit=True, *args, **kwargs): @@ -43,6 +38,11 @@ class UserPermissionForm(BasePermissionForm): class Meta(BasePermissionForm.Meta): fields = ('user',) + def __init__(self, *args, **kwargs): + if not kwargs.get('approved', False): + self.base_fields['user'].widget = forms.HiddenInput() + super(UserPermissionForm, self).__init__(*args, **kwargs) + def clean_user(self): username = self.cleaned_data["user"] try: