diff --git a/src/c3nav/editor/forms.py b/src/c3nav/editor/forms.py index 163ccbab..a82ba552 100644 --- a/src/c3nav/editor/forms.py +++ b/src/c3nav/editor/forms.py @@ -35,6 +35,9 @@ class MapitemFormMixin(ModelForm): self.fields['groups'].label_from_instance = lambda obj: obj.title_for_forms self.fields['groups'].queryset = LocationGroup.objects.all() + if 'category' in self.fields: + self.fields['category'].label_from_instance = lambda obj: obj.title + # parse titles self.titles = None if hasattr(self.instance, 'titles'): @@ -53,6 +56,9 @@ class MapitemFormMixin(ModelForm): self.fields.move_to_end('title_' + language, last=False) self.titles = titles + if 'name' in self.fields: + self.fields.move_to_end('name', last=False) + self.redirect_slugs = None self.add_redirect_slugs = None self.remove_redirect_slugs = None @@ -100,7 +106,7 @@ def create_editor_form(editor_model): possible_fields = ['slug', 'name', 'altitude', 'category', 'width', 'groups', 'color', 'public', 'can_search', 'can_describe', 'outside', 'stuffed', 'geometry', 'left', 'top', 'right', 'bottom'] - field_names = [field.name for field in editor_model._meta.get_fields()] + 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] class EditorForm(MapitemFormMixin, ModelForm): diff --git a/src/c3nav/editor/urls.py b/src/c3nav/editor/urls.py index eef6a0e3..6777a0a0 100644 --- a/src/c3nav/editor/urls.py +++ b/src/c3nav/editor/urls.py @@ -44,6 +44,7 @@ urlpatterns = [ url(r'^logout$', logout_view, name='editor.logout'), ] urlpatterns.extend(add_editor_urls('Level', with_list=False, explicit_edit=True)) +urlpatterns.extend(add_editor_urls('LocationGroupCategory')) urlpatterns.extend(add_editor_urls('LocationGroup')) urlpatterns.extend(add_editor_urls('Source')) urlpatterns.extend(add_editor_urls('Building', 'Level')) diff --git a/src/c3nav/editor/views/edit.py b/src/c3nav/editor/views/edit.py index e051bd5d..1d794d97 100644 --- a/src/c3nav/editor/views/edit.py +++ b/src/c3nav/editor/views/edit.py @@ -25,6 +25,7 @@ def main_index(request): 'levels': Level.objects.filter(on_top_of__isnull=True), 'can_edit': request.changeset.can_edit(request), 'child_models': [ + child_model(request.changeset.wrap_model('LocationGroupCategory')), child_model(request.changeset.wrap_model('LocationGroup')), child_model(request.changeset.wrap_model('Source')), ], diff --git a/src/c3nav/mapdata/models/locations.py b/src/c3nav/mapdata/models/locations.py index 8c8de5f1..2d30f2ab 100644 --- a/src/c3nav/mapdata/models/locations.py +++ b/src/c3nav/mapdata/models/locations.py @@ -166,7 +166,7 @@ class LocationGroupCategory(TitledMixin, models.Model): class LocationGroup(Location, models.Model): category = models.ForeignKey(LocationGroupCategory, related_name='groups', on_delete=models.PROTECT, - verbose_name=_('Location Group Category')) + verbose_name=_('Category')) compiled_room = models.BooleanField(default=False, verbose_name=_('is a compiled room')) compiled_area = models.BooleanField(default=False, verbose_name=_('is a compiled area'))