From 3f527019946f993c9d1cadd41e80c2c7eac188ed Mon Sep 17 00:00:00 2001 From: Radek Czajka Date: Fri, 30 Jul 2021 14:54:01 +0200 Subject: [PATCH 1/1] More data in payment form. --- requirements/requirements.txt | 1 + src/club/admin.py | 11 + src/club/forms.py | 64 +++++- src/club/locale/de/LC_MESSAGES/django.po | 170 +++++++++++---- src/club/locale/en/LC_MESSAGES/django.po | 170 +++++++++++---- src/club/locale/es/LC_MESSAGES/django.po | 170 +++++++++++---- src/club/locale/fr/LC_MESSAGES/django.po | 170 +++++++++++---- src/club/locale/it/LC_MESSAGES/django.po | 170 +++++++++++---- src/club/locale/lt/LC_MESSAGES/django.po | 170 +++++++++++---- src/club/locale/pl/LC_MESSAGES/django.mo | Bin 8367 -> 8823 bytes src/club/locale/pl/LC_MESSAGES/django.po | 202 ++++++++++-------- src/club/locale/ru/LC_MESSAGES/django.po | 170 +++++++++++---- src/club/locale/uk/LC_MESSAGES/django.po | 170 +++++++++++---- .../migrations/0032_auto_20210730_1104.py | 31 +++ .../migrations/0033_auto_20210730_1145.py | 23 ++ .../migrations/0034_auto_20210730_1407.py | 57 +++++ .../migrations/0035_schedule_postal_town.py | 18 ++ .../migrations/0036_auto_20210730_1437.py | 36 ++++ src/club/models.py | 27 +++ src/club/static/club/club.scss | 71 ++++++ src/club/templates/club/payment_form.html | 42 +++- src/wolnelektury/settings/apps.py | 1 + 22 files changed, 1506 insertions(+), 438 deletions(-) create mode 100644 src/club/migrations/0032_auto_20210730_1104.py create mode 100644 src/club/migrations/0033_auto_20210730_1145.py create mode 100644 src/club/migrations/0034_auto_20210730_1407.py create mode 100644 src/club/migrations/0035_schedule_postal_town.py create mode 100644 src/club/migrations/0036_auto_20210730_1437.py diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 1e0c94435..42e2634b4 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -17,6 +17,7 @@ djangorestframework==3.9.4 djangorestframework-xml django-admin-ordering==0.10.0 django-machina==1.0.2 +django-countries==7.2.1 # A version compatible with Django 2.2, with long help text and editable max_length. -e git+https://github.com/rczajka/django-forms-builder@8ec4022f2a185658b4b23c3d020e0d5c3cb88774#egg=django-forms-builder diff --git a/src/club/admin.py b/src/club/admin.py index 4d65c3c46..1f3c837a7 100644 --- a/src/club/admin.py +++ b/src/club/admin.py @@ -61,6 +61,7 @@ class ScheduleAdmin(admin.ModelAdmin): ] search_fields = ['email'] list_filter = ['is_cancelled', 'monthly', 'yearly', 'method', PayedFilter, ExpiredFilter, 'source'] + filter_horizontal = ['consent'] date_hierarchy = 'started_at' raw_id_fields = ['membership'] inlines = [PayUOrderInline, PayUCardTokenInline] @@ -159,3 +160,13 @@ class DirectDebitAdmin(admin.ModelAdmin): 'amount' ] + +@admin.register(models.Consent) +class ConsentAdmin(admin.ModelAdmin): + list_display = ['text', 'order', 'active', 'required'] + + def get_readonly_fields(self, request, obj=None): + if obj: + return ['text'] + else: + return [] diff --git a/src/club/forms.py b/src/club/forms.py index d1bebe85a..fe38c7bb3 100644 --- a/src/club/forms.py +++ b/src/club/forms.py @@ -10,21 +10,72 @@ from .payu.forms import CardTokenForm class ScheduleForm(forms.ModelForm, NewsletterForm): - data_processing = '''Administratorem danych osobowych jest Fundacja Nowoczesna Polska (ul. Marszałkowska 84/92 lok. 125, 00-514 Warszawa). Podanie danych osobowych jest dobrowolne, ale konieczne do przeprowadzenia wpłaty. Dane są przetwarzane w zakresie niezbędnym do zaksięgowania darowizny i przekazywania Tobie powiadomień dotyczących wpłaty, a także wysyłania Tobie wiadomości mailowych promujących zbiórki i inne formy wsparcia Fundacji. W przypadku wyrażenia dodatkowej zgody adres e-mail zostanie wykorzystany także w zakresie niezbędnym do wysyłania newslettera odbiorcom. Osobom, których dane są zbierane, przysługuje prawo dostępu do treści swoich danych oraz ich poprawiania.''' + data_processing = '''Informacja o przetwarzaniu danych osobowych + +
Administratorem Twoich danych osobowych jest Fundacja Nowoczesna Polska z siedzibą w Warszawie, przy ul. Marszałkowskiej 84/92 lok.125, 00-514 Warszawa (dalej: Fundacja). + +Z Fundacją można się kontaktować we wszystkich sprawach dotyczących przetwarzania danych osobowych oraz korzystania z praw związanych z przetwarzaniem danych, w szczególności w zakresie wycofania udzielonej zgody na przetwarzanie danych poprzez adres e-mail fundacja@nowoczesnapolska.org.pl, telefonicznie pod numerem +48 22 621 30 17 (w dni powszednie w godz. 9-17) lub listownie pisząc na adres siedziby Fundacji. +Podanie danych osobowych jest dobrowolne, jednak konieczne do przeprowadzenia płatności oraz realizacji innych celów wskazanych poniżej. + +Twoje dane będą przetwarzane w celu: + • rozliczeniowym, księgowym, i innych sprawach związanych z Twoją darowizną na podstawie art. 6 ust. 1 lit. b i c RODO, + • kontaktu telefonicznego, przez media elektroniczne oraz listownie, celem informowania o działalności oraz prośby o wsparcie na podstawie art. 6 ust. 1 lit. a, + • przesyłania e-mailem newslettera: regularnej informacji o działalności fundacji oraz próśb o wsparcie na podstawie art. 6 ust. 1 lit. a RODO, + • ewentualnego ustalenia i dochodzenia roszczeń lub obrony przed nimi; zapewnienia bezpieczeństwa u Administratora oraz realizacji wewnętrznych celów administracyjnych, analitycznych i statystycznych na podstawie art. 6 ust. 1 lit. f RODO; uzasadnionym interesem Administratora jest możliwość obrony przed ewentualnymi roszczeniami, zapewnienia bezpieczeństwa u Administratora oraz możliwość realizacji wewnętrznych celów administracyjnych, analitycznych i statystycznych przez Fundację. + +Fundacja nie udostępnia Twoich danych osobowych podmiotom trzecim. Fundacja może korzystać z usług podwykonawców w celu realizacji kontaktu w ramach wyrażonej zgody. W szczególności Twoje dane mogą być przekazywane podmiotom takim jak banki, firma obsługująca księgowość i firmy współpracujące przy prowadzeniu akcji informacyjnych i edukacyjnych – przy czym takie podmioty przetwarzają dane wyłącznie na podstawie umowy z administratorem, wyłącznie zgodnie z poleceniami administratora i wyłącznie zgodnie z zakresem udzielonej zgody. + +Twoje dane osobowe będą przechowywane do momentu wycofania zgody, rozliczenia darowizn, a po tym okresie przez okres przedawnienia ewentualnych roszczeń lub przez okres, który wynika z przepisów prawa, w szczególności obowiązku przechowywania dokumentów księgowych (rachunkowych). + +Przysługuje Ci prawo dostępu do Twoich danych oraz prawo żądania ich sprostowania, ich usunięcia lub ograniczenia ich przetwarzania. W zakresie, w jakim podstawą przetwarzania Twoich danych osobowych jest przesłanka prawnie uzasadnionego interesu administratora, przysługuje Ci prawo wniesienia sprzeciwu wobec przetwarzania Twoich danych osobowych. W zakresie, w jakim podstawą przetwarzania Twoich danych osobowych jest zgoda, masz prawo wycofania zgody. Wycofanie zgody nie ma wpływu na zgodność z prawem przetwarzania, którego dokonano na podstawie zgody przed jej wycofaniem. W celu skorzystania z powyższych praw należy skontaktować się z fundacją w dowolny wskazany powyżej sposób. + +Masz prawo do wniesienia skargi do organu nadzorczego, jeżeli uważasz, że Twoje dane osobowe są przetwarzane w niewłaściwy sposób. + +Twoje dane osobowe nie będą profilowane, ani przesyłane do państw trzecich i organizacji międzynarodowych. + +
+'''.replace('\n', '
') class Meta: model = models.Schedule - fields = ['monthly', 'amount', 'email', 'method'] + fields = ['monthly', 'amount', + 'first_name', 'last_name', + 'email', 'phone', + 'postal', + 'postal_code', 'postal_town', 'postal_country', + 'method'] widgets = { 'amount': forms.HiddenInput, 'monthly': forms.HiddenInput, 'method': forms.HiddenInput, + + 'first_name': forms.TextInput(attrs={"placeholder": _('first name')}), + 'last_name': forms.TextInput(attrs={"placeholder": _('last name')}), + + 'postal': forms.Textarea(attrs={"placeholder": _("If you leave your address, we'll be able to send you a postcard and other gadgets.")}), + 'postal_code': forms.TextInput(attrs={"placeholder": _('postal code')}), + 'postal_town': forms.TextInput(attrs={"placeholder": _('town')}), } def __init__(self, referer=None, **kwargs): self.referer = referer super().__init__(**kwargs) + self.fields['first_name'].required = True + self.fields['last_name'].required = True + self.fields['phone'].required = True + + self.consent = [] + for c in models.Consent.objects.filter(active=True).order_by('order'): + key = f'consent{c.id}' + self.fields[key] = forms.BooleanField( + label=c.text, + required=c.required + ) + self.consent.append(( + c, key, (lambda k: lambda: self[k])(key) + )) + def clean_amount(self): value = self.cleaned_data['amount'] club = models.Club.objects.first() @@ -51,7 +102,14 @@ class ScheduleForm(forms.ModelForm, NewsletterForm): def save(self, *args, **kwargs): NewsletterForm.save(self, *args, **kwargs) self.instance.source = self.referer or '' - return super().save(*args, **kwargs) + instance = super().save(*args, **kwargs) + + consents = [] + for consent, key, consent_field in self.consent: + if self.cleaned_data[key]: + instance.consent.add(consent) + + return instance class PayUCardTokenForm(CardTokenForm): diff --git a/src/club/locale/de/LC_MESSAGES/django.po b/src/club/locale/de/LC_MESSAGES/django.po index 5842795d9..a7200160b 100644 --- a/src/club/locale/de/LC_MESSAGES/django.po +++ b/src/club/locale/de/LC_MESSAGES/django.po @@ -29,7 +29,7 @@ msgstr "" msgid "Club" msgstr "" -#: club/forms.py:32 +#: club/forms.py:70 #, python-format msgid "Minimal amount is %(amount)d PLN." msgstr "" @@ -66,142 +66,214 @@ msgstr "" msgid "clubs" msgstr "" -#: club/models.py:48 +#: club/models.py:61 msgid "key" msgstr "" -#: club/models.py:49 +#: club/models.py:62 msgid "email" msgstr "" -#: club/models.py:50 club/models.py:143 +#: club/models.py:63 club/models.py:182 msgid "membership" msgstr "" -#: club/models.py:51 +#: club/models.py:64 club/models.py:388 msgid "amount" msgstr "" -#: club/models.py:52 club/templates/club/payment_form.html:21 +#: club/models.py:65 +msgid "method" +msgstr "" + +#: club/models.py:68 club/templates/club/payment_form.html:25 msgid "monthly" msgstr "" -#: club/models.py:53 +#: club/models.py:69 msgid "yearly" msgstr "" -#: club/models.py:55 +#: club/models.py:71 msgid "source" msgstr "" -#: club/models.py:57 +#: club/models.py:73 msgid "cancelled" msgstr "" -#: club/models.py:58 +#: club/models.py:74 msgid "payed at" msgstr "" -#: club/models.py:59 +#: club/models.py:75 msgid "started at" msgstr "" -#: club/models.py:60 +#: club/models.py:76 msgid "expires_at" msgstr "" -#: club/models.py:64 +#: club/models.py:85 msgid "schedule" msgstr "" -#: club/models.py:65 +#: club/models.py:86 msgid "schedules" msgstr "" -#: club/models.py:135 +#: club/models.py:174 msgid "user" msgstr "" -#: club/models.py:136 +#: club/models.py:175 msgid "created at" msgstr "" -#: club/models.py:137 club/models.py:198 +#: club/models.py:176 club/models.py:237 msgid "name" msgstr "" -#: club/models.py:138 +#: club/models.py:177 msgid "manual" msgstr "" -#: club/models.py:139 +#: club/models.py:178 msgid "notes" msgstr "" -#: club/models.py:140 +#: club/models.py:179 msgid "updated at" msgstr "" -#: club/models.py:144 +#: club/models.py:183 msgid "memberships" msgstr "" -#: club/models.py:181 +#: club/models.py:220 msgid "days before" msgstr "" -#: club/models.py:182 +#: club/models.py:221 msgid "subject" msgstr "" -#: club/models.py:183 club/payu/models.py:140 +#: club/models.py:222 club/payu/models.py:140 msgid "body" msgstr "" -#: club/models.py:186 +#: club/models.py:225 msgid "reminder email" msgstr "" -#: club/models.py:187 +#: club/models.py:226 msgid "reminder emails" msgstr "" -#: club/models.py:192 +#: club/models.py:231 #, python-format msgid "a day before expiration" msgid_plural "%d days before expiration" msgstr[0] "" msgstr[1] "" -#: club/models.py:194 +#: club/models.py:233 #, python-format msgid "a day after expiration" msgid_plural "%d days after expiration" msgstr[0] "" msgstr[1] "" -#: club/models.py:199 +#: club/models.py:238 msgid "photo" msgstr "" -#: club/models.py:200 +#: club/models.py:239 msgid "text" msgstr "" -#: club/models.py:203 +#: club/models.py:242 msgid "ambassador" msgstr "" -#: club/models.py:204 +#: club/models.py:243 msgid "ambassadors" msgstr "" -#: club/models.py:235 club/templates/club/index.html:7 +#: club/models.py:274 club/templates/club/index.html:7 #: club/templates/club/index.html:13 club/templates/club/thanks.html:6 #: club/templates/payu/rec_payment.html:5 msgid "Towarzystwo Przyjaciół Wolnych Lektur" msgstr "" +#: club/models.py:370 +msgid "first name" +msgstr "" + +#: club/models.py:371 +msgid "last name" +msgstr "" + +#: club/models.py:372 +msgid "sex" +msgstr "" + +#: club/models.py:376 +msgid "date of birth" +msgstr "" + +#: club/models.py:377 +msgid "street" +msgstr "" + +#: club/models.py:378 +msgid "building" +msgstr "" + +#: club/models.py:379 +msgid "flat" +msgstr "" + +#: club/models.py:380 +msgid "town" +msgstr "" + +#: club/models.py:381 +msgid "postal code" +msgstr "" + +#: club/models.py:382 +msgid "phone" +msgstr "" + +#: club/models.py:383 +msgid "e-mail" +msgstr "" + +#: club/models.py:384 +msgid "IBAN" +msgstr "" + +#: club/models.py:385 +msgid "payment identifier" +msgstr "" + +#: club/models.py:386 +msgid "agree newsletter" +msgstr "" + +#: club/models.py:387 +msgid "date" +msgstr "" + +#: club/models.py:391 +msgid "direct debit" +msgstr "" + +#: club/models.py:392 +msgid "direct debits" +msgstr "" + #: club/payu/models.py:17 club/payu/models.py:29 msgid "POS id" msgstr "" @@ -360,38 +432,50 @@ msgstr "" msgid "transfer" msgstr "" -#: club/templates/club/payment_form.html:15 +#: club/templates/club/payment_form.html:18 msgid "Choose your type of support" msgstr "" -#: club/templates/club/payment_form.html:20 +#: club/templates/club/payment_form.html:24 msgid "one-time" msgstr "" -#: club/templates/club/payment_form.html:24 +#: club/templates/club/payment_form.html:28 msgid "Choose the amount" msgstr "" -#: club/templates/club/payment_form.html:32 -#: club/templates/club/payment_form.html:45 +#: club/templates/club/payment_form.html:36 +#: club/templates/club/payment_form.html:49 msgid "different amount" msgstr "" -#: club/templates/club/payment_form.html:51 -msgid "Provide an e-mail address" +#: club/templates/club/payment_form.html:57 +msgid "Provide contact details" +msgstr "" + +#: club/templates/club/payment_form.html:60 +msgid "E-mail:" msgstr "" -#: club/templates/club/payment_form.html:58 +#: club/templates/club/payment_form.html:65 +msgid "Phone number:" +msgstr "" + +#: club/templates/club/payment_form.html:70 +msgid "Postal address:" +msgstr "" + +#: club/templates/club/payment_form.html:87 msgid "I'd like to receive informations about new publications." msgstr "" -#: club/templates/club/payment_form.html:62 +#: club/templates/club/payment_form.html:91 msgid "" "You can unsubscribe at any point. More in the privacy policy." msgstr "" -#: club/templates/club/payment_form.html:65 +#: club/templates/club/payment_form.html:94 msgid "Donate" msgstr "" diff --git a/src/club/locale/en/LC_MESSAGES/django.po b/src/club/locale/en/LC_MESSAGES/django.po index 5842795d9..a7200160b 100644 --- a/src/club/locale/en/LC_MESSAGES/django.po +++ b/src/club/locale/en/LC_MESSAGES/django.po @@ -29,7 +29,7 @@ msgstr "" msgid "Club" msgstr "" -#: club/forms.py:32 +#: club/forms.py:70 #, python-format msgid "Minimal amount is %(amount)d PLN." msgstr "" @@ -66,142 +66,214 @@ msgstr "" msgid "clubs" msgstr "" -#: club/models.py:48 +#: club/models.py:61 msgid "key" msgstr "" -#: club/models.py:49 +#: club/models.py:62 msgid "email" msgstr "" -#: club/models.py:50 club/models.py:143 +#: club/models.py:63 club/models.py:182 msgid "membership" msgstr "" -#: club/models.py:51 +#: club/models.py:64 club/models.py:388 msgid "amount" msgstr "" -#: club/models.py:52 club/templates/club/payment_form.html:21 +#: club/models.py:65 +msgid "method" +msgstr "" + +#: club/models.py:68 club/templates/club/payment_form.html:25 msgid "monthly" msgstr "" -#: club/models.py:53 +#: club/models.py:69 msgid "yearly" msgstr "" -#: club/models.py:55 +#: club/models.py:71 msgid "source" msgstr "" -#: club/models.py:57 +#: club/models.py:73 msgid "cancelled" msgstr "" -#: club/models.py:58 +#: club/models.py:74 msgid "payed at" msgstr "" -#: club/models.py:59 +#: club/models.py:75 msgid "started at" msgstr "" -#: club/models.py:60 +#: club/models.py:76 msgid "expires_at" msgstr "" -#: club/models.py:64 +#: club/models.py:85 msgid "schedule" msgstr "" -#: club/models.py:65 +#: club/models.py:86 msgid "schedules" msgstr "" -#: club/models.py:135 +#: club/models.py:174 msgid "user" msgstr "" -#: club/models.py:136 +#: club/models.py:175 msgid "created at" msgstr "" -#: club/models.py:137 club/models.py:198 +#: club/models.py:176 club/models.py:237 msgid "name" msgstr "" -#: club/models.py:138 +#: club/models.py:177 msgid "manual" msgstr "" -#: club/models.py:139 +#: club/models.py:178 msgid "notes" msgstr "" -#: club/models.py:140 +#: club/models.py:179 msgid "updated at" msgstr "" -#: club/models.py:144 +#: club/models.py:183 msgid "memberships" msgstr "" -#: club/models.py:181 +#: club/models.py:220 msgid "days before" msgstr "" -#: club/models.py:182 +#: club/models.py:221 msgid "subject" msgstr "" -#: club/models.py:183 club/payu/models.py:140 +#: club/models.py:222 club/payu/models.py:140 msgid "body" msgstr "" -#: club/models.py:186 +#: club/models.py:225 msgid "reminder email" msgstr "" -#: club/models.py:187 +#: club/models.py:226 msgid "reminder emails" msgstr "" -#: club/models.py:192 +#: club/models.py:231 #, python-format msgid "a day before expiration" msgid_plural "%d days before expiration" msgstr[0] "" msgstr[1] "" -#: club/models.py:194 +#: club/models.py:233 #, python-format msgid "a day after expiration" msgid_plural "%d days after expiration" msgstr[0] "" msgstr[1] "" -#: club/models.py:199 +#: club/models.py:238 msgid "photo" msgstr "" -#: club/models.py:200 +#: club/models.py:239 msgid "text" msgstr "" -#: club/models.py:203 +#: club/models.py:242 msgid "ambassador" msgstr "" -#: club/models.py:204 +#: club/models.py:243 msgid "ambassadors" msgstr "" -#: club/models.py:235 club/templates/club/index.html:7 +#: club/models.py:274 club/templates/club/index.html:7 #: club/templates/club/index.html:13 club/templates/club/thanks.html:6 #: club/templates/payu/rec_payment.html:5 msgid "Towarzystwo Przyjaciół Wolnych Lektur" msgstr "" +#: club/models.py:370 +msgid "first name" +msgstr "" + +#: club/models.py:371 +msgid "last name" +msgstr "" + +#: club/models.py:372 +msgid "sex" +msgstr "" + +#: club/models.py:376 +msgid "date of birth" +msgstr "" + +#: club/models.py:377 +msgid "street" +msgstr "" + +#: club/models.py:378 +msgid "building" +msgstr "" + +#: club/models.py:379 +msgid "flat" +msgstr "" + +#: club/models.py:380 +msgid "town" +msgstr "" + +#: club/models.py:381 +msgid "postal code" +msgstr "" + +#: club/models.py:382 +msgid "phone" +msgstr "" + +#: club/models.py:383 +msgid "e-mail" +msgstr "" + +#: club/models.py:384 +msgid "IBAN" +msgstr "" + +#: club/models.py:385 +msgid "payment identifier" +msgstr "" + +#: club/models.py:386 +msgid "agree newsletter" +msgstr "" + +#: club/models.py:387 +msgid "date" +msgstr "" + +#: club/models.py:391 +msgid "direct debit" +msgstr "" + +#: club/models.py:392 +msgid "direct debits" +msgstr "" + #: club/payu/models.py:17 club/payu/models.py:29 msgid "POS id" msgstr "" @@ -360,38 +432,50 @@ msgstr "" msgid "transfer" msgstr "" -#: club/templates/club/payment_form.html:15 +#: club/templates/club/payment_form.html:18 msgid "Choose your type of support" msgstr "" -#: club/templates/club/payment_form.html:20 +#: club/templates/club/payment_form.html:24 msgid "one-time" msgstr "" -#: club/templates/club/payment_form.html:24 +#: club/templates/club/payment_form.html:28 msgid "Choose the amount" msgstr "" -#: club/templates/club/payment_form.html:32 -#: club/templates/club/payment_form.html:45 +#: club/templates/club/payment_form.html:36 +#: club/templates/club/payment_form.html:49 msgid "different amount" msgstr "" -#: club/templates/club/payment_form.html:51 -msgid "Provide an e-mail address" +#: club/templates/club/payment_form.html:57 +msgid "Provide contact details" +msgstr "" + +#: club/templates/club/payment_form.html:60 +msgid "E-mail:" msgstr "" -#: club/templates/club/payment_form.html:58 +#: club/templates/club/payment_form.html:65 +msgid "Phone number:" +msgstr "" + +#: club/templates/club/payment_form.html:70 +msgid "Postal address:" +msgstr "" + +#: club/templates/club/payment_form.html:87 msgid "I'd like to receive informations about new publications." msgstr "" -#: club/templates/club/payment_form.html:62 +#: club/templates/club/payment_form.html:91 msgid "" "You can unsubscribe at any point. More in the privacy policy." msgstr "" -#: club/templates/club/payment_form.html:65 +#: club/templates/club/payment_form.html:94 msgid "Donate" msgstr "" diff --git a/src/club/locale/es/LC_MESSAGES/django.po b/src/club/locale/es/LC_MESSAGES/django.po index 5842795d9..a7200160b 100644 --- a/src/club/locale/es/LC_MESSAGES/django.po +++ b/src/club/locale/es/LC_MESSAGES/django.po @@ -29,7 +29,7 @@ msgstr "" msgid "Club" msgstr "" -#: club/forms.py:32 +#: club/forms.py:70 #, python-format msgid "Minimal amount is %(amount)d PLN." msgstr "" @@ -66,142 +66,214 @@ msgstr "" msgid "clubs" msgstr "" -#: club/models.py:48 +#: club/models.py:61 msgid "key" msgstr "" -#: club/models.py:49 +#: club/models.py:62 msgid "email" msgstr "" -#: club/models.py:50 club/models.py:143 +#: club/models.py:63 club/models.py:182 msgid "membership" msgstr "" -#: club/models.py:51 +#: club/models.py:64 club/models.py:388 msgid "amount" msgstr "" -#: club/models.py:52 club/templates/club/payment_form.html:21 +#: club/models.py:65 +msgid "method" +msgstr "" + +#: club/models.py:68 club/templates/club/payment_form.html:25 msgid "monthly" msgstr "" -#: club/models.py:53 +#: club/models.py:69 msgid "yearly" msgstr "" -#: club/models.py:55 +#: club/models.py:71 msgid "source" msgstr "" -#: club/models.py:57 +#: club/models.py:73 msgid "cancelled" msgstr "" -#: club/models.py:58 +#: club/models.py:74 msgid "payed at" msgstr "" -#: club/models.py:59 +#: club/models.py:75 msgid "started at" msgstr "" -#: club/models.py:60 +#: club/models.py:76 msgid "expires_at" msgstr "" -#: club/models.py:64 +#: club/models.py:85 msgid "schedule" msgstr "" -#: club/models.py:65 +#: club/models.py:86 msgid "schedules" msgstr "" -#: club/models.py:135 +#: club/models.py:174 msgid "user" msgstr "" -#: club/models.py:136 +#: club/models.py:175 msgid "created at" msgstr "" -#: club/models.py:137 club/models.py:198 +#: club/models.py:176 club/models.py:237 msgid "name" msgstr "" -#: club/models.py:138 +#: club/models.py:177 msgid "manual" msgstr "" -#: club/models.py:139 +#: club/models.py:178 msgid "notes" msgstr "" -#: club/models.py:140 +#: club/models.py:179 msgid "updated at" msgstr "" -#: club/models.py:144 +#: club/models.py:183 msgid "memberships" msgstr "" -#: club/models.py:181 +#: club/models.py:220 msgid "days before" msgstr "" -#: club/models.py:182 +#: club/models.py:221 msgid "subject" msgstr "" -#: club/models.py:183 club/payu/models.py:140 +#: club/models.py:222 club/payu/models.py:140 msgid "body" msgstr "" -#: club/models.py:186 +#: club/models.py:225 msgid "reminder email" msgstr "" -#: club/models.py:187 +#: club/models.py:226 msgid "reminder emails" msgstr "" -#: club/models.py:192 +#: club/models.py:231 #, python-format msgid "a day before expiration" msgid_plural "%d days before expiration" msgstr[0] "" msgstr[1] "" -#: club/models.py:194 +#: club/models.py:233 #, python-format msgid "a day after expiration" msgid_plural "%d days after expiration" msgstr[0] "" msgstr[1] "" -#: club/models.py:199 +#: club/models.py:238 msgid "photo" msgstr "" -#: club/models.py:200 +#: club/models.py:239 msgid "text" msgstr "" -#: club/models.py:203 +#: club/models.py:242 msgid "ambassador" msgstr "" -#: club/models.py:204 +#: club/models.py:243 msgid "ambassadors" msgstr "" -#: club/models.py:235 club/templates/club/index.html:7 +#: club/models.py:274 club/templates/club/index.html:7 #: club/templates/club/index.html:13 club/templates/club/thanks.html:6 #: club/templates/payu/rec_payment.html:5 msgid "Towarzystwo Przyjaciół Wolnych Lektur" msgstr "" +#: club/models.py:370 +msgid "first name" +msgstr "" + +#: club/models.py:371 +msgid "last name" +msgstr "" + +#: club/models.py:372 +msgid "sex" +msgstr "" + +#: club/models.py:376 +msgid "date of birth" +msgstr "" + +#: club/models.py:377 +msgid "street" +msgstr "" + +#: club/models.py:378 +msgid "building" +msgstr "" + +#: club/models.py:379 +msgid "flat" +msgstr "" + +#: club/models.py:380 +msgid "town" +msgstr "" + +#: club/models.py:381 +msgid "postal code" +msgstr "" + +#: club/models.py:382 +msgid "phone" +msgstr "" + +#: club/models.py:383 +msgid "e-mail" +msgstr "" + +#: club/models.py:384 +msgid "IBAN" +msgstr "" + +#: club/models.py:385 +msgid "payment identifier" +msgstr "" + +#: club/models.py:386 +msgid "agree newsletter" +msgstr "" + +#: club/models.py:387 +msgid "date" +msgstr "" + +#: club/models.py:391 +msgid "direct debit" +msgstr "" + +#: club/models.py:392 +msgid "direct debits" +msgstr "" + #: club/payu/models.py:17 club/payu/models.py:29 msgid "POS id" msgstr "" @@ -360,38 +432,50 @@ msgstr "" msgid "transfer" msgstr "" -#: club/templates/club/payment_form.html:15 +#: club/templates/club/payment_form.html:18 msgid "Choose your type of support" msgstr "" -#: club/templates/club/payment_form.html:20 +#: club/templates/club/payment_form.html:24 msgid "one-time" msgstr "" -#: club/templates/club/payment_form.html:24 +#: club/templates/club/payment_form.html:28 msgid "Choose the amount" msgstr "" -#: club/templates/club/payment_form.html:32 -#: club/templates/club/payment_form.html:45 +#: club/templates/club/payment_form.html:36 +#: club/templates/club/payment_form.html:49 msgid "different amount" msgstr "" -#: club/templates/club/payment_form.html:51 -msgid "Provide an e-mail address" +#: club/templates/club/payment_form.html:57 +msgid "Provide contact details" +msgstr "" + +#: club/templates/club/payment_form.html:60 +msgid "E-mail:" msgstr "" -#: club/templates/club/payment_form.html:58 +#: club/templates/club/payment_form.html:65 +msgid "Phone number:" +msgstr "" + +#: club/templates/club/payment_form.html:70 +msgid "Postal address:" +msgstr "" + +#: club/templates/club/payment_form.html:87 msgid "I'd like to receive informations about new publications." msgstr "" -#: club/templates/club/payment_form.html:62 +#: club/templates/club/payment_form.html:91 msgid "" "You can unsubscribe at any point. More in the privacy policy." msgstr "" -#: club/templates/club/payment_form.html:65 +#: club/templates/club/payment_form.html:94 msgid "Donate" msgstr "" diff --git a/src/club/locale/fr/LC_MESSAGES/django.po b/src/club/locale/fr/LC_MESSAGES/django.po index 6b253e6bf..9f4a0e82a 100644 --- a/src/club/locale/fr/LC_MESSAGES/django.po +++ b/src/club/locale/fr/LC_MESSAGES/django.po @@ -29,7 +29,7 @@ msgstr "" msgid "Club" msgstr "" -#: club/forms.py:32 +#: club/forms.py:70 #, python-format msgid "Minimal amount is %(amount)d PLN." msgstr "" @@ -66,142 +66,214 @@ msgstr "" msgid "clubs" msgstr "" -#: club/models.py:48 +#: club/models.py:61 msgid "key" msgstr "" -#: club/models.py:49 +#: club/models.py:62 msgid "email" msgstr "" -#: club/models.py:50 club/models.py:143 +#: club/models.py:63 club/models.py:182 msgid "membership" msgstr "" -#: club/models.py:51 +#: club/models.py:64 club/models.py:388 msgid "amount" msgstr "" -#: club/models.py:52 club/templates/club/payment_form.html:21 +#: club/models.py:65 +msgid "method" +msgstr "" + +#: club/models.py:68 club/templates/club/payment_form.html:25 msgid "monthly" msgstr "" -#: club/models.py:53 +#: club/models.py:69 msgid "yearly" msgstr "" -#: club/models.py:55 +#: club/models.py:71 msgid "source" msgstr "" -#: club/models.py:57 +#: club/models.py:73 msgid "cancelled" msgstr "" -#: club/models.py:58 +#: club/models.py:74 msgid "payed at" msgstr "" -#: club/models.py:59 +#: club/models.py:75 msgid "started at" msgstr "" -#: club/models.py:60 +#: club/models.py:76 msgid "expires_at" msgstr "" -#: club/models.py:64 +#: club/models.py:85 msgid "schedule" msgstr "" -#: club/models.py:65 +#: club/models.py:86 msgid "schedules" msgstr "" -#: club/models.py:135 +#: club/models.py:174 msgid "user" msgstr "" -#: club/models.py:136 +#: club/models.py:175 msgid "created at" msgstr "" -#: club/models.py:137 club/models.py:198 +#: club/models.py:176 club/models.py:237 msgid "name" msgstr "" -#: club/models.py:138 +#: club/models.py:177 msgid "manual" msgstr "" -#: club/models.py:139 +#: club/models.py:178 msgid "notes" msgstr "" -#: club/models.py:140 +#: club/models.py:179 msgid "updated at" msgstr "" -#: club/models.py:144 +#: club/models.py:183 msgid "memberships" msgstr "" -#: club/models.py:181 +#: club/models.py:220 msgid "days before" msgstr "" -#: club/models.py:182 +#: club/models.py:221 msgid "subject" msgstr "" -#: club/models.py:183 club/payu/models.py:140 +#: club/models.py:222 club/payu/models.py:140 msgid "body" msgstr "" -#: club/models.py:186 +#: club/models.py:225 msgid "reminder email" msgstr "" -#: club/models.py:187 +#: club/models.py:226 msgid "reminder emails" msgstr "" -#: club/models.py:192 +#: club/models.py:231 #, python-format msgid "a day before expiration" msgid_plural "%d days before expiration" msgstr[0] "" msgstr[1] "" -#: club/models.py:194 +#: club/models.py:233 #, python-format msgid "a day after expiration" msgid_plural "%d days after expiration" msgstr[0] "" msgstr[1] "" -#: club/models.py:199 +#: club/models.py:238 msgid "photo" msgstr "" -#: club/models.py:200 +#: club/models.py:239 msgid "text" msgstr "" -#: club/models.py:203 +#: club/models.py:242 msgid "ambassador" msgstr "" -#: club/models.py:204 +#: club/models.py:243 msgid "ambassadors" msgstr "" -#: club/models.py:235 club/templates/club/index.html:7 +#: club/models.py:274 club/templates/club/index.html:7 #: club/templates/club/index.html:13 club/templates/club/thanks.html:6 #: club/templates/payu/rec_payment.html:5 msgid "Towarzystwo Przyjaciół Wolnych Lektur" msgstr "" +#: club/models.py:370 +msgid "first name" +msgstr "" + +#: club/models.py:371 +msgid "last name" +msgstr "" + +#: club/models.py:372 +msgid "sex" +msgstr "" + +#: club/models.py:376 +msgid "date of birth" +msgstr "" + +#: club/models.py:377 +msgid "street" +msgstr "" + +#: club/models.py:378 +msgid "building" +msgstr "" + +#: club/models.py:379 +msgid "flat" +msgstr "" + +#: club/models.py:380 +msgid "town" +msgstr "" + +#: club/models.py:381 +msgid "postal code" +msgstr "" + +#: club/models.py:382 +msgid "phone" +msgstr "" + +#: club/models.py:383 +msgid "e-mail" +msgstr "" + +#: club/models.py:384 +msgid "IBAN" +msgstr "" + +#: club/models.py:385 +msgid "payment identifier" +msgstr "" + +#: club/models.py:386 +msgid "agree newsletter" +msgstr "" + +#: club/models.py:387 +msgid "date" +msgstr "" + +#: club/models.py:391 +msgid "direct debit" +msgstr "" + +#: club/models.py:392 +msgid "direct debits" +msgstr "" + #: club/payu/models.py:17 club/payu/models.py:29 msgid "POS id" msgstr "" @@ -360,38 +432,50 @@ msgstr "" msgid "transfer" msgstr "" -#: club/templates/club/payment_form.html:15 +#: club/templates/club/payment_form.html:18 msgid "Choose your type of support" msgstr "" -#: club/templates/club/payment_form.html:20 +#: club/templates/club/payment_form.html:24 msgid "one-time" msgstr "" -#: club/templates/club/payment_form.html:24 +#: club/templates/club/payment_form.html:28 msgid "Choose the amount" msgstr "" -#: club/templates/club/payment_form.html:32 -#: club/templates/club/payment_form.html:45 +#: club/templates/club/payment_form.html:36 +#: club/templates/club/payment_form.html:49 msgid "different amount" msgstr "" -#: club/templates/club/payment_form.html:51 -msgid "Provide an e-mail address" +#: club/templates/club/payment_form.html:57 +msgid "Provide contact details" +msgstr "" + +#: club/templates/club/payment_form.html:60 +msgid "E-mail:" msgstr "" -#: club/templates/club/payment_form.html:58 +#: club/templates/club/payment_form.html:65 +msgid "Phone number:" +msgstr "" + +#: club/templates/club/payment_form.html:70 +msgid "Postal address:" +msgstr "" + +#: club/templates/club/payment_form.html:87 msgid "I'd like to receive informations about new publications." msgstr "" -#: club/templates/club/payment_form.html:62 +#: club/templates/club/payment_form.html:91 msgid "" "You can unsubscribe at any point. More in the privacy policy." msgstr "" -#: club/templates/club/payment_form.html:65 +#: club/templates/club/payment_form.html:94 msgid "Donate" msgstr "" diff --git a/src/club/locale/it/LC_MESSAGES/django.po b/src/club/locale/it/LC_MESSAGES/django.po index 5842795d9..a7200160b 100644 --- a/src/club/locale/it/LC_MESSAGES/django.po +++ b/src/club/locale/it/LC_MESSAGES/django.po @@ -29,7 +29,7 @@ msgstr "" msgid "Club" msgstr "" -#: club/forms.py:32 +#: club/forms.py:70 #, python-format msgid "Minimal amount is %(amount)d PLN." msgstr "" @@ -66,142 +66,214 @@ msgstr "" msgid "clubs" msgstr "" -#: club/models.py:48 +#: club/models.py:61 msgid "key" msgstr "" -#: club/models.py:49 +#: club/models.py:62 msgid "email" msgstr "" -#: club/models.py:50 club/models.py:143 +#: club/models.py:63 club/models.py:182 msgid "membership" msgstr "" -#: club/models.py:51 +#: club/models.py:64 club/models.py:388 msgid "amount" msgstr "" -#: club/models.py:52 club/templates/club/payment_form.html:21 +#: club/models.py:65 +msgid "method" +msgstr "" + +#: club/models.py:68 club/templates/club/payment_form.html:25 msgid "monthly" msgstr "" -#: club/models.py:53 +#: club/models.py:69 msgid "yearly" msgstr "" -#: club/models.py:55 +#: club/models.py:71 msgid "source" msgstr "" -#: club/models.py:57 +#: club/models.py:73 msgid "cancelled" msgstr "" -#: club/models.py:58 +#: club/models.py:74 msgid "payed at" msgstr "" -#: club/models.py:59 +#: club/models.py:75 msgid "started at" msgstr "" -#: club/models.py:60 +#: club/models.py:76 msgid "expires_at" msgstr "" -#: club/models.py:64 +#: club/models.py:85 msgid "schedule" msgstr "" -#: club/models.py:65 +#: club/models.py:86 msgid "schedules" msgstr "" -#: club/models.py:135 +#: club/models.py:174 msgid "user" msgstr "" -#: club/models.py:136 +#: club/models.py:175 msgid "created at" msgstr "" -#: club/models.py:137 club/models.py:198 +#: club/models.py:176 club/models.py:237 msgid "name" msgstr "" -#: club/models.py:138 +#: club/models.py:177 msgid "manual" msgstr "" -#: club/models.py:139 +#: club/models.py:178 msgid "notes" msgstr "" -#: club/models.py:140 +#: club/models.py:179 msgid "updated at" msgstr "" -#: club/models.py:144 +#: club/models.py:183 msgid "memberships" msgstr "" -#: club/models.py:181 +#: club/models.py:220 msgid "days before" msgstr "" -#: club/models.py:182 +#: club/models.py:221 msgid "subject" msgstr "" -#: club/models.py:183 club/payu/models.py:140 +#: club/models.py:222 club/payu/models.py:140 msgid "body" msgstr "" -#: club/models.py:186 +#: club/models.py:225 msgid "reminder email" msgstr "" -#: club/models.py:187 +#: club/models.py:226 msgid "reminder emails" msgstr "" -#: club/models.py:192 +#: club/models.py:231 #, python-format msgid "a day before expiration" msgid_plural "%d days before expiration" msgstr[0] "" msgstr[1] "" -#: club/models.py:194 +#: club/models.py:233 #, python-format msgid "a day after expiration" msgid_plural "%d days after expiration" msgstr[0] "" msgstr[1] "" -#: club/models.py:199 +#: club/models.py:238 msgid "photo" msgstr "" -#: club/models.py:200 +#: club/models.py:239 msgid "text" msgstr "" -#: club/models.py:203 +#: club/models.py:242 msgid "ambassador" msgstr "" -#: club/models.py:204 +#: club/models.py:243 msgid "ambassadors" msgstr "" -#: club/models.py:235 club/templates/club/index.html:7 +#: club/models.py:274 club/templates/club/index.html:7 #: club/templates/club/index.html:13 club/templates/club/thanks.html:6 #: club/templates/payu/rec_payment.html:5 msgid "Towarzystwo Przyjaciół Wolnych Lektur" msgstr "" +#: club/models.py:370 +msgid "first name" +msgstr "" + +#: club/models.py:371 +msgid "last name" +msgstr "" + +#: club/models.py:372 +msgid "sex" +msgstr "" + +#: club/models.py:376 +msgid "date of birth" +msgstr "" + +#: club/models.py:377 +msgid "street" +msgstr "" + +#: club/models.py:378 +msgid "building" +msgstr "" + +#: club/models.py:379 +msgid "flat" +msgstr "" + +#: club/models.py:380 +msgid "town" +msgstr "" + +#: club/models.py:381 +msgid "postal code" +msgstr "" + +#: club/models.py:382 +msgid "phone" +msgstr "" + +#: club/models.py:383 +msgid "e-mail" +msgstr "" + +#: club/models.py:384 +msgid "IBAN" +msgstr "" + +#: club/models.py:385 +msgid "payment identifier" +msgstr "" + +#: club/models.py:386 +msgid "agree newsletter" +msgstr "" + +#: club/models.py:387 +msgid "date" +msgstr "" + +#: club/models.py:391 +msgid "direct debit" +msgstr "" + +#: club/models.py:392 +msgid "direct debits" +msgstr "" + #: club/payu/models.py:17 club/payu/models.py:29 msgid "POS id" msgstr "" @@ -360,38 +432,50 @@ msgstr "" msgid "transfer" msgstr "" -#: club/templates/club/payment_form.html:15 +#: club/templates/club/payment_form.html:18 msgid "Choose your type of support" msgstr "" -#: club/templates/club/payment_form.html:20 +#: club/templates/club/payment_form.html:24 msgid "one-time" msgstr "" -#: club/templates/club/payment_form.html:24 +#: club/templates/club/payment_form.html:28 msgid "Choose the amount" msgstr "" -#: club/templates/club/payment_form.html:32 -#: club/templates/club/payment_form.html:45 +#: club/templates/club/payment_form.html:36 +#: club/templates/club/payment_form.html:49 msgid "different amount" msgstr "" -#: club/templates/club/payment_form.html:51 -msgid "Provide an e-mail address" +#: club/templates/club/payment_form.html:57 +msgid "Provide contact details" +msgstr "" + +#: club/templates/club/payment_form.html:60 +msgid "E-mail:" msgstr "" -#: club/templates/club/payment_form.html:58 +#: club/templates/club/payment_form.html:65 +msgid "Phone number:" +msgstr "" + +#: club/templates/club/payment_form.html:70 +msgid "Postal address:" +msgstr "" + +#: club/templates/club/payment_form.html:87 msgid "I'd like to receive informations about new publications." msgstr "" -#: club/templates/club/payment_form.html:62 +#: club/templates/club/payment_form.html:91 msgid "" "You can unsubscribe at any point. More in the privacy policy." msgstr "" -#: club/templates/club/payment_form.html:65 +#: club/templates/club/payment_form.html:94 msgid "Donate" msgstr "" diff --git a/src/club/locale/lt/LC_MESSAGES/django.po b/src/club/locale/lt/LC_MESSAGES/django.po index b9cf4362c..dc83c19c6 100644 --- a/src/club/locale/lt/LC_MESSAGES/django.po +++ b/src/club/locale/lt/LC_MESSAGES/django.po @@ -31,7 +31,7 @@ msgstr "" msgid "Club" msgstr "" -#: club/forms.py:32 +#: club/forms.py:70 #, python-format msgid "Minimal amount is %(amount)d PLN." msgstr "" @@ -68,142 +68,214 @@ msgstr "" msgid "clubs" msgstr "" -#: club/models.py:48 +#: club/models.py:61 msgid "key" msgstr "" -#: club/models.py:49 +#: club/models.py:62 msgid "email" msgstr "" -#: club/models.py:50 club/models.py:143 +#: club/models.py:63 club/models.py:182 msgid "membership" msgstr "" -#: club/models.py:51 +#: club/models.py:64 club/models.py:388 msgid "amount" msgstr "" -#: club/models.py:52 club/templates/club/payment_form.html:21 +#: club/models.py:65 +msgid "method" +msgstr "" + +#: club/models.py:68 club/templates/club/payment_form.html:25 msgid "monthly" msgstr "" -#: club/models.py:53 +#: club/models.py:69 msgid "yearly" msgstr "" -#: club/models.py:55 +#: club/models.py:71 msgid "source" msgstr "" -#: club/models.py:57 +#: club/models.py:73 msgid "cancelled" msgstr "" -#: club/models.py:58 +#: club/models.py:74 msgid "payed at" msgstr "" -#: club/models.py:59 +#: club/models.py:75 msgid "started at" msgstr "" -#: club/models.py:60 +#: club/models.py:76 msgid "expires_at" msgstr "" -#: club/models.py:64 +#: club/models.py:85 msgid "schedule" msgstr "" -#: club/models.py:65 +#: club/models.py:86 msgid "schedules" msgstr "" -#: club/models.py:135 +#: club/models.py:174 msgid "user" msgstr "" -#: club/models.py:136 +#: club/models.py:175 msgid "created at" msgstr "" -#: club/models.py:137 club/models.py:198 +#: club/models.py:176 club/models.py:237 msgid "name" msgstr "" -#: club/models.py:138 +#: club/models.py:177 msgid "manual" msgstr "" -#: club/models.py:139 +#: club/models.py:178 msgid "notes" msgstr "" -#: club/models.py:140 +#: club/models.py:179 msgid "updated at" msgstr "" -#: club/models.py:144 +#: club/models.py:183 msgid "memberships" msgstr "" -#: club/models.py:181 +#: club/models.py:220 msgid "days before" msgstr "" -#: club/models.py:182 +#: club/models.py:221 msgid "subject" msgstr "" -#: club/models.py:183 club/payu/models.py:140 +#: club/models.py:222 club/payu/models.py:140 msgid "body" msgstr "" -#: club/models.py:186 +#: club/models.py:225 msgid "reminder email" msgstr "" -#: club/models.py:187 +#: club/models.py:226 msgid "reminder emails" msgstr "" -#: club/models.py:192 +#: club/models.py:231 #, python-format msgid "a day before expiration" msgid_plural "%d days before expiration" msgstr[0] "" msgstr[1] "" -#: club/models.py:194 +#: club/models.py:233 #, python-format msgid "a day after expiration" msgid_plural "%d days after expiration" msgstr[0] "" msgstr[1] "" -#: club/models.py:199 +#: club/models.py:238 msgid "photo" msgstr "" -#: club/models.py:200 +#: club/models.py:239 msgid "text" msgstr "" -#: club/models.py:203 +#: club/models.py:242 msgid "ambassador" msgstr "" -#: club/models.py:204 +#: club/models.py:243 msgid "ambassadors" msgstr "" -#: club/models.py:235 club/templates/club/index.html:7 +#: club/models.py:274 club/templates/club/index.html:7 #: club/templates/club/index.html:13 club/templates/club/thanks.html:6 #: club/templates/payu/rec_payment.html:5 msgid "Towarzystwo Przyjaciół Wolnych Lektur" msgstr "" +#: club/models.py:370 +msgid "first name" +msgstr "" + +#: club/models.py:371 +msgid "last name" +msgstr "" + +#: club/models.py:372 +msgid "sex" +msgstr "" + +#: club/models.py:376 +msgid "date of birth" +msgstr "" + +#: club/models.py:377 +msgid "street" +msgstr "" + +#: club/models.py:378 +msgid "building" +msgstr "" + +#: club/models.py:379 +msgid "flat" +msgstr "" + +#: club/models.py:380 +msgid "town" +msgstr "" + +#: club/models.py:381 +msgid "postal code" +msgstr "" + +#: club/models.py:382 +msgid "phone" +msgstr "" + +#: club/models.py:383 +msgid "e-mail" +msgstr "" + +#: club/models.py:384 +msgid "IBAN" +msgstr "" + +#: club/models.py:385 +msgid "payment identifier" +msgstr "" + +#: club/models.py:386 +msgid "agree newsletter" +msgstr "" + +#: club/models.py:387 +msgid "date" +msgstr "" + +#: club/models.py:391 +msgid "direct debit" +msgstr "" + +#: club/models.py:392 +msgid "direct debits" +msgstr "" + #: club/payu/models.py:17 club/payu/models.py:29 msgid "POS id" msgstr "" @@ -366,38 +438,50 @@ msgstr "" msgid "transfer" msgstr "" -#: club/templates/club/payment_form.html:15 +#: club/templates/club/payment_form.html:18 msgid "Choose your type of support" msgstr "" -#: club/templates/club/payment_form.html:20 +#: club/templates/club/payment_form.html:24 msgid "one-time" msgstr "" -#: club/templates/club/payment_form.html:24 +#: club/templates/club/payment_form.html:28 msgid "Choose the amount" msgstr "" -#: club/templates/club/payment_form.html:32 -#: club/templates/club/payment_form.html:45 +#: club/templates/club/payment_form.html:36 +#: club/templates/club/payment_form.html:49 msgid "different amount" msgstr "" -#: club/templates/club/payment_form.html:51 -msgid "Provide an e-mail address" +#: club/templates/club/payment_form.html:57 +msgid "Provide contact details" +msgstr "" + +#: club/templates/club/payment_form.html:60 +msgid "E-mail:" msgstr "" -#: club/templates/club/payment_form.html:58 +#: club/templates/club/payment_form.html:65 +msgid "Phone number:" +msgstr "" + +#: club/templates/club/payment_form.html:70 +msgid "Postal address:" +msgstr "" + +#: club/templates/club/payment_form.html:87 msgid "I'd like to receive informations about new publications." msgstr "" -#: club/templates/club/payment_form.html:62 +#: club/templates/club/payment_form.html:91 msgid "" "You can unsubscribe at any point. More in the privacy policy." msgstr "" -#: club/templates/club/payment_form.html:65 +#: club/templates/club/payment_form.html:94 msgid "Donate" msgstr "" diff --git a/src/club/locale/pl/LC_MESSAGES/django.mo b/src/club/locale/pl/LC_MESSAGES/django.mo index c3026be64cce48b9a82262e2348510ad5273fff6..b6bd8a38d037c5ab108ff5207df76d66dafb1898 100644 GIT binary patch delta 3078 zcmY+_eQXp(7{~D`FG6`!D$1*Mcom^7F9lytDHKp>#acm8iwb*p+upU;+j_g_r8VY^ zh7e!=F^$HT5TgbPRLAdQ6MlsYan9sQ zhwE`G?M-+QK82dtVbnxV;<ixg5s7f^(q>iScIV>?!e;=x&-FT?Vm`Ct0+Uwbu*`vsqeY&1@2M0+Bynq%zLM8Y!YUO@IO|Uq5 zW+kKPs0WKsE6{`*xD{LQX4C|qK}~ocY9cQoyJAYnT+A@)_g|ns!}+r+{WoJsyB#eK zA)jT@oTgIGjq&_-&>x`7P%mynE#+O#`<;W%eW;8Mp|;|P^8?f&J%!5f46;k+FI<3A z7$k;`c%i=kEEQ$G8T>7Uo#s|MK`9P+83Y(obB3msKdAt)!|jB@4n5s19d-z+KPKnEA=qy zch8~TKZsg^!>E-$YFU3}a)KMm_!Md@P9x{XoJBpKKDW}rB2}+tZa>h`5x(<~|8>*x2r~wl0 zet=c9b>eR!l7tRrmQcBxxJebpFYncjs6%84744IXveZ^ACzPr7*CSRFDlJ4%u2n8| zz}V$4Xg%Ia=ns&RW82H6iK|vgpKFnoFkM75!9g#V6xSYNYo%Gfj`~l%!`1cQ@<_RA zq=NOtBBGt>CPvB?BNgXm%D;ieCSsYpc{^@)^}C#x<1FHOLSMjILS+{*pGXrb3y5op zR$?8IA$&qxqyxH=*hr`>EnivxUMf2MDjNu$;5CHy`8Fa(Y$sH7Hgup?5pkl8P`QrS zMl2>8i50{RgwDhk;=e@)x|7gByhcl;qR*p`NDw-?3km){m^%o42`V=ecM?0)py&YZ zEY~WRD@AEd^)I95TvOlcr86;eZ8{f5*2^Ys#-oz;di~g7-K3qxFdq*SxpdsOQOdVj zzYu2pDDra+re%F|n`!B^{XyPleD7{wwVd^m$($dCb++JNlF3+J^x_%b4s7Vty?*W4 zz95VeUM^W4F`(z1?edaceiSyC)*zj=`OtFh%niOj>5axzkY(t6Z`{wtOgpc7nUP^= z=YqS_N#7=dY~&>(oAe_xD(#(|8a>vJQbDpbdg_N&6E3fBTy9saimhHzI$86{*cp|? zO-pZj=t-L<;ekRr>1VZNIup&n6pN#6WbcROl(s zB%RI9^=&d2#7UY(8Ggf$`t2=2CflD#*)4ugl+QH`HqZQHbz6BJk)QE9gKR!#nl)Ob zx1i9kl}dWuHtEq%j~1sV3JQMdx>@~Wruq@jY#&pIvcd4viS*z*wTG+!eYZ4l@wlpq Res`D%3OpX#Gq~F>`3DD1llTAt delta 2607 zcmYk-YiyHM9LMp)=mf^av7vLI@N5h=E`wbJ#s+g87d(FBqTniz};kO0ODk{AV}#20G3gz>^aFh;+>_AJ@S{{5Wu^m)$t zpUczTuRH6G{g~xCW+*}8N#f90V|3xqNBE%BOfcpYy73L%{ zqZ0ZTA4O-fF_~C`O2CckZwr#UX~l_*Z(gD@jtd7c7yD6}4{v+G4987JcGLL91h?$T#TE^vXt@7D^!$e0+rciWHHQFs3pCPn(@!5 z#C}B$IBc&!L=E&G>iKj!lbNV~W}u!gL~=I^?e$8GX=ZDvXhyq`Khwnrt7s0P9(c=M zA3`N`4mIFMsDUn8uc8LJi5w&I9V*cuP|y8>y8ka!Vh=J|e^$e|*q|KDMs39cR7d5g zfhtfluePqWHX?nQ9jLwSK;3`9`YLLm*KrOW!`b+Wz5dfw)?W$y!39>&JVdoK=uHFW zq6WxE&7>SPvz4eBxluD(XWLs)6KFzBpvBsT>aP=Zf7D(-7^9+&`tkf2W8T1jXxC0- z-_n>d`?8UC6U(C+oJI$~M9uUr@@M|$LkUjiq-g>kh#Yc6fAv}q#SVxu-d>=K@ znPfXb?|&H;o$?i^%os7 zD|8d}YifR{q6hDzW^QJsW;z}i!sNB8O4^97S#2 z3Dos>k(Z4U;~xU7CRPw`LT5oq)e`|?5iz=~q_LIIQobqLM$cb5h|RUBzUJB_3UhXgovce}tBCq%5-)9afzaj*oes&=zbaMvAsT z=Ru{G(B7-;NUlGX5`rH*vyez5RDvmtA9oUZXV((X5rxDCVh-^%p|^magJh}XQ)fkG z8?ljCM{Fll@`(IoO&`yuY6YN^*`8{exwy;LbzoE)37zg%!aio2sO!KkCMt+kiHj44 z)8f}BHJ3*GUVos+?*u}v;YiTa9SDcI98XI)+UW@CH2Ib`y#Q{ShZZH5%F*jbEDnAgeL# i^K>u_qu4PM!!!C^@%_$)L{;9nF)mM6cR0Q=fByf0`v+P8 diff --git a/src/club/locale/pl/LC_MESSAGES/django.po b/src/club/locale/pl/LC_MESSAGES/django.po index 11f9830eb..78d5245a2 100644 --- a/src/club/locale/pl/LC_MESSAGES/django.po +++ b/src/club/locale/pl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2021-06-15 15:28+0200\n" +"PO-Revision-Date: 2021-07-30 14:51+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: pl\n" @@ -31,144 +31,172 @@ msgstr "harmonogram przedawniony" msgid "Club" msgstr "Towarzystwo" -#: club/forms.py:32 +#: club/forms.py:52 club/models.py:376 +msgid "first name" +msgstr "imię" + +#: club/forms.py:53 club/models.py:377 +msgid "last name" +msgstr "nazwisko" + +#: club/forms.py:55 +msgid "" +"If you leave your address, we'll be able to send you a postcard and other " +"gadgets." +msgstr "" +"Jeśli zostawisz nam swój adres, to będziemy mogli wysłać Ci pocztówkę i inne " +"drobne gadżety Wolnych Lektur." + +#: club/forms.py:56 club/models.py:387 +msgid "postal code" +msgstr "kod pocztowy" + +#: club/forms.py:57 club/models.py:386 +msgid "town" +msgstr "miejscowość" + +#: club/forms.py:84 #, python-format msgid "Minimal amount is %(amount)d PLN." msgstr "Minimalna kwota to %(amount)d zł." -#: club/models.py:25 +#: club/models.py:26 msgid "minimum amount" msgstr "minimalna kwota" -#: club/models.py:26 +#: club/models.py:27 msgid "minimum amount for year" msgstr "minimalna kwota na rok" -#: club/models.py:27 +#: club/models.py:28 msgid "proposed amounts for single payment" msgstr "proponowane kwoty dla pojedynczej wpłaty" -#: club/models.py:28 +#: club/models.py:29 msgid "default single amount" msgstr "domyślna kwota dla pojedynczej wpłaty" -#: club/models.py:29 +#: club/models.py:30 msgid "proposed amounts for monthly payments" msgstr "proponowane kwoty dla miesięcznych wpłat" -#: club/models.py:30 +#: club/models.py:31 msgid "default monthly amount" msgstr "domyślna kwota dla miesięcznych wpłat" -#: club/models.py:33 +#: club/models.py:34 msgid "club" msgstr "towarzystwo" -#: club/models.py:34 +#: club/models.py:35 msgid "clubs" msgstr "towarzystwa" -#: club/models.py:48 +#: club/models.py:62 msgid "key" msgstr "klucz" -#: club/models.py:49 +#: club/models.py:63 msgid "email" msgstr "email" -#: club/models.py:50 club/models.py:143 +#: club/models.py:64 club/models.py:188 msgid "membership" msgstr "członkostwo" -#: club/models.py:51 club/models.py:360 +#: club/models.py:65 club/models.py:394 msgid "amount" msgstr "kwota" -#: club/models.py:52 club/templates/club/payment_form.html:21 +#: club/models.py:66 +msgid "method" +msgstr "metoda płatności" + +#: club/models.py:69 club/templates/club/payment_form.html:25 msgid "monthly" msgstr "miesięcznie" -#: club/models.py:53 +#: club/models.py:70 msgid "yearly" msgstr "rocznie" -#: club/models.py:55 +#: club/models.py:72 msgid "source" msgstr "źródło" -#: club/models.py:57 +#: club/models.py:74 msgid "cancelled" msgstr "anulowany" -#: club/models.py:58 +#: club/models.py:75 msgid "payed at" msgstr "opłacona" -#: club/models.py:59 +#: club/models.py:76 msgid "started at" msgstr "start" -#: club/models.py:60 +#: club/models.py:77 msgid "expires_at" msgstr "wygasa" -#: club/models.py:64 +#: club/models.py:91 msgid "schedule" msgstr "harmonogram" -#: club/models.py:65 +#: club/models.py:92 msgid "schedules" msgstr "harmonogramy" -#: club/models.py:135 +#: club/models.py:180 msgid "user" msgstr "użytkownik" -#: club/models.py:136 +#: club/models.py:181 msgid "created at" msgstr "utworzone" -#: club/models.py:137 club/models.py:198 +#: club/models.py:182 club/models.py:243 msgid "name" msgstr "nazwisko" -#: club/models.py:138 +#: club/models.py:183 msgid "manual" msgstr "ustawiony ręcznie" -#: club/models.py:139 +#: club/models.py:184 msgid "notes" msgstr "notatki" -#: club/models.py:140 +#: club/models.py:185 msgid "updated at" msgstr "aktualizacja" -#: club/models.py:144 +#: club/models.py:189 msgid "memberships" msgstr "członkostwa" -#: club/models.py:181 +#: club/models.py:226 msgid "days before" msgstr "dni przed" -#: club/models.py:182 +#: club/models.py:227 msgid "subject" msgstr "temat" -#: club/models.py:183 club/payu/models.py:140 +#: club/models.py:228 club/payu/models.py:140 msgid "body" msgstr "treść" -#: club/models.py:186 +#: club/models.py:231 msgid "reminder email" msgstr "email z przypomnieniem" -#: club/models.py:187 +#: club/models.py:232 msgid "reminder emails" msgstr "emaile z przypomnieniem" -#: club/models.py:192 +#: club/models.py:237 #, python-format msgid "a day before expiration" msgid_plural "%d days before expiration" @@ -177,7 +205,7 @@ msgstr[1] "%d dni przed wygaśnięciem" msgstr[2] "%d dni przed wygaśnięciem" msgstr[3] "%d dni przed wygaśnięciem" -#: club/models.py:194 +#: club/models.py:239 #, python-format msgid "a day after expiration" msgid_plural "%d days after expiration" @@ -186,93 +214,77 @@ msgstr[1] "%d dni po wygaśnięciu" msgstr[2] "%d dni po wygaśnięciu" msgstr[3] "%d dni przed wygaśnięciem" -#: club/models.py:199 +#: club/models.py:244 msgid "photo" msgstr "zdjęcie" -#: club/models.py:200 +#: club/models.py:245 msgid "text" msgstr "tekst" -#: club/models.py:203 +#: club/models.py:248 msgid "ambassador" msgstr "ambasador" -#: club/models.py:204 +#: club/models.py:249 msgid "ambassadors" msgstr "ambasadorowie" -#: club/models.py:235 club/templates/club/index.html:7 +#: club/models.py:280 club/templates/club/index.html:7 #: club/templates/club/index.html:13 club/templates/club/thanks.html:6 #: club/templates/payu/rec_payment.html:5 msgid "Towarzystwo Przyjaciół Wolnych Lektur" msgstr "" -#: club/models.py:342 -msgid "first name" -msgstr "imię" - -#: club/models.py:343 -msgid "last name" -msgstr "nazwisko" - -#: club/models.py:344 +#: club/models.py:378 msgid "sex" msgstr "płeć" -#: club/models.py:348 +#: club/models.py:382 msgid "date of birth" msgstr "data urodzenia" -#: club/models.py:349 +#: club/models.py:383 msgid "street" msgstr "ulica" -#: club/models.py:350 +#: club/models.py:384 msgid "building" msgstr "numer domu" -#: club/models.py:351 +#: club/models.py:385 msgid "flat" msgstr "numer mieszkania" -#: club/models.py:352 -msgid "town" -msgstr "miasto" - -#: club/models.py:353 -msgid "postal code" -msgstr "kod" - -#: club/models.py:354 +#: club/models.py:388 msgid "phone" msgstr "numer telefonu" -#: club/models.py:355 +#: club/models.py:389 msgid "e-mail" msgstr "e-mail" -#: club/models.py:356 +#: club/models.py:390 msgid "IBAN" msgstr "numer rachunku" -#: club/models.py:357 +#: club/models.py:391 msgid "payment identifier" msgstr "identyfikator płatności" -#: club/models.py:358 +#: club/models.py:392 msgid "agree newsletter" msgstr "zgoda na newsletter" -#: club/models.py:359 +#: club/models.py:393 msgid "date" msgstr "data" -#: club/models.py:363 +#: club/models.py:397 msgid "direct debit" msgstr "polecenie zapłaty" -#: club/models.py:364 +#: club/models.py:398 msgid "direct debits" msgstr "polecenia zapłaty" @@ -459,32 +471,48 @@ msgstr "Bezpieczne wpłaty" msgid "transfer" msgstr "przelew" -#: club/templates/club/payment_form.html:15 +#: club/templates/club/payment_form.html:18 msgid "Choose your type of support" msgstr "Wybierz rodzaj wsparcia" -#: club/templates/club/payment_form.html:20 +#: club/templates/club/payment_form.html:24 msgid "one-time" msgstr "jednorazowo" -#: club/templates/club/payment_form.html:24 +#: club/templates/club/payment_form.html:28 msgid "Choose the amount" msgstr "Wybierz kwotę" -#: club/templates/club/payment_form.html:32 -#: club/templates/club/payment_form.html:45 +#: club/templates/club/payment_form.html:36 +#: club/templates/club/payment_form.html:49 msgid "different amount" msgstr "inna kwota" -#: club/templates/club/payment_form.html:51 -msgid "Provide an e-mail address" -msgstr "Podaj adres e-mail" +#: club/templates/club/payment_form.html:57 +msgid "Provide contact details" +msgstr "Podaj dane kontaktowe" + +#: club/templates/club/payment_form.html:60 +msgid "First and last name:" +msgstr "Imię i nazwisko:" -#: club/templates/club/payment_form.html:58 -msgid "I'd like to receive informations about new publications." -msgstr "Chcę dostawać informacje o nowościach" +#: club/templates/club/payment_form.html:67 +msgid "E-mail:" +msgstr "E-mail" -#: club/templates/club/payment_form.html:62 +#: club/templates/club/payment_form.html:72 +msgid "Phone number:" +msgstr "Numer telefonu:" + +#: club/templates/club/payment_form.html:77 +msgid "Postal address:" +msgstr "Adres pocztowy:" + +#: club/templates/club/payment_form.html:96 +msgid "I'd like to subscribe the newsletter." +msgstr "Zapisuję się na newsletter." + +#: club/templates/club/payment_form.html:100 msgid "" "You can unsubscribe at any point. More in the privacy policy." @@ -493,7 +521,7 @@ msgstr "" "\" href=\"https://nowoczesnapolska.org.pl/prywatnosc/\">polityce " "prywatności." -#: club/templates/club/payment_form.html:65 +#: club/templates/club/payment_form.html:104 msgid "Donate" msgstr "Wpłać" @@ -537,6 +565,9 @@ msgstr "" "\n" "Zlecasz comiesięczną płatność w wysokości %(amount)s zł. Dziękujemy!" +#~ msgid "I'd like to receive informations about new publications." +#~ msgstr "Chcę dostawać informacje o nowościach" + #~ msgid "in perpetuity" #~ msgstr "jednorazowo" @@ -554,6 +585,3 @@ msgstr "" #~ msgid "plans" #~ msgstr "plany" - -#~ msgid "method" -#~ msgstr "metoda płatności" diff --git a/src/club/locale/ru/LC_MESSAGES/django.po b/src/club/locale/ru/LC_MESSAGES/django.po index 36979b99b..d7f36997f 100644 --- a/src/club/locale/ru/LC_MESSAGES/django.po +++ b/src/club/locale/ru/LC_MESSAGES/django.po @@ -31,7 +31,7 @@ msgstr "" msgid "Club" msgstr "" -#: club/forms.py:32 +#: club/forms.py:70 #, python-format msgid "Minimal amount is %(amount)d PLN." msgstr "" @@ -68,142 +68,214 @@ msgstr "" msgid "clubs" msgstr "" -#: club/models.py:48 +#: club/models.py:61 msgid "key" msgstr "" -#: club/models.py:49 +#: club/models.py:62 msgid "email" msgstr "" -#: club/models.py:50 club/models.py:143 +#: club/models.py:63 club/models.py:182 msgid "membership" msgstr "" -#: club/models.py:51 +#: club/models.py:64 club/models.py:388 msgid "amount" msgstr "" -#: club/models.py:52 club/templates/club/payment_form.html:21 +#: club/models.py:65 +msgid "method" +msgstr "" + +#: club/models.py:68 club/templates/club/payment_form.html:25 msgid "monthly" msgstr "" -#: club/models.py:53 +#: club/models.py:69 msgid "yearly" msgstr "" -#: club/models.py:55 +#: club/models.py:71 msgid "source" msgstr "" -#: club/models.py:57 +#: club/models.py:73 msgid "cancelled" msgstr "" -#: club/models.py:58 +#: club/models.py:74 msgid "payed at" msgstr "" -#: club/models.py:59 +#: club/models.py:75 msgid "started at" msgstr "" -#: club/models.py:60 +#: club/models.py:76 msgid "expires_at" msgstr "" -#: club/models.py:64 +#: club/models.py:85 msgid "schedule" msgstr "" -#: club/models.py:65 +#: club/models.py:86 msgid "schedules" msgstr "" -#: club/models.py:135 +#: club/models.py:174 msgid "user" msgstr "" -#: club/models.py:136 +#: club/models.py:175 msgid "created at" msgstr "" -#: club/models.py:137 club/models.py:198 +#: club/models.py:176 club/models.py:237 msgid "name" msgstr "" -#: club/models.py:138 +#: club/models.py:177 msgid "manual" msgstr "" -#: club/models.py:139 +#: club/models.py:178 msgid "notes" msgstr "" -#: club/models.py:140 +#: club/models.py:179 msgid "updated at" msgstr "" -#: club/models.py:144 +#: club/models.py:183 msgid "memberships" msgstr "" -#: club/models.py:181 +#: club/models.py:220 msgid "days before" msgstr "" -#: club/models.py:182 +#: club/models.py:221 msgid "subject" msgstr "" -#: club/models.py:183 club/payu/models.py:140 +#: club/models.py:222 club/payu/models.py:140 msgid "body" msgstr "" -#: club/models.py:186 +#: club/models.py:225 msgid "reminder email" msgstr "" -#: club/models.py:187 +#: club/models.py:226 msgid "reminder emails" msgstr "" -#: club/models.py:192 +#: club/models.py:231 #, python-format msgid "a day before expiration" msgid_plural "%d days before expiration" msgstr[0] "" msgstr[1] "" -#: club/models.py:194 +#: club/models.py:233 #, python-format msgid "a day after expiration" msgid_plural "%d days after expiration" msgstr[0] "" msgstr[1] "" -#: club/models.py:199 +#: club/models.py:238 msgid "photo" msgstr "" -#: club/models.py:200 +#: club/models.py:239 msgid "text" msgstr "" -#: club/models.py:203 +#: club/models.py:242 msgid "ambassador" msgstr "" -#: club/models.py:204 +#: club/models.py:243 msgid "ambassadors" msgstr "" -#: club/models.py:235 club/templates/club/index.html:7 +#: club/models.py:274 club/templates/club/index.html:7 #: club/templates/club/index.html:13 club/templates/club/thanks.html:6 #: club/templates/payu/rec_payment.html:5 msgid "Towarzystwo Przyjaciół Wolnych Lektur" msgstr "" +#: club/models.py:370 +msgid "first name" +msgstr "" + +#: club/models.py:371 +msgid "last name" +msgstr "" + +#: club/models.py:372 +msgid "sex" +msgstr "" + +#: club/models.py:376 +msgid "date of birth" +msgstr "" + +#: club/models.py:377 +msgid "street" +msgstr "" + +#: club/models.py:378 +msgid "building" +msgstr "" + +#: club/models.py:379 +msgid "flat" +msgstr "" + +#: club/models.py:380 +msgid "town" +msgstr "" + +#: club/models.py:381 +msgid "postal code" +msgstr "" + +#: club/models.py:382 +msgid "phone" +msgstr "" + +#: club/models.py:383 +msgid "e-mail" +msgstr "" + +#: club/models.py:384 +msgid "IBAN" +msgstr "" + +#: club/models.py:385 +msgid "payment identifier" +msgstr "" + +#: club/models.py:386 +msgid "agree newsletter" +msgstr "" + +#: club/models.py:387 +msgid "date" +msgstr "" + +#: club/models.py:391 +msgid "direct debit" +msgstr "" + +#: club/models.py:392 +msgid "direct debits" +msgstr "" + #: club/payu/models.py:17 club/payu/models.py:29 msgid "POS id" msgstr "" @@ -366,38 +438,50 @@ msgstr "" msgid "transfer" msgstr "" -#: club/templates/club/payment_form.html:15 +#: club/templates/club/payment_form.html:18 msgid "Choose your type of support" msgstr "" -#: club/templates/club/payment_form.html:20 +#: club/templates/club/payment_form.html:24 msgid "one-time" msgstr "" -#: club/templates/club/payment_form.html:24 +#: club/templates/club/payment_form.html:28 msgid "Choose the amount" msgstr "" -#: club/templates/club/payment_form.html:32 -#: club/templates/club/payment_form.html:45 +#: club/templates/club/payment_form.html:36 +#: club/templates/club/payment_form.html:49 msgid "different amount" msgstr "" -#: club/templates/club/payment_form.html:51 -msgid "Provide an e-mail address" +#: club/templates/club/payment_form.html:57 +msgid "Provide contact details" +msgstr "" + +#: club/templates/club/payment_form.html:60 +msgid "E-mail:" msgstr "" -#: club/templates/club/payment_form.html:58 +#: club/templates/club/payment_form.html:65 +msgid "Phone number:" +msgstr "" + +#: club/templates/club/payment_form.html:70 +msgid "Postal address:" +msgstr "" + +#: club/templates/club/payment_form.html:87 msgid "I'd like to receive informations about new publications." msgstr "" -#: club/templates/club/payment_form.html:62 +#: club/templates/club/payment_form.html:91 msgid "" "You can unsubscribe at any point. More in the privacy policy." msgstr "" -#: club/templates/club/payment_form.html:65 +#: club/templates/club/payment_form.html:94 msgid "Donate" msgstr "" diff --git a/src/club/locale/uk/LC_MESSAGES/django.po b/src/club/locale/uk/LC_MESSAGES/django.po index 37d635fc6..655a66ddf 100644 --- a/src/club/locale/uk/LC_MESSAGES/django.po +++ b/src/club/locale/uk/LC_MESSAGES/django.po @@ -32,7 +32,7 @@ msgstr "" msgid "Club" msgstr "" -#: club/forms.py:32 +#: club/forms.py:70 #, python-format msgid "Minimal amount is %(amount)d PLN." msgstr "" @@ -69,142 +69,214 @@ msgstr "" msgid "clubs" msgstr "" -#: club/models.py:48 +#: club/models.py:61 msgid "key" msgstr "" -#: club/models.py:49 +#: club/models.py:62 msgid "email" msgstr "" -#: club/models.py:50 club/models.py:143 +#: club/models.py:63 club/models.py:182 msgid "membership" msgstr "" -#: club/models.py:51 +#: club/models.py:64 club/models.py:388 msgid "amount" msgstr "" -#: club/models.py:52 club/templates/club/payment_form.html:21 +#: club/models.py:65 +msgid "method" +msgstr "" + +#: club/models.py:68 club/templates/club/payment_form.html:25 msgid "monthly" msgstr "" -#: club/models.py:53 +#: club/models.py:69 msgid "yearly" msgstr "" -#: club/models.py:55 +#: club/models.py:71 msgid "source" msgstr "" -#: club/models.py:57 +#: club/models.py:73 msgid "cancelled" msgstr "" -#: club/models.py:58 +#: club/models.py:74 msgid "payed at" msgstr "" -#: club/models.py:59 +#: club/models.py:75 msgid "started at" msgstr "" -#: club/models.py:60 +#: club/models.py:76 msgid "expires_at" msgstr "" -#: club/models.py:64 +#: club/models.py:85 msgid "schedule" msgstr "" -#: club/models.py:65 +#: club/models.py:86 msgid "schedules" msgstr "" -#: club/models.py:135 +#: club/models.py:174 msgid "user" msgstr "" -#: club/models.py:136 +#: club/models.py:175 msgid "created at" msgstr "" -#: club/models.py:137 club/models.py:198 +#: club/models.py:176 club/models.py:237 msgid "name" msgstr "" -#: club/models.py:138 +#: club/models.py:177 msgid "manual" msgstr "" -#: club/models.py:139 +#: club/models.py:178 msgid "notes" msgstr "" -#: club/models.py:140 +#: club/models.py:179 msgid "updated at" msgstr "" -#: club/models.py:144 +#: club/models.py:183 msgid "memberships" msgstr "" -#: club/models.py:181 +#: club/models.py:220 msgid "days before" msgstr "" -#: club/models.py:182 +#: club/models.py:221 msgid "subject" msgstr "" -#: club/models.py:183 club/payu/models.py:140 +#: club/models.py:222 club/payu/models.py:140 msgid "body" msgstr "" -#: club/models.py:186 +#: club/models.py:225 msgid "reminder email" msgstr "" -#: club/models.py:187 +#: club/models.py:226 msgid "reminder emails" msgstr "" -#: club/models.py:192 +#: club/models.py:231 #, python-format msgid "a day before expiration" msgid_plural "%d days before expiration" msgstr[0] "" msgstr[1] "" -#: club/models.py:194 +#: club/models.py:233 #, python-format msgid "a day after expiration" msgid_plural "%d days after expiration" msgstr[0] "" msgstr[1] "" -#: club/models.py:199 +#: club/models.py:238 msgid "photo" msgstr "" -#: club/models.py:200 +#: club/models.py:239 msgid "text" msgstr "" -#: club/models.py:203 +#: club/models.py:242 msgid "ambassador" msgstr "" -#: club/models.py:204 +#: club/models.py:243 msgid "ambassadors" msgstr "" -#: club/models.py:235 club/templates/club/index.html:7 +#: club/models.py:274 club/templates/club/index.html:7 #: club/templates/club/index.html:13 club/templates/club/thanks.html:6 #: club/templates/payu/rec_payment.html:5 msgid "Towarzystwo Przyjaciół Wolnych Lektur" msgstr "" +#: club/models.py:370 +msgid "first name" +msgstr "" + +#: club/models.py:371 +msgid "last name" +msgstr "" + +#: club/models.py:372 +msgid "sex" +msgstr "" + +#: club/models.py:376 +msgid "date of birth" +msgstr "" + +#: club/models.py:377 +msgid "street" +msgstr "" + +#: club/models.py:378 +msgid "building" +msgstr "" + +#: club/models.py:379 +msgid "flat" +msgstr "" + +#: club/models.py:380 +msgid "town" +msgstr "" + +#: club/models.py:381 +msgid "postal code" +msgstr "" + +#: club/models.py:382 +msgid "phone" +msgstr "" + +#: club/models.py:383 +msgid "e-mail" +msgstr "" + +#: club/models.py:384 +msgid "IBAN" +msgstr "" + +#: club/models.py:385 +msgid "payment identifier" +msgstr "" + +#: club/models.py:386 +msgid "agree newsletter" +msgstr "" + +#: club/models.py:387 +msgid "date" +msgstr "" + +#: club/models.py:391 +msgid "direct debit" +msgstr "" + +#: club/models.py:392 +msgid "direct debits" +msgstr "" + #: club/payu/models.py:17 club/payu/models.py:29 msgid "POS id" msgstr "" @@ -367,38 +439,50 @@ msgstr "" msgid "transfer" msgstr "" -#: club/templates/club/payment_form.html:15 +#: club/templates/club/payment_form.html:18 msgid "Choose your type of support" msgstr "" -#: club/templates/club/payment_form.html:20 +#: club/templates/club/payment_form.html:24 msgid "one-time" msgstr "" -#: club/templates/club/payment_form.html:24 +#: club/templates/club/payment_form.html:28 msgid "Choose the amount" msgstr "" -#: club/templates/club/payment_form.html:32 -#: club/templates/club/payment_form.html:45 +#: club/templates/club/payment_form.html:36 +#: club/templates/club/payment_form.html:49 msgid "different amount" msgstr "" -#: club/templates/club/payment_form.html:51 -msgid "Provide an e-mail address" +#: club/templates/club/payment_form.html:57 +msgid "Provide contact details" +msgstr "" + +#: club/templates/club/payment_form.html:60 +msgid "E-mail:" msgstr "" -#: club/templates/club/payment_form.html:58 +#: club/templates/club/payment_form.html:65 +msgid "Phone number:" +msgstr "" + +#: club/templates/club/payment_form.html:70 +msgid "Postal address:" +msgstr "" + +#: club/templates/club/payment_form.html:87 msgid "I'd like to receive informations about new publications." msgstr "" -#: club/templates/club/payment_form.html:62 +#: club/templates/club/payment_form.html:91 msgid "" "You can unsubscribe at any point. More in the privacy policy." msgstr "" -#: club/templates/club/payment_form.html:65 +#: club/templates/club/payment_form.html:94 msgid "Donate" msgstr "" diff --git a/src/club/migrations/0032_auto_20210730_1104.py b/src/club/migrations/0032_auto_20210730_1104.py new file mode 100644 index 000000000..4c02e1ff1 --- /dev/null +++ b/src/club/migrations/0032_auto_20210730_1104.py @@ -0,0 +1,31 @@ +# Generated by Django 2.2.19 on 2021-07-30 09:04 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('club', '0031_auto_20210622_0945'), + ] + + operations = [ + migrations.CreateModel( + name='Consent', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('order', models.IntegerField()), + ('active', models.BooleanField(default=True)), + ('text', models.CharField(max_length=2048)), + ('required', models.BooleanField()), + ], + options={ + 'ordering': ['order'], + }, + ), + migrations.AddField( + model_name='schedule', + name='consent', + field=models.ManyToManyField(to='club.Consent'), + ), + ] diff --git a/src/club/migrations/0033_auto_20210730_1145.py b/src/club/migrations/0033_auto_20210730_1145.py new file mode 100644 index 000000000..6ea56c771 --- /dev/null +++ b/src/club/migrations/0033_auto_20210730_1145.py @@ -0,0 +1,23 @@ +# Generated by Django 2.2.19 on 2021-07-30 09:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('club', '0032_auto_20210730_1104'), + ] + + operations = [ + migrations.AddField( + model_name='schedule', + name='phone', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AddField( + model_name='schedule', + name='postal', + field=models.TextField(blank=True), + ), + ] diff --git a/src/club/migrations/0034_auto_20210730_1407.py b/src/club/migrations/0034_auto_20210730_1407.py new file mode 100644 index 000000000..b8f15016c --- /dev/null +++ b/src/club/migrations/0034_auto_20210730_1407.py @@ -0,0 +1,57 @@ +# Generated by Django 2.2.19 on 2021-07-30 12:07 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('club', '0033_auto_20210730_1145'), + ] + + operations = [ + migrations.RemoveField( + model_name='schedule', + name='postal', + ), + migrations.AddField( + model_name='schedule', + name='first_name', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AddField( + model_name='schedule', + name='last_name', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AddField( + model_name='schedule', + name='postal_1', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AddField( + model_name='schedule', + name='postal_2', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AddField( + model_name='schedule', + name='postal_3', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AddField( + model_name='schedule', + name='postal_4', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AddField( + model_name='schedule', + name='postal_code', + field=models.CharField(blank=True, max_length=255), + ), + migrations.AddField( + model_name='schedule', + name='postal_country', + field=models.CharField(blank=True, max_length=255), + ), + ] diff --git a/src/club/migrations/0035_schedule_postal_town.py b/src/club/migrations/0035_schedule_postal_town.py new file mode 100644 index 000000000..8a444e7bd --- /dev/null +++ b/src/club/migrations/0035_schedule_postal_town.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.19 on 2021-07-30 12:12 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('club', '0034_auto_20210730_1407'), + ] + + operations = [ + migrations.AddField( + model_name='schedule', + name='postal_town', + field=models.CharField(blank=True, max_length=255), + ), + ] diff --git a/src/club/migrations/0036_auto_20210730_1437.py b/src/club/migrations/0036_auto_20210730_1437.py new file mode 100644 index 000000000..28779fb93 --- /dev/null +++ b/src/club/migrations/0036_auto_20210730_1437.py @@ -0,0 +1,36 @@ +# Generated by Django 2.2.19 on 2021-07-30 12:37 + +from django.db import migrations +import django_countries.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('club', '0035_schedule_postal_town'), + ] + + operations = [ + migrations.RenameField( + model_name='schedule', + old_name='postal_1', + new_name='postal', + ), + migrations.RemoveField( + model_name='schedule', + name='postal_2', + ), + migrations.RemoveField( + model_name='schedule', + name='postal_3', + ), + migrations.RemoveField( + model_name='schedule', + name='postal_4', + ), + migrations.AlterField( + model_name='schedule', + name='postal_country', + field=django_countries.fields.CountryField(blank=True, default='PL', max_length=2), + ), + ] diff --git a/src/club/models.py b/src/club/models.py index 8905f08c4..77d1bb260 100644 --- a/src/club/models.py +++ b/src/club/models.py @@ -13,6 +13,7 @@ from django.db import models from django import template from django.utils.timezone import now from django.utils.translation import ugettext_lazy as _, ungettext, ugettext, get_language +from django_countries.fields import CountryField from catalogue.utils import get_random_hash from messaging.states import Level from reporting.utils import render_to_pdf @@ -43,6 +44,19 @@ class Club(models.Model): return [int(x) for x in self.monthly_amounts.split(',')] +class Consent(models.Model): + order = models.IntegerField() + active = models.BooleanField(default=True) + text = models.CharField(max_length=2048) + required = models.BooleanField() + + class Meta: + ordering = ['order'] + + def __str__(self): + return self.text + + class Schedule(models.Model): """ Represents someone taking up a plan. """ key = models.CharField(_('key'), max_length=255, unique=True) @@ -63,6 +77,16 @@ class Schedule(models.Model): expires_at = models.DateTimeField(_('expires_at'), null=True, blank=True) email_sent = models.BooleanField(default=False) + first_name = models.CharField(max_length=255, blank=True) + last_name = models.CharField(max_length=255, blank=True) + phone = models.CharField(max_length=255, blank=True) + postal = models.CharField(max_length=255, blank=True) + postal_code = models.CharField(max_length=255, blank=True) + postal_town = models.CharField(max_length=255, blank=True) + postal_country = CountryField(default='PL', blank=True) + + consent = models.ManyToManyField(Consent) + class Meta: verbose_name = _('schedule') verbose_name_plural = _('schedules') @@ -148,6 +172,9 @@ class Schedule(models.Model): Contact.update(self.email, level, since, self.expires_at) + + + class Membership(models.Model): """ Represents a user being recognized as a member of the club. """ user = models.OneToOneField(settings.AUTH_USER_MODEL, verbose_name=_('user'), on_delete=models.CASCADE) diff --git a/src/club/static/club/club.scss b/src/club/static/club/club.scss index 982ca7930..004f4e667 100644 --- a/src/club/static/club/club.scss +++ b/src/club/static/club/club.scss @@ -140,3 +140,74 @@ } } } + + +label.required { + &::before { + content: " * "; + color: red; + } +} + + + +.helptext { + position: relative; + + .short { + height: 1.5em; + overflow: hidden; + position: relative; + + &:after { + content:' '; + position:absolute; + bottom:0; + width:25%; + height:20px; + background-color:transparent; + overflow: hidden; + /* assume ltr */ + right:0; + background-image:-webkit-linear-gradient(to right,rgba(255,255,255,0),#ffffff 50%); + background-image:-moz-linear-gradient(to right,rgba(255,255,255,0),#ffffff 50%); + background-image:-o-linear-gradient(to right,rgba(255,255,255,0),#ffffff 50%); + background-image:linear-gradient(to right,rgba(255,255,255,0),#ffffff 50%) + } + } + + .morelink { + position: absolute; + top: 0; + right: 0; + &:after { + content: " ↓"; + } + } +} + + +#payment-form { + textarea { + box-sizing: border-box; + padding: 8px; + width: 440px; + height: 4em; + } + input[type="text"], input[type="email"] { + box-sizing: border-box; + width: 440px; + padding: 8px; + &#id_postal_code { + width: 120px; + } + &#id_postal_town { + width: 320px; + } + } + select { + box-sizing: border-box; + width: 440px; + padding: 8px; + } +} diff --git a/src/club/templates/club/payment_form.html b/src/club/templates/club/payment_form.html index 72d3e2515..58d564c12 100644 --- a/src/club/templates/club/payment_form.html +++ b/src/club/templates/club/payment_form.html @@ -54,18 +54,52 @@ -

3. {% trans "Provide an e-mail address" %}

+

3. {% trans "Provide contact details" %}

+ +

+
+ {{ form.first_name }} +

+ {{ form.last_name }} +

+ + +

+
+ {{ form.email }} +

+ +

+
+ {{ form.phone }} +

+ +

+
+ {{ form.postal }}
+ {{ form.postal_code }} {{ form.postal_town }}
+ {{ form.postal_country }} +

+ +{% for c, key, consent_field in form.consent %} +

+ {{ consent_field }} + +

+{% endfor %} -

{{ form.email }}

{{ form.agree_newsletter }}

{% trans 'You can unsubscribe at any point. More in the privacy policy.' %}

-

{{ form.data_processing }}

+ +
{{ form.data_processing|safe }}
diff --git a/src/wolnelektury/settings/apps.py b/src/wolnelektury/settings/apps.py index 1d7737282..e6f10f885 100644 --- a/src/wolnelektury/settings/apps.py +++ b/src/wolnelektury/settings/apps.py @@ -63,6 +63,7 @@ INSTALLED_APPS_CONTRIB = [ 'getpaid.backends.payu', 'django_extensions', 'forms_builder.forms', + 'django_countries', 'debug_toolbar', -- 2.20.1