diff --git a/.idea/dataSources.ids b/.idea/dataSources.ids index a7aa2ad..e2979cf 100644 --- a/.idea/dataSources.ids +++ b/.idea/dataSources.ids @@ -1,6 +1,165 @@ - - + + + org.sqlite.JDBC + jdbc:sqlite:$PROJECT_DIR$/db.sqlite3 + + + file://$USER_HOME$/.PyCharm30/config/jdbc-drivers/xerial-sqlite-license.txt + + + file://$USER_HOME$/.PyCharm30/config/jdbc-drivers/sqlite-jdbc-3.7.6.3-20110609.081603-3.jar + + + + + + + + +
+ + + + + + + + +
+ + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + + + + + + + +
+ + + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + + +
+ + + + + + + +
+ + + + + + + +
+ + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + + + + +
\ No newline at end of file diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index f2c2c97..95d82fc 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -1,11 +1,17 @@ - + - sqlite.xerial org.sqlite.JDBC - jdbc:sqlite:H:\GitHub\rockviewer\db.sqlite3 - + jdbc:sqlite:$PROJECT_DIR$/db.sqlite3 + + + file://$USER_HOME$/.PyCharm30/config/jdbc-drivers/xerial-sqlite-license.txt + + + file://$USER_HOME$/.PyCharm30/config/jdbc-drivers/sqlite-jdbc-3.7.6.3-20110609.081603-3.jar + + diff --git a/.idea/misc.xml b/.idea/misc.xml index 8823786..21955c8 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,5 @@ - + diff --git a/.idea/rockviewer.iml b/.idea/rockviewer.iml index 51c48ce..51ac604 100644 --- a/.idea/rockviewer.iml +++ b/.idea/rockviewer.iml @@ -11,11 +11,18 @@ - + + + + + diff --git a/.idea/workspace.xml b/.idea/workspace.xml index c679856..aebe4b0 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,21 +2,18 @@ - - - - - - + + + - - - - - - - - + + + + + + + + @@ -39,37 +36,19 @@ - - - - - - - - - - + - - + + - - - - - - - - - - + @@ -78,16 +57,76 @@ - + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -103,21 +142,30 @@ + + + - @@ -286,14 +334,6 @@ - - - - - + + + + + + - + - + - - + + - + + @@ -683,140 +712,117 @@ + + - + + - + - + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - + - - - + - + - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/db.sqlite3 b/db.sqlite3 index bb152c7..e798f78 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ diff --git a/three_d_viewer/models.py b/three_d_viewer/models.py index bf9eb6f..aa5fc64 100644 --- a/three_d_viewer/models.py +++ b/three_d_viewer/models.py @@ -61,10 +61,11 @@ class Sample(CommonInfo): @property def url(self): - if isinstance(self, Mineral): - return 'three_d_viewer:mineral_detail' - else: - return 'three_d_viewer:detail' + return 'three_d_viewer:mineral_detail' + #if isinstance(self, Mineral): + # return 'three_d_viewer:mineral_detail' + #else: + # return 'three_d_viewer:detail' class Mineral(Sample): diff --git a/three_d_viewer/templates/three_d_viewer/base.html b/three_d_viewer/templates/three_d_viewer/base.html index 614eb2a..a1d7de9 100644 --- a/three_d_viewer/templates/three_d_viewer/base.html +++ b/three_d_viewer/templates/three_d_viewer/base.html @@ -5,12 +5,15 @@ 3DVOL - 3D Virtual Object Library + +{% block includes %} - + +{% endblock %} - +
-
- - - - - -
+ {% block mineral_detail %} + {% endblock %}
-
- -
+{% block 3dcontent %} +{% endblock %} {% endblock %} \ No newline at end of file diff --git a/three_d_viewer/urls.py b/three_d_viewer/urls.py index ec5eb61..da55011 100644 --- a/three_d_viewer/urls.py +++ b/three_d_viewer/urls.py @@ -10,7 +10,8 @@ urlpatterns = patterns( url(r'^minerals_theory/$', generic.TemplateView.as_view(template_name="three_d_viewer/minerals_theory.html"), name='minerals_theory'), url(r'^minerals_practice/$', views.MineralPracticeView.as_view(template_name="three_d_viewer/minerals_practice.html"), name='minerals_practice'), url(r'^minerals_selftest/$', generic.TemplateView.as_view(template_name="three_d_viewer/minerals_selftest.html"), name='minerals_selftest'), - url(r'^minerals/(?P\d+)/$', views.MineralPracticeView.as_view(), name='mineral_detail'), + url(r'^minerals/(?P\d+)/$', views.MineralDetailView.as_view(), name='mineral_detail'), + #url(r'^minerals/(?P\d+)/$', views.MineralPracticeView.as_view(), name='mineral_practice'), #url(r'^(?P\d+)/$', views.DetailView.as_view(), name='detail'), #url(r'^minerals/(?P\d+)/$', views.MineralDetailView.as_view(), name='mineral_detail'), url(r'^media/(?P.*)$', 'django.views.static.serve', diff --git a/three_d_viewer/views.py b/three_d_viewer/views.py index d1d8e93..7b2b547 100644 --- a/three_d_viewer/views.py +++ b/three_d_viewer/views.py @@ -33,7 +33,6 @@ class MineralPracticeView(generic.ListView): def get_context_data(self, **kwargs): context = super(MineralPracticeView, self).get_context_data(**kwargs) cat = Category.objects.get(name='Minerals') - #context['active_samples'] = cat.active_samples result = cat.active_samples for child in cat.active_children: @@ -59,7 +58,7 @@ class DetailView(generic.DetailView): filter(active=True).order_by('name') return context -class MineralDetailView(DetailView): +class MineralDetailView(generic.DetailView): """ Add extra functionality for mineral details """ @@ -70,9 +69,19 @@ class MineralDetailView(DetailView): parent_categories = Category.objects.filter(parent=None). \ filter(active=True).order_by("name") + #def get_context_data(self, **kwargs): + # context = super(MineralDetailView, 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 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') + context = super(MineralDetailView, self).get_context_data(**kwargs) + cat = Category.objects.get(name='Minerals') + result = cat.active_samples + + for child in cat.active_children: + result = chain(result, child.active_samples) + + context['active_samples'] = sorted(result, key=attrgetter('name')) return context \ No newline at end of file