diff --git a/compensation/models.py b/compensation/models.py index 28d34edc..d7625d1e 100644 --- a/compensation/models.py +++ b/compensation/models.py @@ -89,6 +89,9 @@ class Compensation(BaseObject): geometry = models.ForeignKey(Geometry, null=True, blank=True, on_delete=models.SET_NULL) documents = models.ManyToManyField("konova.Document", blank=True) + # Holds which intervention is simply a newer version of this dataset + next_version = models.ForeignKey("Compensation", null=True, blank=True, on_delete=models.DO_NOTHING) + intervention = models.ForeignKey( Intervention, on_delete=models.CASCADE, diff --git a/konova/templates/konova/home.html b/konova/templates/konova/home.html index 593c6cf4..15fb65da 100644 --- a/konova/templates/konova/home.html +++ b/konova/templates/konova/home.html @@ -1,5 +1,5 @@ {% extends 'base.html' %} -{% load i18n fontawesome_5 %} +{% load i18n fontawesome_5 humanize %} {% block body %} {% include 'news/dashboard-news.html' %} @@ -21,11 +21,11 @@
{% trans 'Total' %}
-
{{total_intervention_count}}
+
{{total_intervention_count|intcomma}}
-
{% trans 'Your own' %}
-
{{user_intervention_count}}
+
{% trans 'Shared with you' %}
+
{{user_intervention_count|intcomma}}
@@ -59,11 +59,11 @@
{% trans 'Total' %}
-
{{total_compensation_count}}
+
{{total_compensation_count|intcomma}}
-
{% trans 'Your own' %}
-
{{user_compensation_count}}
+
{% trans 'Shared with you' %}
+
{{user_compensation_count|intcomma}}
@@ -98,11 +98,11 @@
{% trans 'Total' %}
-
{{total_eco_count}}
+
{{total_eco_count|intcomma}}
-
{% trans 'Your own' %}
-
{{user_eco_count}}
+
{% trans 'Shared with you' %}
+
{{user_eco_count|intcomma}}
diff --git a/konova/views.py b/konova/views.py index 551b292d..df11a1e0 100644 --- a/konova/views.py +++ b/konova/views.py @@ -13,6 +13,8 @@ from django.shortcuts import redirect, render, get_object_or_404 from django.utils import timezone from django.utils.translation import gettext_lazy as _ +from compensation.models import Compensation, EcoAccount +from intervention.models import Intervention from konova.contexts import BaseContext from konova.forms import RemoveModalForm from konova.models import Document @@ -47,6 +49,8 @@ def home_view(request: HttpRequest): """ template = "konova/home.html" now = timezone.now() + user = request.user + # Fetch the four newest active and published ServerMessages msgs = ServerMessage.objects.filter( is_active=True, @@ -56,14 +60,43 @@ def home_view(request: HttpRequest): "-publish_on" )[:4] + # First fetch all valid objects (undeleted, only newest versions) + interventions = Intervention.objects.filter( + deleted_on=None, + deleted_by=None, + next_version=None, + ) + # Then fetch only user related ones + user_interventions = interventions.filter( + users__in=[user] + ) + + # Repeat for other objects + comps = Compensation.objects.filter( + deleted_on=None, + deleted_by=None, + next_version=None, + ) + user_comps = comps.filter( + users__in=[user] + ) + eco_accs = EcoAccount.objects.filter( + deleted_on=None, + deleted_by=None, + next_version=None, + ) + user_ecco_accs = eco_accs.filter( + users__in=[user] + ) + additional_context = { "msgs": msgs, - "total_intervention_count": 123, - "user_intervention_count": 5, - "total_compensation_count": 123, - "user_compensation_count": 5, - "total_eco_count": 123, - "user_eco_count": 5, + "total_intervention_count": interventions.count(), + "user_intervention_count": user_interventions.count(), + "total_compensation_count": comps.count(), + "user_compensation_count": user_comps.count(), + "total_eco_count": eco_accs.count(), + "user_eco_count": user_ecco_accs.count(), } context = BaseContext(request, additional_context).context return render(request, template, context) diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index acf03ddb..67390c8e 100644 Binary files a/locale/de/LC_MESSAGES/django.mo and b/locale/de/LC_MESSAGES/django.mo differ diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index f68d970d..615a0a78 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -3,16 +3,17 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # -#: compensation/forms.py:26 compensation/forms.py:32 compensation/forms.py:45 +#: compensation/forms.py:27 compensation/forms.py:32 compensation/forms.py:45 #: intervention/filters.py:25 intervention/filters.py:31 -#: intervention/filters.py:38 intervention/filters.py:39 konova/forms.py:73 -#: konova/forms.py:149 konova/forms.py:172 user/forms.py:38 +#: intervention/filters.py:38 intervention/filters.py:39 konova/forms.py:78 +#: konova/forms.py:154 konova/forms.py:181 konova/forms.py:186 +#: konova/forms.py:198 konova/forms.py:209 konova/forms.py:222 user/forms.py:38 #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-07-26 10:44+0200\n" +"POT-Creation-Date: 2021-07-28 08:48+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,16 +23,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: compensation/forms.py:25 -#: intervention/templates/intervention/detail-view.html:227 +#: compensation/forms.py:26 +#: intervention/templates/intervention/detail/related-objects.html:78 msgid "Amount" msgstr "Betrag" -#: compensation/forms.py:27 +#: compensation/forms.py:28 msgid "Amount in Euro" msgstr "Betrag in Euro" #: compensation/forms.py:31 +#: intervention/templates/intervention/detail/related-objects.html:81 msgid "Due on" msgstr "Fällig am" @@ -47,29 +49,29 @@ msgstr "Verwendungszweck" msgid "Note for money transfer" msgstr "Verwendungszweck für Überweisung" -#: compensation/forms.py:55 +#: compensation/forms.py:54 msgid "Payment" msgstr "Zahlung" -#: compensation/forms.py:56 +#: compensation/forms.py:55 msgid "Add a payment for intervention '{}'" msgstr "Neue Ersatzzahlung zu Eingriff '{}' hinzufügen" #: compensation/tables.py:18 compensation/tables.py:71 intervention/forms.py:26 #: intervention/tables.py:23 -#: intervention/templates/intervention/detail-view.html:179 +#: intervention/templates/intervention/detail/related-objects.html:30 msgid "Identifier" msgstr "Kennung" #: compensation/tables.py:23 compensation/tables.py:76 intervention/forms.py:33 #: intervention/tables.py:28 -#: intervention/templates/intervention/detail-view.html:62 -#: intervention/templates/intervention/detail-view.html:182 -#: intervention/templates/intervention/detail-view.html:287 +#: intervention/templates/intervention/detail/related-documents.html:28 +#: intervention/templates/intervention/detail/related-objects.html:33 +#: intervention/templates/intervention/detail/view.html:62 konova/forms.py:180 msgid "Title" msgstr "Bezeichnung" -#: compensation/tables.py:28 compensation/tables.py:81 +#: compensation/tables.py:28 compensation/tables.py:81 konova/forms.py:185 msgid "Created on" msgstr "Erstellt" @@ -78,7 +80,7 @@ msgid "Actions" msgstr "Aktionen" #: compensation/tables.py:44 -#: intervention/templates/intervention/detail-view.html:159 +#: intervention/templates/intervention/detail/related-objects.html:10 msgid "Compensations" msgstr "Kompensationen" @@ -110,7 +112,8 @@ msgstr "Ökokonten" msgid "Payment added" msgstr "Zahlung hinzugefügt" -#: compensation/views.py:142 compensation/views.py:180 konova/views.py:137 +#: compensation/views.py:142 compensation/views.py:180 +#: intervention/views.py:101 konova/views.py:153 msgid "There was an error on this form." msgstr "Es gab einen Fehler im Formular." @@ -147,7 +150,7 @@ msgid "Which intervention type is this" msgstr "Welcher Eingriffstyp" #: intervention/forms.py:44 -#: intervention/templates/intervention/detail-view.html:70 +#: intervention/templates/intervention/detail/view.html:70 msgid "Law" msgstr "Gesetz" @@ -156,7 +159,7 @@ msgid "Based on which law" msgstr "Basiert auf welchem Recht" #: intervention/forms.py:50 -#: intervention/templates/intervention/detail-view.html:90 +#: intervention/templates/intervention/detail/view.html:90 msgid "Intervention handler" msgstr "Eingriffsverursacher" @@ -205,12 +208,12 @@ msgid "Edit intervention" msgstr "Eingriff bearbeiten" #: intervention/tables.py:33 -#: intervention/templates/intervention/detail-view.html:94 +#: intervention/templates/intervention/detail/view.html:94 msgid "Checked" msgstr "Geprüft" #: intervention/tables.py:39 -#: intervention/templates/intervention/detail-view.html:108 +#: intervention/templates/intervention/detail/view.html:108 msgid "Recorded" msgstr "Verzeichnet" @@ -227,7 +230,7 @@ msgid "Interventions" msgstr "Eingriffe" #: intervention/tables.py:92 intervention/tables.py:170 -#: intervention/templates/intervention/detail-view.html:12 +#: intervention/templates/intervention/detail/view.html:12 #: konova/templates/konova/home.html:11 templates/navbar.html:22 msgid "Intervention" msgstr "Eingriff" @@ -256,125 +259,131 @@ msgstr "Für Sie freigegeben - Datensatz kann bearbeitet werden" msgid "Access not granted" msgstr "Nicht freigegeben - Datensatz nur lesbar" -#: intervention/templates/intervention/detail-view.html:17 +#: intervention/templates/intervention/detail/related-documents.html:10 +msgid "Documents" +msgstr "Dokumente" + +#: intervention/templates/intervention/detail/related-documents.html:15 +#: konova/forms.py:221 +msgid "Add new document" +msgstr "Neues Dokument hinzufügen" + +#: intervention/templates/intervention/detail/related-documents.html:31 +#: konova/forms.py:208 +msgid "Comment" +msgstr "Kommentar" + +#: intervention/templates/intervention/detail/related-documents.html:34 +#: intervention/templates/intervention/detail/related-objects.html:87 +msgid "Action" +msgstr "Aktionen" + +#: intervention/templates/intervention/detail/related-documents.html:48 +msgid "Remove document" +msgstr "Dokument löschen" + +#: intervention/templates/intervention/detail/related-objects.html:15 +msgid "Add new compensation" +msgstr "Neue Kompensation hinzufügen" + +#: intervention/templates/intervention/detail/related-objects.html:60 +msgid "Payments" +msgstr "Ersatzzahlungen" + +#: intervention/templates/intervention/detail/related-objects.html:65 +msgid "Add new payment" +msgstr "Neue Zahlung hinzufügen" + +#: intervention/templates/intervention/detail/related-objects.html:84 +msgid "Transfer comment" +msgstr "Verwendungszweck" + +#: intervention/templates/intervention/detail/related-objects.html:102 +msgid "Remove payment" +msgstr "Zahlung entfernen" + +#: intervention/templates/intervention/detail/view.html:17 msgid "Open in LANIS" msgstr "In LANIS öffnen" -#: intervention/templates/intervention/detail-view.html:22 +#: intervention/templates/intervention/detail/view.html:22 msgid "Public report" msgstr "Öffentlicher Bericht" -#: intervention/templates/intervention/detail-view.html:28 +#: intervention/templates/intervention/detail/view.html:28 msgid "Share" msgstr "Freigabe" -#: intervention/templates/intervention/detail-view.html:33 +#: intervention/templates/intervention/detail/view.html:33 msgid "Run check" msgstr "Prüfung vornehmen" -#: intervention/templates/intervention/detail-view.html:38 +#: intervention/templates/intervention/detail/view.html:38 msgid "Record" msgstr "Verzeichnen" -#: intervention/templates/intervention/detail-view.html:43 +#: intervention/templates/intervention/detail/view.html:43 msgid "Edit" msgstr "Bearbeiten" -#: intervention/templates/intervention/detail-view.html:48 +#: intervention/templates/intervention/detail/view.html:48 #: venv/lib/python3.7/site-packages/django/forms/formsets.py:391 msgid "Delete" msgstr "Löschen" -#: intervention/templates/intervention/detail-view.html:66 +#: intervention/templates/intervention/detail/view.html:66 msgid "Process type" msgstr "Verfahrenstyp" -#: intervention/templates/intervention/detail-view.html:74 +#: intervention/templates/intervention/detail/view.html:74 msgid "Registration office" msgstr "Zulassungsbehörde" -#: intervention/templates/intervention/detail-view.html:78 +#: intervention/templates/intervention/detail/view.html:78 msgid "Registration office file number" msgstr "Aktenzeichen Zulassungsbehörde" -#: intervention/templates/intervention/detail-view.html:82 +#: intervention/templates/intervention/detail/view.html:82 msgid "Conservation office" msgstr "Naturschutzbehörde" -#: intervention/templates/intervention/detail-view.html:86 +#: intervention/templates/intervention/detail/view.html:86 msgid "Conversation office file number" msgstr "Aktenzeichen Naturschutzbehörde" -#: intervention/templates/intervention/detail-view.html:122 +#: intervention/templates/intervention/detail/view.html:122 msgid "Registration date" msgstr "Datum Zulassung bzw. Satzungsbeschluss" -#: intervention/templates/intervention/detail-view.html:126 +#: intervention/templates/intervention/detail/view.html:126 msgid "Binding on" msgstr "Datum Bestandskraft" -#: intervention/templates/intervention/detail-view.html:130 +#: intervention/templates/intervention/detail/view.html:130 msgid "Last modified" msgstr "Zuletzt bearbeitet" -#: intervention/templates/intervention/detail-view.html:134 +#: intervention/templates/intervention/detail/view.html:134 msgid "by" msgstr "von" -#: intervention/templates/intervention/detail-view.html:143 +#: intervention/templates/intervention/detail/view.html:143 msgid "No geometry added, yet." msgstr "Keine Geometrie vorhanden" -#: intervention/templates/intervention/detail-view.html:164 -msgid "Add new compensation" -msgstr "Neue Kompensation hinzufügen" - -#: intervention/templates/intervention/detail-view.html:209 -msgid "Payments" -msgstr "Ersatzzahlungen" - -#: intervention/templates/intervention/detail-view.html:214 -msgid "Add new payment" -msgstr "Neue Zahlung hinzufügen" - -#: intervention/templates/intervention/detail-view.html:230 -msgid "Transfer comment" -msgstr "Verwendungszweck" - -#: intervention/templates/intervention/detail-view.html:233 -#: intervention/templates/intervention/detail-view.html:293 -msgid "Action" -msgstr "Aktionen" - -#: intervention/templates/intervention/detail-view.html:247 -msgid "Remove payment" -msgstr "Zahlung entfernen" - -#: intervention/templates/intervention/detail-view.html:267 -msgid "Documents" -msgstr "Dokumente" - -#: intervention/templates/intervention/detail-view.html:272 -msgid "Add new document" -msgstr "Neues Dokument hinzufügen" - -#: intervention/templates/intervention/detail-view.html:290 -msgid "Comment" -msgstr "Kommentar" - -#: intervention/templates/intervention/detail-view.html:307 konova/forms.py:180 -msgid "Remove document" -msgstr "Dokument löschen" - #: intervention/views.py:62 msgid "Intervention {} added" msgstr "Eingriff {} hinzugefügt" -#: intervention/views.py:65 intervention/views.py:128 +#: intervention/views.py:65 intervention/views.py:166 msgid "Invalid input" msgstr "Eingabe fehlerhaft" -#: intervention/views.py:102 +#: intervention/views.py:94 +msgid "Document '{}' added" +msgstr "Dokument '{}' hinzugefügt" + +#: intervention/views.py:140 msgid "" "Remember: This data has not been shared with you, yet. This means you can " "only read but can not edit or perform any actions like running a check or " @@ -384,7 +393,7 @@ msgstr "" "bedeutet, dass Sie nur lesenden Zugriff hierauf haben und weder bearbeiten, " "noch Prüfungen durchführen oder verzeichnen können." -#: intervention/views.py:125 +#: intervention/views.py:163 msgid "{} edited" msgstr "{} bearbeitet" @@ -400,29 +409,42 @@ msgstr "Hierfür müssen Sie Administrator sein!" msgid "You need to be part of another user group." msgstr "Hierfür müssen Sie einer anderen Nutzergruppe angehören!" -#: konova/forms.py:46 +#: konova/forms.py:51 msgid "Not editable" msgstr "Nicht editierbar" -#: konova/forms.py:72 konova/forms.py:148 konova/forms.py:171 +#: konova/forms.py:77 konova/forms.py:153 msgid "Confirm" msgstr "Bestätige" -#: konova/forms.py:84 konova/forms.py:156 +#: konova/forms.py:89 konova/forms.py:162 msgid "Remove" msgstr "Löschen" -#: konova/forms.py:86 +#: konova/forms.py:91 msgid "You are about to remove {} {}" msgstr "Sie sind dabei {} {} zu löschen" -#: konova/forms.py:157 +#: konova/forms.py:163 msgid "Are you sure?" msgstr "" -#: konova/forms.py:181 -msgid "This will remove '{}'. Are you sure?" -msgstr "Hiermit wird '{}' gelöscht. Sind Sie sicher?" +#: konova/forms.py:187 +msgid "When has this file been created? Important for photos." +msgstr "" + +#: konova/forms.py:197 +#: venv/lib/python3.7/site-packages/django/db/models/fields/files.py:231 +msgid "File" +msgstr "" + +#: konova/forms.py:199 +msgid "Must be smaller than 15 Mb" +msgstr "" + +#: konova/forms.py:210 +msgid "Additional comment on this file" +msgstr "Zusätzlicher Kommentar" #: konova/management/commands/setup_data.py:42 msgid "On new related data" @@ -455,8 +477,8 @@ msgstr "Insgesamt" #: konova/templates/konova/home.html:27 konova/templates/konova/home.html:65 #: konova/templates/konova/home.html:104 -msgid "Your own" -msgstr "Eigene" +msgid "Shared with you" +msgstr "Für Sie freigegeben" #: konova/templates/konova/home.html:35 konova/templates/konova/home.html:73 #: konova/templates/konova/home.html:114 @@ -476,7 +498,7 @@ msgstr "Ökokonto" msgid "Withdraw" msgstr "Abbuchen" -#: konova/views.py:131 +#: konova/views.py:147 msgid "Document '{}' deleted" msgstr "Dokument '{}' gelöscht" @@ -1045,10 +1067,6 @@ msgstr "" msgid "Universally unique identifier" msgstr "" -#: venv/lib/python3.7/site-packages/django/db/models/fields/files.py:231 -msgid "File" -msgstr "" - #: venv/lib/python3.7/site-packages/django/db/models/fields/files.py:379 msgid "Image" msgstr "" @@ -1848,15 +1866,18 @@ msgstr "" msgid "A fontawesome icon field" msgstr "" +#~ msgid "This will remove '{}'. Are you sure?" +#~ msgstr "Hiermit wird '{}' gelöscht. Sind Sie sicher?" + +#~ msgid "Your own" +#~ msgstr "Eigene" + #~ msgid "Default" #~ msgstr "Standard" #~ msgid "Quickstart" #~ msgstr "Schnellstart" -#~ msgid "Proceed with login" -#~ msgstr "Mit Login fortfahren" - #~ msgid "Logged in as" #~ msgstr "Eingeloggt als" @@ -2022,9 +2043,6 @@ msgstr "" #~ msgid "Current role" #~ msgstr "Aktuelle Rolle" -#~ msgid "Additional comment" -#~ msgstr "Zusätzlicher Kommentar" - #~ msgid "Object title" #~ msgstr "Objekt Titel"