Moved setting the user field widget to correct location in UserPermissionForm

This commit is contained in:
Jannis Leidel 2009-10-12 15:45:06 +02:00
parent 950061cb75
commit fa4a3fbc11
3 changed files with 13 additions and 8 deletions

View file

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

View file

@ -19,6 +19,11 @@ urlpatterns = patterns('',
name="authority-add-permission",
kwargs={'approved': True, 'form_class': SpecialUserPermissionForm}
),
url(r'^request/add/(?P<app_label>[\w\-]+)/(?P<module_name>[\w\-]+)/(?P<pk>\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<url>[\/0-9A-Za-z]+)$', 'example.exampleapp.views.top_secret', {'lala': 'oh yeah!'}),

View file

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