Edit LocationGroupCategory objects in Editor

This commit is contained in:
Laura Klünder 2017-07-10 14:10:48 +02:00
parent 4a58c1afab
commit 6a6af47528
4 changed files with 10 additions and 2 deletions

View file

@ -35,6 +35,9 @@ class MapitemFormMixin(ModelForm):
self.fields['groups'].label_from_instance = lambda obj: obj.title_for_forms self.fields['groups'].label_from_instance = lambda obj: obj.title_for_forms
self.fields['groups'].queryset = LocationGroup.objects.all() self.fields['groups'].queryset = LocationGroup.objects.all()
if 'category' in self.fields:
self.fields['category'].label_from_instance = lambda obj: obj.title
# parse titles # parse titles
self.titles = None self.titles = None
if hasattr(self.instance, 'titles'): if hasattr(self.instance, 'titles'):
@ -53,6 +56,9 @@ class MapitemFormMixin(ModelForm):
self.fields.move_to_end('title_' + language, last=False) self.fields.move_to_end('title_' + language, last=False)
self.titles = titles self.titles = titles
if 'name' in self.fields:
self.fields.move_to_end('name', last=False)
self.redirect_slugs = None self.redirect_slugs = None
self.add_redirect_slugs = None self.add_redirect_slugs = None
self.remove_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', possible_fields = ['slug', 'name', 'altitude', 'category', 'width', 'groups', 'color', 'public',
'can_search', 'can_describe', 'outside', 'stuffed', 'geometry', 'can_search', 'can_describe', 'outside', 'stuffed', 'geometry',
'left', 'top', 'right', 'bottom'] '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] existing_fields = [name for name in possible_fields if name in field_names]
class EditorForm(MapitemFormMixin, ModelForm): class EditorForm(MapitemFormMixin, ModelForm):

View file

@ -44,6 +44,7 @@ urlpatterns = [
url(r'^logout$', logout_view, name='editor.logout'), 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('Level', with_list=False, explicit_edit=True))
urlpatterns.extend(add_editor_urls('LocationGroupCategory'))
urlpatterns.extend(add_editor_urls('LocationGroup')) urlpatterns.extend(add_editor_urls('LocationGroup'))
urlpatterns.extend(add_editor_urls('Source')) urlpatterns.extend(add_editor_urls('Source'))
urlpatterns.extend(add_editor_urls('Building', 'Level')) urlpatterns.extend(add_editor_urls('Building', 'Level'))

View file

@ -25,6 +25,7 @@ def main_index(request):
'levels': Level.objects.filter(on_top_of__isnull=True), 'levels': Level.objects.filter(on_top_of__isnull=True),
'can_edit': request.changeset.can_edit(request), 'can_edit': request.changeset.can_edit(request),
'child_models': [ 'child_models': [
child_model(request.changeset.wrap_model('LocationGroupCategory')),
child_model(request.changeset.wrap_model('LocationGroup')), child_model(request.changeset.wrap_model('LocationGroup')),
child_model(request.changeset.wrap_model('Source')), child_model(request.changeset.wrap_model('Source')),
], ],

View file

@ -166,7 +166,7 @@ class LocationGroupCategory(TitledMixin, models.Model):
class LocationGroup(Location, models.Model): class LocationGroup(Location, models.Model):
category = models.ForeignKey(LocationGroupCategory, related_name='groups', on_delete=models.PROTECT, 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_room = models.BooleanField(default=False, verbose_name=_('is a compiled room'))
compiled_area = models.BooleanField(default=False, verbose_name=_('is a compiled area')) compiled_area = models.BooleanField(default=False, verbose_name=_('is a compiled area'))