offer Select box in Sources editor for superusers

This commit is contained in:
Laura Klünder 2018-11-16 01:26:44 +01:00
parent 50b3479bb1
commit 0abc9a961c

View file

@ -1,13 +1,15 @@
import json import json
import operator import operator
import os
from functools import reduce from functools import reduce
from itertools import chain from itertools import chain
from django.conf import settings
from django.core.cache import cache from django.core.cache import cache
from django.core.exceptions import FieldDoesNotExist from django.core.exceptions import FieldDoesNotExist
from django.db.models import Q from django.db.models import Q
from django.forms import (BooleanField, CharField, ChoiceField, Form, ModelChoiceField, ModelForm, MultipleChoiceField, from django.forms import (BooleanField, CharField, ChoiceField, Form, ModelChoiceField, ModelForm, MultipleChoiceField,
ValidationError) Select, ValidationError)
from django.forms.widgets import HiddenInput from django.forms.widgets import HiddenInput
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from shapely.geometry.geo import mapping from shapely.geometry.geo import mapping
@ -43,6 +45,14 @@ class EditorFormBase(I18nModelFormMixin, ModelForm):
if not creating: if not creating:
self.initial['geometry'] = json.dumps(mapping(self.instance.geometry), separators=(',', ':')) self.initial['geometry'] = json.dumps(mapping(self.instance.geometry), separators=(',', ':'))
if self._meta.model.__name__ == 'Source' and self.request.user.is_superuser:
Source = self.request.changeset.wrap_model('Source')
used_names = set(Source.objects.all().values_list('name', flat=True))
all_names = set(os.listdir(settings.SOURCES_ROOT))
print(all_names)
self.fields['name'].widget = Select(choices=tuple((s, s) for s in sorted(all_names-used_names)))
if self._meta.model.__name__ == 'AccessRestriction': if self._meta.model.__name__ == 'AccessRestriction':
AccessRestrictionGroup = self.request.changeset.wrap_model('AccessRestrictionGroup') AccessRestrictionGroup = self.request.changeset.wrap_model('AccessRestrictionGroup')