* refactors qr code generating into class * refactors usage of former qr code method calls
82 lines
2.7 KiB
Python
82 lines
2.7 KiB
Python
"""
|
|
Author: Michel Peltriaux
|
|
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
|
|
Contact: ksp-servicestelle@sgdnord.rlp.de
|
|
Created on: 19.08.22
|
|
|
|
"""
|
|
from django.http import HttpRequest, HttpResponse
|
|
from django.shortcuts import get_object_or_404, render
|
|
from django.urls import reverse
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from intervention.models import Intervention
|
|
from konova.contexts import BaseContext
|
|
from konova.forms import SimpleGeomForm
|
|
from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER
|
|
from konova.utils.qrcode import QrCode
|
|
from konova.views.report import AbstractPublicReportView
|
|
|
|
|
|
class InterventionPublicReportView(AbstractPublicReportView):
|
|
_TEMPLATE = "intervention/report/report.html"
|
|
|
|
def get(self, request: HttpRequest, id: str, *args, **kwargs) -> HttpResponse:
|
|
""" Renders the public report view
|
|
|
|
Args:
|
|
request (HttpRequest): The incoming request
|
|
id (str): The id of the intervention
|
|
|
|
Returns:
|
|
|
|
"""
|
|
intervention = get_object_or_404(Intervention, id=id)
|
|
|
|
tab_title = _("Report {}").format(intervention.identifier)
|
|
# If intervention is not recorded (yet or currently) we need to render another template without any data
|
|
if not intervention.is_ready_for_publish():
|
|
template = "report/unavailable.html"
|
|
context = {
|
|
TAB_TITLE_IDENTIFIER: tab_title,
|
|
}
|
|
context = BaseContext(request, context).context
|
|
return render(request, template, context)
|
|
|
|
# Prepare data for map viewer
|
|
geom_form = SimpleGeomForm(
|
|
instance=intervention
|
|
)
|
|
parcels = intervention.get_underlying_parcels()
|
|
|
|
distinct_deductions = intervention.deductions.all().distinct(
|
|
"account"
|
|
)
|
|
|
|
qrcode = QrCode(
|
|
content=request.build_absolute_uri(reverse("intervention:report", args=(id,))),
|
|
size=10
|
|
)
|
|
qrcode_lanis = QrCode(
|
|
content=intervention.get_LANIS_link(),
|
|
size=7
|
|
)
|
|
|
|
context = {
|
|
"obj": intervention,
|
|
"deductions": distinct_deductions,
|
|
"qrcode": {
|
|
"img": qrcode.get_img(),
|
|
"url": qrcode.get_content(),
|
|
},
|
|
"qrcode_lanis": {
|
|
"img": qrcode_lanis.get_img(),
|
|
"url": qrcode_lanis.get_content(),
|
|
},
|
|
"geom_form": geom_form,
|
|
"parcels": parcels,
|
|
"tables_scrollable": False,
|
|
TAB_TITLE_IDENTIFIER: tab_title,
|
|
}
|
|
context = BaseContext(request, context).context
|
|
return render(request, self._TEMPLATE, context) |