diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-05-18 20:33:35 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-05-18 20:33:35 +0200 |
commit | 95ac7dd7492eb0d469f84deacfa88e84d442c203 (patch) | |
tree | fd9aff4560f47467006257c9a601500cb6538034 | |
parent | 3a81d40b69a7f86731d45ac73188eed63fc14c77 (diff) | |
download | Ishtar-95ac7dd7492eb0d469f84deacfa88e84d442c203.tar.bz2 Ishtar-95ac7dd7492eb0d469f84deacfa88e84d442c203.zip |
Delete basket
-rw-r--r-- | archaeological_finds/forms.py | 20 | ||||
-rw-r--r-- | archaeological_finds/urls.py | 3 | ||||
-rw-r--r-- | archaeological_finds/views.py | 19 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/form_delete.html | 14 |
4 files changed, 52 insertions, 4 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 2b3586979..3c06af375 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -411,6 +411,26 @@ class NewFindBasketForm(forms.ModelForm): self.instance.user = self.user return super(NewFindBasketForm, self).save(commit) + +class DeleteFindBasketForm(forms.Form): + basket = forms.ChoiceField(label=_(u"Basket"), required=True, choices=[]) + + def __init__(self, *args, **kwargs): + self.user = kwargs.pop('user') + super(DeleteFindBasketForm, self).__init__(*args, **kwargs) + self.fields['basket'].choices = [('', '--')] + [ + (b.pk, unicode(b)) + for b in models.FindBasket.objects.filter(user=self.user)] + + def save(self): + try: + models.FindBasket.objects.get(pk=self.cleaned_data['basket'], + user=self.user).delete() + except models.FindBasket.DoesNotExist: + # something strange... TODO: log it + pass + return + """ #################################### # Source management for treatments # diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py index bbf9aa976..12c8c0b25 100644 --- a/archaeological_finds/urls.py +++ b/archaeological_finds/urls.py @@ -58,6 +58,9 @@ urlpatterns = patterns( url(r'^find_basket_creation/$', check_rights(['change_find', 'change_own_find'])( views.NewFindBasketView.as_view()), name='new_findbasket'), + url(r'^find_basket_deletion/$', + check_rights(['change_find', 'change_own_find'])( + views.DeleteFindBasketView.as_view()), name='delete_findbasket'), ) urlpatterns += patterns( diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index e40a3acb9..b079af200 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -21,7 +21,7 @@ from django.core.urlresolvers import reverse from django.http import HttpResponseRedirect from django.shortcuts import redirect from django.utils.translation import ugettext_lazy as _ -from django.views.generic.edit import CreateView, DeleteView +from django.views.generic.edit import CreateView, FormView from ishtar_common.forms import FinalForm from ishtar_common.forms_common import SourceForm, AuthorFormset, \ @@ -169,7 +169,6 @@ class NewFindBasketView(IshtarMixin, LoginRequiredMixin, CreateView): def get_form_kwargs(self): kwargs = super(NewFindBasketView, self).get_form_kwargs() kwargs['user'] = IshtarUser.objects.get(pk=self.request.user.pk) - print(kwargs) return kwargs def get_success_url(self): @@ -180,8 +179,20 @@ class NewFindBasketView(IshtarMixin, LoginRequiredMixin, CreateView): return HttpResponseRedirect(self.get_success_url()) -class DeleteFindBasketView(IshtarMixin, LoginRequiredMixin, DeleteView): - pass +class DeleteFindBasketView(IshtarMixin, LoginRequiredMixin, FormView): + template_name = 'ishtar/form_delete.html' + form_class = DeleteFindBasketForm + success_url = '/' + page_name = _(u"Delete basket") + + def get_form_kwargs(self): + kwargs = super(DeleteFindBasketView, self).get_form_kwargs() + kwargs['user'] = IshtarUser.objects.get(pk=self.request.user.pk) + return kwargs + + def form_valid(self, form): + form.save() + return HttpResponseRedirect(self.get_success_url()) """ treatment_creation_wizard = TreatmentWizard.as_view([ diff --git a/ishtar_common/templates/ishtar/form_delete.html b/ishtar_common/templates/ishtar/form_delete.html new file mode 100644 index 000000000..6243e9423 --- /dev/null +++ b/ishtar_common/templates/ishtar/form_delete.html @@ -0,0 +1,14 @@ +{% extends "base.html" %} +{% load i18n inline_formset %} +{% block content %} +<h2>{{page_name}}</h2> +<div class='form'> +<form enctype="multipart/form-data" action="." method="post" + onsubmit="return confirm('Do you really want to delete this item?');">{% csrf_token %} +<table> +{{form}} +</table> +<input type="submit" value="{% trans "Delete" %}"/> +</form> +</div> +{% endblock %} |