Add a mineral model to store details of minerals
This commit is contained in:
@@ -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)
|
||||
|
||||
81
three_d_viewer/migrations/0004_auto__add_mineral.py
Normal file
81
three_d_viewer/migrations/0004_auto__add_mineral.py
Normal file
@@ -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']
|
||||
@@ -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']
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user