Minerals now show their detail. The layout still needs work to get it showing correctly though.

This commit is contained in:
2014-01-21 23:54:09 +10:00
parent d5867c8d4a
commit 9509d788c0
8 changed files with 101 additions and 8 deletions

Binary file not shown.

View File

@@ -1,4 +1,4 @@
Django==1.5.1
Django==1.6.1
South==0.8.1
astroid==1.0.0
coverage==3.6

View File

@@ -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):

View File

@@ -37,6 +37,10 @@
{% endblock %}
</div>
</div>
</div
<div class="row my-fluid-container">
{% block details %}
{% endblock details %}
</div>
</div>
</body>
</html>

View File

@@ -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){

View File

@@ -1,6 +1,83 @@
{% extends "three_d_viewer/detail.html" %}
{% block pageheader %}
<h1>{{ 'MINERALS' }}</h1>
<p class="lead">{{ sample.description }}</p>
{% endblock %}
<h1>{{ mineral.name }}</h1>
<p class="lead">{{ mineral.description }}</p>
{% 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 %}
<div class="panel panel-default">
<div class="panel-heading">{{ mineral.name }} Details</div>
<table class="table">
<tr>
<td>Chemical Formula</td>
<td>{{ mineral.chemical_formula }}</td>
</tr>
<tr>
<td>Hardness</td>
<td>{{ mineral.hardness }}</td>
</tr>
<tr>
<td>Specific Gravity</td>
<td>{{ mineral.specific_gravity }}</td>
</tr>
<tr>
<td>Cleavage/Fracture</td>
<td>{{ mineral.cleavage_fracture }}</td>
</tr>
<tr>
<td>Lustre</td>
<td>{{ mineral.lustre }}</td>
</tr>
<tr>
<td>Colour</td>
<td>{{ mineral.colour }}</td>
</tr>
<tr>
<td>Streak</td>
<td>{{ mineral.habit }}</td>
</tr>
<tr>
<td>Crystallography</td>
<td>{{ mineral.crystallography }}</td>
</tr>
<tr>
<td>Identifying features</td>
<td>{{ mineral.identifying_features }}</td>
</tr>
<td>Occurance</td>
<td>{{ mineral.occurance }}</td>
</tr>
</table>
</div>
{% endblock details %}

View File

@@ -6,7 +6,7 @@ urlpatterns = patterns(
'',
url(r'^$', views.HomeView.as_view(), name='home'),
url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'),
url(r'^(?P<pk>\d+)/$', views.MineralDetailView.as_view(), name='mineral_detail'),
url(r'^minerals/(?P<pk>\d+)/$', views.MineralDetailView.as_view(), name='mineral_detail'),
url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT}),
)

View File

@@ -48,4 +48,14 @@ class MineralDetailView(DetailView):
"""
model = Mineral
template_name = 'three_d_viewer/mineral_detail.html'
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