import re from django.contrib.auth import get_user_model from django.contrib.auth.decorators import permission_required, user_passes_test from django.contrib.auth.models import AnonymousUser import personalni.models as m from various.utils import bez_diakritiky_translate org_required = permission_required('auth.org') resitel_required = permission_required('auth.resitel') # inspirováno django.contrib.auth.decorators permission_required def check_perms(user): if user.has_perms(('auth.resitel',)): return True if user.has_perms(('auth.org',)): return True return False resitel_or_org_required = user_passes_test(check_perms) User = get_user_model() # Není to úplně hezké, ale budeme doufat, že to je funkční... User.je_org = property(lambda self: self.has_perm('auth.org')) User.je_resitel = property(lambda self: self.has_perm('auth.resitel')) AnonymousUser.je_org = False AnonymousUser.je_resitel = False def normalizuj_jmeno(o: m.Osoba) -> str: # FIXME: Možná není potřeba vázat na model? cele_jmeno = f'{o.jmeno} {o.prijmeni}' cele_jmeno = cele_jmeno.translate(bez_diakritiky_translate) cele_jmeno = re.sub(r'[^a-zA-Z- ]', '', cele_jmeno) return cele_jmeno