Changeset - 3b985d40ac0b
[Not reviewed]
0 1 0
Christopher Neugebauer - 8 years ago 2017-01-07 22:47:54
chrisjrn@gmail.com
Missing line
1 file changed with 1 insertions and 1 deletions:
0 comments (0 inline, 0 general)
registrasion/forms.py
Show inline comments
...
 
@@ -353,112 +353,112 @@ class _ItemQuantityProductsFormSet(_HasProductsFields, forms.BaseFormSet):
 
                        "You may only choose each product type once.",
 
                    )
 
                    form.add_error(
 
                        _ItemQuantityProductsForm.QUANTITY_FIELD,
 
                        "You may only choose each product type once.",
 
                    )
 
                products.add(product)
 
                yield product, quantity
 

	
 
        for product in (all_products - products):
 
            yield product, 0
 

	
 
    def add_product_error(self, product, error):
 
        for form in self.forms:
 
            form.add_product_error(product, error)
 

	
 
    @property
 
    def errors(self):
 
        _errors = super(_ItemQuantityProductsFormSet, self).errors
 
        if False not in [not form.errors for form in self.forms]:
 
            return []
 
        else:
 
            return _errors
 

	
 

	
 
class VoucherForm(forms.Form):
 
    voucher = forms.CharField(
 
        label="Voucher code",
 
        help_text="If you have a voucher code, enter it here",
 
        required=False,
 
    )
 

	
 

	
 
def staff_products_form_factory(user):
 
    ''' Creates a StaffProductsForm that restricts the available products to
 
    those that are available to a user. '''
 

	
 
    products = inventory.Product.objects.all()
 
    products = ProductController.available_products(user, products=products)
 

	
 
    product_ids = [product.id for product in products]
 
    product_set = inventory.Product.objects.filter(id__in=product_ids)
 

	
 
    class StaffProductsForm(forms.Form):
 
        ''' Form for allowing staff to add an item to a user's cart. '''
 

	
 
        product = forms.ModelChoiceField(
 
            widget=forms.Select,
 
            queryset=product_set,
 
        )
 

	
 
        quantity = forms.IntegerField(
 
            min_value=0,
 
        )
 

	
 
    return StaffProductsForm
 

	
 
def staff_products_formset_factory(user):
 
    ''' Creates a formset of StaffProductsForm for the given user. '''
 
    form_type = staff_products_form_factory(user)
 
    return forms.formset_factory(form_type)
 

	
 

	
 
class InvoiceEmailForm(forms.Form):
 

	
 
    ACTION_PREVIEW = 1
 
    ACTION_SEND = 2
 

	
 
    ACTION_CHOICES = (
 
        (ACTION_PREVIEW, "Preview"),
 
        (ACTION_SEND, "Send emails"),
 
    )
 

	
 
    invoice = forms.ModelMultipleChoiceField(
 
        widget=forms.CheckboxSelectMultiple,
 
        queryset=commerce.Invoice.objects.all(),
 
    )
 
    from_email = forms.CharField()
 
    subject = forms.CharField()
 
    body = forms.CharField(
 
        widget=forms.Textarea,
 
    )
 
    action = forms.TypedChoiceField(
 
        widget=forms.RadioSelect,
 
        coerce=int,
 
        choices=ACTION_CHOICES,
 
        initial=ACTION_PREVIEW,
 
    )
 

	
 
    def __init__(self, *a, **k):
 
        category = k.pop('category', None) or []
 
        product = k.pop('product', None) or []
 

	
 
        category = [int(i) for i in category]
 
        product = [int(i) for i in product]
 

	
 
        super(InvoiceNagForm, self).__init__(*a, **k)
 
        super(InvoiceEmailForm, self).__init__(*a, **k)
 

	
 
        qs = commerce.Invoice.objects.filter(
 
            status=commerce.Invoice.STATUS_UNPAID,
 
        ).filter(
 
            Q(lineitem__product__category__in=category) |
 
            Q(lineitem__product__in=product)
 
        )
 

	
 
        # Uniqify
 
        qs = commerce.Invoice.objects.filter(
 
            id__in=qs,
 
        )
 

	
 
        self.fields['invoice'].queryset = qs
 
        self.fields['invoice'].initial = [i.id for i in qs]
0 comments (0 inline, 0 general)