Added description and question and answer models
This commit is contained in:
Binary file not shown.
@@ -1,5 +1,7 @@
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from three_d_viewer.models import Category, Sample
|
from three_d_viewer.models import Category, Sample, Question, Answer
|
||||||
|
|
||||||
admin.site.register(Category)
|
admin.site.register(Category)
|
||||||
admin.site.register(Sample)
|
admin.site.register(Sample)
|
||||||
|
admin.site.register(Question)
|
||||||
|
admin.site.register(Answer)
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
# -*- 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 field 'Sample.description'
|
||||||
|
db.add_column(u'three_d_viewer_sample', 'description',
|
||||||
|
self.gf('django.db.models.fields.CharField')(default='', max_length=2000, null=True, blank=True),
|
||||||
|
keep_default=False)
|
||||||
|
|
||||||
|
|
||||||
|
def backwards(self, orm):
|
||||||
|
# Deleting field 'Sample.description'
|
||||||
|
db.delete_column(u'three_d_viewer_sample', 'description')
|
||||||
|
|
||||||
|
|
||||||
|
models = {
|
||||||
|
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.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', [], {'to': u"orm['three_d_viewer.Category']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
complete_apps = ['three_d_viewer']
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
# -*- 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 'Question'
|
||||||
|
db.create_table(u'three_d_viewer_question', (
|
||||||
|
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||||
|
('text', self.gf('django.db.models.fields.CharField')(max_length=2000)),
|
||||||
|
('sample', self.gf('django.db.models.fields.related.ForeignKey')(related_name='questions', to=orm['three_d_viewer.Sample'])),
|
||||||
|
))
|
||||||
|
db.send_create_signal(u'three_d_viewer', ['Question'])
|
||||||
|
|
||||||
|
# Adding model 'Answer'
|
||||||
|
db.create_table(u'three_d_viewer_answer', (
|
||||||
|
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||||
|
('text', self.gf('django.db.models.fields.CharField')(max_length=2000)),
|
||||||
|
('correct', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||||
|
('question', self.gf('django.db.models.fields.related.ForeignKey')(related_name='answers', to=orm['three_d_viewer.Question'])),
|
||||||
|
))
|
||||||
|
db.send_create_signal(u'three_d_viewer', ['Answer'])
|
||||||
|
|
||||||
|
|
||||||
|
def backwards(self, orm):
|
||||||
|
# Deleting model 'Question'
|
||||||
|
db.delete_table(u'three_d_viewer_question')
|
||||||
|
|
||||||
|
# Deleting model 'Answer'
|
||||||
|
db.delete_table(u'three_d_viewer_answer')
|
||||||
|
|
||||||
|
|
||||||
|
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.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', [], {'to': u"orm['three_d_viewer.Category']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
complete_apps = ['three_d_viewer']
|
||||||
@@ -20,5 +20,25 @@ class Category(CommonInfo):
|
|||||||
|
|
||||||
class Sample(CommonInfo):
|
class Sample(CommonInfo):
|
||||||
model_filename = models.CharField(max_length=1000)
|
model_filename = models.CharField(max_length=1000)
|
||||||
|
description = models.CharField(max_length=2000, default='', blank=True, null=True)
|
||||||
parent = models.ForeignKey(Category, blank=True, null=True,
|
parent = models.ForeignKey(Category, blank=True, null=True,
|
||||||
on_delete=models.SET_NULL)
|
on_delete=models.SET_NULL)
|
||||||
|
|
||||||
|
|
||||||
|
class Question(models.Model):
|
||||||
|
text = models.CharField(max_length=2000)
|
||||||
|
sample = models.ForeignKey(Sample, related_name='questions')
|
||||||
|
|
||||||
|
def correct_answers(self):
|
||||||
|
return self.answers.filter(correct = True)
|
||||||
|
|
||||||
|
def __unicode__(self):
|
||||||
|
return self.text
|
||||||
|
|
||||||
|
class Answer(models.Model):
|
||||||
|
text = models.CharField(max_length=2000)
|
||||||
|
correct = models.BooleanField(default=False)
|
||||||
|
question = models.ForeignKey(Question, related_name='answers')
|
||||||
|
|
||||||
|
def __unicode__(self):
|
||||||
|
return self.text
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<h1>{{ sample.name }}</h1>
|
<h1>{{ sample.name }}</h1>
|
||||||
|
|
||||||
<html>
|
<html>
|
||||||
|
{{ sample.description }}
|
||||||
<head>
|
<head>
|
||||||
<title>js-openctm - Demo</title>
|
<title>js-openctm - Demo</title>
|
||||||
<script type="text/javascript" src="{% static "lzma.js" %}"></script>
|
<script type="text/javascript" src="{% static "lzma.js" %}"></script>
|
||||||
|
|||||||
Reference in New Issue
Block a user