* introduces BaseDetailView * refactors detail views for EIV, KOM, OEK, EMA from function based to class based * refactors already class based HomeView to inherit from new BaseView
52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
"""
|
|
Author: Michel Peltriaux
|
|
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
|
|
Contact: michel.peltriaux@sgdnord.rlp.de
|
|
Created on: 17.09.21
|
|
|
|
"""
|
|
from uuid import UUID
|
|
|
|
from django.contrib import messages
|
|
from django.utils.translation import gettext_lazy as _
|
|
from django.http import HttpRequest, Http404
|
|
|
|
|
|
def format_german_float(num) -> str:
|
|
""" Writes a float into a string based on german float notation
|
|
|
|
10000.000 --> "10.000,00"
|
|
|
|
Args:
|
|
num (float): The number
|
|
|
|
Returns:
|
|
num (str): The number as german Gleitkommazahl
|
|
"""
|
|
return format(num, "0,.2f").replace(",", "X").replace(".", ",").replace("X", ".")
|
|
|
|
|
|
def check_user_is_in_any_group(request: HttpRequest):
|
|
"""
|
|
Checks for any group membership. Adds a message in case of having none.
|
|
|
|
"""
|
|
user = request.user
|
|
# Inform user about missing group privileges!
|
|
groups = user.groups.all()
|
|
if not groups:
|
|
messages.info(
|
|
request,
|
|
_("+++ Attention: You are not part of any group. You won't be able to create, edit or do anything. Please contact an administrator. +++")
|
|
)
|
|
return request
|
|
|
|
def check_id_is_valid_uuid(**kwargs: dict):
|
|
uuid = kwargs.get("uuid", None) or kwargs.get("id", None)
|
|
if uuid:
|
|
try:
|
|
# Check whether the id is a proper uuid or something that would break a db fetch
|
|
UUID(uuid)
|
|
except ValueError:
|
|
raise Http404
|