.
This commit is contained in:
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 3.2.10 on 2021-12-31 10:44
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('anatomy', '0057_auto_20211215_2036'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='exam',
|
||||||
|
name='user_scores',
|
||||||
|
field=models.JSONField(default=dict),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# Generated by Django 3.2.10 on 2021-12-31 10:44
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('generic', '0023_alter_examination_examination'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='contrast',
|
||||||
|
name='contrast',
|
||||||
|
field=models.CharField(max_length=200, unique=True),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='plane',
|
||||||
|
name='plane',
|
||||||
|
field=models.CharField(max_length=200, unique=True),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -115,6 +115,8 @@ class ExamBase(models.Model):
|
|||||||
|
|
||||||
stats_graph = models.TextField(default=0)
|
stats_graph = models.TextField(default=0)
|
||||||
|
|
||||||
|
user_scores = models.JSONField(default=dict)
|
||||||
|
|
||||||
notes = GenericRelation("generic.CidUserExam")
|
notes = GenericRelation("generic.CidUserExam")
|
||||||
|
|
||||||
# time_limit = models.IntegerField(
|
# time_limit = models.IntegerField(
|
||||||
@@ -125,6 +127,15 @@ class ExamBase(models.Model):
|
|||||||
class Meta:
|
class Meta:
|
||||||
abstract = True
|
abstract = True
|
||||||
|
|
||||||
|
def get_exam_stats(self):
|
||||||
|
text = f"""{self.name}
|
||||||
|
-----
|
||||||
|
Candidate number: {self.stats_candidates}
|
||||||
|
Max (possible) score: {self.stats_max_possible}
|
||||||
|
Mean: {self.stats_mean} Median: {self.stats_median} Mode: {self.stats_mode} [Min: {self.stats_min} / Max: {self.stats_max}]
|
||||||
|
"""
|
||||||
|
return text
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
@@ -303,6 +314,9 @@ class CidUser(models.Model):
|
|||||||
if self.results_email_sent and not resend:
|
if self.results_email_sent and not resend:
|
||||||
return False, "Already sent."
|
return False, "Already sent."
|
||||||
|
|
||||||
|
# Get a list of taken exams
|
||||||
|
exams = self.get_cid_exams()
|
||||||
|
|
||||||
msg = f"""
|
msg = f"""
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|||||||
@@ -1085,6 +1085,9 @@ class ExamViews(View, LoginRequiredMixin):
|
|||||||
exam.stats_max = max(user_scores_list)
|
exam.stats_max = max(user_scores_list)
|
||||||
|
|
||||||
exam.stats_graph = fig_html
|
exam.stats_graph = fig_html
|
||||||
|
|
||||||
|
exam.user_scores = user_scores
|
||||||
|
|
||||||
exam.save()
|
exam.save()
|
||||||
|
|
||||||
return render(
|
return render(
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 3.2.10 on 2021-12-31 10:44
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('longs', '0056_auto_20211215_2036'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='exam',
|
||||||
|
name='user_scores',
|
||||||
|
field=models.JSONField(default=dict),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 3.2.10 on 2021-12-31 10:44
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('physics', '0016_auto_20211215_2036'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='exam',
|
||||||
|
name='user_scores',
|
||||||
|
field=models.JSONField(default=dict),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 3.2.10 on 2021-12-31 10:44
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('rapids', '0042_auto_20211215_2036'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='exam',
|
||||||
|
name='user_scores',
|
||||||
|
field=models.JSONField(default=dict),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 3.2.10 on 2021-12-31 10:44
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('sbas', '0008_auto_20211215_2036'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='exam',
|
||||||
|
name='user_scores',
|
||||||
|
field=models.JSONField(default=dict),
|
||||||
|
),
|
||||||
|
]
|
||||||
Reference in New Issue
Block a user