from django import forms from django.contrib.admin import widgets from django.utils import timezone from django.utils.translation import ugettext_lazy as _ from orchestra.admin.forms import AdminFormMixin from .models import Order class BillSelectedOptionsForm(AdminFormMixin, forms.Form): billing_point = forms.DateField(initial=timezone.now, label=_("Billing point"), widget=widgets.AdminDateWidget, help_text=_("Date you want to bill selected orders")) fixed_point = forms.BooleanField(initial=False, required=False, label=_("fixed point"), help_text=_("Deisgnates whether you want the billing point to be an " "exact date, or adapt it to the billing period.")) create_new_open = forms.BooleanField(initial=False, required=False, label=_("Create a new open bill"), help_text=_("Deisgnates whether you want to put this orders on a new " "open bill, or allow to reuse an existing one.")) class BillSelectRelatedForm(AdminFormMixin, forms.Form): selected_related = forms.ModelMultipleChoiceField(queryset=Order.objects.none(), required=False) billing_point = forms.DateField(widget=forms.HiddenInput()) fixed_point = forms.BooleanField(widget=forms.HiddenInput(), required=False) create_new_open = forms.BooleanField(widget=forms.HiddenInput(), required=False) def __init__(self, *args, **kwargs): super(BillSelectRelatedForm, self).__init__(*args, **kwargs) queryset = kwargs['initial'].get('related_queryset', None) if queryset: self.fields['selected_related'].queryset = queryset class BillSelectConfirmationForm(forms.Form): selected_related = forms.ModelMultipleChoiceField(queryset=Order.objects.none(), widget=forms.HiddenInput(), required=False) billing_point = forms.DateField(widget=forms.HiddenInput()) fixed_point = forms.BooleanField(widget=forms.HiddenInput(), required=False) create_new_open = forms.BooleanField(widget=forms.HiddenInput(), required=False)