""" 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