]> git.menne-pb.de Git - pinpoint.git/commitdiff
Add email-field and possibility to (de)publish reports
authorJörn Menne <jmenne@fedora.de>
Mon, 6 Jan 2025 10:02:03 +0000 (11:02 +0100)
committerJörn Menne <jmenne@fedora.de>
Mon, 6 Jan 2025 10:02:03 +0000 (11:02 +0100)
README.md
georeport/forms.py
georeport/migrations/0004_report_email_report_published.py [new file with mode: 0644]
georeport/models.py
georeport/templates/georeport/index.html
georeport/views.py

index ecadcc35f810516e6914c406561b97ec5cd0c064..e67b81754926dc15669bc119cfc5cd5b70aa2d41 100644 (file)
--- a/README.md
+++ b/README.md
@@ -13,3 +13,5 @@ planned upcoming Features:
 - [ ] Sending Mails
 - [ ] Open311 Compliance
 - [ ] Tests
+
+- [ ] Publishing and depublishing of reports
index e518632e95a1d74e2aa26a6570981be6b91c9931..3fe7bde3d5890167ef23156444ce6ffd2b871f1d 100644 (file)
@@ -6,4 +6,4 @@ from .models import Report
 class ReportForm(ModelForm):
     class Meta:
         model = Report
-        fields = ["title", "description", "latitude", "longitude", "category"]
+        fields = ["title", "description", "latitude", "longitude", "category", "email"]
diff --git a/georeport/migrations/0004_report_email_report_published.py b/georeport/migrations/0004_report_email_report_published.py
new file mode 100644 (file)
index 0000000..4a422ee
--- /dev/null
@@ -0,0 +1,23 @@
+# Generated by Django 5.1.4 on 2025-01-06 09:56
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ("georeport", "0003_category_alter_report_description_report_category"),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name="report",
+            name="email",
+            field=models.EmailField(default="mail@pinpoint.de", max_length=254),
+            preserve_default=False,
+        ),
+        migrations.AddField(
+            model_name="report",
+            name="published",
+            field=models.BooleanField(default=True),
+        ),
+    ]
index 507d075bb0b5a6cbe45c52c29b3ff17dec81623c..0674d1a6142c95267b1ecd3e060d316a8f0c1b9e 100644 (file)
@@ -35,6 +35,10 @@ class Report(models.Model):
         Category, on_delete=models.RESTRICT, default=get_default_related
     )
 
+    published = models.BooleanField(default=True)
+
+    email = models.EmailField()
+
     # TODO add status
     #
     def __str__(self):
index 6bb3e47167dede9d1f2ab327fadd02579a5b790d..4d4d4e3f2ca12ebf4aab7d1eeeaccac0c646a2a9 100644 (file)
@@ -6,12 +6,15 @@
 <h1>Reports </h1>
 <a href="create">New Report</a>
 <ul>
+    <!-- List with published reports -->
     {% for report in report_list %}
-        <li><a href="{{ report.id }}">{{ report.title }}</a></li>
-        <script>
-            let marker{{report.id}} = L.marker([{{report.latitude}},{{report.longitude}}]);
-            marker{{report.id}}.addTo(map);
-        </script>
+        {% if report.published %}
+            <li><a href="{{ report.id }}">{{ report.title }}</a></li>
+            <script>
+                let marker{{report.id}} = L.marker([{{report.latitude}},{{report.longitude}}]);
+                marker{{report.id}}.addTo(map);
+            </script>
+        {% endif %}
     {% endfor %}
 </ul>
 
index 0ab294266f682ac2e995d43171dd4e24df080956..083b39cbbe6453ad4177de4043c5d645fab25ec0 100644 (file)
@@ -1,5 +1,5 @@
 from django.shortcuts import get_object_or_404, render, redirect
-
+from django.http import HttpResponseForbidden
 # Create your views here.
 
 from .models import Category, Report
@@ -18,7 +18,10 @@ def index(request):
 
 def details(request, id):
     report = get_object_or_404(Report, pk=id)
-    return render(request, "georeport/detail.html", context={"report": report})
+    if report.published:
+        return render(request, "georeport/detail.html", context={"report": report})
+    else:
+        return HttpResponseForbidden("The report is not published")
 
 
 def category_details(request, id):