X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=apps%2Fpatchwork%2Fforms.py;h=f78a105fa5b200c3d4f59c20dad9187633c4021b;hb=7bcba313da27b7230b14a7ea41d50e76cd03e9a5;hp=7adc8c062b0a1fd92aa7941d09aaece31c36a303;hpb=f1e089f7736ac8f7b9af784461350c4c169211ad;p=patchwork diff --git a/apps/patchwork/forms.py b/apps/patchwork/forms.py index 7adc8c0..f78a105 100644 --- a/apps/patchwork/forms.py +++ b/apps/patchwork/forms.py @@ -44,6 +44,11 @@ class RegistrationForm(RegistrationFormUniqueEmail): user.first_name = self.cleaned_data.get('first_name', '') user.last_name = self.cleaned_data.get('last_name', '') user.save() + + # saving the userprofile causes the firstname/lastname to propagate + # to the person objects. + user.get_profile().save() + return user def clean(self): @@ -75,9 +80,14 @@ class CreateBundleForm(forms.ModelForm): % name) return name +class DeleteBundleForm(forms.Form): + name = 'deletebundleform' + form_name = forms.CharField(initial = name, widget = forms.HiddenInput) + bundle_id = forms.IntegerField(widget = forms.HiddenInput) + class DelegateField(forms.ModelChoiceField): def __init__(self, project, *args, **kwargs): - queryset = User.objects.filter(userprofile__in = \ + queryset = User.objects.filter(userprofile__in = \ UserProfile.objects \ .filter(maintainer_projects = project) \ .values('pk').query) @@ -86,12 +96,12 @@ class DelegateField(forms.ModelChoiceField): class PatchForm(forms.ModelForm): def __init__(self, instance = None, project = None, *args, **kwargs): - if (not project) and instance: + if (not project) and instance: project = instance.project if not project: - raise Exception("meep") + raise Exception("meep") super(PatchForm, self).__init__(instance = instance, *args, **kwargs) - self.fields['delegate'] = DelegateField(project) + self.fields['delegate'] = DelegateField(project, required = False) class Meta: model = Patch @@ -104,6 +114,7 @@ class UserProfileForm(forms.ModelForm): class OptionalDelegateField(DelegateField): no_change_choice = ('*', 'no change') + to_field_name = None def __init__(self, no_change_choice = None, *args, **kwargs): self.filter = None @@ -130,6 +141,7 @@ class OptionalDelegateField(DelegateField): class OptionalModelChoiceField(forms.ModelChoiceField): no_change_choice = ('*', 'no change') + to_field_name = None def __init__(self, no_change_choice = None, *args, **kwargs): self.filter = None @@ -171,7 +183,8 @@ class MultiplePatchForm(PatchForm): def __init__(self, project, *args, **kwargs): super(MultiplePatchForm, self).__init__(project = project, *args, **kwargs) - self.fields['delegate'] = OptionalDelegateField(project = project) + self.fields['delegate'] = OptionalDelegateField(project = project, + required = False) def save(self, instance, commit = True): opts = instance.__class__._meta @@ -184,7 +197,7 @@ class MultiplePatchForm(PatchForm): if not f.name in data: continue - field = getattr(self, f.name, None) + field = self.fields.get(f.name, None) if not field: continue