Adds forms for nag_unpaid
This commit is contained in:
		
							parent
							
								
									37fbc2ee40
								
							
						
					
					
						commit
						fcf4e5cffb
					
				
					 3 changed files with 46 additions and 0 deletions
				
			
		|  | @ -4,6 +4,7 @@ from registrasion.models import inventory | ||||||
| 
 | 
 | ||||||
| from django import forms | from django import forms | ||||||
| from django.core.exceptions import ValidationError | from django.core.exceptions import ValidationError | ||||||
|  | from django.db.models import Q | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class ApplyCreditNoteForm(forms.Form): | class ApplyCreditNoteForm(forms.Form): | ||||||
|  | @ -394,3 +395,30 @@ def staff_products_formset_factory(user): | ||||||
|     ''' Creates a formset of StaffProductsForm for the given user. ''' |     ''' Creates a formset of StaffProductsForm for the given user. ''' | ||||||
|     form_type = staff_products_form_factory(user) |     form_type = staff_products_form_factory(user) | ||||||
|     return forms.formset_factory(form_type) |     return forms.formset_factory(form_type) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class InvoiceNagForm(forms.Form): | ||||||
|  |     invoice = forms.ModelMultipleChoiceField( | ||||||
|  |         widget=forms.CheckboxSelectMultiple, | ||||||
|  |         queryset=commerce.Invoice.objects.all(), | ||||||
|  |     ) | ||||||
|  | 
 | ||||||
|  |     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) | ||||||
|  | 
 | ||||||
|  |         print repr(category), repr(product) | ||||||
|  | 
 | ||||||
|  |         qs = commerce.Invoice.objects.filter( | ||||||
|  |             status=commerce.Invoice.STATUS_UNPAID, | ||||||
|  |         ).filter( | ||||||
|  |             Q(lineitem__product__category__in=category) | | ||||||
|  |             Q(lineitem__product__in=product) | ||||||
|  |         ) | ||||||
|  | 
 | ||||||
|  |         self.fields['invoice'].queryset = qs | ||||||
|  |  | ||||||
|  | @ -13,6 +13,7 @@ from .views import ( | ||||||
|     invoice, |     invoice, | ||||||
|     invoice_access, |     invoice_access, | ||||||
|     manual_payment, |     manual_payment, | ||||||
|  |     nag_unpaid, | ||||||
|     product_category, |     product_category, | ||||||
|     refund, |     refund, | ||||||
|     review, |     review, | ||||||
|  | @ -34,6 +35,7 @@ public = [ | ||||||
|         refund, name="refund"), |         refund, name="refund"), | ||||||
|     url(r"^invoice_access/([A-Z0-9]+)$", invoice_access, |     url(r"^invoice_access/([A-Z0-9]+)$", invoice_access, | ||||||
|         name="invoice_access"), |         name="invoice_access"), | ||||||
|  |     url(r"^nag_unpaid$", nag_unpaid, name="nag_unpaid"), | ||||||
|     url(r"^profile$", edit_profile, name="attendee_edit"), |     url(r"^profile$", edit_profile, name="attendee_edit"), | ||||||
|     url(r"^register$", guided_registration, name="guided_registration"), |     url(r"^register$", guided_registration, name="guided_registration"), | ||||||
|     url(r"^review$", review, name="review"), |     url(r"^review$", review, name="review"), | ||||||
|  |  | ||||||
|  | @ -916,3 +916,19 @@ def extend_reservation(request, user_id, days=7): | ||||||
|     cart.extend_reservation(datetime.timedelta(days=days)) |     cart.extend_reservation(datetime.timedelta(days=days)) | ||||||
| 
 | 
 | ||||||
|     return redirect(request.META["HTTP_REFERER"]) |     return redirect(request.META["HTTP_REFERER"]) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @user_passes_test(_staff_only) | ||||||
|  | def nag_unpaid(request): | ||||||
|  |     ''' Allows staff to nag users with unpaid invoices. ''' | ||||||
|  | 
 | ||||||
|  |     category = request.GET.getlist("category", []) | ||||||
|  |     product  = request.GET.getlist("product", []) | ||||||
|  | 
 | ||||||
|  |     form = forms.InvoiceNagForm( | ||||||
|  |         request.POST or None, | ||||||
|  |         category=category, | ||||||
|  |         product=product, | ||||||
|  |     ) | ||||||
|  | 
 | ||||||
|  |     print form.fields['invoice'].queryset | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Christopher Neugebauer
						Christopher Neugebauer