You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

forms.py 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from django import forms
  2. from django.db.models.loading import get_model
  3. from django.utils.translation import ugettext_lazy as _
  4. User = get_model('user', 'User')
  5. ProductAlert = get_model('customer', 'ProductAlert')
  6. class UserSearchForm(forms.Form):
  7. email = forms.CharField(required=False, label=_("Email"))
  8. name = forms.CharField(required=False, label=_("Name"))
  9. class ProductAlertUpdateForm(forms.ModelForm):
  10. def __init__(self, *args, **kwargs):
  11. super(ProductAlertUpdateForm, self).__init__(*args, **kwargs)
  12. alert = kwargs['instance']
  13. if alert.user:
  14. # Remove 'unconfirmed' from list of available choices when editing
  15. # an alert for a real user
  16. choices = self.fields['status'].choices
  17. del choices[0]
  18. self.fields['status'].choices = choices
  19. class Meta:
  20. model = ProductAlert
  21. exclude = ('product', 'user', 'email', 'key',
  22. 'date_confirmed', 'date_cancelled', 'date_closed')
  23. class ProductAlertSearchForm(forms.Form):
  24. STATUS_CHOICES = (
  25. ('', '------------'),
  26. ) + ProductAlert.STATUS_CHOICES
  27. status = forms.ChoiceField(required=False, choices=STATUS_CHOICES)
  28. name = forms.CharField(required=False)
  29. email = forms.EmailField(required=False)