summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py49
1 files changed, 33 insertions, 16 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 160653bbb..96c292c43 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -1120,22 +1120,6 @@ class ProfileEdit(LoginRequiredMixin, FormView):
return HttpResponseRedirect(self.get_success_url())
-class DisplayItemView(IshtarMixin, TemplateView):
- template_name = 'ishtar/display_item.html'
-
- def dispatch(self, request, *args, **kwargs):
- if not self.request.user.is_authenticated:
- return redirect_to_login(reverse("display-item", kwargs=kwargs))
- return super(DisplayItemView, self).dispatch(request, *args, **kwargs)
-
- def get_context_data(self, *args, **kwargs):
- data = super(DisplayItemView, self).get_context_data(*args, **kwargs)
- pk = str(kwargs.get('pk')) + '/'
- item_url = '/show-' + kwargs.get('item_type')
- data['show_url'] = item_url + "/" + pk
- return data
-
-
class DynamicModelView:
def get_model(self, kwargs):
app = kwargs.get('app').replace('-', "_")
@@ -2466,3 +2450,36 @@ class QADocumentPackagingFormView(QAItemForm):
def form_valid(self, form):
form.save(self.items, self.request.user)
return HttpResponseRedirect(reverse("success"))
+
+
+class DisplayItemView(IshtarMixin, TemplateView):
+ template_name = 'ishtar/display_item.html'
+ SHOW_VIEWS = {
+ 'document': show_document
+ }
+ ASSOCIATED_MODEL = {
+ "document": models.Document
+ }
+
+ def dispatch(self, request, *args, **kwargs):
+ if not self.request.user.is_authenticated:
+ return redirect_to_login(reverse("display-item", kwargs=kwargs))
+ return super(DisplayItemView, self).dispatch(request, *args, **kwargs)
+
+ def get_context_data(self, *args, **kwargs):
+ data = super(DisplayItemView, self).get_context_data(*args, **kwargs)
+ pk = kwargs.get('pk')
+ item_type = kwargs.get('item_type')
+ if item_type in self.SHOW_VIEWS:
+ data["view_content"] = self.SHOW_VIEWS[item_type](
+ self.request, pk).content
+ if item_type in self.ASSOCIATED_MODEL and \
+ hasattr(self.ASSOCIATED_MODEL[item_type], "extra_meta"):
+ model = self.ASSOCIATED_MODEL[item_type]
+ try:
+ data["extra_meta"] = model.objects.get(pk=pk).extra_meta
+ except model.DoesNotExist:
+ pass
+ else:
+ data['show_url'] = "/show-{}/{}/".format(item_type, pk)
+ return data