- [ ] Sending Mails
- [ ] Open311 Compliance
- [ ] Tests
+
+- [ ] Publishing and depublishing of reports
class ReportForm(ModelForm):
class Meta:
model = Report
- fields = ["title", "description", "latitude", "longitude", "category"]
+ fields = ["title", "description", "latitude", "longitude", "category", "email"]
--- /dev/null
+# 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),
+ ),
+ ]
Category, on_delete=models.RESTRICT, default=get_default_related
)
+ published = models.BooleanField(default=True)
+
+ email = models.EmailField()
+
# TODO add status
#
def __str__(self):
<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>
from django.shortcuts import get_object_or_404, render, redirect
-
+from django.http import HttpResponseForbidden
# Create your views here.
from .models import Category, Report
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):