This commit is contained in:
Ross
2021-02-08 11:15:46 +00:00
parent 643d3ca6c2
commit 2fdb4318ff
7 changed files with 110 additions and 39 deletions
+17 -1
View File
@@ -1,6 +1,22 @@
import django_filters
from .models import AnatomyQuestion
from .models import AnatomyQuestion, CidUserAnswer
#from generic.filters import UserAnswerFilter
class AnatomyUserAnswerFilter(django_filters.FilterSet):
class Meta:
model= CidUserAnswer
fields = (
"cid",
"question",
"answer",
#"answer_compare",
"exam",
"created",
"updated",
)
class AnatomyQuestionFilter(django_filters.FilterSet):
-35
View File
@@ -310,41 +310,6 @@ class Exam(ExamBase):
return exam_json
# class UserAnswer(models.Model):
# question = models.ForeignKey(
# AnatomyQuestion, related_name="user_answers", on_delete=models.CASCADE
# )
# answer = models.TextField(max_length=500, blank=True)
# user = models.ForeignKey(
# settings.AUTH_USER_MODEL, null=True, blank=True, on_delete=models.SET_NULL
# )
# cid = models.BigIntegerField(blank=True, null=True, help_text="Candidate ID (limitied by BigIntegerField size)")
# # Each user answer is associated with a particular exam
# exam = models.ForeignKey(
# Exam, related_name="exam", on_delete=models.CASCADE, null=True
# )
# flagged = models.BooleanField(default=False)
# created = models.DateTimeField(auto_now_add=True)
# updated = models.DateTimeField(auto_now=True)
# def __str__(self):
# try:
# exam = self.exam
# except (Exam.DoesNotExist, KeyError) as e:
# exam = "None"
# return "{}/{}/{}: {}".format(
# exam, self.cid, self.question.GetPrimaryAnswer(), self.answer
# )
# def clean(self):
# if self.answer:
# self.answer = self.answer.strip()
class CidUserAnswer(models.Model):
"""User answers by candidate"""
+18 -1
View File
@@ -1,7 +1,7 @@
import django_tables2 as tables
from django_tables2.utils import A
from .models import AnatomyQuestion
from .models import AnatomyQuestion, CidUserAnswer
from django.utils.html import format_html
@@ -9,6 +9,23 @@ from easy_thumbnails.files import get_thumbnailer
from easy_thumbnails.exceptions import InvalidImageFormatError
#from generic.tables import UserAnswerTable
class AnatomyUserAnswerTable(tables.Table):
class Meta:
model = CidUserAnswer
template_name = "django_tables2/bootstrap4.html"
fields = (
"cid",
"question",
"answer",
#"answer_compare",
"exam",
"created",
"updated",
)
class ImageColumn(tables.Column):
def render(self, value):
+1
View File
@@ -51,4 +51,5 @@ urlpatterns = [
path("examination/ajax/get_examination_id",
views.get_examination_id,
name="get_examination_id"),
path("user_answers/", views.AnatomyUserAnswerView.as_view(), name="anatomy_user_answer_view"),
]
+9 -2
View File
@@ -46,8 +46,8 @@ from .models import (
from generic.models import Examination
from generic.views import ExamViews
from .tables import AnatomyQuestionTable
from .filters import AnatomyQuestionFilter
from .tables import AnatomyQuestionTable, AnatomyUserAnswerTable
from .filters import AnatomyQuestionFilter, AnatomyUserAnswerFilter
from django_tables2 import SingleTableView, SingleTableMixin
from django_filters.views import FilterView
@@ -919,6 +919,13 @@ class AnatomyQuestionView(SingleTableMixin, FilterView):
filterset_class = AnatomyQuestionFilter
class AnatomyUserAnswerView(SingleTableMixin, FilterView):
model = CidUserAnswer
table_class = AnatomyUserAnswerTable
template_name = "anatomy/anatomy_question_view.html"
filterset_class = AnatomyUserAnswerFilter
def question_save_annotation(request, pk):
if request.is_ajax() and request.method == "POST":
+18
View File
@@ -0,0 +1,18 @@
import django_filters
#class UserAnswerFilter(django_filters.FilterSet):
# class Meta:
# #model = AnatomyQuestion
# abstract = True
# fields = (
# "cid",
# "question",
# "answer",
# #"answer_compare",
# "exam",
# "created",
# "updateded",
# "created_date",
# )
+47
View File
@@ -0,0 +1,47 @@
import django_tables2 as tables
from django_tables2.utils import A
from django.utils.html import format_html
from easy_thumbnails.files import get_thumbnailer
from easy_thumbnails.exceptions import InvalidImageFormatError
class ImageColumn(tables.Column):
def render(self, value):
try:
thumbnailer = get_thumbnailer(value)
return format_html('<img src="/media/{}" />', thumbnailer["exam-list"])
except InvalidImageFormatError:
return format_html('<span title="{}">Invalid image url<span>', value)
#class UserAnswerTable(tables.Table):
# #edit = tables.LinkColumn(
# # "anatomy:anatomy_question_update", text="Edit", args=[A("pk")], orderable=False
# #)
# #view = tables.LinkColumn(
# # "anatomy:question_detail", text="View", args=[A("pk")], orderable=False
# #)
# #image = ImageColumn("image", orderable=False)
# # clone = tables.LinkColumn('anatomy:anatomy_question_clone',
# # text='Clone',
# # args=[A('pk')],
# # orderable=False)
# #exams = tables.ManyToManyColumn(verbose_name="Exams")
#
# class Meta:
# #model = AnatomyQuestion
# abstract = True
# template_name = "django_tables2/bootstrap4.html"
# fields = (
# "cid",
# "question",
# "answer",
# #"answer_compare",
# "exam",
# "created",
# "updated",
# )
# #sequence = ("view")