From ad5ad013078dfddec4b6b903f32af3282672f33c Mon Sep 17 00:00:00 2001 From: Shane Frischkorn Date: Mon, 20 Jan 2014 23:28:08 +1000 Subject: [PATCH 01/27] Add a mineral model to store details of minerals --- db.sqlite3 | Bin 159744 -> 167936 bytes three_d_viewer/admin.py | 3 +- .../migrations/0004_auto__add_mineral.py | 81 ++++++++++++++++++ ...fic_gravity__chg_field_mineral_hardness.py | 73 ++++++++++++++++ three_d_viewer/models.py | 17 ++++ 5 files changed, 173 insertions(+), 1 deletion(-) create mode 100644 three_d_viewer/migrations/0004_auto__add_mineral.py create mode 100644 three_d_viewer/migrations/0005_auto__chg_field_mineral_specific_gravity__chg_field_mineral_hardness.py diff --git a/db.sqlite3 b/db.sqlite3 index 6d6f61dde7316e384e6845b4718eca2bc1d861dc..de1f1b3e0f08d79fae6c8bac67ff9d8bae804cad 100644 GIT binary patch delta 2300 zcmd^BTW=Fb6y9Tdy|&}su~9-oLc+$mI94v$8#_({N-!ZvDYq{_vtGw0j_vqD za7zV2RH;DLV>mj6{!zxt;o=av_ zNqaxJ&2UP)ui8u!Hn4OELDnM$q?p7G`GZnK2+-LfpBq+JFW^L<5FB`j%MKsl*ea5! zg^Dzv;PEVw;qM2C%1V-03+AlGWTN<0Qfb!DPEu@_nx^!3^s~ur?3jLiz6vbxh!N)O z5y+}h$vugT+d z>$RITTd6;Bl;)_(oA=bLbtG)}^-FjMoJuQxlhV&*u3VwOYfB6U_Lu23}??mC7D?9HSu(n(Uot<;x7r zlykvddlJL`uy;>55f}+K4#fM1Tf$*mB=*8U!ZR{}QYi#I24%Zqi%hZbqDqlaY{6T- z2+!5EYY7*Cu>fe!YFmh5V=L!uwK^J{_Oy`-nzOm3XiQn#mP2copt)8@ODkt0$PbkZQs*y2iCMKzOZ#7vixH&x^hR-s_hF3u(+p z!;2U0_y_N&woN>8mq+RjRHJF0%~<#0`SD z0rwP6<yjB9F|4VLJIP(+8*d{@JKW37Svt0Ny4;7b?e|jNrp|HI}RH8%yBp=7frzxx#lRmCBHTaZ?FWR=+3Im>?@a3^v{a= z!oEHj>yUR&z#2==7(N<`$9#NH8sV2F--2E8sR^ht=HMo_#uSZ3Bw=v!wz`O7O+KOD zAIp6Q;#edbhhde5HHo1>C>}{mXx0=JhQa}f562?B{MiX8Hi!X9*ewi5yf-3`K2lil5TvFMYA{Gt%xy`jiZJRo3vVLraT6a^V49@JX0 zL9EZXz3jh(D1UMsO8;lhO8tETNb5=s(xk7n^XP4K5J_k=G9wN16RrYZGwa&2wPR_) z=bD>w?J$%nU9g-udmk8N^LH?-Y-i5O)HPhGnHlCR=HwWCx|%53Gksg?!cEu!7&RtS zzok)!m@$lkEQ-#c=(g14Uoh@c(7$8RS9B3`j3_DxEm1HW7x2x{AjXE&>8hT}>s8z> k*QI}12m?W&UoiYSGUn4XO=MmupmzBCI6Qp|9e&UF5BlS_kpKVy delta 892 zcmZ9Ke`r%z6vyAmOLCK!_wGru%&fDCNzI6ZR$tQino8YT#bRNx{$T&wy_&~b$YPt; zuAmNsZpfe*eX!G7CRITYhPb`Chaf8P2Z(MH21ACrZZI~7a~q>zLBv4`?kD!n@C5mQQo$r3$Q zNWCUo4K3kA(bkqsrX`b2sF_u&wrb_dL+s(ajE3qOhih?M* zBknDp5zj?$uXi7-vbyiSzbn84UGipmN_j{5l)t5{iDsCx*Gngu*%YZWMi z^%?Jlh4571i%tlxkPAXsoDkgCJauo6_ZRk&&+nV?=l%DjcctG0JCybOZ+S0|x|fL) zuDUBpY7K7Frb*b%7bRJ=rwyv@gXN+zPURXbisv$FQPuTrqXQMg=qvV(4I1womA(=E zy`hqkqK(rKqun)N^f5WnjT%VOkX|v$qkV(LCTb)&rc}q5uxMKw?8Q;NpJoZ7^fSTB z&_wEyXBx^)!BYD66VT{U4T3O6$}~)i)%a_aAXrQ{4?~Ei55tJbTo3I#AHY(u&m4pS zkD}ZYv=^I)U%aZb!A)OJ!c~eB%%H>W^8cIk|7(&CO~DWLc>;v5X27jR7^W96t>bar zhX!_I8hy_H{lgpI$f}vAglDz?2+y}?G)?1_{t@notNCSOvkn*`bq%*KKY&hfY9_J2 Yp4LL#HXp-*E@$~S1-Kp9;F?Q50Wa?f?f?J) diff --git a/three_d_viewer/admin.py b/three_d_viewer/admin.py index 04a9482..bf974a8 100644 --- a/three_d_viewer/admin.py +++ b/three_d_viewer/admin.py @@ -3,9 +3,10 @@ Configuration for the Django admin site """ from django.contrib import admin -from three_d_viewer.models import Category, Sample, Question, Answer +from three_d_viewer.models import Category, Sample, Question, Answer, Mineral admin.site.register(Category) admin.site.register(Sample) admin.site.register(Question) admin.site.register(Answer) +admin.site.register(Mineral) diff --git a/three_d_viewer/migrations/0004_auto__add_mineral.py b/three_d_viewer/migrations/0004_auto__add_mineral.py new file mode 100644 index 0000000..64eedbb --- /dev/null +++ b/three_d_viewer/migrations/0004_auto__add_mineral.py @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'Mineral' + db.create_table(u'three_d_viewer_mineral', ( + (u'sample_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['three_d_viewer.Sample'], unique=True, primary_key=True)), + ('chemical_formula', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('hardness', self.gf('django.db.models.fields.DecimalField')(max_digits=3, decimal_places=2)), + ('specific_gravity', self.gf('django.db.models.fields.DecimalField')(max_digits=4, decimal_places=2)), + ('cleavage_fracture', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('lustre', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('colour', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('streak', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('habit', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('crystallography', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('identifying_features', self.gf('django.db.models.fields.CharField')(max_length=1000)), + ('occurance', self.gf('django.db.models.fields.CharField')(max_length=1000)), + )) + db.send_create_signal(u'three_d_viewer', ['Mineral']) + + + def backwards(self, orm): + # Deleting model 'Mineral' + db.delete_table(u'three_d_viewer_mineral') + + + models = { + u'three_d_viewer.answer': { + 'Meta': {'object_name': 'Answer'}, + 'correct': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': u"orm['three_d_viewer.Question']"}), + 'text': ('django.db.models.fields.CharField', [], {'max_length': '2000'}) + }, + u'three_d_viewer.category': { + 'Meta': {'object_name': 'Category'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['three_d_viewer.Category']"}) + }, + u'three_d_viewer.mineral': { + 'Meta': {'object_name': 'Mineral', '_ormbases': [u'three_d_viewer.Sample']}, + 'chemical_formula': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'cleavage_fracture': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'colour': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'crystallography': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'habit': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'hardness': ('django.db.models.fields.DecimalField', [], {'max_digits': '3', 'decimal_places': '2'}), + 'identifying_features': ('django.db.models.fields.CharField', [], {'max_length': '1000'}), + 'lustre': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'occurance': ('django.db.models.fields.CharField', [], {'max_length': '1000'}), + u'sample_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['three_d_viewer.Sample']", 'unique': 'True', 'primary_key': 'True'}), + 'specific_gravity': ('django.db.models.fields.DecimalField', [], {'max_digits': '4', 'decimal_places': '2'}), + 'streak': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + u'three_d_viewer.question': { + 'Meta': {'object_name': 'Question'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'sample': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': u"orm['three_d_viewer.Sample']"}), + 'text': ('django.db.models.fields.CharField', [], {'max_length': '2000'}) + }, + u'three_d_viewer.sample': { + 'Meta': {'object_name': 'Sample'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'description': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '2000', 'null': 'True', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model_filename': ('django.db.models.fields.CharField', [], {'max_length': '1000'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'samples'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['three_d_viewer.Category']"}) + } + } + + complete_apps = ['three_d_viewer'] \ No newline at end of file diff --git a/three_d_viewer/migrations/0005_auto__chg_field_mineral_specific_gravity__chg_field_mineral_hardness.py b/three_d_viewer/migrations/0005_auto__chg_field_mineral_specific_gravity__chg_field_mineral_hardness.py new file mode 100644 index 0000000..8bdac41 --- /dev/null +++ b/three_d_viewer/migrations/0005_auto__chg_field_mineral_specific_gravity__chg_field_mineral_hardness.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + + # Changing field 'Mineral.specific_gravity' + db.alter_column(u'three_d_viewer_mineral', 'specific_gravity', self.gf('django.db.models.fields.DecimalField')(null=True, max_digits=4, decimal_places=2)) + + # Changing field 'Mineral.hardness' + db.alter_column(u'three_d_viewer_mineral', 'hardness', self.gf('django.db.models.fields.DecimalField')(null=True, max_digits=3, decimal_places=2)) + + def backwards(self, orm): + + # Changing field 'Mineral.specific_gravity' + db.alter_column(u'three_d_viewer_mineral', 'specific_gravity', self.gf('django.db.models.fields.DecimalField')(default=0, max_digits=4, decimal_places=2)) + + # Changing field 'Mineral.hardness' + db.alter_column(u'three_d_viewer_mineral', 'hardness', self.gf('django.db.models.fields.DecimalField')(default=0, max_digits=3, decimal_places=2)) + + models = { + u'three_d_viewer.answer': { + 'Meta': {'object_name': 'Answer'}, + 'correct': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': u"orm['three_d_viewer.Question']"}), + 'text': ('django.db.models.fields.CharField', [], {'max_length': '2000'}) + }, + u'three_d_viewer.category': { + 'Meta': {'object_name': 'Category'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['three_d_viewer.Category']"}) + }, + u'three_d_viewer.mineral': { + 'Meta': {'object_name': 'Mineral', '_ormbases': [u'three_d_viewer.Sample']}, + 'chemical_formula': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'cleavage_fracture': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'colour': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'crystallography': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'habit': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'hardness': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '3', 'decimal_places': '2', 'blank': 'True'}), + 'identifying_features': ('django.db.models.fields.CharField', [], {'max_length': '1000', 'blank': 'True'}), + 'lustre': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'occurance': ('django.db.models.fields.CharField', [], {'max_length': '1000', 'blank': 'True'}), + u'sample_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['three_d_viewer.Sample']", 'unique': 'True', 'primary_key': 'True'}), + 'specific_gravity': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '4', 'decimal_places': '2', 'blank': 'True'}), + 'streak': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}) + }, + u'three_d_viewer.question': { + 'Meta': {'object_name': 'Question'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'sample': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': u"orm['three_d_viewer.Sample']"}), + 'text': ('django.db.models.fields.CharField', [], {'max_length': '2000'}) + }, + u'three_d_viewer.sample': { + 'Meta': {'object_name': 'Sample'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'description': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '2000', 'null': 'True', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model_filename': ('django.db.models.fields.CharField', [], {'max_length': '1000'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'samples'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['three_d_viewer.Category']"}) + } + } + + complete_apps = ['three_d_viewer'] \ No newline at end of file diff --git a/three_d_viewer/models.py b/three_d_viewer/models.py index 58da823..0b6f24c 100644 --- a/three_d_viewer/models.py +++ b/three_d_viewer/models.py @@ -46,6 +46,23 @@ class Sample(CommonInfo): related_name="samples") +class Mineral(Sample): + """ + Extending the Sample class to add details specific to minerals + """ + chemical_formula = models.CharField(max_length=100, blank=True) + hardness = models.DecimalField(max_digits=3, decimal_places=2, blank=True, null=True) + specific_gravity = models.DecimalField(max_digits=4, decimal_places=2, blank=True, null=True) + cleavage_fracture = models.CharField(max_length=100, blank=True) + lustre = models.CharField(max_length=100, blank=True) + colour = models.CharField(max_length=100, blank=True) + streak = models.CharField(max_length=100, blank=True) + habit = models.CharField(max_length=100, blank=True) + crystallography = models.CharField(max_length=100, blank=True) + identifying_features = models.CharField(max_length=1000, blank=True) + occurance = models.CharField(max_length=1000, blank=True) + + class Question(models.Model): """ The definition of a multiple choice question, associated with a Sample From 4ffca36884bd9f53344c7bd3210cc26452155d57 Mon Sep 17 00:00:00 2001 From: Shane Frischkorn Date: Tue, 21 Jan 2014 15:32:35 +1000 Subject: [PATCH 02/27] Added details for minerals and fixed use of the active flag --- db.sqlite3 | Bin 167936 -> 172032 bytes .../0006_auto__chg_field_mineral_habit.py | 67 ++++++++++++++++++ three_d_viewer/models.py | 12 +++- .../templates/three_d_viewer/detail.html | 27 ++++--- .../templates/three_d_viewer/treenode.html | 4 +- 5 files changed, 96 insertions(+), 14 deletions(-) create mode 100644 three_d_viewer/migrations/0006_auto__chg_field_mineral_habit.py diff --git a/db.sqlite3 b/db.sqlite3 index de1f1b3e0f08d79fae6c8bac67ff9d8bae804cad..bb152c796271bf578d9d92084c7cb2a1801767aa 100644 GIT binary patch delta 6049 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 JNZ+8B`wy+B$o&8S delta 715 zcmZuuZAg<*6u#%x`R?mIXA@_`Qa3HsEYZ0{EwcI{g>$YC@kfEpTC(zE+Ll^BR1nsm z+J?v_W@H5Y>PI>8H3ADsFe3UQ`XV!;py&&X5-RDopkH0?bMN7vbDneVa|Ukc2gdZ# ztaSF4F;*Z@Bme?+v2_lK&0X35aGJ^-)#c7=r=w&;MX6YcZP#Z?GqqX|BRys)ImSYR zL%&H^tM$m=5?<51tN~B`VB>Jpl6|=FyECzCX zcD<~Kn;RRX@zuI)osQ*ZnPnwkxK?(y`H%TKd`b3(zjls^W4)9!>5)=xY0ShJeGnbJ YA#;YJC@i_bBJcJ$IK=a3id{DU2G&T-d;kCd diff --git a/three_d_viewer/migrations/0006_auto__chg_field_mineral_habit.py b/three_d_viewer/migrations/0006_auto__chg_field_mineral_habit.py new file mode 100644 index 0000000..8b38686 --- /dev/null +++ b/three_d_viewer/migrations/0006_auto__chg_field_mineral_habit.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + + # Changing field 'Mineral.habit' + db.alter_column(u'three_d_viewer_mineral', 'habit', self.gf('django.db.models.fields.CharField')(max_length=1000)) + + def backwards(self, orm): + + # Changing field 'Mineral.habit' + db.alter_column(u'three_d_viewer_mineral', 'habit', self.gf('django.db.models.fields.CharField')(max_length=100)) + + models = { + u'three_d_viewer.answer': { + 'Meta': {'object_name': 'Answer'}, + 'correct': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': u"orm['three_d_viewer.Question']"}), + 'text': ('django.db.models.fields.CharField', [], {'max_length': '2000'}) + }, + u'three_d_viewer.category': { + 'Meta': {'object_name': 'Category'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['three_d_viewer.Category']"}) + }, + u'three_d_viewer.mineral': { + 'Meta': {'object_name': 'Mineral', '_ormbases': [u'three_d_viewer.Sample']}, + 'chemical_formula': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'cleavage_fracture': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'colour': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'crystallography': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'habit': ('django.db.models.fields.CharField', [], {'max_length': '1000', 'blank': 'True'}), + 'hardness': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '3', 'decimal_places': '2', 'blank': 'True'}), + 'identifying_features': ('django.db.models.fields.CharField', [], {'max_length': '1000', 'blank': 'True'}), + 'lustre': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), + 'occurance': ('django.db.models.fields.CharField', [], {'max_length': '1000', 'blank': 'True'}), + u'sample_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['three_d_viewer.Sample']", 'unique': 'True', 'primary_key': 'True'}), + 'specific_gravity': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '4', 'decimal_places': '2', 'blank': 'True'}), + 'streak': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}) + }, + u'three_d_viewer.question': { + 'Meta': {'object_name': 'Question'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'sample': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': u"orm['three_d_viewer.Sample']"}), + 'text': ('django.db.models.fields.CharField', [], {'max_length': '2000'}) + }, + u'three_d_viewer.sample': { + 'Meta': {'object_name': 'Sample'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'description': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '2000', 'null': 'True', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model_filename': ('django.db.models.fields.CharField', [], {'max_length': '1000'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'samples'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['three_d_viewer.Category']"}) + } + } + + complete_apps = ['three_d_viewer'] \ No newline at end of file diff --git a/three_d_viewer/models.py b/three_d_viewer/models.py index 0b6f24c..21c1a2d 100644 --- a/three_d_viewer/models.py +++ b/three_d_viewer/models.py @@ -32,6 +32,14 @@ class Category(CommonInfo): on_delete=models.SET_NULL, related_name='children') + @property + def active_children(self): + return self.children.filter(active=True) + + @property + def active_samples(self): + return self.samples.filter(active=True) + class Sample(CommonInfo): """ @@ -57,12 +65,12 @@ class Mineral(Sample): lustre = models.CharField(max_length=100, blank=True) colour = models.CharField(max_length=100, blank=True) streak = models.CharField(max_length=100, blank=True) - habit = models.CharField(max_length=100, blank=True) + habit = models.CharField(max_length=1000, blank=True) crystallography = models.CharField(max_length=100, blank=True) identifying_features = models.CharField(max_length=1000, blank=True) occurance = models.CharField(max_length=1000, blank=True) - + class Question(models.Model): """ The definition of a multiple choice question, associated with a Sample diff --git a/three_d_viewer/templates/three_d_viewer/detail.html b/three_d_viewer/templates/three_d_viewer/detail.html index 9225853..be8310e 100644 --- a/three_d_viewer/templates/three_d_viewer/detail.html +++ b/three_d_viewer/templates/three_d_viewer/detail.html @@ -72,8 +72,15 @@ function formatNumber(numero, decimales){ function load(){ window.addEventListener('resize', resizeCanvas, false); resizeCanvas(); - + var sampleFilename = '{{ sample.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"); @@ -113,7 +120,7 @@ function webGLStart(){ var canvas = document.getElementById("canvas"); canvas.oncontextmenu = function() { return false; } // supress the context menu in the canvas - + initGL(canvas); initBoundingBox(); initOffsets(); @@ -347,15 +354,15 @@ function handleMouseMove(event){ var newY = event.clientY; var deltaX = newX - lastMouseX; var deltaY = newY - lastMouseY; - + switch (event.which) { case 1: // left mouse - + var newRotationMatrix = mat4.create(); mat4.identity(newRotationMatrix); mat4.rotate(newRotationMatrix, degToRad(deltaX / 5), [0, 1, 0]); - + mat4.rotate(newRotationMatrix, degToRad(deltaY / 5), [1, 0, 0]); mat4.multiply(newRotationMatrix, rotationMatrix, rotationMatrix); @@ -369,8 +376,8 @@ function handleMouseMove(event){ console.log('moving ' + deltaX + ', ' + deltaY) break; - } - + } + lastMouseX = newX lastMouseY = newY; } @@ -379,13 +386,13 @@ function handleMouseMove(event){ function resizeCanvas() { var canvas = document.getElementById("canvas") ; var parent = document.getElementById("contentdiv"); - + var canvasWidth1 = canvas.width; var canvasHeight1 = canvas.height; - + canvas.width = parent.offsetWidth; canvas.height = parent.offsetHeight; - + if (gl){ /*hmove = canvas.width / 2 - canvasWidth1 / 2 vmove = canvas.height / 2 - canvasHeight1 / 2 diff --git a/three_d_viewer/templates/three_d_viewer/treenode.html b/three_d_viewer/templates/three_d_viewer/treenode.html index 2399ada..fcebdec 100644 --- a/three_d_viewer/templates/three_d_viewer/treenode.html +++ b/three_d_viewer/templates/three_d_viewer/treenode.html @@ -1,13 +1,13 @@
  • From 07c6260bdeed9f64931c0df31d1a8a3fa6104b5e Mon Sep 17 00:00:00 2001 From: Shane Frischkorn Date: Tue, 21 Jan 2014 15:59:23 +1000 Subject: [PATCH 03/27] Sorted the order of the menu items --- three_d_viewer/models.py | 4 ++-- three_d_viewer/views.py | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/three_d_viewer/models.py b/three_d_viewer/models.py index 21c1a2d..5daca3d 100644 --- a/three_d_viewer/models.py +++ b/three_d_viewer/models.py @@ -34,11 +34,11 @@ class Category(CommonInfo): @property def active_children(self): - return self.children.filter(active=True) + return self.children.filter(active=True).order_by('name') @property def active_samples(self): - return self.samples.filter(active=True) + return self.samples.filter(active=True).order_by('name') class Sample(CommonInfo): diff --git a/three_d_viewer/views.py b/three_d_viewer/views.py index e54fd09..9b9d0b0 100644 --- a/three_d_viewer/views.py +++ b/three_d_viewer/views.py @@ -19,9 +19,9 @@ class HomeView(generic.ListView): def get_context_data(self, **kwargs): context = super(HomeView, self).get_context_data(**kwargs) - context['active_samples'] = Sample.objects.filter(active=True) + context['active_samples'] = Sample.objects.filter(active=True).order_by('name') context['parent_categories'] = Category.objects.filter(parent=None). \ - filter(active=True) + filter(active=True).order_by('name') return context @@ -33,11 +33,11 @@ class DetailView(generic.DetailView): model = Sample template_name = 'three_d_viewer/detail.html' parent_categories = Category.objects.filter(parent=None). \ - filter(active=True) + 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.filter(active=True) + context['active_samples'] = Sample.objects.filter(active=True).order_by('name') context['parent_categories'] = Category.objects.filter(parent=None). \ - filter(active=True) + filter(active=True).order_by('name') return context From d5867c8d4ab1de840d08f6c0c932e7d624a7792a Mon Sep 17 00:00:00 2001 From: Shane Frischkorn Date: Tue, 21 Jan 2014 21:43:23 +1000 Subject: [PATCH 04/27] Added seperate minerals detail page --- requirements.txt | 3 ++- three_d_viewer/models.py | 13 +++++++++++++ .../templates/three_d_viewer/mineral_detail.html | 6 ++++++ .../templates/three_d_viewer/treenode.html | 2 +- three_d_viewer/urls.py | 1 + three_d_viewer/views.py | 14 +++++++++++--- 6 files changed, 34 insertions(+), 5 deletions(-) create mode 100644 three_d_viewer/templates/three_d_viewer/mineral_detail.html diff --git a/requirements.txt b/requirements.txt index 0b9aa4b..9a492c3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,10 +2,11 @@ Django==1.5.1 South==0.8.1 astroid==1.0.0 coverage==3.6 -distribute==0.6.34 +distribute==0.6.49 django-dajax==0.9.2 django-dajaxice==0.5.5 django-jenkins==0.14.1 +django-model-utils==2.0 jslint==0.6.0 logilab-common==0.60.0 pep8==1.4.6 diff --git a/three_d_viewer/models.py b/three_d_viewer/models.py index 5daca3d..e42dff0 100644 --- a/three_d_viewer/models.py +++ b/three_d_viewer/models.py @@ -3,6 +3,7 @@ Defines the models that that Django application uses """ from django.db import models +from model_utils.managers import InheritanceManager class CommonInfo(models.Model): @@ -32,6 +33,8 @@ class Category(CommonInfo): on_delete=models.SET_NULL, related_name='children') + objects = InheritanceManager() + @property def active_children(self): return self.children.filter(active=True).order_by('name') @@ -53,6 +56,16 @@ class Sample(CommonInfo): on_delete=models.SET_NULL, related_name="samples") + #Use the inheritance manager for handling subclasses + objects = InheritanceManager() + + @property + def url(self): + 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/mineral_detail.html b/three_d_viewer/templates/three_d_viewer/mineral_detail.html new file mode 100644 index 0000000..65e1aaf --- /dev/null +++ b/three_d_viewer/templates/three_d_viewer/mineral_detail.html @@ -0,0 +1,6 @@ +{% extends "three_d_viewer/detail.html" %} + +{% block pageheader %} +

    {{ 'MINERALS' }}

    +

    {{ sample.description }}

    +{% endblock %} \ No newline at end of file diff --git a/three_d_viewer/templates/three_d_viewer/treenode.html b/three_d_viewer/templates/three_d_viewer/treenode.html index fcebdec..8d1783a 100644 --- a/three_d_viewer/templates/three_d_viewer/treenode.html +++ b/three_d_viewer/templates/three_d_viewer/treenode.html @@ -8,7 +8,7 @@ {%endwith%} {% endfor %} {% for sample in category.active_samples %} -
  • {{ sample.name }}
  • +
  • {{ sample.name }}
  • {% endfor %} \ No newline at end of file diff --git a/three_d_viewer/urls.py b/three_d_viewer/urls.py index 963d4b6..90a04a4 100644 --- a/three_d_viewer/urls.py +++ b/three_d_viewer/urls.py @@ -6,6 +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'^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 9b9d0b0..e9ab259 100644 --- a/three_d_viewer/views.py +++ b/three_d_viewer/views.py @@ -5,7 +5,7 @@ Define the views for the Django MVC from django import template from django.views import generic -from three_d_viewer.models import Sample, Category +from three_d_viewer.models import Sample, Category, Mineral register = template.Library() @@ -19,7 +19,7 @@ class HomeView(generic.ListView): def get_context_data(self, **kwargs): context = super(HomeView, self).get_context_data(**kwargs) - context['active_samples'] = Sample.objects.filter(active=True).order_by('name') + 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 @@ -37,7 +37,15 @@ class DetailView(generic.DetailView): def get_context_data(self, **kwargs): context = super(DetailView, self).get_context_data(**kwargs) - context['active_samples'] = Sample.objects.filter(active=True).order_by('name') + 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 + +class MineralDetailView(DetailView): + """ + Add extra functionality for mineral details + """ + + model = Mineral + template_name = 'three_d_viewer/mineral_detail.html' \ No newline at end of file From 9509d788c0ce807f3ac18ee5d45e9918160662f6 Mon Sep 17 00:00:00 2001 From: Shane Frischkorn Date: Tue, 21 Jan 2014 23:54:09 +1000 Subject: [PATCH 05/27] Minerals now show their detail. The layout still needs work to get it showing correctly though. --- docs/Web Site.docx | Bin 18338 -> 18912 bytes requirements.txt | 2 +- three_d_viewer/models.py | 2 +- .../templates/three_d_viewer/base.html | 6 +- .../templates/three_d_viewer/detail.html | 2 + .../three_d_viewer/mineral_detail.html | 83 +++++++++++++++++- three_d_viewer/urls.py | 2 +- three_d_viewer/views.py | 12 ++- 8 files changed, 101 insertions(+), 8 deletions(-) diff --git a/docs/Web Site.docx b/docs/Web Site.docx index 4723943b880aa44f77023723fffd94592cc8990c..8af343d666361d28d716c3bb0b6908e9c4449394 100644 GIT binary patch delta 12201 zcmZ{~1yEhh(k{Glch}(VF2UX1Ex227-MIV4EohKHaI$gN;O_1k9D-fm^WA&S`M;{a zt7g^Iny#MiSyRu<>VAq6A+|seq^b%~(AWT206YKyAP2Db*0e`K003C99}NHx338Rh zs$)ll1pZd;V?&pEkbRNZW0qg57lr3OhaAOZQ0rgupoy1yNg4`x6#|t=!f43_*GH!= zJ#6f{T1kVdS&F&6H5W=8GLdzmrB@WQEJuwG6R((K+2BFZGla6ss7XqL8F>irs!#3J5yaOz1_`e9 znZt;%J*HOYdo4A3tcf)F7}0`u{e2k^Qu#CVpGx=fEE^!|lB)4KRn(e$gh@@p8jdKd z-bmWQ=uqdXNpGut`B{P#rzuJwp2@T@ZIc#$XKFI_agVG3-=^BW5c#QxaJJQc zKytP-`R*Gmu1?y)t_oGf8)B+g*Vl|9_MZ&jxG>;W-nig{PXgqJ7losqok$-hI^c

    $V0KCM_h(n zq91JJIl^GrHsfLVVpX8AQO&NGw#ms#J8o`>X&UO7r%k!Qh&}Z#Q6K0R zGr4C^r1BkOruhnIN1)^25fJ;t3zdy9>(CM2ey70JrZF?}-mn|EDHs@a;ju@?N$H|r zXfeth8~%_f^tWbEJ`Li~Q9EPxrGq|!X-^K`XslgU&uw(ZzFtK9WzhNhLYJ6XO zcK>i^yV&K=*(9Ty{H8SD6U;c=Ke3}r@9yPvLIMDh=l}pQ03HH#DoNZx4Tk^$)Kzj` zWkc>jTLQvE-{SvP{`H;t&x*0t?a>- z%unpW_^Ft$^za+uVKFVTKqA#gs>NnA(v0SU2umbwKwke9Oj9J!@HuBrFX`ey)b+ytZ)(JjM!_!Qm5~VzzzA&xK4zP9wK+l(bmr zoUGPRYO80(N@L&0mG+Km#&*Q z5RMrBsk9_sl`BcUrs8Wm6|}~*6OMf8qW@_!qO=}~;&*1UOQXuw(R;fMmhd}nP(ga| zv^zV%4*E5$rf%#D5vJZ3;`v&nhGuSG`4myuSqS|0o=XE`^RXjQNMQ9ADh3}MbMo)% zZXS=q>LP9H*ydk-f<4aAW}k{gUd!^3B$vwEw2a2Pivlm%N-VlOD!)JI2jrS45KG)M zzgPvFJeuPaV`j}OA9mV9at1u}+KE)~dX3 zlx3S6qIeC(diU8P61E^*PFWCgVVmPlqvNdA0lW6()pcvzhScQhK@>T*Cz6Mne)X-D zuCxj+M{VgNfLTbunAD3S;QpcK+~l8~4V0b=PHsd40Dw{e0LBLndpUo#V6|{I_i(gy za%b^&bXYT7PS_p92|!B%lHH~PW-%)|V16Mp&w(KXkH+GXGXT!Ee$K1WV018tjb&g<8_n}HkrD@bVKt8SkNr8S&w){K0B>E}+Q zgd&0ZYbZqe`0R^j35VB_gTayU&O^YrS>EU5{puYOFG>^z@V3om4JqL&-L*`$HhATl z1Sv<*568RkS3)+U^Wyb_z2AU=A8W0? z_0Ag&;&gCALKJ7@frOFkRYVx6*-}Jicta?qaU@4|4x)!)e5!*4$(G#us?QIAY?kNb$j0Ph!@D`r{VtfE zB}gzwHx=pW2{+$(ruWhtAGSkkT+1JV@tz5EI$vAoN!Je@m}8)IRKGuj|G?8js?pz~ z)AnEE_{Q6~Zg&fI?FeEfQH74Sw@8j>FPfccK)sz^bn)412olmqi~q@gmi@5qBVic- zco_8)HRavKBTUvNz}u!9_{(>OM@)XKMoajD1>#)$Hsq% zAbifVnEUNJOwk_aPLIvYk#w;20OPe~D^awy3n>5dK_RaZa@;m?a2B6}&(Yn%>;2j= z0!va_y;csK9KO_!+ED|J#VOq9y&fdzI1$Gl9Fqvoe(o@}@p_3(pedY7Sz1&i-RvbM z{Xvn?sR~hl!Z7|2lGnk?L<1Ph&H&d=VZzAq(~?@)x8@&Dkv69-`fdDEW}~?J&;ksf z)=2$H`I?`rU?_=vQAnAguU>8JBa`unlQ#PwFc{mL2+(~nHoR@ZguQYTF_0)`60`rL zX3&P6V)BX={jTrS0Lo*A)1pc3K246Td*iguLudU=YtOs#hyin|QybZy2A%VXFSzaZ zQKKjwt}l;$E+a?bBTEjnER5?lyza#`p?(T0;7xfEdAxpoz^Qk}^G7k2GCm>d)#kkU zIi)(&W65f(9dA6|2V;*5>lVsh8L*rC6x@!tx>GpVh*N<08JJ8)`P1nOC@39b$C%i~ zRG%r~b2s``?XFbzFKwSEjJ`&7=D>{n^FN{z;23Wyq){m>wDx>kfXy4Kn*Dx1_C0s3 zl*5R)OAAFUV^))AGmCPxiQ%e5$K_gtA+r$!;i<>!)B*nIOFe(mipTgThZzCS(+Pe%S3Hsxd5?GOV zw|$p3QBX&v#6pIIw)RIkj<8khzRDUCHeU=mt~InZb^%&nH7U(GT6$*qqU`P)`4;Nc zb2JGE4o*#7M#d7Jw8Ny(%`LP0^=&)wJc*l7DbWCiSZN2`$d2fv;Xi3aFQVs7vqyF) z*XUT4h>i@3S`v82#tR96Zd;yB+EY3E=``fReRk`QEzBU@MA<8OCg;+ z@lw%ZWdGUX7Wbe7SnWe0mWu@+dnVC3l23zGFFm3z^z+D&Ek0vcAxt~i*EFXRg2D($ z*XDWt7_y?e;ye=3NO6Z8coX@h>0-9BQPI@5&H<0mc|pR#{<*3Gg_cz>oMvA%?9aiL zvHprYgfThDwwe6;5$YQqqkKioMTaU2Dy%%4Hw8svO-+jpOZ}2m<5Gp1>ed0@T1k^B zBXZps{0;?k3C*{q%C)6f%$C{RJ><-8&4hxrv`3j(;Z7b9FA+wAudNQzm+um)0393* zZa@-|IkyvFNg{$Fb-4n)COmKef>qwvkL1MI0B+ceZ?*g^+ zwTONq`jQT$!t1|su#l6az2xA-!ip*X?Wp&eIVp&Z>Z>W|do;2st*}K3GotI=5f)`g zI%B8}nEt7BN_Y*AK_i*hS5#?Bnw2A9I1Jo+zeuTGKqDXzVqKms#YtSD;qdS95oNY) z5J+m>#K#$SNX60K|W z316Z^)j%M% z19|Vo=SArT6s_s&q}!N~B^=Sma2Oubtl^ufJ*Wh7N=jA3ln@FxMn$i+xxlLSbg8eE z5?E^Rv6{3PNqS8#Sqno^>=^r4E}?-GjyP&Ct>op{2-)V1;!RrJ81YO!L5i}s#<;+m z$oUEs`6e8$tNpJs3Q23XXk8??joUyL83if~rsHlYS~?m>jJh@PP6^Vo6JcA--@k3} zB{XCMFghf-@%}PvYhc~CT-OfBIYO> z;M2Dlf!RWbHcHQ%ahucD`$~IaLME34!{J4}f-gt(8QY*fn7V@H$?(K620kAMQAPYh zP(<^y(N-(peMX?>6!^UMDg8y;2&E#NQa)v7HC(;28x&=Wlb?`stak6qh{^~ZC}v7p zyNIDBTz0@&f%6lSN9v&8;L8<-jmh713e_Ln%X4oBrth+Rx|Y-R?G~#Ciuh<9Bq|VE zmefsjnl45balK`OZ}UYkL9!^o^44s9=#_k!RNPXenyk?K+RMV4Xk+z9#s}v!0m*?*k#<=fV%0B!cBz*56B8P^VWfA5GrwB;2f-d3*p;xA0PhbxQ^yDy@YRSt3|ERnENA<`r zGXO|NE2llg8xpT{alQqZdXm5Zbw@eHs0Do!U321P0@`8#E1ggOeJ!bB#nq54L@!v$ z>uKC{wkCqcgO$dfFeq0^E!}%qBJl5>Lgc9IO4C4aY6smr3bLZ6Qot(Qo^4Q~SGQYH znL~{r_3Q57TVEd)-!4|lSv2c2S0+)|k`KPkNPq|C?l6(;b@Nox4TO%W{>wu!bOnZ|t@kqs$1 zNlMVRuS+CAhm=V5%&;LrP)y_LJ`uGH@Z9`%*9uJ+<2nuGy7Mzvn~>c1*C6ht+pL(M zdkM+1dC5@l)Ng`I?jFoPD&{PkSZ(qgd8^Em1v1nC*JZbJS{_M<0p}wM9O#Y-8u@{+ zXzjBnB1yeDpg$$u2ER(72F-DgK?-d)U zSXNcRvV1^E8IB(k5-8P5ZACuZ=`)e*%l%bm^om5|N)ir`^YOc1``Z&5Ax>)5$Gf@RwCt zB*z$~nOT4V)HqFMMsjM;Tjh$XU51RBl$#+gT!g@>;tD5&^1Oo8tVyK~0|Kv8kMDik zjd{+m7%N%If>1(Tnl2&NB-_v<)R-^M#bG(q7}b^gXb4x!Uy-t-B8@YC+W`mpB7anl@rxT}c}cmZa)HdAL!o`1}OCRD?C6uXw}4dYJ$ zqhfHB$w%7h5SGr<_9`nk{x**fmw1U^%k;*q^*w{O#EKLmew!lCO_ta?PS;{%D%-)t zIl08WwlZRm$aVg4?3&?Kx6zE(zdE7TD8K`rO7*0!m;j$tf|4F<@cpB+8mw-ghO4n7 zqXa<9{wq0Z+s0KiR*vQ?I8uQL$i7I$yyI{vh+=jAhm3Gik>S&D>UdUY`L&CJr4$N^ zBH!o?Z%F7W(FQhZS<9G6=Hgd4HipeEQf8D(%-DZCH{aByM$~n6{Hmi?3TN5ZZixrx zrS-`SRz$s@H~4jO9Nf{KPc+`}T)kW8*6;JZp)cdw>+JyMj2QCLnQ{!I+jLSI1kfvc zOzM%yt;GwQ{V7mIpU6u3U9e}GM%9uh;C(0E|LS~fLJ@SMbM*~3O^b-raJ zcL451mJq_Jx&*4x<(ME=Xo$^p+jrpLT&|MjBHgKJdazWTHtXio=!Qpcq_AlStq^h) zO;W5A<=TV*`ULL6aSQ%jVV=@*0EP$3P`4bnm&wEk=9XEjSgu5SQx=ehs%(*PAZuS#bkUoGEl z^9q&wSC3z4q3Nx)#Y6ZXYek^dD}-jk4}Ngwg9jI7y#mLRCJQdQ%u_;C^a!;XBRZlw zZM4d4OXEdM{wZvJjx_DW6ewIN+niAeZ0B%1km)SJBxL~!8@?4R6UgXZe0sFRSeI4O zY?aOJJ-S2GqM~O%VrciYBhxOKNQ289=YDgw$(AOR;7IgveYSwx_23w}ZZSK%`4Yql z0Qy8mjg@uPp6D#x!66`ERuQ$OzzV+Z0O^pi0zo5^ zX>emnt(e>gfQv8-*}k$h75o%dB_S4=AIUT@g_7TBG&U1El;d@M6ggB0!jLJD@(w6SQb)W>Y>D3K8}@}rr>uB z>q93-i#wVt&I5vA{TNI}7zDF9V9RgxZD+fXKY2yJR87RnX)i9K)nImlomH%V;{?!( zBspdbz^Thp8D$p&;&7@IFYXOxHC5> z@etbF-{%&r<=7!D9qTiq#4MSGWa>C@HVPw7tTp%a=epe`zufqr2&U~r0Od68m~IHu z3LGiH=^^+2X^#d+D4G>vWS*GKR`LAtz03Cyd6LEFT0gVh7SRfVDPfKI?R0h%i+TrV zq*J_tpG~*ogPI6;ZhE93|LUY5hW@}l{441SJF&ONXnb|jsg^CexFr7$gCxuWaC5t{ zKDs~Di06!RhcbQs#?p{A0;H?>6rC!*afN8Nufv+t7_E>Y$BNu1e-{Z1n+hQG7eOxi z()qQH&B40gL}}NNCrpu2bVrN|rN|vU%ksvB=Tpj49n7|X{OiwFR>xSYKd}*wQhMms zHIYetcQt)tNC%8S!EdM|V~egl-%!Y7$>Mt5(WCpu&8ALHxi+Lv$$?pSzB~_b4YkUB z<5q%npuvWLg0dX4d+VO0F)JdKU9r`fC6kiS2Zx4Znr3YYC6Baz%m(88z4Lg%tb1bi z#TBA{M7gP>=_)jvuj$y=mP+1_axN7^*;o7nF_z9_S@ALT*vm>158j+^gO;?S!OBU~Vnm$7l zRT-R_B=S`?kP?#VFn86Zg275jFLm(Wag{2*%T2~ZTx$74aD-NMcv#Sq<74DN2wR1u z4;&@FayqHisZzEF(nj~hwqV3PU-d|q>%m|N`***-jX)?+4-_`^;zLGgg9z0j1QeTa zZv#EeIxNC{3Z$AK6_4g1h+r4*fW+M`ENX zw%y*t72X%oMBZnuI_PTzJY6?T4x} zj)eGhCfQ6F7gI_5MLS^+9nM+ZRl%s8! zgxF?T_hYI|k1(k3QtUAtfadvoN*Ft}?lGGqF3e&tlYb!tp1VG7{pFsqn>6QsEL~>L9!8bK}G80Gf04 zr641oIp?gU?}L?GXEf(LJ{CuciUxVib9*^(esg3mSi_E-HF=_w{VD>Z%DuM^|&5}@b-t()OWrxnT?q94}uyZ zrL?kIoFmf7ye=BffDWz|VJK5G*G*=wc4vzXb{7y75c+yH!f=OIcX{ynk9Ns@p)F|K z5OANIx-1KagUAlwo*xFbLWZ^vU7B_({Zp|(O5h!!qxUu0lby)h5DKOHsU2-mzDXJy-X7hUEpx zBzzU@jAfO_#~?Ybv}PBM2pE7iVp&rXeS&`VaCOb7F;kp2$tcnp zr9G-aT4dZe56n%d;hZ(>L!%+J^;61wxJZkVY~GOGC$%Y!thhntLFdBC<*iFrp@^=y z0ip^Qs9bWuZ{-kCtK^y29jd`$AG+9JuQ|9IiFaaUQ>o ze3Q7tsE30f`%pqt^UR1>c z58 z(=`p?PGSSPAaFPbFqhZ9D)yJs88V%d7hkzLg%<+84D3J8E2{OO#qSns)waV6EUv#O zOr14x@*{JGjByLf-c$ORB_X~YL6>iU8p}>M;sjpzHHjDEf0;(}!3t^xc?rq__msN7 z9>Dfh{LAQUC`9G|%;VChc0FkH-ZzpHv_o7#4HitH%?PLwy!$zGFrA%15OA(v^7*(O}EvH=xO^ zo%rN8zyv_Pf2=~yQT^k&yIq)_cS6uUaRFiahY8#R1?!I}w^J7(TmEI3=_IlpLG)jd z2>SdAy_MO3X0mo-1Lo>eJ3}UM3gH(pe9WHPvQ6i+OZv3^&oZE@g4z-2CZ;PeDnBfy zy9NDcHQ=!tI6u@~Mj3-#@LIwu{_Xz%|C$VE5zPr1fLY}`^9AauAnx+Te0~HY1NoYv zqY-uSA8Ac)kbO~op3jpKf=a_tqtb5+vLDr=XcIl_p4U>yEXrL7!XaziySA9~rA-Z!wmah2!dOS2_}k)o3?)ZyuQjqQ3rOT-wH?RpvXgKEuh zaS20Wnn{~<@1D9P9e@lGSMQEUKuv$Na|1iOYQ~f6!iAf#9Rq9*25g$dx`*;g$z^1& z1z`gY8`Hl=9#q_#id*@2byswX`J-2u2X=iN%r2WdY7_K-Kcgy`%pzd2l;G-%`kmbU zd6mM@KDtoX7IDoFgh_KL{p*59W4J?GQRCTnO&xil6NTvxw)5!cfeUzA2fAq@4*h;d zKM;4=emS%GMg06M`777g<~&_cx8*Wjqwm?Nh1#yGeMTGl#M7o?e_*_AddNP_e90!V z5xLsM`%}G*N%`%HQe)lqrhE-af|mXP(=nFlo^I03nWQkD5zavo(Y@we!|IH0Fbxl= zsIjN9!t87H~^<=hGG#0 z%Ck4+=BpHIDV5N)hqVZOxq8Vmxr14*M4$qKxS*-@2kC8rR2G61T^_&^tbi3Ifdl|)oErIf_%}r zPrm_XixWM0wO-0k%7Kq)|JF-#&k@bh^!}y-TlC80 zs4S7R1Y`Aldowpi5-uVf&N9 z*ODvUW(y3f@C@0HlqXVP(U$uSVYUWyHc5JC&*q+@fxZhw?<8EUe1a~LVPY+pQ0NI7);o+ zi?*OsZQou`ODasp^JwjV-O}cKd9dDhx@U988d2Gyll`k9xB7{XMTU)`C*K(c$@nH4&PLIK~vb2G58+xn+KEovz!^E^sa#;tLpMfDKqk0$2x4N)Q*Ak zWsAv#kR!)3o=+{5d8syi5mX4Isv%N^HodQjVjnwVmAQPaA*1Xx1XH%fFJ1&z^Pec~ z1V$mQm=0TVql4{=(e;!g+aIlvHplWZIog3Vf-Epl=+FklGU4SBJ< z_AKfs3cFn*-2lW3=waVe4f={Z3o&3_4W+U414`*oTu;`E?p0Z)EyJN_)v9d6U>V^@ zC84I8dEax{quafJvo=a;Wy4NTz2u)IxeST)t()m@XZO!=VEdZ3US2T7LF34Q{dclV zLg4Z4s!ehBlSV^A092$rk*QFT&J%_8!uZQBGj&v1AI_YKk`h-f=nigp5T%~+6;sKo znioA-h1`i#&_lTBFk=AQQbN2q>2rj8Bbl1NNDRVLW!}TVspd-Tj?Fc2$4J(OuLS8N zTJ4)RWFz@4(Ci)w0C<0g0{mYl8E66u4wyN2g`pb z4SVTz2`g;)Ll5!+k;Bgzv|)@=aAoNyB`hTRl@o(}U$~noSILJ)&+`Nu6J1WGOh|* z)GU~ivDE2C{@U~)w-SE_da6BqrLK-H=;9I*d$zH1T#hxDuvSE$Ri_52W-&5Hg%{-y zh8#_5`ADbHMemy%yR=1V#7#~M#0k^HjJhc=6G<`ll-#|Vk0VBvmt@p8r((H-S~d8bCiMp*F^Op^z>LY$pY zNrZBP%P-_8M2Ruk7jhqCQe-W4AwAsGZ!wfzBLu-HUC7`1h(_r=F^=MF`p%lko%V9! zjhT2DDyr;mQw#)Fhut9idi=8)`pQ(*ve+Z8vdiKLsh1hPAZ`L_gj83a5!d5EVB>PrdmlSu&$H>I8f*Gq#UNTB+|?T%C@CbXLmF z(hDm;z5+RdFEudy{d>F#WW-$Gurk3Q?NZBHf@27sz=YGY3Y(+L$}rFxZ8D`UJeEjudcIsnF?9OQYyR!8l+P*&Y4g{Mc29mD zZVmcx@Z$UnB-?#b&|$PDo#m#OpsfI3FYmSfS)ICI4CE8BXVzA zI1Q7g=v*ZyVCL>mMXN%6T_GfcijEkbx)>uqR=a2fYLDNCdz2GN#^A z4`&CZeFMBygo0=hn{OL!jD;Z=TvGLz{q30cw&5CyBqm+EnWwI_BnYjw>TG-L&y|nW zZArk*J(hxuAO#MN|AqIjVFC=&*s$xvmYc=d6B>7EdGq`&O&1QYdr5xh%fPo|C5)@w z>S*X8jJ+)eAVa#iG_#I$MNR3F6o3qa+0-@gJu!3*8?EP*%a+IU46lz|Ds%p7($GKxrV~ojIJ@6kYb?p?ff)?q&8UA7Wr?oIc5*R(DtP~- zq6gp_I@;d%8f-dr4>gC}jzjUH8d&6SuGD-#O!@RGwgVaXY`05cU+Nbg*AH7acl`zN zq%=;M)AuOEq`#z`-4JrydlFHu;V~v~u3b|-Sqv>uMdFn~Du2Fg^ytCTZ|~Eop%u2f zXhcZ;JTON_BM-CDY9Nw%B8t<@_4aWry#Ev%9b%VKBYA=(j<#J}e@C}#a{1_J)ttji z^|%*D>5F5eMlI9StHTNT5O)ug3ioT?ne5-jN!k5|^%`oWH#YkUy@t+gOWS>ng87{{ zQ^KV*cWYca!?A=vYS#3MRIItoA$s`w$ovNEM!*<$}HSm zCf-tEdG`-Q2S0mR?S7qPKA7C+`Ubtfy+$Fxr$9uh6Jifzsyl#fXAw<6j78KA&Df!e zEz-jU7f1k8xk=(+70?DiOr$U?CF*?ODlGl951=C_LSD;q14MoG0z(SI`hXZO!x{IA zO@Qd)pc%+ew1aijByVaj7xNTuk^FtQ3;B#I`qt~?r$7~PDHi(V;)fEO6i>5r>1nXk z^zD$w?f#93ksP6)s^xc%R_*mo)naLn?trSFKgpo4YWiWBRc)xesPMK zE+rPA`8DGfaM*bgMmWtqT9$HEv_#y8Tmk12Gxy~vNvvj~n~0>Ev$C;`Wc;2$`4X?- zG$yH`W+&)io}W(EI`hUFq8j(Ii%+vhG#@nSsrYQY*lc^7n&Ya&FK;3%NTduZm4^Z= zjDP%44|lasW{nHN2xIQ5f|?-9>A!@|b4W6BHS?BqLVBLSZNFMvJ3_P(Pfmqib^(c? zt1#+AgPQ7_S5t|h&$1#5#JYR2&QH&|;g=c`r$U2-W{pFGUhVu)AnzSM9?kQ{ju1#S zJE8}DCO3oghzk+@0bI@u=Rb5P^~i}o$6p8`5@itH%-3Fro8Va0+`p@Ny?-F$|D4?r zkjx+0_}@Hmh$xV*e4Fe89N0O{W|C`+S zAB_VLhmaU%uykpXZ$O%s*4pRdaP$ z^`~pD?y2nrko*`BG$lDOaC87902%-QkN~bp&V8cm(5OLy3W|Ng$iY{XA0ehS#X8se zk$Lt?{Ip@%Q)8~McpXG5n%y5=bC|g7!phgPg&RIwPb({v_mFft;&9icl`@)KC$-R# zjcKfNiCr-{dtR6Z$dqWmIAZHLi1F@gYCQLvz#^q>m`xgx*TIgc&2k|q7ya{+);$?O zyIyJBM18}7G}mk2j-utPKvR)JW&X1LW?J!zIj)-` zl}tEMA1450>Sn|gBPcii4%SNs?&az7_Q+5($MC&G8F>VExv0J5w?=Y2ag14uJIlhSo`fw(3<$zF+?KnBc`#y7;F>I$2z>Ar#FoLZ57!zj>Fmm;beVn$%bJYNYvWQ~F5Lhf>gzSNeLyG=_3l#=G~ z&-4H@1gXhd3tPKICjPj@JpM?Qiu~P%U=eabQd73t0_|VJ-D>Tz_%bl6F>&K~50Mq^ z*4;z*>R{<<#jBbK7G_t%O+y--dW(oUT)4ilrdP{jVHm?u26iiqhP2i)e;lJMX&&ft zt(m7Nvf>OYVL7)g@)sV&KlLJ_f6>F_!GulSdAnqSY3U+4ujG3S)$kFKXwqZ)c)f`Q zHZYkBf+TE1qQmAk@`Lt(0s!4e4IhwnAV76xy9{Pz-<-xzWReFK?Bm7a?=pIeGCs>= zi@CYQgZNGYcP^=oCvZ<_Y5SQbb0xlYCv3a z-I1iS(*7cv(BhSFOyPLycG5#;NoJvN9uH#+eL@_;Pm7Y95u%|V9+Pa(#q}-_vt4)4 zDu(1_t=a}kmaz73wU{he>q%!4sb%5xDAe?&E}6=G$!eIEqsQ^K9UZ>Z!G46zh>?Y) z#8+f7Oj3T)!)c?|rEb+~j#`yGfk4g~Vi;8LMU=uR?)?P&Fri<>qqbp3${%2GoLu<7 z8dW4w3+fkw#SkdPv;WpU)hXSKQ&%`HId(67D@Z#t(lmT^1wFS*91_bGJG6d!W_Nd@ z5pQ}LAqg9b6U)>NLGj&P(?pjDst+GSy!GhoB7`#6S=uRQmo4w&n6IS{ssS=5IMjMB zX-pJdDgTl7+H>|Sd5O?FXTVu9?vMJZ3gW1WS3W~g;tndb0xvt*-N*~jDa$IadA7u- z=^Rlr_hVHTt%xfgdT-i9{Pb{1(Z72?>OzFDKS%b(hT>pptH#u?<#55C-F7)cUoc|c zP?OzLdi$t}(#n5osmcfQA_SJ*y+=fKxgB4{4(_4IO}4T)6n zFY^yt^HaxXTW1*r_@2nUnnt=oZpVbEHO9m80xYH(W!?yKPV)%D=N!n5+u((nt z{=T;lCpt^Qfc#-9y2<6aAR$277pTc|sP@?kj~AiJ##en6$J))k*K6Soi!Ermd?EU0 zF~f4E{6Vxs002T+5iE|lN ze@J3t=$yOc+!DR6ezg6K_YEmDo>_FiSSgfAfM8`y6er9cbL(~*X6pXiim?1`AdIO$ zB>ktGrF@Xw$;-}b-s45ci%!p<_{0!GBx7nqOQ^W{Zv2lIMZI&VY@oL3Pn2SK)u0i5 zA_gMM4E89?ukz6vL{d$QFKuQ&wHBW`5tve7PqdP0^{uEET!ujG0={v?V{l! zoI%eh&|>_FdC;M+;e&lu`B*@H1UWnh~=cLze$`n_dQO1Q_FD<9B7vJ=G#xEY_xW;?LaV^ z$^AkdtnPtzP#-cA!QKC_;d-vQ8=H`w`XhnZh7_KRk=4Zt!rLC0H`&gYBK7vQ=35 z;YljJ986_RB0l_Bms9+F5<<^gh=)^e+BL)qYL_e;4NQRG3XvZ0ClYLM-|nxzDS*=6 zMB?;~AAR<7E?BIIr^9-HF}H@n!&6;39LHjPWM?YsKSAQxmXo8$u8WOu)oXf%sEVy# zp*{QwGVIZ8Dwt-)Z=*=rAct!zT_Nd3g@%Dj$Wg+75`Q@E*%N#CL4s-5(_GkI+DgZn zF}lu`1gt^7G+}Ve?^pD)$g;p=GtSJq3JY>*7Do(@K;ig(jQa=lR~X8)CVk?hN3!g` z`hz2}Dy6z?;jeoz6t*BFLl}JNPX7|7z{uPH5B>wVZ2bU=8w`P%mItv)bh4`}@Q7zE zau+_>a+ZRn3`O3JNB9|~zDU{iv#3nX8X1FvTwrYw&SL`WCCI|JxaO6Mr^AgA7}*EY zhG?&=_Q88}o5#+pYAt1ncvw8R*uO!)$v=3}3Bf|`C6z$1DHV2}&~Z24P9Twl$=RB> zdzsphk~l!?WI+U=Q3?USw*|wX2UsVREilGxvQYlwr0yDTa7zvtaR{TESjQOt+0!Gh`0H+E+M_0+SF2^3TgRYIlYu`n8V(+Hj=F_<`Z8-|j4%$ZCwSjKj9Fik zeyDvoIqiD0{(cl(dd4Vs`q|)HvT(ADck)fDVX{)@#=#hH;b3-}E65_o%aIA6oY};2 z)$~*17w5MuXd5)jJ%GlUwDZVO58{{ynes>SD+|K<>9DM7(%bSqH?( zt|88v&n^wYm!1UsVI0e)wQ~Zw^U?M6K8f{q3+vfkATKd`-J(of8n7^@bz0gu{9a>@ z0%7Pz&L^vCnCm|(fgeOCSda%H^qfd%H9<$VPdhcD6`c;y(E2X0SV0NjijX6uENv~N zJMuKUjWpCM*C6f0(EK7K7yB+QK))+)1=^%mm6MliG^Ww( zBtSL}6)LfXp*-U*!&~(`UIjS2Q$bdrms}|o0!qC^ioV?{$+#*Cy_h*;dZM!f;_r_w zz9e5%8luc$SP*)Y*q!GM1A4KL#=4-Ae<96}9MgKsI^MID+euHk_!hhn`X0ti@{w(e z4CIGCzn4p(4+`Lg9^X~XR*i%kse8%M6Ydc!SV8>88dUVBLN<9&v^Ow3|U{$ znmU#VS2(}MkJ!@LkfA&POK1^#=d{g(D1^>y zT~eB$uwrBV%AlDpZRn9f4;#g)3R6T8bNYb*61E=BUnDL|*?h!8693qZfuy7-iTVr0 z-Rw5lBh7I^C76a6X$feY63v%3;pr5x$x8g$ywOy)940Jzx~-3S=^ZQix}mZQ_hKS= zAwQY^>k|AuFWQoXQ0|v+i@-@vGAvbKk;-r1{M!f|-oq42%D*7LK`?VYe+Bc>3tywf z(bi6ps^#fg4DGfWeTPs&3sV}~&kcC=6{|ggvEKxgO7jG~VmSj_a|H`P^oe~e?5#({ z0K|m(!{2K(V5_2S7rwXRZ30oj%9S%lmsSUHpHtXS2Ud@ns4KQhA8Pp{f+U9-U~dZJo=!uYMetC@8F zV0FKqZ6D;fsM`q4%f9kOHvM^#<68@ttG00H7H$@ki|IMeAz*k1A`<0b4Kcf5@KL&V zF;8VA?>TC*Krcp+L`7&{7NwZweD+`oZ_PF2l*tuqI~Kcnq0nK(oa()AO$of6kt2a=JT77=xx?T)CYh0y5=)JV&bX#pOBBWhF z2GTd6*Xr)}&(C_HtkJR?aBo(wo%6nG9~TFKQHto0kZX(~OzQKg^UE;vFec}tPdhC=xk^Khz`P(&;xgmoumR}B7+@RkP)Jy$m=RTYQ71!>Ct!Y)P zo6?TUD({$yHYh01YdhzxcJ$!wV#M4vox(wsEvv13#dUmD5|4*AvA*zq|LNowZGjO~ z{`;|9!Zdhmz&8Q(^MZ_zR@SUqwx8Xpt?+$m%gXGABF+T;4xYg?Y-o-V0;p6n)1ygr|ss~qa%c95WzBzdk zEM45|#=RY1Dh61&S!EWP!nsV*X$}f9b_tAeTW<#woXdugx^y~Nc2%%IFA?rPrdR1Y z$g9-v*%03^D)x+Gs-GK_5~C5{Rkl~uDfwUkwfPJ_!U>Ea&t=rKxA6z`4A{Ghi)O8M z;87Kz`O;huvkpsn1hQv8gHCQ+Lxb9_2+y8YRCeUEOD{RQn)63T;QJ z1Y0D^q2oBMZykuxW-NsTJI1vGuIE&+mE*`Za#&FPNPA_j#!kDLdtd~enk7?_Ovb@r zJbsYO0O=@(0IKvUrAY7(l?Q(7h8YQ+7x|XcExP69iiix_QL%Lo?^2)7AJH$jnp}&w zZf2zlcU=DF9%tdNyNWkav>q|Q7-}EfH@bxCtxvRua|eU@t|cx%&gZT*y9`LZ#t%rY zA^U{ylGt`eshAH-c;i8;77s_F#jW>l-ttRh(TXR{DZM&#*#+*avb)Yl&qurkKe1zF z?Yv}4{=EJDL+_KXkN*n9dn<%#)Ez{-xeU>Qn}DxEtwJaw@WH{g997^1{mb;vuB>4R zR}Bglm=e203=RNvz$S2zQi3H2Lnr8xQlNR{+(g<5cCqsE8kU7_%Q1Drb|xf~G6B)H z)DJ+|3aiDVc>MTCaAvP*o&?2ii^_(I^f_h=i4%_#gkS=e&*npmmZY zNs^;<5YRY0Ey)e%)SZ#5Ds#d+*)Y7Ks$PrOyAU^>Hr0KWBZ%_f%SIDHI2bn`S@my| zO){?k7(P|lHCtx`Z9=E`0Sh}&3I|Lf>D!tQn&FeME9(wWdz);wQ}cJnUY=WVlGqwS zQd|3evMA4QL@#>cS%Wx0L`%P4o7iJA8=>jaUZ}t(U znlZN;buqp4#ACM~=oOQ?czsY-TLvqQ+t)$$O%*58?+VrsVkX~alvOc+PTJMZp`Ij8 z&Ga6m)7{{bMQa6VwgUbRjKS|+*Z6?vdU{dYgD2Y%Uj3jlYG%cucp!^Y8RpX!*#Iu2 zZc$ci7k4r*(=HHwpol)1Km!A)Gk@JBjr}s8dv+HpO1Ml5BN>8&tmVQmh#7xisS0J8C0x5b3Q3+l- z{rCJS$QipFZT>0xRi)Nz=>A7#%U*1tT59Z*UHka`z^x)p`l_ZCMft|T>BKMP`4cj2 zA>_rm@2dM<=plLU1oOb_(>rC{UmrXIHu(liYa|bT&)q#@sWCnKrsn#E_p&IB_a72_ zZ&YLmO9`Xv{3zFC5DEqbbl%z0bl}Nk_{=ylQa`4|X`mmg}l27-%gkc;pcpdcRi=W^x z)y6i(#v*szebiEEU{fSfU+GWxjm#EUcgZx^M&T_(cn?hzmT>T}ecNDWpLDL7T(kRU zeS;5~(X}@eP#%GR*|Yy?h@#$rL`->M*&~Ai0L;Yz09-(Voiu(zA`=Q$*^Sx>x9ht5 zABBYB>}(R)dW{5dxmeePP9|*N(pL9S+|vLXPPp-o;%1~z43)n|$Vh)*Pfv&7%ixpo zWIRWNcpugWT*`;t)mKVhI&wG|>uA;r3OsSF$Sd=to89M;t#R)_jCJSJm zz(^}<5?1$7kLw9Py8j46f$JHLzf;LWD~Q!{tj3_#E630r3kPfUJV=5LPo?4^jb;ej7 zOGhmOm1@uEPa=vkX(S>L9pjOOPQeh9QgZxETh)#6JVfy2-HS4OzBD2Dy>Np(MlyLd z88JP|to81+ScVFus;XnXKJiT#KXZ$poYbfSn%y%y(}R}m{Ye0hj5fjaXY#i{Z*xuSthje+OWVK5A+&oW}F)io&P=FGC!y}S=8|LN0wu4y$*H7>vb?}_KC-hd_$ z#qKS_Z*^q}>+XYedwxb8E(@=zvJi>`%l})q=eNvmzW92er376BuXg(-FCjYoTXe`rT2Ept)iByEd^@Jmk_{2du0z zliS0nU6UB|;=tcMDenZ)|FEY8MQk?v{wGKDA)?BPML3z$Y+~}l+wumGNDQ3C zd9@#~af3Tyg!^N;K+LgkDFF{uSGKV`!x?@D z;|Rg3XZs3(J{m^72Lz?8FRRJ*+?DFT6Q$)|)CbQgYam}{yZE`B9%x^^7?Ih5Vt#WN z34%<{;{{!0{(AGjkrBi;!E-E&m02ukUyI|MjzOAKU4$^l5)f znad4Ts;~);ess(Zy@0O*qcI6$sgH9@slS7sVoY7f+@=%x4?5<*Kn;d70POG{XnwB= zZd}9m`wG2|hmiecE?@5O%msp!Cvbrbr{N*SbJ_kO`t}bfplRf5#Uw*yJW_)?ceb6M#_%Gy$U=lmf>3>`~RovVl?vLXF8B4>1FIgPP0PM>nL6&}@ z5u4d^OK-MH`Evgg2C#WbJJ4_^XWSsme`1KA`|oJ<4V-^@M4WjGOS~?@Xn-3G{Gajv zXHfn-CSQKIOkrL|#MhL3qn8oxGE>^HBnJD&Ad(N74C%Xvmn{NEeAP`bi&k4d4Kfo? zsD>s4eRDj+=$fO28U&9~ov*Z=bcxkjq-rJ3okes)-uiYo`&NjjuXV;;^a!-u6pm5u z(t-9$SKC8APU|V0u21;EHI~F~PNAZpVFHKDX}>8frnItHfLS3(lp1=Wc)hgdD*0=6pXQNpA*nRozj)P*4w6A0SRP%N91gSIAjnSmYs82{ z_qVpKW--L27JoU9NzRb(i4~Afr0>_f3fwVw7j6$9T|exG&giMs;{%&&3LLoo?xy>46KChA0We6-Xt~xvRM{r+*;e!f&CB$ga2D zN`aBPgqq{*v0A;RiwN}#e2E^zg3H4rrYimAr{I0@X7o7jxw}14?qvw~OuFVP$lovk z+|GLsjm5TT3F{cLD&50%Yo}Laoh5jaZqgb*gu1K4jBeLv#QKWO{)Mq`o>>wHg*c{? zm;26Ci3tU4E(*e^`tSUDG?;x+**#Q4%d2uedrE70x zeBG&&g1RX(RcZD$iBUUS4=xRfHcuD~eq-0*`5&$j$Q`bTmqA%hV*yWGHb#NEg}39nQ0X*N~Z{Z>kSdAs4ZYY}MN;LZ@?HQ*}xA(RXF< z*ym!(qKQV%cXid7q@1es2S4peV0O;+h%gWD_TI?Y{GMBTR}3Bh(SY z;w>G3%+z2s8$w`al)QvkROSMeuQgf59PCZ^gbZ;2*_)$n zp5Lm=$b(0`g>M`SJ0hn1eF?)%GXVIwX-*M$jR%qaBUw-zpB81{+%K!%`b2)#;VuO)#Kr&9o*+(iA0XsmVh!%}5Drj<89 z6f3+GI1_MWaw8@w{ikZI0A5Rr987f$`F{C1RAe3(!9mp~)GM{+K!a(Z(vH}EB^4SH zL9JD7Nip<^;T`Wo?3^BJ%?i8F)RC2Y@;T6DkC#d1A}ly26#fH;$os-}Zl=@IJ#GB) zqwuEoPG!cmTycT4$FFk0&6#?7T6QYP4#ro?7b>B6_F-9o{V2N!?xdJ71dGlzVkEKq zBXp9dJ?MreZ0ldMY(H>A&n|eL#@bpGNsa;fa=kjClJIrFlmOOjk zQ+2$(LSDX}I-|$C%UGbs)Pzw93%xu%jRC*PZ$3Z40RJk-NjQUq0jh-t z?$3VJJrKhJ0H|MDH#uCWQ5KP_7NzhuI$AUI+UY;m}9hrzZ&{vS%7I2Jo=Nv*ChdM^ZzvH^|ihWfeD`}UX zpC78~nt!a#Y!UHLZ3;t8Yhjq3uEnq>&Yf6<$jG+E`ht2~|89jHZRXdM^ch6AF(u1U~0? z@4CEwsIEcl-y7^C6ee+?2q8>*C{jjwwdLeyKQx1LIE`-4v_JGQdxid+twk0FYRS&N5S`-R)l<=jxmlwP@5)%2~u3X#T(a3xgds>Oqr1q_EtJA(Q^ z&9XDvk2k4;%V%S6?Kle!j}Np;Vz6ctm){U?6X@(i>Rs2Ndr|Tc&G5wBPSkq59`Zycr#4g@@^ES!|jKayrD*P>5}Ox8s&>QhZTI ztp!Pgn_K!fgtVHvzZK}hzGX%BTorW@sbloO3suq@+kQ_1W?&?}GA#W5jj4;FB?2;0 zLM>4xQS>xaK4Iek>_$dQs@$3O*UDNtW89ay48O$0Z=Q+)!WoLAB1RP_1;q?WeA{nB z5l*&VGL!!kwK9r&;d5v{KObG}y4&vBsFhFrnkjgvwURm)AmNpxsr#v+`>DOTPG8gW zUFzov=a59p3FhQUmC2)?Yeu<5#tzeeE&)KoIV3cUYG?t~{a15Rf}98e@VD#$Gcx3M z$2MQkdW(e#3XRPZX*d?jJe2gD1>U%^D5ceU3)f{ivF>9s2^$d`u;opdYLld%Vr#6p zya-@tUhjKya5lDaC<*&*RdF>gM3>O-z_zvX*fGPvJ2+96Dk9(AcIMtufu>QmP7{Pf z9lbYYDvk71ZM2no{>FyLnlqUB*jVb!nzyu~y*qhJo?j}@qZ!h6Q91)OV6 zM6YoocViv%VYgp}*PE>_k-wl3!*z#0c;T7>DM?ZgPHxOz{F?W4SEc>F??kfHmz z_8=<*LgZX$?P$vVmwoFx;qT!E)+8ifK6{ekCB)J&9x}>UQ1}qA?ditAh2sHoRX%+PE4oQ4bo*CB86dP)XD zR9H_6?M(=^@Jox@NUAx4L$bzs?PIuoCyqj~c&`>-88_#vR=HG;(F2cM4Y6l9f{v=> z1c+flDLmPcZt(!HQu?@DcDQ|9TXeAKUMWh4zoGiBGr{3c81qYbHz~Yhtf-yEYhzUP zjDEx#Yte>W#q>Q-7mlaxZ#x3(;U#`i_EUaw+*FhJh>stF8w+!xAf6U% zg9LRX<@mY@eK+YQl=!O3zfK?(2()ttV&V=+Os0T_Fop$%*LmMMxtv&#AIbNE)1&7Z&R|2Tqjp>v+HL`MJom`Hn<(xtj(yX zwa>$^7YgBl>GI53^!X#sr;fwV;Tf~QEEY-mgLmO>HC6S6VCz=Z=XLn?P$+~ z&#%`r;O{tEH24oET+k0P?w%U@G-u(U}x;0^OOZa zqmW)V5Lsay&$ly`Fa-Vkp%BBCc4*diae@q_giVU6l>?uQ^`I_{8wtewA;tG{kY=80 zwpIh!;d4i=O&Y7(6_pBpfcNtJSXj8x;PcZS-1nxl9R9wbSe19B_i2GJ?YxSRiv-o3 zY=8X&csvieDuQ;Hq!Mz7dJJ(? zxku2)aWN$({hhE!56=hC$8$1gCjF`D3ar{snHt^R>>_n0eY|^1SPgd!C{`lD3p{ly z4J*{A&F(Vi8r>>m2)EkC_NQT+RI72bjaw|=qKuCAo)Fs)i2or0AfOBYbj1HI%S}j@ z08Id4j!^ zAZR#tLah`P`M-aJ{9m(8qW_ - + {% 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 From f11e471840caacf15d5b8ac811794a96480c324c Mon Sep 17 00:00:00 2001 From: Shane Frischkorn Date: Wed, 22 Jan 2014 10:55:24 +1000 Subject: [PATCH 06/27] Updated documentation to note dajaxice bug --- docs/Web Site.docx | Bin 18912 -> 18965 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/Web Site.docx b/docs/Web Site.docx index 8af343d666361d28d716c3bb0b6908e9c4449394..2d86105732144d85eb4ed011921540daf709ecf1 100644 GIT binary patch delta 11585 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 From d72dbdd9b287d6659362601371cb89d993848377 Mon Sep 17 00:00:00 2001 From: Shane Frischkorn Date: Thu, 23 Jan 2014 20:36:05 +1000 Subject: [PATCH 07/27] Fixed formatting of base page --- .../templates/three_d_viewer/base.html | 42 ++++++++++++++----- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/three_d_viewer/templates/three_d_viewer/base.html b/three_d_viewer/templates/three_d_viewer/base.html index b814380..496065a 100644 --- a/three_d_viewer/templates/three_d_viewer/base.html +++ b/three_d_viewer/templates/three_d_viewer/base.html @@ -17,8 +17,8 @@
    @@ -32,14 +32,36 @@
    - {% block content %} -

    Put some intro text sort of stuff here

    - {% endblock %} -
    - -
    - {% block details %} - {% endblock details %} +
    + {% block content %} +

    Welcome to 3DVOL – Minerals.



    + This website contains a three-dimensional virtual object library of the most important rock-forming minerals making up planet Earth. You will find information on:
    +
      +
    • Which are the most common minerals on Earth?
    • +
    • What are their most important physical and chemical properties?
    • +
    • Where in the Earth and under which physical conditions do they form?
    • +
    • How can they be identified in hand specimen?
    • +
    + A mineral is typically defined as an inorganic solid with a particular chemical composition and a characteristic, periodic atomic structure. + This characteristic atomic make-up is often reflected in the macroscopic crystalline structure of a mineral. + The 3D models presented on this website will help you to visualise, study, and memorise these beautiful and often + complex crystal structures as well as other diagnostic features of minerals. +
    + We hope that you enjoy using 3DVOL. +

    + Your 3DVOL team +

    + Acknowledgements +
    + 3DVOL is funded by the QUT Teaching and Learning Unit and the School of Earth, Environmental, and Biological Sciences. QUT High Performance Computing provides technical support. +

    + {% endblock %} +
    +
    + {% block details %} + {% endblock details %} +
    +
    From ef96af8d468ed2e4112b52a6ce38b3ecba61bc7f Mon Sep 17 00:00:00 2001 From: Shane Frischkorn Date: Wed, 19 Feb 2014 16:10:57 +1000 Subject: [PATCH 08/27] Iniital work for new UI --- .idea/.name | 1 + .idea/dataSources.ids | 6 + .idea/dataSources.xml | 12 + .idea/encodings.xml | 5 + .idea/misc.xml | 5 + .idea/modules.xml | 9 + .idea/rockviewer.iml | 21 + .idea/scopes/scope_settings.xml | 5 + .idea/vcs.xml | 7 + .idea/workspace.xml | 826 ++++++++ docs/prototype/3dvol/._.DS_Store | Bin 0 -> 4096 bytes docs/prototype/3dvol/._fonts | Bin 0 -> 4096 bytes docs/prototype/3dvol/._images | Bin 0 -> 4096 bytes docs/prototype/3dvol/._revised | Bin 0 -> 4096 bytes docs/prototype/3dvol/._styles.css | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-bold-webfont.eot | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-bold-webfont.svg | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-bold-webfont.ttf | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-bold-webfont.woff | Bin 0 -> 4096 bytes .../fonts/._qcksnd-bolditalic-webfont.eot | Bin 0 -> 4096 bytes .../fonts/._qcksnd-bolditalic-webfont.svg | Bin 0 -> 4096 bytes .../fonts/._qcksnd-bolditalic-webfont.ttf | Bin 0 -> 4096 bytes .../fonts/._qcksnd-bolditalic-webfont.woff | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-dash-webfont.eot | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-dash-webfont.svg | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-dash-webfont.ttf | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-dash-webfont.woff | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-italic-webfont.eot | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-italic-webfont.svg | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-italic-webfont.ttf | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-italic-webfont.woff | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-light-webfont.eot | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-light-webfont.svg | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-light-webfont.ttf | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-light-webfont.woff | Bin 0 -> 4096 bytes .../fonts/._qcksnd-lightitalic-webfont.eot | Bin 0 -> 4096 bytes .../fonts/._qcksnd-lightitalic-webfont.svg | Bin 0 -> 4096 bytes .../fonts/._qcksnd-lightitalic-webfont.ttf | Bin 0 -> 4096 bytes .../fonts/._qcksnd-lightitalic-webfont.woff | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-regular-webfont.eot | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-regular-webfont.svg | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-regular-webfont.ttf | Bin 0 -> 4096 bytes .../3dvol/fonts/._qcksnd-regular-webfont.woff | Bin 0 -> 4096 bytes .../3dvol/fonts/qcksnd-bold-webfont.eot | Bin 0 -> 26599 bytes .../3dvol/fonts/qcksnd-bold-webfont.svg | 1742 ++++++++++++++++ .../3dvol/fonts/qcksnd-bold-webfont.ttf | Bin 0 -> 53480 bytes .../3dvol/fonts/qcksnd-bold-webfont.woff | Bin 0 -> 30364 bytes .../3dvol/fonts/qcksnd-bolditalic-webfont.eot | Bin 0 -> 28152 bytes .../3dvol/fonts/qcksnd-bolditalic-webfont.svg | 1735 ++++++++++++++++ .../3dvol/fonts/qcksnd-bolditalic-webfont.ttf | Bin 0 -> 58388 bytes .../fonts/qcksnd-bolditalic-webfont.woff | Bin 0 -> 31824 bytes .../3dvol/fonts/qcksnd-dash-webfont.eot | Bin 0 -> 37625 bytes .../3dvol/fonts/qcksnd-dash-webfont.svg | 1279 ++++++++++++ .../3dvol/fonts/qcksnd-dash-webfont.ttf | Bin 0 -> 73000 bytes .../3dvol/fonts/qcksnd-dash-webfont.woff | Bin 0 -> 41516 bytes .../3dvol/fonts/qcksnd-italic-webfont.eot | Bin 0 -> 28486 bytes .../3dvol/fonts/qcksnd-italic-webfont.svg | 1734 ++++++++++++++++ .../3dvol/fonts/qcksnd-italic-webfont.ttf | Bin 0 -> 60192 bytes .../3dvol/fonts/qcksnd-italic-webfont.woff | Bin 0 -> 32380 bytes .../3dvol/fonts/qcksnd-light-webfont.eot | Bin 0 -> 24281 bytes .../3dvol/fonts/qcksnd-light-webfont.svg | 1704 ++++++++++++++++ .../3dvol/fonts/qcksnd-light-webfont.ttf | Bin 0 -> 49308 bytes .../3dvol/fonts/qcksnd-light-webfont.woff | Bin 0 -> 27580 bytes .../fonts/qcksnd-lightitalic-webfont.eot | Bin 0 -> 26389 bytes .../fonts/qcksnd-lightitalic-webfont.svg | 1595 +++++++++++++++ .../fonts/qcksnd-lightitalic-webfont.ttf | Bin 0 -> 55972 bytes .../fonts/qcksnd-lightitalic-webfont.woff | Bin 0 -> 29912 bytes .../3dvol/fonts/qcksnd-regular-webfont.eot | Bin 0 -> 25295 bytes .../3dvol/fonts/qcksnd-regular-webfont.svg | 1746 +++++++++++++++++ .../3dvol/fonts/qcksnd-regular-webfont.ttf | Bin 0 -> 50964 bytes .../3dvol/fonts/qcksnd-regular-webfont.woff | Bin 0 -> 28848 bytes docs/prototype/3dvol/images/._.DS_Store | Bin 0 -> 4096 bytes .../images/._background_tile_lightest.jpg | Bin 0 -> 4096 bytes .../3dvol/images/background_tile_lightest.jpg | Bin 0 -> 21275 bytes docs/prototype/3dvol/index.html | 86 + docs/prototype/3dvol/revised.zip | Bin 0 -> 1042654 bytes docs/prototype/3dvol/revised/._.DS_Store | Bin 0 -> 4096 bytes docs/prototype/3dvol/revised/._fonts | Bin 0 -> 4096 bytes docs/prototype/3dvol/revised/._images | Bin 0 -> 4096 bytes docs/prototype/3dvol/revised/._index.html | Bin 0 -> 4096 bytes docs/prototype/3dvol/revised/._menu_jquery.js | Bin 0 -> 4096 bytes .../3dvol/revised/._minerals_practice.html | Bin 0 -> 4096 bytes .../3dvol/revised/._minerals_selftest.html | Bin 0 -> 4096 bytes .../3dvol/revised/._minerals_theory.html | Bin 0 -> 4096 bytes docs/prototype/3dvol/revised/._styles.css | Bin 0 -> 4096 bytes .../revised/fonts/._qcksnd-bold-webfont.eot | Bin 0 -> 4096 bytes .../revised/fonts/._qcksnd-bold-webfont.svg | Bin 0 -> 4096 bytes .../revised/fonts/._qcksnd-bold-webfont.ttf | Bin 0 -> 4096 bytes .../revised/fonts/._qcksnd-bold-webfont.woff | Bin 0 -> 4096 bytes .../fonts/._qcksnd-bolditalic-webfont.eot | Bin 0 -> 4096 bytes .../fonts/._qcksnd-bolditalic-webfont.svg | Bin 0 -> 4096 bytes .../fonts/._qcksnd-bolditalic-webfont.ttf | Bin 0 -> 4096 bytes .../fonts/._qcksnd-bolditalic-webfont.woff | Bin 0 -> 4096 bytes .../revised/fonts/._qcksnd-dash-webfont.eot | Bin 0 -> 4096 bytes .../revised/fonts/._qcksnd-dash-webfont.svg | Bin 0 -> 4096 bytes .../revised/fonts/._qcksnd-dash-webfont.ttf | Bin 0 -> 4096 bytes .../revised/fonts/._qcksnd-dash-webfont.woff | Bin 0 -> 4096 bytes .../revised/fonts/._qcksnd-italic-webfont.eot | Bin 0 -> 4096 bytes .../revised/fonts/._qcksnd-italic-webfont.svg | Bin 0 -> 4096 bytes .../revised/fonts/._qcksnd-italic-webfont.ttf | Bin 0 -> 4096 bytes .../fonts/._qcksnd-italic-webfont.woff | Bin 0 -> 4096 bytes .../revised/fonts/._qcksnd-light-webfont.eot | Bin 0 -> 4096 bytes .../revised/fonts/._qcksnd-light-webfont.svg | Bin 0 -> 4096 bytes .../revised/fonts/._qcksnd-light-webfont.ttf | Bin 0 -> 4096 bytes .../revised/fonts/._qcksnd-light-webfont.woff | Bin 0 -> 4096 bytes .../fonts/._qcksnd-lightitalic-webfont.eot | Bin 0 -> 4096 bytes .../fonts/._qcksnd-lightitalic-webfont.svg | Bin 0 -> 4096 bytes .../fonts/._qcksnd-lightitalic-webfont.ttf | Bin 0 -> 4096 bytes .../fonts/._qcksnd-lightitalic-webfont.woff | Bin 0 -> 4096 bytes .../fonts/._qcksnd-regular-webfont.eot | Bin 0 -> 4096 bytes .../fonts/._qcksnd-regular-webfont.svg | Bin 0 -> 4096 bytes .../fonts/._qcksnd-regular-webfont.ttf | Bin 0 -> 4096 bytes .../fonts/._qcksnd-regular-webfont.woff | Bin 0 -> 4096 bytes .../revised/fonts/qcksnd-bold-webfont.eot | Bin 0 -> 26599 bytes .../revised/fonts/qcksnd-bold-webfont.svg | 1742 ++++++++++++++++ .../revised/fonts/qcksnd-bold-webfont.ttf | Bin 0 -> 53480 bytes .../revised/fonts/qcksnd-bold-webfont.woff | Bin 0 -> 30364 bytes .../fonts/qcksnd-bolditalic-webfont.eot | Bin 0 -> 28152 bytes .../fonts/qcksnd-bolditalic-webfont.svg | 1735 ++++++++++++++++ .../fonts/qcksnd-bolditalic-webfont.ttf | Bin 0 -> 58388 bytes .../fonts/qcksnd-bolditalic-webfont.woff | Bin 0 -> 31824 bytes .../revised/fonts/qcksnd-dash-webfont.eot | Bin 0 -> 37625 bytes .../revised/fonts/qcksnd-dash-webfont.svg | 1279 ++++++++++++ .../revised/fonts/qcksnd-dash-webfont.ttf | Bin 0 -> 73000 bytes .../revised/fonts/qcksnd-dash-webfont.woff | Bin 0 -> 41516 bytes .../revised/fonts/qcksnd-italic-webfont.eot | Bin 0 -> 28486 bytes .../revised/fonts/qcksnd-italic-webfont.svg | 1734 ++++++++++++++++ .../revised/fonts/qcksnd-italic-webfont.ttf | Bin 0 -> 60192 bytes .../revised/fonts/qcksnd-italic-webfont.woff | Bin 0 -> 32380 bytes .../revised/fonts/qcksnd-light-webfont.eot | Bin 0 -> 24281 bytes .../revised/fonts/qcksnd-light-webfont.svg | 1704 ++++++++++++++++ .../revised/fonts/qcksnd-light-webfont.ttf | Bin 0 -> 49308 bytes .../revised/fonts/qcksnd-light-webfont.woff | Bin 0 -> 27580 bytes .../fonts/qcksnd-lightitalic-webfont.eot | Bin 0 -> 26389 bytes .../fonts/qcksnd-lightitalic-webfont.svg | 1595 +++++++++++++++ .../fonts/qcksnd-lightitalic-webfont.ttf | Bin 0 -> 55972 bytes .../fonts/qcksnd-lightitalic-webfont.woff | Bin 0 -> 29912 bytes .../revised/fonts/qcksnd-regular-webfont.eot | Bin 0 -> 25295 bytes .../revised/fonts/qcksnd-regular-webfont.svg | 1746 +++++++++++++++++ .../revised/fonts/qcksnd-regular-webfont.ttf | Bin 0 -> 50964 bytes .../revised/fonts/qcksnd-regular-webfont.woff | Bin 0 -> 28848 bytes .../3dvol/revised/images/._.DS_Store | Bin 0 -> 4096 bytes .../images/._background_tile_lightest.jpg | Bin 0 -> 4096 bytes .../3dvol/revised/images/._rock_example.jpeg | Bin 0 -> 4096 bytes .../images/background_tile_lightest.jpg | Bin 0 -> 21275 bytes .../3dvol/revised/images/rock_example.jpeg | Bin 0 -> 147697 bytes docs/prototype/3dvol/revised/index.html | 62 + docs/prototype/3dvol/revised/menu_jquery.js | 58 + .../3dvol/revised/minerals_practice.html | 114 ++ .../3dvol/revised/minerals_selftest.html | 66 + .../3dvol/revised/minerals_theory.html | 77 + docs/prototype/3dvol/revised/styles.css | 881 +++++++++ docs/prototype/3dvol/styles.css | 306 +++ .../static/three_d_viewer/css/styles.css | 881 +++++++++ .../static/three_d_viewer/js/jquery.min.js | 6 + .../static/three_d_viewer/js/menu_jquery.js | 58 + .../templates/three_d_viewer/Old/base.html | 68 + .../three_d_viewer/{ => Old}/detail.html | 4 +- .../templates/three_d_viewer/Old/home.html | 1 + .../{ => Old}/mineral_detail.html | 0 .../three_d_viewer/{ => Old}/question.html | 0 .../three_d_viewer/{ => Old}/sampletree.html | 2 +- .../three_d_viewer/{ => Old}/treenode.html | 0 .../templates/three_d_viewer/base.html | 121 +- .../templates/three_d_viewer/home.html | 63 +- .../three_d_viewer/minerals_practice.html | 114 ++ .../three_d_viewer/minerals_selftest.html | 66 + .../three_d_viewer/minerals_theory.html | 77 + 168 files changed, 27011 insertions(+), 67 deletions(-) create mode 100644 .idea/.name create mode 100644 .idea/dataSources.ids create mode 100644 .idea/dataSources.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/rockviewer.iml create mode 100644 .idea/scopes/scope_settings.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml create mode 100644 docs/prototype/3dvol/._.DS_Store create mode 100644 docs/prototype/3dvol/._fonts create mode 100644 docs/prototype/3dvol/._images create mode 100644 docs/prototype/3dvol/._revised create mode 100644 docs/prototype/3dvol/._styles.css create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-bold-webfont.eot create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-bold-webfont.svg create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-bold-webfont.ttf create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-bold-webfont.woff create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-bolditalic-webfont.eot create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-bolditalic-webfont.svg create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-bolditalic-webfont.ttf create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-bolditalic-webfont.woff create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-dash-webfont.eot create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-dash-webfont.svg create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-dash-webfont.ttf create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-dash-webfont.woff create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-italic-webfont.eot create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-italic-webfont.svg create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-italic-webfont.ttf create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-italic-webfont.woff create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-light-webfont.eot create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-light-webfont.svg create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-light-webfont.ttf create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-light-webfont.woff create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-lightitalic-webfont.eot create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-lightitalic-webfont.svg create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-lightitalic-webfont.ttf create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-lightitalic-webfont.woff create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-regular-webfont.eot create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-regular-webfont.svg create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-regular-webfont.ttf create mode 100644 docs/prototype/3dvol/fonts/._qcksnd-regular-webfont.woff create mode 100644 docs/prototype/3dvol/fonts/qcksnd-bold-webfont.eot create mode 100644 docs/prototype/3dvol/fonts/qcksnd-bold-webfont.svg create mode 100644 docs/prototype/3dvol/fonts/qcksnd-bold-webfont.ttf create mode 100644 docs/prototype/3dvol/fonts/qcksnd-bold-webfont.woff create mode 100644 docs/prototype/3dvol/fonts/qcksnd-bolditalic-webfont.eot create mode 100644 docs/prototype/3dvol/fonts/qcksnd-bolditalic-webfont.svg create mode 100644 docs/prototype/3dvol/fonts/qcksnd-bolditalic-webfont.ttf create mode 100644 docs/prototype/3dvol/fonts/qcksnd-bolditalic-webfont.woff create mode 100644 docs/prototype/3dvol/fonts/qcksnd-dash-webfont.eot create mode 100644 docs/prototype/3dvol/fonts/qcksnd-dash-webfont.svg create mode 100644 docs/prototype/3dvol/fonts/qcksnd-dash-webfont.ttf create mode 100644 docs/prototype/3dvol/fonts/qcksnd-dash-webfont.woff create mode 100644 docs/prototype/3dvol/fonts/qcksnd-italic-webfont.eot create mode 100644 docs/prototype/3dvol/fonts/qcksnd-italic-webfont.svg create mode 100644 docs/prototype/3dvol/fonts/qcksnd-italic-webfont.ttf create mode 100644 docs/prototype/3dvol/fonts/qcksnd-italic-webfont.woff create mode 100644 docs/prototype/3dvol/fonts/qcksnd-light-webfont.eot create mode 100644 docs/prototype/3dvol/fonts/qcksnd-light-webfont.svg create mode 100644 docs/prototype/3dvol/fonts/qcksnd-light-webfont.ttf create mode 100644 docs/prototype/3dvol/fonts/qcksnd-light-webfont.woff create mode 100644 docs/prototype/3dvol/fonts/qcksnd-lightitalic-webfont.eot create mode 100644 docs/prototype/3dvol/fonts/qcksnd-lightitalic-webfont.svg create mode 100644 docs/prototype/3dvol/fonts/qcksnd-lightitalic-webfont.ttf create mode 100644 docs/prototype/3dvol/fonts/qcksnd-lightitalic-webfont.woff create mode 100644 docs/prototype/3dvol/fonts/qcksnd-regular-webfont.eot create mode 100644 docs/prototype/3dvol/fonts/qcksnd-regular-webfont.svg create mode 100644 docs/prototype/3dvol/fonts/qcksnd-regular-webfont.ttf create mode 100644 docs/prototype/3dvol/fonts/qcksnd-regular-webfont.woff create mode 100644 docs/prototype/3dvol/images/._.DS_Store create mode 100644 docs/prototype/3dvol/images/._background_tile_lightest.jpg create mode 100644 docs/prototype/3dvol/images/background_tile_lightest.jpg create mode 100644 docs/prototype/3dvol/index.html create mode 100644 docs/prototype/3dvol/revised.zip create mode 100644 docs/prototype/3dvol/revised/._.DS_Store create mode 100644 docs/prototype/3dvol/revised/._fonts create mode 100644 docs/prototype/3dvol/revised/._images create mode 100644 docs/prototype/3dvol/revised/._index.html create mode 100644 docs/prototype/3dvol/revised/._menu_jquery.js create mode 100644 docs/prototype/3dvol/revised/._minerals_practice.html create mode 100644 docs/prototype/3dvol/revised/._minerals_selftest.html create mode 100644 docs/prototype/3dvol/revised/._minerals_theory.html create mode 100644 docs/prototype/3dvol/revised/._styles.css create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-bold-webfont.eot create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-bold-webfont.svg create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-bold-webfont.ttf create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-bold-webfont.woff create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-bolditalic-webfont.eot create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-bolditalic-webfont.svg create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-bolditalic-webfont.ttf create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-bolditalic-webfont.woff create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-dash-webfont.eot create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-dash-webfont.svg create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-dash-webfont.ttf create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-dash-webfont.woff create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-italic-webfont.eot create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-italic-webfont.svg create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-italic-webfont.ttf create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-italic-webfont.woff create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-light-webfont.eot create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-light-webfont.svg create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-light-webfont.ttf create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-light-webfont.woff create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-lightitalic-webfont.eot create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-lightitalic-webfont.svg create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-lightitalic-webfont.ttf create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-lightitalic-webfont.woff create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-regular-webfont.eot create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-regular-webfont.svg create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-regular-webfont.ttf create mode 100644 docs/prototype/3dvol/revised/fonts/._qcksnd-regular-webfont.woff create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-bold-webfont.eot create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-bold-webfont.svg create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-bold-webfont.ttf create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-bold-webfont.woff create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-bolditalic-webfont.eot create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-bolditalic-webfont.svg create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-bolditalic-webfont.ttf create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-bolditalic-webfont.woff create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-dash-webfont.eot create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-dash-webfont.svg create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-dash-webfont.ttf create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-dash-webfont.woff create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-italic-webfont.eot create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-italic-webfont.svg create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-italic-webfont.ttf create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-italic-webfont.woff create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-light-webfont.eot create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-light-webfont.svg create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-light-webfont.ttf create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-light-webfont.woff create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-lightitalic-webfont.eot create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-lightitalic-webfont.svg create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-lightitalic-webfont.ttf create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-lightitalic-webfont.woff create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-regular-webfont.eot create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-regular-webfont.svg create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-regular-webfont.ttf create mode 100644 docs/prototype/3dvol/revised/fonts/qcksnd-regular-webfont.woff create mode 100644 docs/prototype/3dvol/revised/images/._.DS_Store create mode 100644 docs/prototype/3dvol/revised/images/._background_tile_lightest.jpg create mode 100644 docs/prototype/3dvol/revised/images/._rock_example.jpeg create mode 100644 docs/prototype/3dvol/revised/images/background_tile_lightest.jpg create mode 100644 docs/prototype/3dvol/revised/images/rock_example.jpeg create mode 100644 docs/prototype/3dvol/revised/index.html create mode 100644 docs/prototype/3dvol/revised/menu_jquery.js create mode 100644 docs/prototype/3dvol/revised/minerals_practice.html create mode 100644 docs/prototype/3dvol/revised/minerals_selftest.html create mode 100644 docs/prototype/3dvol/revised/minerals_theory.html create mode 100644 docs/prototype/3dvol/revised/styles.css create mode 100644 docs/prototype/3dvol/styles.css create mode 100644 three_d_viewer/static/three_d_viewer/css/styles.css create mode 100644 three_d_viewer/static/three_d_viewer/js/jquery.min.js create mode 100644 three_d_viewer/static/three_d_viewer/js/menu_jquery.js create mode 100644 three_d_viewer/templates/three_d_viewer/Old/base.html rename three_d_viewer/templates/three_d_viewer/{ => Old}/detail.html (98%) create mode 100644 three_d_viewer/templates/three_d_viewer/Old/home.html rename three_d_viewer/templates/three_d_viewer/{ => Old}/mineral_detail.html (100%) rename three_d_viewer/templates/three_d_viewer/{ => Old}/question.html (100%) rename three_d_viewer/templates/three_d_viewer/{ => Old}/sampletree.html (87%) rename three_d_viewer/templates/three_d_viewer/{ => Old}/treenode.html (100%) create mode 100644 three_d_viewer/templates/three_d_viewer/minerals_practice.html create mode 100644 three_d_viewer/templates/three_d_viewer/minerals_selftest.html create mode 100644 three_d_viewer/templates/three_d_viewer/minerals_theory.html diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..4879533 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +rockviewer \ No newline at end of file diff --git a/.idea/dataSources.ids b/.idea/dataSources.ids new file mode 100644 index 0000000..a7aa2ad --- /dev/null +++ b/.idea/dataSources.ids @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 0000000..f2c2c97 --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,12 @@ + + + + + sqlite.xerial + org.sqlite.JDBC + jdbc:sqlite:H:\GitHub\rockviewer\db.sqlite3 + + + + + diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..e206d70 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..8823786 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..405b2a7 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/.idea/rockviewer.iml b/.idea/rockviewer.iml new file mode 100644 index 0000000..51c48ce --- /dev/null +++ b/.idea/rockviewer.iml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml new file mode 100644 index 0000000..922003b --- /dev/null +++ b/.idea/scopes/scope_settings.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..c80f219 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..c679856 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,826 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1392778868816 + 1392778868816 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/prototype/3dvol/._.DS_Store b/docs/prototype/3dvol/._.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..941570ad89956432174e43dcc29bb3f2f0c20f4e GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIk*a-Aa>vw5)x!R z>*Rlk4u%TsszyaeLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%%Ex*@;_G!BHp zKrSRBvsj@hwK%`DC^=OjEx#yRAv3QeHLoNyKQA#Sr&1v&HLXM;DJL;68`#x_>Kf7% Os{i3$kztVg{~rL*c^@MH literal 0 HcmV?d00001 diff --git a/docs/prototype/3dvol/._fonts b/docs/prototype/3dvol/._fonts new file mode 100644 index 0000000000000000000000000000000000000000..13fe090043361cb4ce1e35ca88d1b019d130df75 GIT binary patch literal 4096 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/prototype/3dvol/fonts/qcksnd-bold-webfont.ttf b/docs/prototype/3dvol/fonts/qcksnd-bold-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4a1b556b69ebd499df157ea7f5a5282341eaa9b4 GIT binary patch literal 53480 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 yMrP@B9BBqM}MN002sN)?MMFc3($+G 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 literal 0 HcmV?d00001 diff --git a/docs/prototype/3dvol/fonts/qcksnd-bolditalic-webfont.svg b/docs/prototype/3dvol/fonts/qcksnd-bolditalic-webfont.svg new file mode 100644 index 0000000..519353e --- /dev/null +++ b/docs/prototype/3dvol/fonts/qcksnd-bolditalic-webfont.svg @@ -0,0 +1,1735 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/prototype/3dvol/fonts/qcksnd-bolditalic-webfont.ttf b/docs/prototype/3dvol/fonts/qcksnd-bolditalic-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1ad0e6a4a33c714ab69eb01eead16fbd315075fa GIT binary patch literal 58388 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