fix Essential form; build_form now adds request to kwargs

This commit is contained in:
slav0nic 2009-07-02 16:01:22 +03:00
parent 64e0acb63b
commit 8d423b7451
3 changed files with 53 additions and 39 deletions

View file

@ -44,6 +44,7 @@ SEARCH_IN_CHOICES = (
('topic', _(u'Topic subject only')),
)
class AddPostForm(forms.ModelForm):
name = forms.CharField(label=_('Subject'),
widget=forms.TextInput(attrs={'size':'115'}))
@ -77,7 +78,6 @@ class AddPostForm(forms.ModelForm):
raise forms.ValidationError(_('Attachment is too big'))
return self.cleaned_data['attachment']
def save(self):
if self.forum:
@ -99,7 +99,7 @@ class AddPostForm(forms.ModelForm):
profile.post_count += 1
profile.save()
return post
def save_attachment(self, post, memfile):
if memfile:
obj = Attachment(size=memfile.size, content_type=memfile.content_type,
@ -111,47 +111,50 @@ class AddPostForm(forms.ModelForm):
obj.path = fname
obj.save()
class EssentialsProfileForm(forms.ModelForm):
username = forms.CharField(label=_('Username'))
email = forms.CharField(label=_('E-mail'))
class Meta:
model = Profile
fields = ['time_zone', 'language']
def __init__(self, *args, **kwargs):
print kwargs
self.user = kwargs.pop('user', None)
self.request = kwargs.pop('request', None)
self.profile = kwargs['instance']
super(EssentialsProfileForm, self).__init__(*args, **kwargs)
self.fields['username'].initial = self.user.username
if not self.user.is_superuser:
if not self.request.user.is_superuser:
self.fields['username'].widget = forms.HiddenInput()
self.fields['email'].initial = self.user.email
def save(self):
user = get_object_or_404(User, username=self.user)
profile = get_object_or_404(Profile, user=self.user)
if self.cleaned_data:
#user.username = self.cleaned_data['username']
user.email = self.cleaned_data['email']
profile.time_zone = self.cleaned_data['time_zone']
profile.language = self.cleaned_data['language']
user.save()
return profile
if self.request.user.is_superuser:
self.user.username = self.cleaned_data['username']
self.user.email = self.cleaned_data['email']
self.profile.time_zone = self.cleaned_data['time_zone']
self.profile.language = self.cleaned_data['language']
self.user.save()
self.profile.save()
return self.profile
class PersonalProfileForm(forms.ModelForm):
name = forms.CharField(label=_('Real name'))
class Meta:
model = Profile
fields = ['status', 'location', 'site']
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user', None)
super(PersonalProfileForm, self).__init__(*args, **kwargs)
self.fields['name'].initial = "%s %s" % (self.user.first_name, self.user.last_name)
def save(self):
user = get_object_or_404(User, username=self.user)
profile = get_object_or_404(Profile, user=self.user)
@ -166,12 +169,14 @@ class PersonalProfileForm(forms.ModelForm):
user.last_name = ''
user.save()
return profile.save()
class MessagingProfileForm(forms.ModelForm):
class Meta:
model = Profile
fields = ['jabber', 'icq', 'msn', 'aim', 'yahoo']
class PersonalityProfileForm(forms.ModelForm):
class Meta:
model = Profile
@ -180,23 +185,25 @@ class PersonalityProfileForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(PersonalityProfileForm, self).__init__(*args, **kwargs)
self.fields['signature'].widget = forms.Textarea(attrs={'class':'bbcode', 'rows':'10', 'cols':'75'})
def save(self):
profile = super(PersonalityProfileForm, self).save(commit=False)
profile.signature = mypostmarkup.markup(profile.signature, auto_urls=False)
profile.save()
return profile
class DisplayProfileForm(forms.ModelForm):
class Meta:
model = Profile
fields = ['theme']
class PrivacyProfileForm(forms.ModelForm):
class Meta:
model = Profile
fields = ['privacy_permission']
def __init__(self, *args, **kwargs):
super(PrivacyProfileForm, self).__init__(*args, **kwargs)
self.fields['privacy_permission'].widget = forms.RadioSelect(
@ -213,11 +220,11 @@ class UploadAvatarForm(forms.ModelForm):
class EditPostForm(forms.ModelForm):
name = forms.CharField(required=False, label=_('Subject'),
widget=forms.TextInput(attrs={'size':'115'}))
class Meta:
model = Post
fields = ['body']
def __init__(self, *args, **kwargs):
self.topic = kwargs.pop('topic', None)
super(EditPostForm, self).__init__(*args, **kwargs)
@ -272,14 +279,15 @@ class PostSearchForm(forms.Form):
sort_by = forms.ChoiceField(choices=SORT_POST_BY_CHOICES, label=_('Sort by'))
sort_dir = forms.ChoiceField(choices=SORT_DIR_CHOICES, label=_('Sort order'))
show_as = forms.ChoiceField(choices=SHOW_AS_CHOICES, label=_('Show results as'))
class ReputationForm(forms.ModelForm):
class Meta:
model = Reputation
fields = ['reason', 'topic', 'sign']
def __init__(self, *args, **kwargs):
self.from_user = kwargs.pop('from_user', None)
self.to_user = kwargs.pop('to_user', None)
@ -289,7 +297,7 @@ class ReputationForm(forms.ModelForm):
self.fields['topic'].widget = forms.HiddenInput()
self.fields['sign'].widget = forms.HiddenInput()
self.fields['reason'].widget = forms.Textarea(attrs={'class':'bbcode'})
def clean_to_user(self):
name = self.cleaned_data['to_user']
try:
@ -298,7 +306,7 @@ class ReputationForm(forms.ModelForm):
raise forms.ValidationError(_('User with login %s does not exist') % name)
else:
return user
def save(self):
reputation = super(ReputationForm, self).save(commit=False)
reputation.from_user = self.from_user
@ -306,19 +314,20 @@ class ReputationForm(forms.ModelForm):
reputation.time = datetime.now()
reputation.save()
return reputation
class MailToForm(forms.Form):
subject = forms.CharField(label=_('Subject'),
widget=forms.TextInput(attrs={'size':'75', 'maxlength':'70', 'class':'longinput'}))
body = forms.CharField(required=False, label=_('Message'),
widget=forms.Textarea(attrs={'rows':'10', 'cols':'75'}))
class ReportForm(forms.ModelForm):
class Meta:
model = Report
fields = ['reason', 'post']
def __init__(self, *args, **kwargs):
self.reported_by = kwargs.pop('reported_by', None)
self.post = kwargs.pop('post', None)
@ -326,14 +335,15 @@ class ReportForm(forms.ModelForm):
self.fields['post'].widget = forms.HiddenInput()
self.fields['post'].initial = self.post
self.fields['reason'].widget = forms.Textarea(attrs={'rows':'10', 'cols':'75'})
def save(self):
report = super(ReportForm, self).save(commit=False)
report.created = datetime.now()
report.reported_by = self.reported_by
report.save()
return report
class CreatePMForm(forms.ModelForm):
recipient = forms.CharField(label=_('Recipient'))