diff --git a/src/c3nav/editor/forms.py b/src/c3nav/editor/forms.py index 334b3164..e60e2024 100644 --- a/src/c3nav/editor/forms.py +++ b/src/c3nav/editor/forms.py @@ -135,6 +135,10 @@ class EditorFormBase(I18nModelFormMixin, ModelForm): self.fields['access_restriction'].label_from_instance = lambda obj: obj.title self.fields['access_restriction'].queryset = AccessRestriction.qs_for_request(self.request) + if 'base_mapdata_accessible' in self.fields: + if not request.user.is_superuser: + self.fields['base_mapdata_accessible'].disabled = True + if space_id and 'target_space' in self.fields: Space = self.request.changeset.wrap_model('Space') @@ -256,7 +260,7 @@ def create_editor_form(editor_model): 'outside', 'can_search', 'can_describe', 'geometry', 'single', 'altitude', 'short_label', 'origin_space', 'target_space', 'data', 'comment', 'slow_down_factor', 'extra_seconds', 'speed', 'description', 'speed_up', 'description_up', 'enter_description', - 'level_change_description', + 'level_change_description', 'base_mapdata_accessible', 'allow_levels', 'allow_spaces', 'allow_areas', 'allow_pois', 'left', 'top', 'right', 'bottom'] field_names = [field.name for field in editor_model._meta.get_fields() if not field.one_to_many] existing_fields = [name for name in possible_fields if name in field_names] diff --git a/src/c3nav/mapdata/migrations/0071_space_base_mapdata_accessible.py b/src/c3nav/mapdata/migrations/0071_space_base_mapdata_accessible.py new file mode 100644 index 00000000..822a24d8 --- /dev/null +++ b/src/c3nav/mapdata/migrations/0071_space_base_mapdata_accessible.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1.1 on 2018-11-20 22:00 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('mapdata', '0070_auto_20180918_1736'), + ] + + operations = [ + migrations.AddField( + model_name='space', + name='base_mapdata_accessible', + field=models.BooleanField(default=False, verbose_name='always accessible (overwrites base mapdata setting)'), + ), + ] diff --git a/src/c3nav/mapdata/models/geometry/level.py b/src/c3nav/mapdata/models/geometry/level.py index 3fa51773..7f059df9 100644 --- a/src/c3nav/mapdata/models/geometry/level.py +++ b/src/c3nav/mapdata/models/geometry/level.py @@ -114,6 +114,8 @@ class Space(LevelGeometryMixin, SpecificLocation, models.Model): validators=[MinValueValidator(Decimal('0'))]) outside = models.BooleanField(default=False, verbose_name=_('only outside of building')) enter_description = I18nField(_('Enter description'), blank=True, fallback_language=None) + base_mapdata_accessible = models.BooleanField(default=False, + verbose_name=_('always accessible (overwrites base mapdata setting)')) class Meta: verbose_name = _('Space')