add support for intermediate levels

This commit is contained in:
Laura Klünder 2016-12-04 01:49:49 +01:00
parent 834d6f0064
commit a1ed7534d9
8 changed files with 213 additions and 67 deletions

View file

@ -54,6 +54,7 @@ class MapitemFormMixin(ModelForm):
if 'levels' in self.fields:
# set field_name
self.fields['levels'].to_field_name = 'name'
self.fields['levels'].queryset = self.fields['levels'].queryset.order_by('altitude')
if 'geometry' in self.fields:
# hide geometry widget
@ -91,7 +92,8 @@ class MapitemFormMixin(ModelForm):
def create_editor_form(mapitemtype):
possible_fields = ['name', 'package', 'level', 'levels', 'geometry', 'height', 'elevator', 'button']
possible_fields = ['name', 'package', 'altitude', 'level', 'intermediate', 'levels', 'geometry',
'height', 'elevator', 'button']
existing_fields = [field for field in possible_fields if hasattr(mapitemtype, field)]
class EditorForm(MapitemFormMixin, ModelForm):

View file

@ -20,6 +20,12 @@
{% if has_levels %}
<td>{% for level in item.levels.all %}{% if not forloop.first %}, {% endif %}<a href="" data-level-link="{{ level.name }}">{{ level.name }}</a>{% endfor %}</td>
{% endif %}
{% if has_altitude %}
<td>{{ item.altitude }} m</td>
{% endif %}
{% if has_intermediate %}
<td>{% if item.intermediate %}intermediate{% endif %}</td>
{% endif %}
<td><a href="{% url 'editor.mapitems.edit' mapitem_type=mapitem_type name=item.name %}">Edit</a></td>
</tr>
{% endfor %}

View file

@ -47,7 +47,7 @@ def list_mapitems(request, mapitem_type, level=None):
elif not has_level and level is not None:
return redirect('editor.mapitems', mapitem_type=mapitem_type)
queryset = mapitemtype.objects.all()
queryset = mapitemtype.objects.all().order_by('name')
if level is not None:
if hasattr(mapitemtype, 'level'):
queryset = queryset.filter(level__name=level)
@ -60,6 +60,8 @@ def list_mapitems(request, mapitem_type, level=None):
'has_level': level is not None,
'has_elevator': hasattr(mapitemtype, 'elevator'),
'has_levels': hasattr(mapitemtype, 'levels'),
'has_altitude': hasattr(mapitemtype, 'altitude'),
'has_intermediate': hasattr(mapitemtype, 'intermediate'),
'level': level,
'items': filter_queryset_by_package_access(request, queryset),
})