From 818afe0fe5f6cda928ab2ba49c1e5debca904e27 Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 3 May 2021 19:08:55 +0100 Subject: [PATCH] . --- generic/admin.py | 5 +++-- generic/migrations/0010_questionnote.py | 26 +++++++++++++++++++++++++ generic/models.py | 23 +++++++++++++++++++++- rapids/models.py | 2 +- 4 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 generic/migrations/0010_questionnote.py diff --git a/generic/admin.py b/generic/admin.py index 937b66a6..f3aec3da 100644 --- a/generic/admin.py +++ b/generic/admin.py @@ -2,7 +2,7 @@ from longs.models import Exam from django.contrib import admin # Register your models here. -from .models import Examination, Sign, Condition, Plane, Contrast +from .models import Examination, Sign, Condition, Plane, Contrast, QuestionNote #from .models import Examination, Sign, Site, Condition admin.site.register(Examination) @@ -10,4 +10,5 @@ admin.site.register(Sign) #admin.site.register(Site) admin.site.register(Condition) admin.site.register(Plane) -admin.site.register(Contrast) \ No newline at end of file +admin.site.register(Contrast) +admin.site.register(QuestionNote) diff --git a/generic/migrations/0010_questionnote.py b/generic/migrations/0010_questionnote.py new file mode 100644 index 00000000..31cf3242 --- /dev/null +++ b/generic/migrations/0010_questionnote.py @@ -0,0 +1,26 @@ +# Generated by Django 3.1.3 on 2021-05-03 18:08 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('contenttypes', '0002_remove_content_type_name'), + ('generic', '0009_contrast'), + ] + + operations = [ + migrations.CreateModel( + name='QuestionNote', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('object_id', models.PositiveIntegerField()), + ('author', models.CharField(blank=True, max_length=200)), + ('note', models.TextField()), + ('created_on', models.DateTimeField(auto_now_add=True)), + ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.contenttype')), + ], + ), + ] diff --git a/generic/models.py b/generic/models.py index a92d45e9..ba841879 100644 --- a/generic/models.py +++ b/generic/models.py @@ -8,6 +8,9 @@ import tagulous.models from sortedm2m.fields import SortedManyToManyField from django.conf import settings +from django.contrib.contenttypes.fields import GenericForeignKey +from django.contrib.contenttypes.models import ContentType + class Plane(models.Model): plane = models.CharField(max_length=200) @@ -93,4 +96,22 @@ class ExamBase(models.Model): return reverse("{}:exam_json".format(self.app_name), args=(self.pk,)) def get_question_index(self, question): - return list(self.exam_questions.all()).index(question) \ No newline at end of file + return list(self.exam_questions.all()).index(question) + + +class QuestionNote(models.Model): + content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE) + object_id = models.PositiveIntegerField() + question = GenericForeignKey('content_type', 'object_id') + #author = models.ForeignKey(User, + + author = models.CharField(max_length=200, blank=True) + note = models.TextField() + created_on = models.DateTimeField(auto_now_add=True) + + #def get_absolute_url(self): + # self.pk = self.rapid_id + # return reverse('rapids:question_detail', kwargs={'pk': self.pk}) + + def __str__(self): + return "{} [{}] {}".format(self.author, self.created_on, self.note) \ No newline at end of file diff --git a/rapids/models.py b/rapids/models.py index cd252793..093fcafe 100644 --- a/rapids/models.py +++ b/rapids/models.py @@ -533,4 +533,4 @@ class CidUserAnswer(models.Model): mark = 0 else: mark = "unmarked" - return mark \ No newline at end of file + return mark