summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-07-09 20:59:24 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-08-13 18:26:03 +0200
commita2e2e57d792c8ad9f1ced7f3807b97635f38c36d (patch)
tree59990ede30849daf44a9323d7e9a18e17d707285 /ishtar_common/views.py
parentf642961947a1a4fb79e49ff764d93b3f0ab474db (diff)
downloadIshtar-a2e2e57d792c8ad9f1ced7f3807b97635f38c36d.tar.bz2
Ishtar-a2e2e57d792c8ad9f1ced7f3807b97635f38c36d.zip
Save search queries
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 5a35c2509..586e1f0a1 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -27,6 +27,7 @@ import unicodecsv
from django.conf import settings
from django.contrib.auth import logout
from django.contrib.auth.decorators import login_required
+from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse, NoReverseMatch
from django.db.models import Q
@@ -1659,3 +1660,47 @@ document_deletion_wizard = wizards.DocumentDeletionWizard.as_view(
document_deletion_steps,
label=_(u"Document deletion"),
url_name='document_deletion',)
+
+
+class SearchQueryEdit(LoginRequiredMixin, FormView):
+ template_name = 'ishtar/forms/search_query.html'
+ form_class = forms.SearchQueryForm
+
+ def dispatch(self, request, *args, **kwargs):
+ if not request.user.pk:
+ raise Http404()
+ try:
+ self.profile = models.UserProfile.objects.get(
+ current=True, person__ishtaruser__user_ptr=request.user)
+ except models.UserProfile.DoesNotExist:
+ # no current profile
+ raise Http404()
+ self.app_label = kwargs.get('app_label')
+ self.model = kwargs.get('model')
+ try:
+ self.content_type = ContentType.objects.get(
+ app_label=self.app_label.replace('-', '_'),
+ model=self.model.replace('-', '_')
+ )
+ except ContentType.DoesNotExist:
+ raise Http404()
+ return super(SearchQueryEdit, self).dispatch(request, *args, **kwargs)
+
+ def get_form_kwargs(self):
+ kwargs = super(SearchQueryEdit, self).get_form_kwargs()
+ kwargs['profile'] = self.profile
+ kwargs['content_type'] = self.content_type
+ return kwargs
+
+ def get_context_data(self, **kwargs):
+ data = super(SearchQueryEdit, self).get_context_data(**kwargs)
+ data['app_label'] = self.app_label
+ data['model'] = self.model
+ return data
+
+ def form_valid(self, form):
+ form.save()
+ return HttpResponseRedirect(self.get_success_url())
+
+ def get_success_url(self):
+ return reverse('success')