Source code for djiffy.views

from dal import autocomplete
from django.db.models import Q
from django.http import Http404
from django.views.generic import DetailView, ListView

from djiffy.models import Canvas, Manifest


[docs]class ManifestList(ListView): '''List view for :class:`~djiffy.models.Manifest`. Rendered with djiffy/manifest_list.html template. ''' model = Manifest template_name = 'djiffy/manifest_list.html' context_object_name = 'manifests'
[docs]class ManifestDetail(DetailView): '''Detail view for a single :class:`~djiffy.models.Manifest`. Rendered with djiffy/manifest_detail.html template. ''' model = Manifest template_name = 'djiffy/manifest_detail.html' context_object_name = 'manifest'
[docs] def get_object(self, queryset=None): if queryset is None: queryset = Manifest.objects.all() try: return queryset.get(short_id=self.kwargs['id']) except queryset.model.DoesNotExist: raise Http404("No manifest found with id %(id)s" % self.kwargs)
[docs]class CanvasDetail(DetailView): '''Detail view for a single :class:`~djiffy.models.Canvas`. Rendered with djiffy/canvast_detail.html template. ''' model = Canvas template_name = 'djiffy/canvas_detail.html' context_object_name = 'canvas'
[docs] def get_object(self, queryset=None): if queryset is None: queryset = Canvas.objects.all() try: return queryset.get(short_id=self.kwargs['id'], manifest__short_id=self.kwargs['manifest_id']) except queryset.model.DoesNotExist: raise Http404("No canvas found with id %(id)s and manifest %(manifest_id)s" % \ self.kwargs)
[docs]class CanvasAutocomplete(autocomplete.Select2QuerySetView): '''Canvas autocomplete view, e.g. for admin interface lookup'''
[docs] def get_queryset(self): return Canvas.objects.filter( Q(label__icontains=self.q) | Q(uri__contains=self.q) | Q(manifest__label__icontains=self.q) )