rockviewer/three_d_viewer/views.py

61 lines
2 KiB
Python
Raw Normal View History

2013-08-25 20:16:20 +10:00
"""
Define the views for the Django MVC
"""
2013-07-27 22:23:05 +10:00
from django import template
from django.views import generic
2014-01-21 21:43:23 +10:00
from three_d_viewer.models import Sample, Category, Mineral
2013-07-27 22:23:05 +10:00
register = template.Library()
class HomeView(generic.ListView):
2013-08-25 20:16:20 +10:00
"""
Show the home page
2013-08-25 20:16:20 +10:00
"""
2013-07-27 22:23:05 +10:00
template_name = 'three_d_viewer/home.html'
model = Sample
def get_context_data(self, **kwargs):
context = super(HomeView, self).get_context_data(**kwargs)
2014-01-21 21:43:23 +10:00
context['active_samples'] = Sample.objects.select_subclasses(Mineral).filter(active=True).order_by('name')
context['parent_categories'] = Category.objects.filter(parent=None). \
2014-01-21 15:59:23 +10:00
filter(active=True).order_by('name')
return context
2013-07-27 22:23:05 +10:00
class DetailView(generic.DetailView):
2013-08-25 20:16:20 +10:00
"""
Define the view to view the 3D model of a sample
"""
2013-07-27 22:23:05 +10:00
model = Sample
template_name = 'three_d_viewer/detail.html'
parent_categories = Category.objects.filter(parent=None). \
2014-01-21 15:59:23 +10:00
filter(active=True).order_by("name")
def get_context_data(self, **kwargs):
context = super(DetailView, self).get_context_data(**kwargs)
2014-01-21 21:43:23 +10:00
context['active_samples'] = Sample.objects.select_subclasses(Mineral).filter(active=True).order_by('name')
context['parent_categories'] = Category.objects.filter(parent=None). \
2014-01-21 15:59:23 +10:00
filter(active=True).order_by('name')
return context
2014-01-21 21:43:23 +10:00
class MineralDetailView(DetailView):
"""
Add extra functionality for mineral details
"""
model = Mineral
template_name = 'three_d_viewer/mineral_detail.html'
parent_categories = Category.objects.filter(parent=None). \
filter(active=True).order_by("name")
def get_context_data(self, **kwargs):
context = super(DetailView, self).get_context_data(**kwargs)
context['active_samples'] = Sample.objects.select_subclasses(Mineral).filter(active=True).order_by('name')
context['parent_categories'] = Category.objects.filter(parent=None). \
filter(active=True).order_by('name')
return context