views.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3. from django.conf import settings
  4. from django.core.urlresolvers import reverse_lazy
  5. from django.http import HttpResponse, JsonResponse
  6. from django.shortcuts import render, get_object_or_404
  7. from django.views.generic import CreateView, DetailView, RedirectView, ListView
  8. from .models import Panorama, PanoramaPhoto, ReferencePoint
  9. from .forms import PanoramaUploadForm
  10. class PanoramaUpload(CreateView):
  11. model = Panorama
  12. form_class = PanoramaUploadForm
  13. # Handled by the PanoramaUploadForm class
  14. #fields = ('name', 'image', 'loop', 'latitude', 'longitude', 'altitude')
  15. template_name = "panorama/new.html"
  16. def get_success_url(self):
  17. return reverse_lazy("panorama:gen_tiles", kwargs={"pk": self.object.id})
  18. class PanoramaView(DetailView):
  19. model = Panorama
  20. template_name = "panorama/view.html"
  21. context_object_name = "panorama"
  22. class PanoramaGenTiles(RedirectView):
  23. permanent = False
  24. pattern_name = "panorama:view_pano"
  25. def get_redirect_url(self, *args, **kwargs):
  26. pano = get_object_or_404(Panorama, pk=kwargs['pk'])
  27. pano.generate_tiles()
  28. return super(PanoramaGenTiles, self).get_redirect_url(*args, **kwargs)
  29. class PanoramaList(ListView):
  30. model = Panorama
  31. template_name = "panorama/list.html"
  32. context_object_name = "panoramas"