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 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. from django import forms
  2. from django.db.models.loading import get_model
  3. Order = get_model('order', 'Order')
  4. OrderNote = get_model('order', 'OrderNote')
  5. ShippingAddress = get_model('order', 'ShippingAddress')
  6. class OrderSearchForm(forms.Form):
  7. order_number = forms.CharField(required=False, label="Order number")
  8. name = forms.CharField(required=False, label="Customer name")
  9. product_title = forms.CharField(required=False, label="Product name")
  10. product_id = forms.CharField(required=False, label="Product ID")
  11. status_choices = (('', '---------'),) + tuple([(v, v) for v in Order.all_statuses()])
  12. status = forms.ChoiceField(choices=status_choices, label="Status", required=False)
  13. date_formats = ('%d/%m/%Y',)
  14. date_from = forms.DateField(required=False, label="Date from", input_formats=date_formats)
  15. date_to = forms.DateField(required=False, label="Date to", input_formats=date_formats)
  16. voucher = forms.CharField(required=False, label="Voucher code")
  17. payment_method = forms.CharField(label="Payment method", required=False)
  18. format_choices = (('html', 'HTML'),
  19. ('csv', 'CSV'),)
  20. response_format = forms.ChoiceField(widget=forms.RadioSelect,
  21. choices=format_choices, initial='html', label="Get results as")
  22. class OrderSummaryForm(forms.Form):
  23. date_from = forms.DateField(required=False, label="From")
  24. date_to = forms.DateField(required=False, label="To")
  25. def get_filters(self):
  26. date_from = self.cleaned_data['date_from']
  27. date_to = self.cleaned_data['date_to']
  28. if date_from and date_to:
  29. return {'date_placed__range': [date_from, date_to]}
  30. elif date_from and not date_to:
  31. return {'date_placed__gt': date_from}
  32. elif not date_from and date_to:
  33. return {'date_placed__lt': date_to}
  34. return {}
  35. class OrderNoteForm(forms.ModelForm):
  36. class Meta:
  37. model = OrderNote
  38. exclude = ('order', 'user', 'note_type')
  39. class ShippingAddressForm(forms.ModelForm):
  40. class Meta:
  41. model = ShippingAddress
  42. exclude = ('search_text',)