Aggregation doesn't work with generic relations.
[prawokultury.git] / shop / forms.py
index ce8a48f..bed435c 100644 (file)
@@ -1,32 +1,50 @@
 # -*- coding: utf-8 -*-
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# This file is part of PrawoKultury, licensed under GNU Affero GPLv3 or later.
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 #
 from django import forms
 from django.utils import formats
 from django.utils.translation import ugettext_lazy as _, ugettext, get_language
-from .models import Order
 from . import app_settings
+from .models import Order
+from .widgets import NumberInput
 
 
 class OrderForm(forms.Form):
     required_css_class = 'required'
     backend = 'getpaid.backends.payu'
-
+    items = forms.IntegerField(label=_("Items"), min_value=1, initial=1,
+        widget=NumberInput(attrs={'min': '1', 'step': '1', 'class': 'cost-items'}))
     name = forms.CharField(label=_("Name"))
     email = forms.EmailField(label=_("Contact e-mail"))
-    address = forms.CharField(label=_("Address"), widget=forms.Textarea)
-    consent = forms.CharField(label=_("Consent"), widget=forms.Textarea,
-        help_text=_('I hereby consent'))
+    address = forms.CharField(label=_("Shipping address"), widget=forms.Textarea)
+
+    accept = forms.BooleanField(label=_("Accept terms"),
+        help_text='''Akceptuję <a href='/info/regulamin-sklepu/'>regulamin sklepu</a>.''')
+
+    consent = forms.BooleanField(label=_("Consent to the processing of data"),
+        help_text='''Wyrażam zgodę na przetwarzanie moich danych osobowych w celu realizacji
+zamówienia. Administratorem danych osobowych jest Fundacja Nowoczesna
+Polska, ul. Marszałkowska 84/92, lok. 125, 00-514 Warszawa.
+Zapoznałem/zapoznałam się
+z&nbsp;<a href="http://nowoczesnapolska.org.pl/prywatnosc/">polityką prywatności Fundacji</a>.
+Jestem świadom/świadoma, iż moja zgoda może być odwołana w każdym czasie, co skutkować będzie
+usunięciem mojego adresu e-mail z bazy danych.''')
 
     def __init__(self, offer, *args, **kwargs):
-        print 'o:', offer
         self.offer = offer
         super(OrderForm, self).__init__(*args, **kwargs)
+        self.fields['items'].widget.attrs.update({
+            'data-cost-price': self.offer.price,
+            'data-cost-per-item': self.offer.cost_per_item,
+            'data-cost-const': self.offer.cost_const,
+            'data-decimal-separator': formats.get_format("DECIMAL_SEPARATOR"),
+            })
 
     def save(self):
         order = Order.objects.create(
             offer=self.offer,
+            items=self.cleaned_data['items'],
             name=self.cleaned_data['name'],
             email=self.cleaned_data['email'],
             address=self.cleaned_data['address'],