from __future__ import absolute_import, unicode_literals import logging from django import forms from django.core.exceptions import PermissionDenied from django.utils.translation import ugettext_lazy as _ from acls.models import AccessEntry from permissions import Permission from .models import Folder from .permissions import permission_folder_view logger = logging.getLogger(__name__) class FolderForm(forms.ModelForm): class Meta: model = Folder fields = ('title',) class FolderListForm(forms.Form): def __init__(self, *args, **kwargs): user = kwargs.pop('user', None) logger.debug('user: %s', user) super(FolderListForm, self).__init__(*args, **kwargs) queryset = Folder.objects.all() try: Permission.check_permissions(user, [permission_folder_view]) except PermissionDenied: queryset = AccessEntry.objects.filter_objects_by_access(permission_folder_view, user, queryset) self.fields['folder'] = forms.ModelChoiceField( queryset=queryset, label=_('Folder'))