40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
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
|
|
|