admin.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3. from django.contrib import admin
  4. from .models import Panorama, ReferencePoint, Reference
  5. class ReferenceInline(admin.TabularInline):
  6. model = Reference
  7. fk_name = "panorama"
  8. extra = 1
  9. @admin.register(Panorama)
  10. class PanoramaAdmin(admin.ModelAdmin):
  11. model = Panorama
  12. inlines = (ReferenceInline, )
  13. list_display = ('name', 'latitude', 'longitude', 'altitude', 'loop')
  14. fields = ('name', ('image', 'image_width', 'image_height'),
  15. 'loop', ('latitude', 'longitude'), 'altitude')
  16. readonly_fields = ('image_width', 'image_height')
  17. actions = ('regenerate_tiles', )
  18. def regenerate_tiles(self, request, queryset):
  19. for pano in queryset:
  20. pano.delete_tiles()
  21. pano.generate_tiles()
  22. self.message_user(request, "Launched tiles regeneration, it may take some time to complete")
  23. regenerate_tiles.short_description = "Regenerate tiles for the selected panoramas"
  24. @admin.register(ReferencePoint)
  25. class ReferencePointAdmin(admin.ModelAdmin):
  26. model = ReferencePoint
  27. list_display = ('name', 'latitude', 'longitude', 'altitude')
  28. fields = ('name', ('latitude', 'longitude'), 'altitude')