From 9096fc8eac4642cf92fdc91534258761021c73dd Mon Sep 17 00:00:00 2001 From: Ross Date: Sat, 11 Sep 2021 18:00:37 +0100 Subject: [PATCH] . --- longs/admin.py | 3 +- longs/migrations/0047_auto_20210911_1759.py | 36 +++++++++++++++++++ longs/models.py | 38 ++++++++++----------- 3 files changed, 57 insertions(+), 20 deletions(-) create mode 100644 longs/migrations/0047_auto_20210911_1759.py diff --git a/longs/admin.py b/longs/admin.py index 5ad0a926..910d0d36 100755 --- a/longs/admin.py +++ b/longs/admin.py @@ -1,5 +1,5 @@ from django.contrib import admin -from .models import Long, LongSeries, LongSeriesImage, LongCreationDefault, Exam, CidUserAnswer +from .models import AnswerMarks, Long, LongSeries, LongSeriesImage, LongCreationDefault, Exam, CidUserAnswer import tagulous.admin @@ -19,6 +19,7 @@ from generic.models import Examination, Sign, Condition admin.site.register(LongCreationDefault) admin.site.register(LongSeriesImage) admin.site.register(CidUserAnswer) +admin.site.register(AnswerMarks) #class LongImageInline(admin.TabularInline): diff --git a/longs/migrations/0047_auto_20210911_1759.py b/longs/migrations/0047_auto_20210911_1759.py new file mode 100644 index 00000000..281a3904 --- /dev/null +++ b/longs/migrations/0047_auto_20210911_1759.py @@ -0,0 +1,36 @@ +# Generated by Django 3.2.6 on 2021-09-11 16:59 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('longs', '0046_delete_note'), + ] + + operations = [ + migrations.CreateModel( + name='AnswerMarks', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('score', models.CharField(choices=[('', 'Unmarked'), ('4', '4'), ('4.5', '4.5'), ('5', '5'), ('5.5', '5.5'), ('6', '6'), ('6.5', '6.5'), ('7', '7'), ('7.5', '7.5'), ('8', '8')], max_length=3)), + ('mark_reason', models.TextField(blank=True, help_text='Reason for the given mark - not visible to candidates', null=True)), + ('candidate_feedback', models.TextField(blank=True, help_text='Feedback for the candidate', null=True)), + ('marker', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='marker', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.AddField( + model_name='ciduseranswer', + name='primary_mark', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='primary_mark', to='longs.answermarks'), + ), + migrations.AddField( + model_name='ciduseranswer', + name='secondary_mark', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='secondary_mark', to='longs.answermarks'), + ), + ] diff --git a/longs/models.py b/longs/models.py index dacfb78b..0f335a36 100644 --- a/longs/models.py +++ b/longs/models.py @@ -727,12 +727,12 @@ class CidUserAnswer(models.Model): max_length=3, choices=ScoreOptions.choices, default=ScoreOptions.UNMARKED, blank=True, help_text="The final score for the candidate" ) -# primary_mark = models.ForeignKey( -# "AnswerMarks", related_name="primary_mark", on_delete=models.SET_NULL, null=True, blank=True -# ) -# secondary_mark = models.ForeignKey( -# "AnswerMarks", related_name="secondary_mark", on_delete=models.SET_NULL, null=True, blank=True -# ) + primary_mark = models.ForeignKey( + "AnswerMarks", related_name="primary_mark", on_delete=models.SET_NULL, null=True, blank=True + ) + secondary_mark = models.ForeignKey( + "AnswerMarks", related_name="secondary_mark", on_delete=models.SET_NULL, null=True, blank=True + ) created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) @@ -770,16 +770,16 @@ class CidUserAnswer(models.Model): return "" return float(self.score) -#@reversion.register -#class AnswerMarks(models.Model): -# score = models.CharField( -# max_length=3, choices=CidUserAnswer.ScoreOptions.choices -# ) -# -# mark_reason = models.TextField(null=True, blank=True, help_text="Reason for the given mark - not visible to candidates") -# -# candidate_feedback = models.TextField(null=True, blank=True, help_text="Feedback for the candidate") -# -# marker = models.ForeignKey( -# settings.AUTH_USER_MODEL, related_name="marker", on_delete=models.CASCADE -# ) \ No newline at end of file +@reversion.register +class AnswerMarks(models.Model): + score = models.CharField( + max_length=3, choices=CidUserAnswer.ScoreOptions.choices + ) + + mark_reason = models.TextField(null=True, blank=True, help_text="Reason for the given mark - not visible to candidates") + + candidate_feedback = models.TextField(null=True, blank=True, help_text="Feedback for the candidate") + + marker = models.ForeignKey( + settings.AUTH_USER_MODEL, related_name="marker", on_delete=models.CASCADE + ) \ No newline at end of file