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 /archaeological_finds | |
parent | 3a81d40b69a7f86731d45ac73188eed63fc14c77 (diff) | |
download | Ishtar-95ac7dd7492eb0d469f84deacfa88e84d442c203.tar.bz2 Ishtar-95ac7dd7492eb0d469f84deacfa88e84d442c203.zip |
Delete basket
Diffstat (limited to 'archaeological_finds')
-rw-r--r-- | archaeological_finds/forms.py | 20 | ||||
-rw-r--r-- | archaeological_finds/urls.py | 3 | ||||
-rw-r--r-- | archaeological_finds/views.py | 19 |
3 files changed, 38 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([ |