diff --git a/docs/Web Site.docx b/docs/Web Site.docx index 4723943..8af343d 100644 Binary files a/docs/Web Site.docx and b/docs/Web Site.docx differ diff --git a/requirements.txt b/requirements.txt index 9a492c3..4f1d6cf 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -Django==1.5.1 +Django==1.6.1 South==0.8.1 astroid==1.0.0 coverage==3.6 diff --git a/three_d_viewer/models.py b/three_d_viewer/models.py index e42dff0..bf9eb6f 100644 --- a/three_d_viewer/models.py +++ b/three_d_viewer/models.py @@ -41,7 +41,7 @@ class Category(CommonInfo): @property def active_samples(self): - return self.samples.filter(active=True).order_by('name') + return self.samples.select_subclasses(Sample, Mineral).filter(active=True).order_by('name') class Sample(CommonInfo): diff --git a/three_d_viewer/templates/three_d_viewer/base.html b/three_d_viewer/templates/three_d_viewer/base.html index d5e6c00..b814380 100644 --- a/three_d_viewer/templates/three_d_viewer/base.html +++ b/three_d_viewer/templates/three_d_viewer/base.html @@ -37,6 +37,10 @@ {% endblock %} - + {% block details %} + {% endblock details %} + + \ No newline at end of file diff --git a/three_d_viewer/templates/three_d_viewer/detail.html b/three_d_viewer/templates/three_d_viewer/detail.html index be8310e..9c750b1 100644 --- a/three_d_viewer/templates/three_d_viewer/detail.html +++ b/three_d_viewer/templates/three_d_viewer/detail.html @@ -69,6 +69,7 @@ function formatNumber(numero, decimales){ return parseInt(numero * pot) / pot; } +{% block load %} function load(){ window.addEventListener('resize', resizeCanvas, false); resizeCanvas(); @@ -96,6 +97,7 @@ function load(){ } request.send(); } +{% endblock load %} function loaded(){ /*if ( navigator.userAgent.indexOf("WebKit") == -1){ diff --git a/three_d_viewer/templates/three_d_viewer/mineral_detail.html b/three_d_viewer/templates/three_d_viewer/mineral_detail.html index 65e1aaf..eca9f7b 100644 --- a/three_d_viewer/templates/three_d_viewer/mineral_detail.html +++ b/three_d_viewer/templates/three_d_viewer/mineral_detail.html @@ -1,6 +1,83 @@ {% extends "three_d_viewer/detail.html" %} {% block pageheader %} -

{{ 'MINERALS' }}

-

{{ sample.description }}

-{% endblock %} \ No newline at end of file +

{{ mineral.name }}

+

{{ mineral.description }}

+{% endblock %} + +{% block load %} +function load(){ + window.addEventListener('resize', resizeCanvas, false); + resizeCanvas(); + + var sampleFilename = '{{ mineral.model_filename|escapejs }}'; + + if (sampleFilename.trim() == "") + { + document.getElementById("progress").innerHTML = "No model defined!"; + return; + } + + request = new XMLHttpRequest(); + request.open("GET", '{{ MEDIA_URL }}' + sampleFilename, true); + request.overrideMimeType("text/plain; charset=x-user-defined"); + request.onreadystatechange = function(){ + if (this.readyState == 3 || this.readyState == 4){ + document.getElementById("progress").innerHTML = "Downloading... " + + formatNumber(this.responseText.length / 1048576, 2) + " MB"; + } + if (this.readyState == 4 && (this.status == 200 || this.status == 0) ){ + document.getElementById("progress").innerHTML = "Unpacking..."; + setTimeout(loaded, 1); + } + } + request.send(); +} +{% endblock load %} + +{% block details %} +
+
{{ mineral.name }} Details
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Chemical Formula{{ mineral.chemical_formula }}
Hardness{{ mineral.hardness }}
Specific Gravity{{ mineral.specific_gravity }}
Cleavage/Fracture{{ mineral.cleavage_fracture }}
Lustre{{ mineral.lustre }}
Colour{{ mineral.colour }}
Streak{{ mineral.habit }}
Crystallography{{ mineral.crystallography }}
Identifying features{{ mineral.identifying_features }}
Occurance{{ mineral.occurance }}
+
+{% endblock details %} \ No newline at end of file diff --git a/three_d_viewer/urls.py b/three_d_viewer/urls.py index 90a04a4..d345699 100644 --- a/three_d_viewer/urls.py +++ b/three_d_viewer/urls.py @@ -6,7 +6,7 @@ urlpatterns = patterns( '', url(r'^$', views.HomeView.as_view(), name='home'), url(r'^(?P\d+)/$', views.DetailView.as_view(), name='detail'), - url(r'^(?P\d+)/$', views.MineralDetailView.as_view(), name='mineral_detail'), + url(r'^minerals/(?P\d+)/$', views.MineralDetailView.as_view(), name='mineral_detail'), url(r'^media/(?P.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}), ) diff --git a/three_d_viewer/views.py b/three_d_viewer/views.py index e9ab259..c8dc4cd 100644 --- a/three_d_viewer/views.py +++ b/three_d_viewer/views.py @@ -48,4 +48,14 @@ class MineralDetailView(DetailView): """ model = Mineral - template_name = 'three_d_viewer/mineral_detail.html' \ No newline at end of file + 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 \ No newline at end of file