edit Location Groups

This commit is contained in:
Laura Klünder 2017-05-16 17:45:56 +02:00
parent da8d29766c
commit 2a7b997980
4 changed files with 86 additions and 1 deletions

View file

@ -14,3 +14,8 @@
{% endfor %}
</div>
<div class="locationgroup">
<a href="{% url 'editor.locationgroups.list' %}" class="list-group-item">
Locationgroups
</a>
</div>

View file

@ -0,0 +1,33 @@
{% load bootstrap3 %}
{% load i18n %}
{% include 'editor/fragment_sections.html' %}
<a class="btn btn-default btn-sm pull-right" accesskey="n" href="{% url create_url %}">
{% blocktrans %}New {{ model_title }}{% endblocktrans %}
</a>
<h3>{% blocktrans %}{{ model_title_plural }}{% endblocktrans %}</h3>
<p>
</p>
<table class="table table-condensed itemtable" data-model="{{ model_name }}">
<tbody>
{% for item in objects %}
{% if forloop.counter0|divisibleby:10 %}
<tr>
<td><a href="{{ back_url }}">&laquo; {{ back_title }}</a></td>
<td></td>
</tr>
{% endif %}
<tr data-pk="{{ item.pk }}">
<td>{{ item.title }}</td>
<td><a href="{% url edit_url pk=item.pk %}">{% trans 'Edit' %}</a></td>
</tr>
{% endfor %}
<tr>
<td><a href="{{ back_url }}">&laquo; {{ back_title }}</a></td>
<td></td>
</tr>
</tbody>
</table>

View file

@ -1,10 +1,13 @@
from django.conf.urls import url
from c3nav.editor.views import edit, main_index, section_detail
from c3nav.editor.views import edit, list_objects, main_index, section_detail
urlpatterns = [
url(r'^$', main_index, name='editor.index'),
url(r'^sections/(?P<pk>[0-9]+)/$', section_detail, name='editor.section'),
url(r'^sections/(?P<pk>[0-9]+)/edit$', edit, name='editor.section.edit', kwargs={'model': 'Section'}),
url(r'^sections/create$', edit, name='editor.section.create', kwargs={'model': 'Section'}),
url(r'^locationgroups/$', list_objects, name='editor.locationgroups.list', kwargs={'model': 'LocationGroup'}),
url(r'^locationgroups/(?P<pk>[0-9]+)/$', edit, name='editor.locationgroups.edit', kwargs={'model': 'LocationGroup'}),
url(r'^locationgroups/create$', edit, name='editor.locationgroups.create', kwargs={'model': 'LocationGroup'}),
]

View file

@ -5,6 +5,7 @@ from django.core.exceptions import PermissionDenied
from django.http import HttpResponseRedirect
from django.shortcuts import get_object_or_404, redirect, render
from django.urls import reverse
from django.utils.translation import ugettext_lazy as _
from django.views.decorators.cache import never_cache
from c3nav.mapdata.models import Section
@ -77,6 +78,13 @@ def edit(request, pk=None, model=None):
'section': obj.space.section,
'back_url': reverse('editor.space', kwargs={'pk': obj.space.pk}),
})
else:
if not request.resolver_match.url_name.endswith('.edit'):
raise ValueError('url_name does not end with .edit')
ctx.update({
'back_url': reverse(request.resolver_match.url_name[:-4]+'list'),
})
if request.method == 'POST':
if obj is not None and request.POST.get('delete') == '1':
@ -118,3 +126,39 @@ def edit(request, pk=None, model=None):
})
return render(request, 'editor/edit.html', ctx)
@sidebar_view
def list_objects(request, model=None, section=None, space=None):
model = EDITOR_FORM_MODELS[model]
if not request.resolver_match.url_name.endswith('.list'):
raise ValueError('url_name does not end with .list')
# noinspection PyProtectedMember
ctx = {
'create_url': request.resolver_match.url_name[:-4]+'create',
'edit_url': request.resolver_match.url_name[:-4]+'edit',
'path': request.path,
'model_name': model.__name__.lower(),
'model_title': model._meta.verbose_name,
'model_title_plural': model._meta.verbose_name_plural,
'objects': model.objects.all().order_by('id'),
}
if space is not None:
ctx.update({
'back_url': reverse('editor.space', kwargs={'pk': space}),
'back_title': _('back to space'),
})
elif section is not None:
ctx.update({
'back_url': reverse('editor.space', kwargs={'pk': space}),
'back_title': _('back to space'),
})
else:
ctx.update({
'back_url': reverse('editor.index'),
'back_title': _('back to overview'),
})
return render(request, 'editor/list.html', ctx)