Payment date and comment #3
* adds payment-comment relation in NewPaymentForm * drops transfer note form field (may not be used anyway) and replace it with comment * adds/updates translations
This commit is contained in:
parent
c2fdad1ab6
commit
6ce17dd480
@ -60,12 +60,18 @@ class NewPaymentForm(BaseModalForm):
|
||||
format="%d.%m.%Y"
|
||||
)
|
||||
)
|
||||
transfer_note = forms.CharField(
|
||||
comment = forms.CharField(
|
||||
max_length=200,
|
||||
required=False,
|
||||
label=_("Comment"),
|
||||
label_suffix=_(""),
|
||||
label=_("Transfer note"),
|
||||
help_text=_("Note for money transfer")
|
||||
help_text=_("Additional comment, maximum {} letters").format(200),
|
||||
widget=forms.Textarea(
|
||||
attrs={
|
||||
"rows": 5,
|
||||
"class": "w-100"
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
@ -75,6 +81,29 @@ class NewPaymentForm(BaseModalForm):
|
||||
self.form_caption = _("Add a payment for intervention '{}'").format(self.intervention.title)
|
||||
self.add_placeholder_for_field("amount", "0,00")
|
||||
|
||||
def is_valid(self):
|
||||
"""
|
||||
Checks on form validity.
|
||||
|
||||
For this form we need to make sure that a date or a comment is set.
|
||||
If both are missing, the user needs to enter at least an explanation why
|
||||
there is no date to be entered.
|
||||
|
||||
Returns:
|
||||
is_valid (bool): True if valid, False otherwise
|
||||
"""
|
||||
super_valid = super().is_valid()
|
||||
date = self.cleaned_data["due"]
|
||||
comment = self.cleaned_data["comment"] or None
|
||||
if not date and not comment:
|
||||
# At least one needs to be set!
|
||||
self.add_error(
|
||||
"comment",
|
||||
_("If there is no date you can enter, please explain why.")
|
||||
)
|
||||
return False
|
||||
return super_valid
|
||||
|
||||
def save(self):
|
||||
with transaction.atomic():
|
||||
created_action = UserActionLogEntry.objects.create(
|
||||
@ -90,7 +119,7 @@ class NewPaymentForm(BaseModalForm):
|
||||
created=created_action,
|
||||
amount=self.cleaned_data.get("amount", -1),
|
||||
due_on=self.cleaned_data.get("due", None),
|
||||
comment=self.cleaned_data.get("transfer_note", None),
|
||||
comment=self.cleaned_data.get("comment", None),
|
||||
intervention=self.intervention,
|
||||
)
|
||||
self.intervention.log.add(edited_action)
|
||||
|
@ -44,7 +44,7 @@
|
||||
<td class="align-middle">
|
||||
{% trans deadline.type_humanized %}
|
||||
</td>
|
||||
<td class="align-middle">{{ deadline.date }}</td>
|
||||
<td class="align-middle">{{ deadline.date|default_if_none:"---" }}</td>
|
||||
<td class="align-middle">{{ deadline.comment }}</td>
|
||||
<td>
|
||||
{% if is_default_member and has_access %}
|
||||
|
@ -44,7 +44,7 @@
|
||||
<td class="align-middle">
|
||||
{% trans deadline.type_humanized %}
|
||||
</td>
|
||||
<td class="align-middle">{{ deadline.date }}</td>
|
||||
<td class="align-middle">{{ deadline.date|default_if_none:"---" }}</td>
|
||||
<td class="align-middle">{{ deadline.comment }}</td>
|
||||
<td>
|
||||
{% if is_default_member and has_access %}
|
||||
|
@ -44,7 +44,7 @@
|
||||
<td class="align-middle">
|
||||
{% trans deadline.type_humanized %}
|
||||
</td>
|
||||
<td class="align-middle">{{ deadline.date }}</td>
|
||||
<td class="align-middle">{{ deadline.date|default_if_none:"---" }}</td>
|
||||
<td class="align-middle">{{ deadline.comment }}</td>
|
||||
<td>
|
||||
{% if is_default_member and has_access %}
|
||||
|
@ -31,7 +31,7 @@
|
||||
{% trans 'Due on' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{% trans 'Transfer comment' %}
|
||||
{% trans 'Comment' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{% trans 'Action' %}
|
||||
@ -44,7 +44,7 @@
|
||||
<td class="align-middle">
|
||||
{{ pay.amount|floatformat:2 }} €
|
||||
</td>
|
||||
<td class="align-middle">{{ pay.due_on }}</td>
|
||||
<td class="align-middle">{{ pay.due_on|default_if_none:"---" }}</td>
|
||||
<td class="align-middle">{{ pay.comment }}</td>
|
||||
<td>
|
||||
{% if is_default_member and has_access %}
|
||||
|
Binary file not shown.
@ -3,20 +3,20 @@
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#: compensation/filters.py:71 compensation/forms.py:46 compensation/forms.py:51
|
||||
#: compensation/forms.py:65 compensation/forms.py:234 compensation/forms.py:314
|
||||
#: compensation/filters.py:71 compensation/forms.py:48 compensation/forms.py:53
|
||||
#: compensation/forms.py:67 compensation/forms.py:236 compensation/forms.py:331
|
||||
#: intervention/filters.py:26 intervention/filters.py:40
|
||||
#: intervention/filters.py:47 intervention/filters.py:48
|
||||
#: intervention/forms.py:322 intervention/forms.py:334
|
||||
#: intervention/forms.py:346 konova/forms.py:108 konova/forms.py:242
|
||||
#: konova/forms.py:275 konova/forms.py:280 konova/forms.py:292
|
||||
#: konova/forms.py:304 konova/forms.py:317 user/forms.py:38
|
||||
#: intervention/forms.py:346 konova/forms.py:108 konova/forms.py:252
|
||||
#: konova/forms.py:287 konova/forms.py:292 konova/forms.py:304
|
||||
#: konova/forms.py:316 konova/forms.py:329 user/forms.py:38
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-08-24 14:26+0200\n"
|
||||
"POT-Creation-Date: 2021-08-26 13:45+0200\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"
|
||||
@ -30,54 +30,48 @@ msgstr ""
|
||||
msgid "Show only unrecorded"
|
||||
msgstr "Nur unverzeichnete anzeigen"
|
||||
|
||||
#: compensation/forms.py:45 compensation/forms.py:303
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/withdraws.html:31
|
||||
#: intervention/templates/intervention/detail/includes/withdraws.html:31
|
||||
msgid "Amount"
|
||||
msgstr "Menge"
|
||||
|
||||
#: compensation/forms.py:47
|
||||
#: compensation/forms.py:49
|
||||
msgid "in Euro"
|
||||
msgstr "in Euro"
|
||||
|
||||
#: compensation/forms.py:50
|
||||
#: compensation/forms.py:52
|
||||
#: intervention/templates/intervention/detail/includes/payments.html:31
|
||||
msgid "Due on"
|
||||
msgstr "Fällig am"
|
||||
|
||||
#: compensation/forms.py:53
|
||||
#: compensation/forms.py:55
|
||||
msgid "Due on which date"
|
||||
msgstr "Zahlung wird an diesem Datum erwartet"
|
||||
|
||||
#: compensation/forms.py:66
|
||||
#: compensation/forms.py:68
|
||||
msgid "Transfer note"
|
||||
msgstr "Verwendungszweck"
|
||||
|
||||
#: compensation/forms.py:67
|
||||
#: compensation/forms.py:69
|
||||
msgid "Note for money transfer"
|
||||
msgstr "Verwendungszweck für Überweisung"
|
||||
|
||||
#: compensation/forms.py:73
|
||||
#: compensation/forms.py:75
|
||||
msgid "Payment"
|
||||
msgstr "Zahlung"
|
||||
|
||||
#: compensation/forms.py:74
|
||||
#: compensation/forms.py:76
|
||||
msgid "Add a payment for intervention '{}'"
|
||||
msgstr "Neue Ersatzzahlung zu Eingriff '{}' hinzufügen"
|
||||
|
||||
#: compensation/forms.py:86
|
||||
#: compensation/forms.py:88
|
||||
msgid "Added payment"
|
||||
msgstr "Zahlung hinzufügen"
|
||||
|
||||
#: compensation/forms.py:103 compensation/forms.py:115
|
||||
#: compensation/forms.py:105 compensation/forms.py:117
|
||||
msgid "Biotope Type"
|
||||
msgstr "Biotoptyp"
|
||||
|
||||
#: compensation/forms.py:106
|
||||
#: compensation/forms.py:108
|
||||
msgid "Select the biotope type"
|
||||
msgstr "Biotoptyp wählen"
|
||||
|
||||
#: compensation/forms.py:122
|
||||
#: compensation/forms.py:124
|
||||
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:36
|
||||
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:36
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:36
|
||||
@ -88,35 +82,35 @@ msgstr "Biotoptyp wählen"
|
||||
msgid "Surface"
|
||||
msgstr "Fläche"
|
||||
|
||||
#: compensation/forms.py:125 intervention/forms.py:476
|
||||
#: compensation/forms.py:127 intervention/forms.py:476
|
||||
msgid "in m²"
|
||||
msgstr ""
|
||||
|
||||
#: compensation/forms.py:130
|
||||
#: compensation/forms.py:132
|
||||
msgid "New state"
|
||||
msgstr "Neuer Zustand"
|
||||
|
||||
#: compensation/forms.py:131
|
||||
#: compensation/forms.py:133
|
||||
msgid "Insert data for the new state"
|
||||
msgstr "Geben Sie die Daten des neuen Zustandes ein"
|
||||
|
||||
#: compensation/forms.py:139
|
||||
#: compensation/forms.py:141
|
||||
msgid "Added state"
|
||||
msgstr "Zustand hinzugefügt"
|
||||
|
||||
#: compensation/forms.py:155 konova/forms.py:158
|
||||
#: compensation/forms.py:157 konova/forms.py:168
|
||||
msgid "Object removed"
|
||||
msgstr "Objekt entfernt"
|
||||
|
||||
#: compensation/forms.py:206
|
||||
#: compensation/forms.py:208
|
||||
msgid "Deadline Type"
|
||||
msgstr "Fristart"
|
||||
|
||||
#: compensation/forms.py:209
|
||||
#: compensation/forms.py:211
|
||||
msgid "Select the deadline type"
|
||||
msgstr "Fristart wählen"
|
||||
|
||||
#: compensation/forms.py:218
|
||||
#: compensation/forms.py:220
|
||||
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:31
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:31
|
||||
#: ema/templates/ema/detail/includes/deadlines.html:31
|
||||
@ -124,11 +118,11 @@ msgstr "Fristart wählen"
|
||||
msgid "Date"
|
||||
msgstr "Datum"
|
||||
|
||||
#: compensation/forms.py:221
|
||||
#: compensation/forms.py:223
|
||||
msgid "Select date"
|
||||
msgstr "Datum wählen"
|
||||
|
||||
#: compensation/forms.py:233 compensation/forms.py:313
|
||||
#: compensation/forms.py:235 compensation/forms.py:330
|
||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:34
|
||||
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:34
|
||||
#: compensation/templates/compensation/detail/compensation/includes/documents.html:31
|
||||
@ -141,36 +135,40 @@ msgstr "Datum wählen"
|
||||
#: intervention/forms.py:345
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:31
|
||||
#: intervention/templates/intervention/detail/includes/revocation.html:35
|
||||
#: konova/forms.py:303
|
||||
#: konova/forms.py:315
|
||||
msgid "Comment"
|
||||
msgstr "Kommentar"
|
||||
|
||||
#: compensation/forms.py:235 compensation/forms.py:315
|
||||
#: intervention/forms.py:347 konova/forms.py:305
|
||||
#: compensation/forms.py:237 compensation/forms.py:332
|
||||
#: intervention/forms.py:347 konova/forms.py:317
|
||||
msgid "Additional comment, maximum {} letters"
|
||||
msgstr "Zusätzlicher Kommentar, maximal {} Zeichen"
|
||||
|
||||
#: compensation/forms.py:246
|
||||
#: compensation/forms.py:248
|
||||
msgid "New deadline"
|
||||
msgstr "Neue Frist"
|
||||
|
||||
#: compensation/forms.py:247
|
||||
#: compensation/forms.py:249
|
||||
msgid "Insert data for the new deadline"
|
||||
msgstr "Geben Sie die Daten der neuen Frist ein"
|
||||
|
||||
#: compensation/forms.py:264
|
||||
#: compensation/forms.py:259
|
||||
msgid "If there is no date you can enter, please explain why."
|
||||
msgstr "Falls Sie kein Datum angeben können, erklären Sie bitte weshalb."
|
||||
|
||||
#: compensation/forms.py:280
|
||||
msgid "Added deadline"
|
||||
msgstr "Frist/Termin hinzugefügt"
|
||||
|
||||
#: compensation/forms.py:275
|
||||
#: compensation/forms.py:291
|
||||
msgid "Action Type"
|
||||
msgstr "Maßnahmentyp"
|
||||
|
||||
#: compensation/forms.py:278
|
||||
#: compensation/forms.py:294
|
||||
msgid "Select the action type"
|
||||
msgstr "Maßnahmentyp wählen"
|
||||
|
||||
#: compensation/forms.py:285
|
||||
#: compensation/forms.py:303
|
||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:37
|
||||
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:37
|
||||
#: compensation/templates/compensation/detail/compensation/includes/documents.html:34
|
||||
@ -196,51 +194,57 @@ msgstr "Maßnahmentyp wählen"
|
||||
msgid "Action"
|
||||
msgstr "Aktionen"
|
||||
|
||||
#: compensation/forms.py:291
|
||||
#: compensation/forms.py:308
|
||||
msgid "Unit"
|
||||
msgstr "Einheit"
|
||||
|
||||
#: compensation/forms.py:294
|
||||
#: compensation/forms.py:311
|
||||
msgid "Select the unit"
|
||||
msgstr "Einheit wählen"
|
||||
|
||||
#: compensation/forms.py:306
|
||||
#: compensation/forms.py:320
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/withdraws.html:31
|
||||
#: intervention/templates/intervention/detail/includes/withdraws.html:31
|
||||
msgid "Amount"
|
||||
msgstr "Menge"
|
||||
|
||||
#: compensation/forms.py:323
|
||||
msgid "Insert the amount"
|
||||
msgstr "Menge eingeben"
|
||||
|
||||
#: compensation/forms.py:326
|
||||
#: compensation/forms.py:343
|
||||
msgid "New action"
|
||||
msgstr "Neue Maßnahme"
|
||||
|
||||
#: compensation/forms.py:327
|
||||
#: compensation/forms.py:344
|
||||
msgid "Insert data for the new action"
|
||||
msgstr "Geben Sie die Daten der neuen Maßnahme ein"
|
||||
|
||||
#: compensation/forms.py:346
|
||||
#: compensation/forms.py:363
|
||||
msgid "Added action"
|
||||
msgstr "Maßnahme hinzugefügt"
|
||||
|
||||
#: compensation/models.py:56
|
||||
#: compensation/models.py:67
|
||||
msgid "cm"
|
||||
msgstr ""
|
||||
|
||||
#: compensation/models.py:57
|
||||
#: compensation/models.py:68
|
||||
msgid "m"
|
||||
msgstr ""
|
||||
|
||||
#: compensation/models.py:58
|
||||
#: compensation/models.py:69
|
||||
msgid "km"
|
||||
msgstr ""
|
||||
|
||||
#: compensation/models.py:59
|
||||
#: compensation/models.py:70
|
||||
msgid "m²"
|
||||
msgstr ""
|
||||
|
||||
#: compensation/models.py:60
|
||||
#: compensation/models.py:71
|
||||
msgid "ha"
|
||||
msgstr ""
|
||||
|
||||
#: compensation/models.py:61
|
||||
#: compensation/models.py:72
|
||||
msgid "Pieces"
|
||||
msgstr "Stück"
|
||||
|
||||
@ -260,7 +264,7 @@ msgstr "Kennung"
|
||||
#: intervention/tables.py:28
|
||||
#: intervention/templates/intervention/detail/includes/compensations.html:33
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:28
|
||||
#: intervention/templates/intervention/detail/view.html:31 konova/forms.py:274
|
||||
#: intervention/templates/intervention/detail/view.html:31 konova/forms.py:286
|
||||
msgid "Title"
|
||||
msgstr "Bezeichnung"
|
||||
|
||||
@ -463,7 +467,7 @@ msgstr "Dokumente"
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:14
|
||||
#: ema/templates/ema/detail/includes/documents.html:14
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:14
|
||||
#: konova/forms.py:316
|
||||
#: konova/forms.py:328
|
||||
msgid "Add new document"
|
||||
msgstr "Neues Dokument hinzufügen"
|
||||
|
||||
@ -846,7 +850,7 @@ msgstr "Datum des Widerspruchs"
|
||||
msgid "Document"
|
||||
msgstr "Dokument"
|
||||
|
||||
#: intervention/forms.py:335 konova/forms.py:293
|
||||
#: intervention/forms.py:335 konova/forms.py:305
|
||||
msgid "Must be smaller than 15 Mb"
|
||||
msgstr "Muss kleiner als 15 Mb sein"
|
||||
|
||||
@ -868,7 +872,7 @@ msgstr "Kompensationen und Zahlungen geprüft"
|
||||
msgid "Run check"
|
||||
msgstr "Prüfung vornehmen"
|
||||
|
||||
#: intervention/forms.py:411 konova/forms.py:364
|
||||
#: intervention/forms.py:411 konova/forms.py:376
|
||||
msgid ""
|
||||
"I, {} {}, confirm that all necessary control steps have been performed by "
|
||||
"myself."
|
||||
@ -1105,11 +1109,11 @@ msgstr "Hierfür müssen Sie einer anderen Nutzergruppe angehören!"
|
||||
msgid "Not editable"
|
||||
msgstr "Nicht editierbar"
|
||||
|
||||
#: konova/forms.py:107 konova/forms.py:241
|
||||
#: konova/forms.py:107 konova/forms.py:251
|
||||
msgid "Confirm"
|
||||
msgstr "Bestätige"
|
||||
|
||||
#: konova/forms.py:119 konova/forms.py:250
|
||||
#: konova/forms.py:119 konova/forms.py:260
|
||||
msgid "Remove"
|
||||
msgstr "Löschen"
|
||||
|
||||
@ -1117,44 +1121,44 @@ msgstr "Löschen"
|
||||
msgid "You are about to remove {} {}"
|
||||
msgstr "Sie sind dabei {} {} zu löschen"
|
||||
|
||||
#: konova/forms.py:251
|
||||
#: konova/forms.py:261
|
||||
msgid "Are you sure?"
|
||||
msgstr "Sind Sie sicher?"
|
||||
|
||||
#: konova/forms.py:279
|
||||
#: konova/forms.py:291
|
||||
msgid "Created on"
|
||||
msgstr "Erstellt"
|
||||
|
||||
#: konova/forms.py:281
|
||||
#: konova/forms.py:293
|
||||
msgid "When has this file been created? Important for photos."
|
||||
msgstr "Wann wurde diese Datei erstellt oder das Foto aufgenommen?"
|
||||
|
||||
#: konova/forms.py:291
|
||||
#: konova/forms.py:303
|
||||
#: venv/lib/python3.7/site-packages/django/db/models/fields/files.py:231
|
||||
msgid "File"
|
||||
msgstr "Datei"
|
||||
|
||||
#: konova/forms.py:341
|
||||
#: konova/forms.py:353
|
||||
msgid "Added document"
|
||||
msgstr "Dokument hinzugefügt"
|
||||
|
||||
#: konova/forms.py:355
|
||||
#: konova/forms.py:367
|
||||
msgid "Confirm record"
|
||||
msgstr "Verzeichnen bestätigen"
|
||||
|
||||
#: konova/forms.py:363
|
||||
#: konova/forms.py:375
|
||||
msgid "Record data"
|
||||
msgstr "Daten verzeichnen"
|
||||
|
||||
#: konova/forms.py:368
|
||||
#: konova/forms.py:380
|
||||
msgid "Confirm unrecord"
|
||||
msgstr "Entzeichnen bestätigen"
|
||||
|
||||
#: konova/forms.py:369
|
||||
#: konova/forms.py:381
|
||||
msgid "Unrecord data"
|
||||
msgstr "Daten entzeichnen"
|
||||
|
||||
#: konova/forms.py:370
|
||||
#: konova/forms.py:382
|
||||
msgid "I, {} {}, confirm that this data must be unrecorded."
|
||||
msgstr ""
|
||||
"Ich, {} {}, bestätige, dass diese Daten wieder entzeichnet werden müssen."
|
||||
@ -1307,7 +1311,7 @@ msgstr "Abbrechen"
|
||||
msgid "Save"
|
||||
msgstr "Speichern"
|
||||
|
||||
#: templates/form/generic_table_form_body.html:22
|
||||
#: templates/form/generic_table_form_body.html:23
|
||||
msgid "Fields with * are required."
|
||||
msgstr "* sind Pflichtfelder."
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user