X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/357027375ff8867f42ca34bcbfb5a78b5b185fc3..df60910b2d457f031cbe0a153e51e7378c0165d8:/src/funding/forms.py?ds=sidebyside diff --git a/src/funding/forms.py b/src/funding/forms.py index 6ed9076dd..f56c08776 100644 --- a/src/funding/forms.py +++ b/src/funding/forms.py @@ -1,29 +1,37 @@ -# -*- coding: utf-8 -*- # This file is part of Wolnelektury, 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.safestring import mark_safe from django.utils.translation import ugettext_lazy as _, ugettext, get_language + +from newsletter.forms import NewsletterForm from .models import Funding from .widgets import PerksAmountWidget from . import app_settings -class FundingForm(forms.Form): +class FundingForm(NewsletterForm): required_css_class = 'required' - amount = forms.DecimalField(label=_("Amount"), decimal_places=2, - widget=PerksAmountWidget()) - name = forms.CharField(label=_("Name"), required=False, - help_text=_("Optional name for public list of contributors")) - email = forms.EmailField(label=_("Contact e-mail"), - help_text=_("We'll use it to contact you about the details needed for your perks,
" - "and to send you updates about your payment and the fundraiser status (which you can always turn off).
" - "Your e-mail won't be publicised."), required=False) + amount = forms.DecimalField(label=_("Amount"), decimal_places=2, widget=PerksAmountWidget()) + name = forms.CharField( + label=_("Name"), required=False, help_text=_("Optional name for public list of contributors")) + email = forms.EmailField( + label=_("Contact e-mail"), + help_text=mark_safe(_( + "We'll use it to " + "send you updates about your payment and the fundraiser status (which you can always turn off).
" + "Your e-mail won't be publicised.")), required=False) + + data_processing_part2 = '''\ +W przypadku podania danych zostaną one wykorzystane w sposób podany powyżej, a w przypadku wyrażenia dodatkowej zgody +adres e-mail zostanie wykorzystany także w celu przesyłania newslettera Wolnych Lektur.''' - def __init__(self, offer, *args, **kwargs): + def __init__(self, request, offer, *args, **kwargs): self.offer = offer + self.user = request.user if request.user.is_authenticated else None super(FundingForm, self).__init__(*args, **kwargs) self.fields['amount'].widget.form_instance = self @@ -43,13 +51,14 @@ class FundingForm(forms.Form): return self.cleaned_data def save(self): + super(FundingForm, self).save() funding = Funding.objects.create( offer=self.offer, name=self.cleaned_data['name'], email=self.cleaned_data['email'], amount=self.cleaned_data['amount'], language_code=get_language(), + user=self.user, ) - funding.perks = funding.offer.get_perks(funding.amount) + funding.perks.set(funding.offer.get_perks(funding.amount)) return funding -