manager: add cell deletion

This commit is contained in:
Frédéric Péters 2014-12-08 16:55:13 +01:00
parent 6558a81639
commit 43930fe4d4
4 changed files with 38 additions and 2 deletions

View File

@ -6,7 +6,7 @@
<p>There are no options for this cell</p>
{% endif %}
<div class="buttons">
<a href="#">Delete</a> | <a class="close-button" href="#">Close</a>
<a rel="popup" href="{% url 'combo-manager-page-delete-cell' page_pk=page.id cell_pk=cell.id %}">Delete</a> | <a class="close-button" href="#">Close</a>
{% if form %}
<button class="save">Save</button>
{% endif %}

View File

@ -0,0 +1,17 @@
{% extends "combo/manager_base.html" %}
{% load i18n %}
{% block appbar %}
<h2>{{ view.model.get_verbose_name }}</h2>
{% endblock %}
{% block content %}
<form method="post">
{% csrf_token %}
{% blocktrans %}Are you sure you want to delete this?{% endblocktrans %}
<div class="buttons">
<button>{% trans 'Confirm Deletion' %}</button>
<a class="cancel" href="{{ object.get_absolute_url }}">{% trans 'Cancel' %}</a>
</div>
</form>
{% endblock %}

View File

@ -31,6 +31,8 @@ urlpatterns = patterns('combo.views',
name='combo-manager-page-add-cell'),
url(r'^pages/(?P<page_pk>\w+)/cell/(?P<cell_pk>\w+)/$', views.page_edit_cell,
name='combo-manager-page-edit-cell'),
url(r'^pages/(?P<page_pk>\w+)/cell/(?P<cell_pk>\w+)/delete$', views.page_delete_cell,
name='combo-manager-page-delete-cell'),
url(r'^pages/(?P<page_pk>\w+)/order$', views.cell_order,
name='combo-manager-cell-order'),
(r'^ckeditor/', include('ckeditor.urls')),

View File

@ -21,7 +21,7 @@ from django.forms import models as model_forms
from django.http import HttpResponse, Http404
from django.views.decorators.csrf import requires_csrf_token
from django.views.generic import (TemplateView, RedirectView, DetailView,
CreateView, UpdateView, ListView)
CreateView, UpdateView, ListView, DeleteView)
from combo.data.models import Page, CellBase
@ -125,6 +125,23 @@ class PageEditCellView(UpdateView):
page_edit_cell = PageEditCellView.as_view()
class PageDeleteCellView(DeleteView):
template_name = 'combo/generic_confirm_delete.html'
def get_object(self, queryset=None):
page_pk = self.kwargs.get('page_pk')
cell_pk = self.kwargs.get('cell_pk')
try:
return CellBase.objects.get_subclass(id=cell_pk, page_id=page_pk)
except CellBase.DoesNotExist:
raise Http404()
def get_success_url(self):
return reverse('combo-manager-page-view', kwargs={'pk': self.kwargs.get('page_pk')})
page_delete_cell = PageDeleteCellView.as_view()
def cell_order(request, page_pk):
for cell in CellBase.objects.filter(page_id=page_pk):
old_order = cell.order