@ -1,13 +1,11 @@
from functools import wraps
from operator import itemgetter
from unicodedata import normalize as unicodedata_normalize
import hashlib
import hashlib
import logging
import logging
import os
import os
import re
import re
from functools import wraps
from operator import itemgetter
from unicodedata import normalize as unicodedata_normalize
import django_filters
import magic
from crispy_forms . helper import FormHelper
from crispy_forms . helper import FormHelper
from crispy_forms . layout import HTML , Button
from crispy_forms . layout import HTML , Button
from django import forms
from django import forms
@ -21,14 +19,23 @@ from django.db.models import Q
from django . utils import six , timezone
from django . utils import six , timezone
from django . utils . translation import ugettext_lazy as _
from django . utils . translation import ugettext_lazy as _
from django_filters . filterset import STRICTNESS
from django_filters . filterset import STRICTNESS
from easy_thumbnails import source_generators
from floppyforms import ClearableFileInput
from floppyforms import ClearableFileInput
from reversion . admin import VersionAdmin
from reversion . admin import VersionAdmin
import django_filters
import magic
from sapl . crispy_layout_mixin import SaplFormLayout , form_actions , to_row
from sapl . crispy_layout_mixin import SaplFormLayout , form_actions , to_row
from sapl . settings import BASE_DIR
from sapl . settings import BASE_DIR
sapl_logger = logging . getLogger ( BASE_DIR . name )
sapl_logger = logging . getLogger ( BASE_DIR . name )
def pil_image ( source , exif_orientation = False , * * options ) :
return source_generators . pil_image ( source , exif_orientation , * * options )
def normalize ( txt ) :
def normalize ( txt ) :
return unicodedata_normalize (
return unicodedata_normalize (
' NFKD ' , txt ) . encode ( ' ASCII ' , ' ignore ' ) . decode ( ' ASCII ' )
' NFKD ' , txt ) . encode ( ' ASCII ' , ' ignore ' ) . decode ( ' ASCII ' )