admin.site.register(models.Ambassador)
-
-@admin.register(models.DirectDebit)
-class DirectDebitAdmin(admin.ModelAdmin):
- list_display = ['date', 'amount', 'first_name', 'last_name']
- fields = [
- ('first_name', 'sex', 'date_of_birth'),
- 'last_name',
- ('street', 'building'),
- ('town', 'flat'),
- ('postal_code', 'phone'),
- 'email',
- 'iban',
- 'payment_id',
- 'agree_newsletter',
- 'date',
- 'amount'
- ]
@admin.register(models.Consent)
--- /dev/null
+# Generated by Django 2.2.19 on 2021-09-27 13:30
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('club', '0036_auto_20210730_1437'),
+ ]
+
+ operations = [
+ migrations.DeleteModel(
+ name='DirectDebit',
+ ),
+ ]
class PayUNotification(payu_models.Notification):
order = models.ForeignKey(PayUOrder, models.CASCADE, related_name='notification_set')
-
-
-class DirectDebit(models.Model):
- first_name = models.CharField(_('first name'), max_length=255, blank=True)
- last_name = models.CharField(_('last name'), max_length=255, blank=True)
- sex = models.CharField(_('sex'), max_length=1, blank=True, choices=[
- ('M', 'M'),
- ('F', 'F'),
- ])
- date_of_birth = models.DateField(_('date of birth'), null=True, blank=True)
- street = models.CharField(_('street'), max_length=255, blank=True)
- building = models.CharField(_('building'), max_length=255, blank=True)
- flat = models.CharField(_('flat'), max_length=255, blank=True)
- town = models.CharField(_('town'), max_length=255, blank=True)
- postal_code = models.CharField(_('postal code'), max_length=255, blank=True)
- phone = models.CharField(_('phone'), max_length=255, blank=True)
- email = models.CharField(_('e-mail'), max_length=255, blank=True)
- iban = models.CharField(_('IBAN'), max_length=255, blank=True)
- payment_id = models.CharField(_('payment identifier'), max_length=255, blank=True)
- agree_newsletter = models.BooleanField(_('agree newsletter'))
- date = models.DateField(_('date'))
- amount = models.IntegerField(_('amount'))
-
- class Meta:
- verbose_name = _('direct debit')
- verbose_name_plural = _('direct debits')
-
--- /dev/null
+from django.contrib import admin
+from django.utils.translation import gettext_lazy as _
+from . import models
+
+
+admin.site.register(models.Fundraiser)
+admin.site.register(models.Campaign)
+
+@admin.register(models.DirectDebit)
+class DirectDebitAdmin(admin.ModelAdmin):
+ list_display = ['acquisition_date', 'amount', 'first_name', 'last_name']
+ fieldsets = [
+ (None, {
+ "fields": [
+ ('first_name', 'sex', 'date_of_birth'),
+ 'last_name',
+ ('street', 'building'),
+ ('town', 'flat'),
+ ('postal_code', 'phone'),
+ 'email',
+ 'iban',
+ 'payment_id',
+ 'agree_contact',
+ 'agree_fundraising',
+ 'agree_newsletter',
+ ('acquisition_date', 'amount'),
+ 'is_consumer',
+ 'fundraiser',
+ 'campaign',
+ ]
+ }),
+ (_('Processing'), {"fields": [
+ ('is_cancelled', 'needs_redo', 'optout'),
+ 'submission_date',
+ 'fundraiser_commission',
+ 'fundraiser_bill',
+ 'bank_submission_date',
+ 'bank_acceptance_date',
+ 'notes',
+ ]
+ })
+ ]
+ readonly_fields = ['agree_contact']
+
+ def agree_contact(self, obj):
+ return _('obligatory')
+ agree_contact.short_description = _('agree contact')
+
+ def get_changeform_initial_data(self, request):
+ return {
+ 'payment_id': models.DirectDebit.get_next_payment_id(),
+ }
--- /dev/null
+from django.apps import AppConfig
+
+
+class PzConfig(AppConfig):
+ name = 'pz'
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+#: pz/admin.py:32
+msgid "Processing"
+msgstr ""
+
+#: pz/admin.py:46
+msgid "obligatory"
+msgstr ""
+
+#: pz/admin.py:47
+msgid "agree contact"
+msgstr ""
+
+#: pz/models.py:6 pz/models.py:18
+msgid "name"
+msgstr ""
+
+#: pz/models.py:7
+msgid "description"
+msgstr ""
+
+#: pz/models.py:10 pz/models.py:66
+msgid "campaign"
+msgstr ""
+
+#: pz/models.py:11
+msgid "campaigns"
+msgstr ""
+
+#: pz/models.py:21 pz/models.py:54
+msgid "fundraiser"
+msgstr ""
+
+#: pz/models.py:22
+msgid "fundraisers"
+msgstr ""
+
+#: pz/models.py:29
+msgid "first name"
+msgstr ""
+
+#: pz/models.py:30
+msgid "last name"
+msgstr ""
+
+#: pz/models.py:31
+msgid "sex"
+msgstr ""
+
+#: pz/models.py:32
+msgid "M"
+msgstr ""
+
+#: pz/models.py:33
+msgid "F"
+msgstr ""
+
+#: pz/models.py:35
+msgid "date of birth"
+msgstr ""
+
+#: pz/models.py:36
+msgid "street"
+msgstr ""
+
+#: pz/models.py:37
+msgid "building"
+msgstr ""
+
+#: pz/models.py:38
+msgid "flat"
+msgstr ""
+
+#: pz/models.py:39
+msgid "town"
+msgstr ""
+
+#: pz/models.py:40
+msgid "postal code"
+msgstr ""
+
+#: pz/models.py:41
+msgid "phone"
+msgstr ""
+
+#: pz/models.py:42
+msgid "e-mail"
+msgstr ""
+
+#: pz/models.py:43
+msgid "IBAN"
+msgstr ""
+
+#: pz/models.py:44
+msgid "is a consumer"
+msgstr ""
+
+#: pz/models.py:45
+msgid "payment identifier"
+msgstr ""
+
+#: pz/models.py:46
+msgid "agree fundraising"
+msgstr ""
+
+#: pz/models.py:47
+msgid "agree newsletter"
+msgstr ""
+
+#: pz/models.py:49
+msgid "acquisition date"
+msgstr ""
+
+#: pz/models.py:49
+msgid "Date from the form"
+msgstr ""
+
+#: pz/models.py:50
+msgid "submission date"
+msgstr ""
+
+#: pz/models.py:50
+msgid "Date the fundaiser submitted the form"
+msgstr ""
+
+#: pz/models.py:51
+msgid "bank submission date"
+msgstr ""
+
+#: pz/models.py:51
+msgid "Date when the form data is submitted to the bank"
+msgstr ""
+
+#: pz/models.py:52
+msgid "bank accepted date"
+msgstr ""
+
+#: pz/models.py:52
+msgid "Date when bank accepted the form"
+msgstr ""
+
+#: pz/models.py:55
+msgid "fundraiser commission"
+msgstr ""
+
+#: pz/models.py:56
+msgid "fundaiser bill number"
+msgstr ""
+
+#: pz/models.py:58
+msgid "amount"
+msgstr ""
+
+#: pz/models.py:60
+msgid "notes"
+msgstr ""
+
+#: pz/models.py:62
+msgid "needs redo"
+msgstr ""
+
+#: pz/models.py:63
+msgid "is cancelled"
+msgstr ""
+
+#: pz/models.py:64
+msgid "optout"
+msgstr ""
+
+#: pz/models.py:69
+msgid "direct debit"
+msgstr ""
+
+#: pz/models.py:70
+msgid "direct debits"
+msgstr ""
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+#: pz/admin.py:32
+msgid "Processing"
+msgstr ""
+
+#: pz/admin.py:46
+msgid "obligatory"
+msgstr ""
+
+#: pz/admin.py:47
+msgid "agree contact"
+msgstr ""
+
+#: pz/models.py:6 pz/models.py:18
+msgid "name"
+msgstr ""
+
+#: pz/models.py:7
+msgid "description"
+msgstr ""
+
+#: pz/models.py:10 pz/models.py:66
+msgid "campaign"
+msgstr ""
+
+#: pz/models.py:11
+msgid "campaigns"
+msgstr ""
+
+#: pz/models.py:21 pz/models.py:54
+msgid "fundraiser"
+msgstr ""
+
+#: pz/models.py:22
+msgid "fundraisers"
+msgstr ""
+
+#: pz/models.py:29
+msgid "first name"
+msgstr ""
+
+#: pz/models.py:30
+msgid "last name"
+msgstr ""
+
+#: pz/models.py:31
+msgid "sex"
+msgstr ""
+
+#: pz/models.py:32
+msgid "M"
+msgstr ""
+
+#: pz/models.py:33
+msgid "F"
+msgstr ""
+
+#: pz/models.py:35
+msgid "date of birth"
+msgstr ""
+
+#: pz/models.py:36
+msgid "street"
+msgstr ""
+
+#: pz/models.py:37
+msgid "building"
+msgstr ""
+
+#: pz/models.py:38
+msgid "flat"
+msgstr ""
+
+#: pz/models.py:39
+msgid "town"
+msgstr ""
+
+#: pz/models.py:40
+msgid "postal code"
+msgstr ""
+
+#: pz/models.py:41
+msgid "phone"
+msgstr ""
+
+#: pz/models.py:42
+msgid "e-mail"
+msgstr ""
+
+#: pz/models.py:43
+msgid "IBAN"
+msgstr ""
+
+#: pz/models.py:44
+msgid "is a consumer"
+msgstr ""
+
+#: pz/models.py:45
+msgid "payment identifier"
+msgstr ""
+
+#: pz/models.py:46
+msgid "agree fundraising"
+msgstr ""
+
+#: pz/models.py:47
+msgid "agree newsletter"
+msgstr ""
+
+#: pz/models.py:49
+msgid "acquisition date"
+msgstr ""
+
+#: pz/models.py:49
+msgid "Date from the form"
+msgstr ""
+
+#: pz/models.py:50
+msgid "submission date"
+msgstr ""
+
+#: pz/models.py:50
+msgid "Date the fundaiser submitted the form"
+msgstr ""
+
+#: pz/models.py:51
+msgid "bank submission date"
+msgstr ""
+
+#: pz/models.py:51
+msgid "Date when the form data is submitted to the bank"
+msgstr ""
+
+#: pz/models.py:52
+msgid "bank accepted date"
+msgstr ""
+
+#: pz/models.py:52
+msgid "Date when bank accepted the form"
+msgstr ""
+
+#: pz/models.py:55
+msgid "fundraiser commission"
+msgstr ""
+
+#: pz/models.py:56
+msgid "fundaiser bill number"
+msgstr ""
+
+#: pz/models.py:58
+msgid "amount"
+msgstr ""
+
+#: pz/models.py:60
+msgid "notes"
+msgstr ""
+
+#: pz/models.py:62
+msgid "needs redo"
+msgstr ""
+
+#: pz/models.py:63
+msgid "is cancelled"
+msgstr ""
+
+#: pz/models.py:64
+msgid "optout"
+msgstr ""
+
+#: pz/models.py:69
+msgid "direct debit"
+msgstr ""
+
+#: pz/models.py:70
+msgid "direct debits"
+msgstr ""
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+#: pz/admin.py:32
+msgid "Processing"
+msgstr ""
+
+#: pz/admin.py:46
+msgid "obligatory"
+msgstr ""
+
+#: pz/admin.py:47
+msgid "agree contact"
+msgstr ""
+
+#: pz/models.py:6 pz/models.py:18
+msgid "name"
+msgstr ""
+
+#: pz/models.py:7
+msgid "description"
+msgstr ""
+
+#: pz/models.py:10 pz/models.py:66
+msgid "campaign"
+msgstr ""
+
+#: pz/models.py:11
+msgid "campaigns"
+msgstr ""
+
+#: pz/models.py:21 pz/models.py:54
+msgid "fundraiser"
+msgstr ""
+
+#: pz/models.py:22
+msgid "fundraisers"
+msgstr ""
+
+#: pz/models.py:29
+msgid "first name"
+msgstr ""
+
+#: pz/models.py:30
+msgid "last name"
+msgstr ""
+
+#: pz/models.py:31
+msgid "sex"
+msgstr ""
+
+#: pz/models.py:32
+msgid "M"
+msgstr ""
+
+#: pz/models.py:33
+msgid "F"
+msgstr ""
+
+#: pz/models.py:35
+msgid "date of birth"
+msgstr ""
+
+#: pz/models.py:36
+msgid "street"
+msgstr ""
+
+#: pz/models.py:37
+msgid "building"
+msgstr ""
+
+#: pz/models.py:38
+msgid "flat"
+msgstr ""
+
+#: pz/models.py:39
+msgid "town"
+msgstr ""
+
+#: pz/models.py:40
+msgid "postal code"
+msgstr ""
+
+#: pz/models.py:41
+msgid "phone"
+msgstr ""
+
+#: pz/models.py:42
+msgid "e-mail"
+msgstr ""
+
+#: pz/models.py:43
+msgid "IBAN"
+msgstr ""
+
+#: pz/models.py:44
+msgid "is a consumer"
+msgstr ""
+
+#: pz/models.py:45
+msgid "payment identifier"
+msgstr ""
+
+#: pz/models.py:46
+msgid "agree fundraising"
+msgstr ""
+
+#: pz/models.py:47
+msgid "agree newsletter"
+msgstr ""
+
+#: pz/models.py:49
+msgid "acquisition date"
+msgstr ""
+
+#: pz/models.py:49
+msgid "Date from the form"
+msgstr ""
+
+#: pz/models.py:50
+msgid "submission date"
+msgstr ""
+
+#: pz/models.py:50
+msgid "Date the fundaiser submitted the form"
+msgstr ""
+
+#: pz/models.py:51
+msgid "bank submission date"
+msgstr ""
+
+#: pz/models.py:51
+msgid "Date when the form data is submitted to the bank"
+msgstr ""
+
+#: pz/models.py:52
+msgid "bank accepted date"
+msgstr ""
+
+#: pz/models.py:52
+msgid "Date when bank accepted the form"
+msgstr ""
+
+#: pz/models.py:55
+msgid "fundraiser commission"
+msgstr ""
+
+#: pz/models.py:56
+msgid "fundaiser bill number"
+msgstr ""
+
+#: pz/models.py:58
+msgid "amount"
+msgstr ""
+
+#: pz/models.py:60
+msgid "notes"
+msgstr ""
+
+#: pz/models.py:62
+msgid "needs redo"
+msgstr ""
+
+#: pz/models.py:63
+msgid "is cancelled"
+msgstr ""
+
+#: pz/models.py:64
+msgid "optout"
+msgstr ""
+
+#: pz/models.py:69
+msgid "direct debit"
+msgstr ""
+
+#: pz/models.py:70
+msgid "direct debits"
+msgstr ""
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+#: pz/admin.py:32
+msgid "Processing"
+msgstr ""
+
+#: pz/admin.py:46
+msgid "obligatory"
+msgstr ""
+
+#: pz/admin.py:47
+msgid "agree contact"
+msgstr ""
+
+#: pz/models.py:6 pz/models.py:18
+msgid "name"
+msgstr ""
+
+#: pz/models.py:7
+msgid "description"
+msgstr ""
+
+#: pz/models.py:10 pz/models.py:66
+msgid "campaign"
+msgstr ""
+
+#: pz/models.py:11
+msgid "campaigns"
+msgstr ""
+
+#: pz/models.py:21 pz/models.py:54
+msgid "fundraiser"
+msgstr ""
+
+#: pz/models.py:22
+msgid "fundraisers"
+msgstr ""
+
+#: pz/models.py:29
+msgid "first name"
+msgstr ""
+
+#: pz/models.py:30
+msgid "last name"
+msgstr ""
+
+#: pz/models.py:31
+msgid "sex"
+msgstr ""
+
+#: pz/models.py:32
+msgid "M"
+msgstr ""
+
+#: pz/models.py:33
+msgid "F"
+msgstr ""
+
+#: pz/models.py:35
+msgid "date of birth"
+msgstr ""
+
+#: pz/models.py:36
+msgid "street"
+msgstr ""
+
+#: pz/models.py:37
+msgid "building"
+msgstr ""
+
+#: pz/models.py:38
+msgid "flat"
+msgstr ""
+
+#: pz/models.py:39
+msgid "town"
+msgstr ""
+
+#: pz/models.py:40
+msgid "postal code"
+msgstr ""
+
+#: pz/models.py:41
+msgid "phone"
+msgstr ""
+
+#: pz/models.py:42
+msgid "e-mail"
+msgstr ""
+
+#: pz/models.py:43
+msgid "IBAN"
+msgstr ""
+
+#: pz/models.py:44
+msgid "is a consumer"
+msgstr ""
+
+#: pz/models.py:45
+msgid "payment identifier"
+msgstr ""
+
+#: pz/models.py:46
+msgid "agree fundraising"
+msgstr ""
+
+#: pz/models.py:47
+msgid "agree newsletter"
+msgstr ""
+
+#: pz/models.py:49
+msgid "acquisition date"
+msgstr ""
+
+#: pz/models.py:49
+msgid "Date from the form"
+msgstr ""
+
+#: pz/models.py:50
+msgid "submission date"
+msgstr ""
+
+#: pz/models.py:50
+msgid "Date the fundaiser submitted the form"
+msgstr ""
+
+#: pz/models.py:51
+msgid "bank submission date"
+msgstr ""
+
+#: pz/models.py:51
+msgid "Date when the form data is submitted to the bank"
+msgstr ""
+
+#: pz/models.py:52
+msgid "bank accepted date"
+msgstr ""
+
+#: pz/models.py:52
+msgid "Date when bank accepted the form"
+msgstr ""
+
+#: pz/models.py:55
+msgid "fundraiser commission"
+msgstr ""
+
+#: pz/models.py:56
+msgid "fundaiser bill number"
+msgstr ""
+
+#: pz/models.py:58
+msgid "amount"
+msgstr ""
+
+#: pz/models.py:60
+msgid "notes"
+msgstr ""
+
+#: pz/models.py:62
+msgid "needs redo"
+msgstr ""
+
+#: pz/models.py:63
+msgid "is cancelled"
+msgstr ""
+
+#: pz/models.py:64
+msgid "optout"
+msgstr ""
+
+#: pz/models.py:69
+msgid "direct debit"
+msgstr ""
+
+#: pz/models.py:70
+msgid "direct debits"
+msgstr ""
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+#: pz/admin.py:32
+msgid "Processing"
+msgstr ""
+
+#: pz/admin.py:46
+msgid "obligatory"
+msgstr ""
+
+#: pz/admin.py:47
+msgid "agree contact"
+msgstr ""
+
+#: pz/models.py:6 pz/models.py:18
+msgid "name"
+msgstr ""
+
+#: pz/models.py:7
+msgid "description"
+msgstr ""
+
+#: pz/models.py:10 pz/models.py:66
+msgid "campaign"
+msgstr ""
+
+#: pz/models.py:11
+msgid "campaigns"
+msgstr ""
+
+#: pz/models.py:21 pz/models.py:54
+msgid "fundraiser"
+msgstr ""
+
+#: pz/models.py:22
+msgid "fundraisers"
+msgstr ""
+
+#: pz/models.py:29
+msgid "first name"
+msgstr ""
+
+#: pz/models.py:30
+msgid "last name"
+msgstr ""
+
+#: pz/models.py:31
+msgid "sex"
+msgstr ""
+
+#: pz/models.py:32
+msgid "M"
+msgstr ""
+
+#: pz/models.py:33
+msgid "F"
+msgstr ""
+
+#: pz/models.py:35
+msgid "date of birth"
+msgstr ""
+
+#: pz/models.py:36
+msgid "street"
+msgstr ""
+
+#: pz/models.py:37
+msgid "building"
+msgstr ""
+
+#: pz/models.py:38
+msgid "flat"
+msgstr ""
+
+#: pz/models.py:39
+msgid "town"
+msgstr ""
+
+#: pz/models.py:40
+msgid "postal code"
+msgstr ""
+
+#: pz/models.py:41
+msgid "phone"
+msgstr ""
+
+#: pz/models.py:42
+msgid "e-mail"
+msgstr ""
+
+#: pz/models.py:43
+msgid "IBAN"
+msgstr ""
+
+#: pz/models.py:44
+msgid "is a consumer"
+msgstr ""
+
+#: pz/models.py:45
+msgid "payment identifier"
+msgstr ""
+
+#: pz/models.py:46
+msgid "agree fundraising"
+msgstr ""
+
+#: pz/models.py:47
+msgid "agree newsletter"
+msgstr ""
+
+#: pz/models.py:49
+msgid "acquisition date"
+msgstr ""
+
+#: pz/models.py:49
+msgid "Date from the form"
+msgstr ""
+
+#: pz/models.py:50
+msgid "submission date"
+msgstr ""
+
+#: pz/models.py:50
+msgid "Date the fundaiser submitted the form"
+msgstr ""
+
+#: pz/models.py:51
+msgid "bank submission date"
+msgstr ""
+
+#: pz/models.py:51
+msgid "Date when the form data is submitted to the bank"
+msgstr ""
+
+#: pz/models.py:52
+msgid "bank accepted date"
+msgstr ""
+
+#: pz/models.py:52
+msgid "Date when bank accepted the form"
+msgstr ""
+
+#: pz/models.py:55
+msgid "fundraiser commission"
+msgstr ""
+
+#: pz/models.py:56
+msgid "fundaiser bill number"
+msgstr ""
+
+#: pz/models.py:58
+msgid "amount"
+msgstr ""
+
+#: pz/models.py:60
+msgid "notes"
+msgstr ""
+
+#: pz/models.py:62
+msgid "needs redo"
+msgstr ""
+
+#: pz/models.py:63
+msgid "is cancelled"
+msgstr ""
+
+#: pz/models.py:64
+msgid "optout"
+msgstr ""
+
+#: pz/models.py:69
+msgid "direct debit"
+msgstr ""
+
+#: pz/models.py:70
+msgid "direct debits"
+msgstr ""
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < "
+"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? "
+"1 : n % 1 != 0 ? 2: 3);\n"
+#: pz/admin.py:32
+msgid "Processing"
+msgstr ""
+
+#: pz/admin.py:46
+msgid "obligatory"
+msgstr ""
+
+#: pz/admin.py:47
+msgid "agree contact"
+msgstr ""
+
+#: pz/models.py:6 pz/models.py:18
+msgid "name"
+msgstr ""
+
+#: pz/models.py:7
+msgid "description"
+msgstr ""
+
+#: pz/models.py:10 pz/models.py:66
+msgid "campaign"
+msgstr ""
+
+#: pz/models.py:11
+msgid "campaigns"
+msgstr ""
+
+#: pz/models.py:21 pz/models.py:54
+msgid "fundraiser"
+msgstr ""
+
+#: pz/models.py:22
+msgid "fundraisers"
+msgstr ""
+
+#: pz/models.py:29
+msgid "first name"
+msgstr ""
+
+#: pz/models.py:30
+msgid "last name"
+msgstr ""
+
+#: pz/models.py:31
+msgid "sex"
+msgstr ""
+
+#: pz/models.py:32
+msgid "M"
+msgstr ""
+
+#: pz/models.py:33
+msgid "F"
+msgstr ""
+
+#: pz/models.py:35
+msgid "date of birth"
+msgstr ""
+
+#: pz/models.py:36
+msgid "street"
+msgstr ""
+
+#: pz/models.py:37
+msgid "building"
+msgstr ""
+
+#: pz/models.py:38
+msgid "flat"
+msgstr ""
+
+#: pz/models.py:39
+msgid "town"
+msgstr ""
+
+#: pz/models.py:40
+msgid "postal code"
+msgstr ""
+
+#: pz/models.py:41
+msgid "phone"
+msgstr ""
+
+#: pz/models.py:42
+msgid "e-mail"
+msgstr ""
+
+#: pz/models.py:43
+msgid "IBAN"
+msgstr ""
+
+#: pz/models.py:44
+msgid "is a consumer"
+msgstr ""
+
+#: pz/models.py:45
+msgid "payment identifier"
+msgstr ""
+
+#: pz/models.py:46
+msgid "agree fundraising"
+msgstr ""
+
+#: pz/models.py:47
+msgid "agree newsletter"
+msgstr ""
+
+#: pz/models.py:49
+msgid "acquisition date"
+msgstr ""
+
+#: pz/models.py:49
+msgid "Date from the form"
+msgstr ""
+
+#: pz/models.py:50
+msgid "submission date"
+msgstr ""
+
+#: pz/models.py:50
+msgid "Date the fundaiser submitted the form"
+msgstr ""
+
+#: pz/models.py:51
+msgid "bank submission date"
+msgstr ""
+
+#: pz/models.py:51
+msgid "Date when the form data is submitted to the bank"
+msgstr ""
+
+#: pz/models.py:52
+msgid "bank accepted date"
+msgstr ""
+
+#: pz/models.py:52
+msgid "Date when bank accepted the form"
+msgstr ""
+
+#: pz/models.py:55
+msgid "fundraiser commission"
+msgstr ""
+
+#: pz/models.py:56
+msgid "fundaiser bill number"
+msgstr ""
+
+#: pz/models.py:58
+msgid "amount"
+msgstr ""
+
+#: pz/models.py:60
+msgid "notes"
+msgstr ""
+
+#: pz/models.py:62
+msgid "needs redo"
+msgstr ""
+
+#: pz/models.py:63
+msgid "is cancelled"
+msgstr ""
+
+#: pz/models.py:64
+msgid "optout"
+msgstr ""
+
+#: pz/models.py:69
+msgid "direct debit"
+msgstr ""
+
+#: pz/models.py:70
+msgid "direct debits"
+msgstr ""
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: 2021-09-27 15:35+0200\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n"
+"%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n"
+"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
+"X-Generator: Poedit 2.4.2\n"
+
+#: pz/admin.py:32
+msgid "Processing"
+msgstr "Przetwarzanie"
+
+#: pz/admin.py:46
+msgid "obligatory"
+msgstr "obowiązkowo"
+
+#: pz/admin.py:47
+msgid "agree contact"
+msgstr "zgoda na kontakt"
+
+#: pz/models.py:6 pz/models.py:18
+msgid "name"
+msgstr "nazwa"
+
+#: pz/models.py:7
+msgid "description"
+msgstr "opis"
+
+#: pz/models.py:10 pz/models.py:66
+msgid "campaign"
+msgstr "kampania"
+
+#: pz/models.py:11
+msgid "campaigns"
+msgstr "kampanie"
+
+#: pz/models.py:21 pz/models.py:54
+msgid "fundraiser"
+msgstr "fundraiser"
+
+#: pz/models.py:22
+msgid "fundraisers"
+msgstr "fundraiserzy"
+
+#: pz/models.py:29
+msgid "first name"
+msgstr "imię"
+
+#: pz/models.py:30
+msgid "last name"
+msgstr "nazwisko"
+
+#: pz/models.py:31
+msgid "sex"
+msgstr "płeć"
+
+#: pz/models.py:32
+msgid "M"
+msgstr "M"
+
+#: pz/models.py:33
+msgid "F"
+msgstr "K"
+
+#: pz/models.py:35
+msgid "date of birth"
+msgstr "data urodzenia"
+
+#: pz/models.py:36
+msgid "street"
+msgstr "ulica"
+
+#: pz/models.py:37
+msgid "building"
+msgstr "nr domu"
+
+#: pz/models.py:38
+msgid "flat"
+msgstr "nr mieszkania"
+
+#: pz/models.py:39
+msgid "town"
+msgstr "miejscowość"
+
+#: pz/models.py:40
+msgid "postal code"
+msgstr "kod pocztowy"
+
+#: pz/models.py:41
+msgid "phone"
+msgstr "telefon"
+
+#: pz/models.py:42
+msgid "e-mail"
+msgstr "e-mail"
+
+#: pz/models.py:43
+msgid "IBAN"
+msgstr "nr rachunku"
+
+#: pz/models.py:44
+msgid "is a consumer"
+msgstr "konsument"
+
+#: pz/models.py:45
+msgid "payment identifier"
+msgstr "identyfikator płatności"
+
+#: pz/models.py:46
+msgid "agree fundraising"
+msgstr "zgoda na kontakt fundraisingowy"
+
+#: pz/models.py:47
+msgid "agree newsletter"
+msgstr "zgoda na newsletter"
+
+#: pz/models.py:49
+msgid "acquisition date"
+msgstr "data pozyskania"
+
+#: pz/models.py:49
+msgid "Date from the form"
+msgstr "Data z formularza"
+
+#: pz/models.py:50
+msgid "submission date"
+msgstr "data dostarczenia"
+
+#: pz/models.py:50
+msgid "Date the fundaiser submitted the form"
+msgstr "Data złożenia formularza przez fundraisera"
+
+#: pz/models.py:51
+msgid "bank submission date"
+msgstr "data złożenia do banku"
+
+#: pz/models.py:51
+msgid "Date when the form data is submitted to the bank"
+msgstr "Data przesłania danych z formularza do banku"
+
+#: pz/models.py:52
+msgid "bank accepted date"
+msgstr "data akceptacji przez bank"
+
+#: pz/models.py:52
+msgid "Date when bank accepted the form"
+msgstr "Data kiedy bank przekazał informację o akceptacji danych z formularza"
+
+#: pz/models.py:55
+msgid "fundraiser commission"
+msgstr "prowizja fundraisera"
+
+#: pz/models.py:56
+msgid "fundaiser bill number"
+msgstr "nr rachunku wystawionego przez fundraisera"
+
+#: pz/models.py:58
+msgid "amount"
+msgstr "kwota"
+
+#: pz/models.py:60
+msgid "notes"
+msgstr "uwagi"
+
+#: pz/models.py:62
+msgid "needs redo"
+msgstr "do powtórki"
+
+#: pz/models.py:63
+msgid "is cancelled"
+msgstr "anulowane"
+
+#: pz/models.py:64
+msgid "optout"
+msgstr "optout"
+
+#: pz/models.py:69
+msgid "direct debit"
+msgstr "polecenie zapłaty"
+
+#: pz/models.py:70
+msgid "direct debits"
+msgstr "polecenia zapłaty"
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
+"%100>=11 && n%100<=14)? 2 : 3);\n"
+#: pz/admin.py:32
+msgid "Processing"
+msgstr ""
+
+#: pz/admin.py:46
+msgid "obligatory"
+msgstr ""
+
+#: pz/admin.py:47
+msgid "agree contact"
+msgstr ""
+
+#: pz/models.py:6 pz/models.py:18
+msgid "name"
+msgstr ""
+
+#: pz/models.py:7
+msgid "description"
+msgstr ""
+
+#: pz/models.py:10 pz/models.py:66
+msgid "campaign"
+msgstr ""
+
+#: pz/models.py:11
+msgid "campaigns"
+msgstr ""
+
+#: pz/models.py:21 pz/models.py:54
+msgid "fundraiser"
+msgstr ""
+
+#: pz/models.py:22
+msgid "fundraisers"
+msgstr ""
+
+#: pz/models.py:29
+msgid "first name"
+msgstr ""
+
+#: pz/models.py:30
+msgid "last name"
+msgstr ""
+
+#: pz/models.py:31
+msgid "sex"
+msgstr ""
+
+#: pz/models.py:32
+msgid "M"
+msgstr ""
+
+#: pz/models.py:33
+msgid "F"
+msgstr ""
+
+#: pz/models.py:35
+msgid "date of birth"
+msgstr ""
+
+#: pz/models.py:36
+msgid "street"
+msgstr ""
+
+#: pz/models.py:37
+msgid "building"
+msgstr ""
+
+#: pz/models.py:38
+msgid "flat"
+msgstr ""
+
+#: pz/models.py:39
+msgid "town"
+msgstr ""
+
+#: pz/models.py:40
+msgid "postal code"
+msgstr ""
+
+#: pz/models.py:41
+msgid "phone"
+msgstr ""
+
+#: pz/models.py:42
+msgid "e-mail"
+msgstr ""
+
+#: pz/models.py:43
+msgid "IBAN"
+msgstr ""
+
+#: pz/models.py:44
+msgid "is a consumer"
+msgstr ""
+
+#: pz/models.py:45
+msgid "payment identifier"
+msgstr ""
+
+#: pz/models.py:46
+msgid "agree fundraising"
+msgstr ""
+
+#: pz/models.py:47
+msgid "agree newsletter"
+msgstr ""
+
+#: pz/models.py:49
+msgid "acquisition date"
+msgstr ""
+
+#: pz/models.py:49
+msgid "Date from the form"
+msgstr ""
+
+#: pz/models.py:50
+msgid "submission date"
+msgstr ""
+
+#: pz/models.py:50
+msgid "Date the fundaiser submitted the form"
+msgstr ""
+
+#: pz/models.py:51
+msgid "bank submission date"
+msgstr ""
+
+#: pz/models.py:51
+msgid "Date when the form data is submitted to the bank"
+msgstr ""
+
+#: pz/models.py:52
+msgid "bank accepted date"
+msgstr ""
+
+#: pz/models.py:52
+msgid "Date when bank accepted the form"
+msgstr ""
+
+#: pz/models.py:55
+msgid "fundraiser commission"
+msgstr ""
+
+#: pz/models.py:56
+msgid "fundaiser bill number"
+msgstr ""
+
+#: pz/models.py:58
+msgid "amount"
+msgstr ""
+
+#: pz/models.py:60
+msgid "notes"
+msgstr ""
+
+#: pz/models.py:62
+msgid "needs redo"
+msgstr ""
+
+#: pz/models.py:63
+msgid "is cancelled"
+msgstr ""
+
+#: pz/models.py:64
+msgid "optout"
+msgstr ""
+
+#: pz/models.py:69
+msgid "direct debit"
+msgstr ""
+
+#: pz/models.py:70
+msgid "direct debits"
+msgstr ""
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != "
+"11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % "
+"100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || "
+"(n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
+#: pz/admin.py:32
+msgid "Processing"
+msgstr ""
+
+#: pz/admin.py:46
+msgid "obligatory"
+msgstr ""
+
+#: pz/admin.py:47
+msgid "agree contact"
+msgstr ""
+
+#: pz/models.py:6 pz/models.py:18
+msgid "name"
+msgstr ""
+
+#: pz/models.py:7
+msgid "description"
+msgstr ""
+
+#: pz/models.py:10 pz/models.py:66
+msgid "campaign"
+msgstr ""
+
+#: pz/models.py:11
+msgid "campaigns"
+msgstr ""
+
+#: pz/models.py:21 pz/models.py:54
+msgid "fundraiser"
+msgstr ""
+
+#: pz/models.py:22
+msgid "fundraisers"
+msgstr ""
+
+#: pz/models.py:29
+msgid "first name"
+msgstr ""
+
+#: pz/models.py:30
+msgid "last name"
+msgstr ""
+
+#: pz/models.py:31
+msgid "sex"
+msgstr ""
+
+#: pz/models.py:32
+msgid "M"
+msgstr ""
+
+#: pz/models.py:33
+msgid "F"
+msgstr ""
+
+#: pz/models.py:35
+msgid "date of birth"
+msgstr ""
+
+#: pz/models.py:36
+msgid "street"
+msgstr ""
+
+#: pz/models.py:37
+msgid "building"
+msgstr ""
+
+#: pz/models.py:38
+msgid "flat"
+msgstr ""
+
+#: pz/models.py:39
+msgid "town"
+msgstr ""
+
+#: pz/models.py:40
+msgid "postal code"
+msgstr ""
+
+#: pz/models.py:41
+msgid "phone"
+msgstr ""
+
+#: pz/models.py:42
+msgid "e-mail"
+msgstr ""
+
+#: pz/models.py:43
+msgid "IBAN"
+msgstr ""
+
+#: pz/models.py:44
+msgid "is a consumer"
+msgstr ""
+
+#: pz/models.py:45
+msgid "payment identifier"
+msgstr ""
+
+#: pz/models.py:46
+msgid "agree fundraising"
+msgstr ""
+
+#: pz/models.py:47
+msgid "agree newsletter"
+msgstr ""
+
+#: pz/models.py:49
+msgid "acquisition date"
+msgstr ""
+
+#: pz/models.py:49
+msgid "Date from the form"
+msgstr ""
+
+#: pz/models.py:50
+msgid "submission date"
+msgstr ""
+
+#: pz/models.py:50
+msgid "Date the fundaiser submitted the form"
+msgstr ""
+
+#: pz/models.py:51
+msgid "bank submission date"
+msgstr ""
+
+#: pz/models.py:51
+msgid "Date when the form data is submitted to the bank"
+msgstr ""
+
+#: pz/models.py:52
+msgid "bank accepted date"
+msgstr ""
+
+#: pz/models.py:52
+msgid "Date when bank accepted the form"
+msgstr ""
+
+#: pz/models.py:55
+msgid "fundraiser commission"
+msgstr ""
+
+#: pz/models.py:56
+msgid "fundaiser bill number"
+msgstr ""
+
+#: pz/models.py:58
+msgid "amount"
+msgstr ""
+
+#: pz/models.py:60
+msgid "notes"
+msgstr ""
+
+#: pz/models.py:62
+msgid "needs redo"
+msgstr ""
+
+#: pz/models.py:63
+msgid "is cancelled"
+msgstr ""
+
+#: pz/models.py:64
+msgid "optout"
+msgstr ""
+
+#: pz/models.py:69
+msgid "direct debit"
+msgstr ""
+
+#: pz/models.py:70
+msgid "direct debits"
+msgstr ""
--- /dev/null
+# Generated by Django 2.2.19 on 2021-09-27 13:30
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ initial = True
+
+ dependencies = [
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Campaign',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('name', models.CharField(max_length=255, unique=True, verbose_name='name')),
+ ('description', models.TextField(blank=True, verbose_name='description')),
+ ],
+ options={
+ 'verbose_name': 'campaign',
+ 'verbose_name_plural': 'campaigns',
+ },
+ ),
+ migrations.CreateModel(
+ name='Fundraiser',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('name', models.CharField(max_length=255, unique=True, verbose_name='name')),
+ ],
+ options={
+ 'verbose_name': 'fundraiser',
+ 'verbose_name_plural': 'fundraisers',
+ },
+ ),
+ migrations.CreateModel(
+ name='DirectDebit',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('first_name', models.CharField(blank=True, max_length=255, verbose_name='first name')),
+ ('last_name', models.CharField(blank=True, max_length=255, verbose_name='last name')),
+ ('sex', models.CharField(blank=True, choices=[('M', 'M'), ('F', 'F')], max_length=1, verbose_name='sex')),
+ ('date_of_birth', models.DateField(blank=True, null=True, verbose_name='date of birth')),
+ ('street', models.CharField(blank=True, max_length=255, verbose_name='street')),
+ ('building', models.CharField(blank=True, max_length=255, verbose_name='building')),
+ ('flat', models.CharField(blank=True, max_length=255, verbose_name='flat')),
+ ('town', models.CharField(blank=True, max_length=255, verbose_name='town')),
+ ('postal_code', models.CharField(blank=True, max_length=255, verbose_name='postal code')),
+ ('phone', models.CharField(blank=True, max_length=255, verbose_name='phone')),
+ ('email', models.CharField(blank=True, max_length=255, verbose_name='e-mail')),
+ ('iban', models.CharField(blank=True, max_length=255, verbose_name='IBAN')),
+ ('is_consumer', models.BooleanField(default=True, verbose_name='is a consumer')),
+ ('payment_id', models.CharField(blank=True, max_length=255, unique=True, verbose_name='payment identifier')),
+ ('agree_fundraising', models.BooleanField(verbose_name='agree fundraising')),
+ ('agree_newsletter', models.BooleanField(verbose_name='agree newsletter')),
+ ('acquisition_date', models.DateField(help_text='Date from the form', verbose_name='acquisition date')),
+ ('submission_date', models.DateField(blank=True, help_text='Date the fundaiser submitted the form', null=True, verbose_name='submission date')),
+ ('bank_submission_date', models.DateField(blank=True, help_text='Date when the form data is submitted to the bank', null=True, verbose_name='bank submission date')),
+ ('bank_acceptance_date', models.DateField(blank=True, help_text='Date when bank accepted the form', null=True, verbose_name='bank accepted date')),
+ ('fundraiser_commission', models.IntegerField(blank=True, null=True, verbose_name='fundraiser commission')),
+ ('fundraiser_bill', models.CharField(blank=True, max_length=255, verbose_name='fundaiser bill number')),
+ ('amount', models.IntegerField(verbose_name='amount')),
+ ('notes', models.TextField(blank=True, verbose_name='notes')),
+ ('needs_redo', models.BooleanField(default=False, verbose_name='needs redo')),
+ ('is_cancelled', models.BooleanField(default=False, verbose_name='is cancelled')),
+ ('optout', models.BooleanField(default=False, verbose_name='optout')),
+ ('campaign', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='pz.Campaign')),
+ ('fundraiser', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='pz.Fundraiser')),
+ ],
+ options={
+ 'verbose_name': 'direct debit',
+ 'verbose_name_plural': 'direct debits',
+ },
+ ),
+ ]
--- /dev/null
+from django.db import models
+from django.utils.translation import ugettext_lazy as _
+
+
+class Campaign(models.Model):
+ name = models.CharField(_('name'), max_length=255, unique=True)
+ description = models.TextField(_('description'), blank=True)
+
+ class Meta:
+ verbose_name = _('campaign')
+ verbose_name_plural = _('campaigns')
+
+ def __str__(self):
+ return self.name
+
+
+class Fundraiser(models.Model):
+ name = models.CharField(_('name'), max_length=255, unique=True)
+
+ class Meta:
+ verbose_name = _('fundraiser')
+ verbose_name_plural = _('fundraisers')
+
+ def __str__(self):
+ return self.name
+
+
+class DirectDebit(models.Model):
+ first_name = models.CharField(_('first name'), max_length=255, blank=True)
+ last_name = models.CharField(_('last name'), max_length=255, blank=True)
+ sex = models.CharField(_('sex'), max_length=1, blank=True, choices=[
+ ('M', _('M')),
+ ('F', _('F')),
+ ])
+ date_of_birth = models.DateField(_('date of birth'), null=True, blank=True)
+ street = models.CharField(_('street'), max_length=255, blank=True)
+ building = models.CharField(_('building'), max_length=255, blank=True)
+ flat = models.CharField(_('flat'), max_length=255, blank=True)
+ town = models.CharField(_('town'), max_length=255, blank=True)
+ postal_code = models.CharField(_('postal code'), max_length=255, blank=True)
+ phone = models.CharField(_('phone'), max_length=255, blank=True)
+ email = models.CharField(_('e-mail'), max_length=255, blank=True)
+ iban = models.CharField(_('IBAN'), max_length=255, blank=True)
+ is_consumer = models.BooleanField(_('is a consumer'), default=True)
+ payment_id = models.CharField(_('payment identifier'), max_length=255, blank=True, unique=True)
+ agree_fundraising = models.BooleanField(_('agree fundraising'))
+ agree_newsletter = models.BooleanField(_('agree newsletter'))
+
+ acquisition_date = models.DateField(_('acquisition date'), help_text=_('Date from the form'))
+ submission_date = models.DateField(_('submission date'), null=True, blank=True, help_text=_('Date the fundaiser submitted the form'))
+ bank_submission_date = models.DateField(_('bank submission date'), null=True, blank=True, help_text=_('Date when the form data is submitted to the bank'))
+ bank_acceptance_date = models.DateField(_('bank accepted date'), null=True, blank=True, help_text=_('Date when bank accepted the form'))
+
+ fundraiser = models.ForeignKey(Fundraiser, models.PROTECT, blank=True, null=True, verbose_name=_('fundraiser'))
+ fundraiser_commission = models.IntegerField(_('fundraiser commission'), null=True, blank=True)
+ fundraiser_bill = models.CharField(_('fundaiser bill number'), max_length=255, blank=True)
+
+ amount = models.IntegerField(_('amount'))
+
+ notes = models.TextField(_('notes'), blank=True)
+
+ needs_redo = models.BooleanField(_('needs redo'), default=False)
+ is_cancelled = models.BooleanField(_('is cancelled'), default=False)
+ optout = models.BooleanField(_('optout'), default=False)
+
+ campaign = models.ForeignKey(Campaign, models.PROTECT, null=True, blank=True, verbose_name=_('campaign'))
+
+ class Meta:
+ verbose_name = _('direct debit')
+ verbose_name_plural = _('direct debits')
+
+ @classmethod
+ def get_next_payment_id(cls):
+ # Find the last object added.
+ last = cls.objects.order_by('-id').first()
+ if last is None:
+ return ''
+ match = re.match(r'^(.*?)(\d+)$', last.payment_id)
+ if match is None:
+ return ''
+ prefix = match.group(1)
+ number = int(match.group(2))
+ number_length = len(match.group(2))
+ while True:
+ number += 1
+ payment_id = f'{prefix}{number:0{number_length}}'
+ if not cls.objects.filter(payment_id=payment_id).exists():
+ break
+ return payment_id
+
--- /dev/null
+from django.test import TestCase
+
+# Create your tests here.
--- /dev/null
+from django.shortcuts import render
+
+# Create your views here.
'newtagging',
'opds',
'pdcounter',
+ 'pz',
'references',
'reporting',
'sponsors',