.
This commit is contained in:
+52
-37
@@ -21,7 +21,7 @@ import string
|
||||
|
||||
from anatomy.models import Modality
|
||||
|
||||
from generic.models import Examination, Condition, Sign
|
||||
from generic.models import Examination, Condition, Sign, ExamBase
|
||||
|
||||
# from generic.models import Examination, Site, Condition, Sign
|
||||
|
||||
@@ -164,23 +164,26 @@ class LongSeries(models.Model):
|
||||
related_name="series",
|
||||
on_delete=models.SET_NULL,
|
||||
null=True,
|
||||
blank=True,
|
||||
)
|
||||
description = models.TextField(
|
||||
blank=True,
|
||||
help_text="Description of stack, for admin organisation, will not be visible when taking",
|
||||
)
|
||||
|
||||
author = models.ForeignKey(
|
||||
author = models.ManyToManyField(
|
||||
settings.AUTH_USER_MODEL,
|
||||
blank=True,
|
||||
null=True,
|
||||
related_name="long_series",
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
if self.long:
|
||||
long_id = self.long.pk
|
||||
else:
|
||||
long_id = "None"
|
||||
return "{} : {} [{}]".format(
|
||||
self.get_examination(), self.description, self.long.pk
|
||||
self.get_examination(), self.description, long_id
|
||||
)
|
||||
|
||||
def get_author_objects(self):
|
||||
@@ -223,9 +226,9 @@ class LongSeries(models.Model):
|
||||
img = findMiddle(images).image
|
||||
try:
|
||||
thumbnailer = get_thumbnailer(img)
|
||||
thumbnail = thumbnailer["exam-list"]
|
||||
except InvalidImageFormatError:
|
||||
return format_html('<span title="{}">Invalid image url<span>', image_object)
|
||||
thumbnail = thumbnailer["exam-list"]
|
||||
return format_html('<span title="{}">Invalid image url<span>', img), len(images)
|
||||
return format_html('<img src="/media/{}" />', thumbnail), len(images)
|
||||
|
||||
def get_block(self):
|
||||
@@ -290,43 +293,55 @@ class LongCreationDefault(models.Model):
|
||||
return reverse("longs:long_create")
|
||||
|
||||
|
||||
class Exam(models.Model):
|
||||
name = models.CharField(max_length=200)
|
||||
class Exam(ExamBase):
|
||||
app_name = "longs"
|
||||
|
||||
exam_questions = SortedManyToManyField(Long, related_name="exams", blank="true")
|
||||
|
||||
active = models.BooleanField(
|
||||
help_text="If an exam should be available", default=True
|
||||
)
|
||||
|
||||
publish_results = models.BooleanField(
|
||||
help_text="If an exams results should be available", default=True
|
||||
)
|
||||
|
||||
recreate_json = models.BooleanField(
|
||||
help_text="If the json cache needs updating", default=False
|
||||
)
|
||||
|
||||
time_limit = models.IntegerField(
|
||||
help_text="Exam time limit (in seconds). Default is 2100 secondse (35 minutes)",
|
||||
default=2100,
|
||||
help_text="Exam time limit (in seconds). Default is 4500 secondse (75 minutes)",
|
||||
default=4500,
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
def get_absolute_url(self):
|
||||
return reverse("longs:exam_overview", kwargs={"pk": self.pk})
|
||||
|
||||
def get_exam_name(self):
|
||||
return self.name
|
||||
|
||||
def get_json_url(self):
|
||||
return reverse("longs:exam_json", args=(self.pk,))
|
||||
|
||||
def get_question_index(self, question):
|
||||
return list(self.exam_questions.all()).index(question)
|
||||
|
||||
|
||||
#class Exam(models.Model):
|
||||
# name = models.CharField(max_length=200)
|
||||
# exam_questions = SortedManyToManyField(Long, related_name="exams", blank="true")
|
||||
#
|
||||
# active = models.BooleanField(
|
||||
# help_text="If an exam should be available", default=True
|
||||
# )
|
||||
#
|
||||
# publish_results = models.BooleanField(
|
||||
# help_text="If an exams results should be available", default=True
|
||||
# )
|
||||
#
|
||||
# recreate_json = models.BooleanField(
|
||||
# help_text="If the json cache needs updating", default=False
|
||||
# )
|
||||
#
|
||||
# time_limit = models.IntegerField(
|
||||
# help_text="Exam time limit (in seconds). Default is 2100 secondse (35 minutes)",
|
||||
# default=2100,
|
||||
# )
|
||||
#
|
||||
# def __str__(self):
|
||||
# return self.name
|
||||
#
|
||||
# def get_absolute_url(self):
|
||||
# return reverse("longs:exam_overview", kwargs={"pk": self.pk})
|
||||
#
|
||||
# def get_exam_name(self):
|
||||
# return self.name
|
||||
#
|
||||
# def get_json_url(self):
|
||||
# return reverse("longs:exam_json", args=(self.pk,))
|
||||
#
|
||||
# def get_question_index(self, question):
|
||||
# return list(self.exam_questions.all()).index(question)
|
||||
#
|
||||
#
|
||||
class CidUserAnswer(models.Model):
|
||||
"""User answers by candidate"""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user