summaryrefslogtreecommitdiff
path: root/archaeological_finds/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/views.py')
-rw-r--r--archaeological_finds/views.py82
1 files changed, 81 insertions, 1 deletions
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index b079af200..a43ebaa12 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -17,10 +17,12 @@
# See the file COPYING for details.
+from django.core.exceptions import PermissionDenied
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 import TemplateView
from django.views.generic.edit import CreateView, FormView
from ishtar_common.forms import FinalForm
@@ -172,13 +174,91 @@ class NewFindBasketView(IshtarMixin, LoginRequiredMixin, CreateView):
return kwargs
def get_success_url(self):
- return reverse('new_findbasket')
+ return reverse('select_itemsinbasket',
+ kwargs={'pk': self.object.pk})
def form_valid(self, form):
self.object = form.save()
return HttpResponseRedirect(self.get_success_url())
+class SelectBasketForAdd(IshtarMixin, LoginRequiredMixin, FormView):
+ template_name = 'ishtar/form.html'
+ form_class = SelectFindBasketForm
+ page_name = _(u"Add items to basket")
+
+ def get_form_kwargs(self):
+ kwargs = super(SelectBasketForAdd, self).get_form_kwargs()
+ kwargs['user'] = IshtarUser.objects.get(pk=self.request.user.pk)
+ if 'pk' in self.kwargs:
+ kwargs['initial'].update({'basket': self.kwargs['pk']})
+ return kwargs
+
+ def get_success_url(self, basket):
+ return reverse('select_itemsinbasket',
+ kwargs={'pk': basket})
+
+ def form_valid(self, form):
+ return HttpResponseRedirect(self.get_success_url(
+ form.cleaned_data['basket']))
+
+
+class SelectItemsInBasket(IshtarMixin, LoginRequiredMixin, TemplateView):
+ template_name = 'ishtar/manage_basket.html'
+ page_name = _(u"Manage basket")
+
+ def get_context_data(self, *args, **kwargs):
+ context = super(SelectItemsInBasket, self).get_context_data(
+ *args, **kwargs)
+ self.user = IshtarUser.objects.get(pk=self.request.user.pk)
+ try:
+ self.basket = models.FindBasket.objects.get(
+ pk=self.kwargs['pk'], user=self.user)
+ except models.FindBasket.DoesNotExist:
+ raise PermissionDenied
+ context['basket'] = self.basket
+ context['form'] = FindFormSelection()
+ context['add_url'] = reverse('add_iteminbasket')
+ context['list_url'] = reverse('list_iteminbasket',
+ kwargs={'pk': self.basket.pk})
+ return context
+
+ def form_valid(self, form):
+ return HttpResponseRedirect(self.get_success_url())
+
+
+class FindBasketAddItemView(IshtarMixin, LoginRequiredMixin, FormView):
+ template_name = 'ishtar/simple_form.html'
+ form_class = FindBasketAddItemForm
+
+ def get_success_url(self, basket):
+ return reverse('list_iteminbasket', kwargs={'pk': basket.pk})
+
+ def form_valid(self, form):
+ user = IshtarUser.objects.get(pk=self.request.user.pk)
+ # rights are checked on the form
+ basket = form.save(user)
+ return HttpResponseRedirect(self.get_success_url(basket))
+
+
+class FindBasketListView(IshtarMixin, LoginRequiredMixin, TemplateView):
+ template_name = 'ishtar/basket_list.html'
+
+ def get_context_data(self, *args, **kwargs):
+ context = super(FindBasketListView, self).get_context_data(
+ *args, **kwargs)
+ self.user = IshtarUser.objects.get(pk=self.request.user.pk)
+ try:
+ self.basket = models.FindBasket.objects.get(
+ pk=self.kwargs['pk'], user=self.user)
+ except models.FindBasket.DoesNotExist:
+ raise PermissionDenied
+ context['basket'] = self.basket
+ context['item_url'] = '/'.join(
+ reverse(models.Find.SHOW_URL, args=[1]).split('/')[:-2])
+ return context
+
+
class DeleteFindBasketView(IshtarMixin, LoginRequiredMixin, FormView):
template_name = 'ishtar/form_delete.html'
form_class = DeleteFindBasketForm