Skip to content
Snippets Groups Projects

Resolve "Make exam a many to many field on StudentInfo model"

Compare and Show latest version
10 files
+ 14
197
Compare changes
  • Side-by-side
  • Inline
Files
10
@@ -25,38 +25,15 @@ def random_matrikel_no() -> str:
return str(10_000_000 + randrange(90_000_000))
<<<<<<< HEAD
<<<<<<< HEAD
class ExamInfo(models.Model):
exam = models.ForeignKey(ExamType,
on_delete=models.CASCADE,
related_name='exam_infos',
<<<<<<< HEAD
=======
class StudentsExam(models.Model):
exam = models.ForeignKey('ExamType',
=======
class ExamInfo(models.Model):
exam = models.ForeignKey(ExamType,
>>>>>>> exams now manytomany field, problems resolved
on_delete=models.CASCADE,
related_name='exam',
>>>>>>> added new many-to-many field and wrapper class
=======
>>>>>>> renamed field
null=False)
student = models.ForeignKey('StudentInfo',
on_delete=models.CASCADE,
<<<<<<< HEAD
<<<<<<< HEAD
related_name='exams',
=======
related_name='students',
>>>>>>> added new many-to-many field and wrapper class
=======
related_name='exams',
>>>>>>> exams now manytomany field, problems resolved
null=False)
total_score = models.PositiveIntegerField(default=0)
@@ -93,15 +70,7 @@ class StudentInfo(models.Model):
associated user model.
Attributes:
<<<<<<< HEAD
<<<<<<< HEAD
exams (ManyToManyField):
=======
exam (ManyToManyField):
>>>>>>> added new many-to-many field and wrapper class
=======
exams (ManyToManyField):
>>>>>>> exams now manytomany field, problems resolved
Module the student wants te be graded in, or different exercise
assignments for one module.
@@ -119,38 +88,25 @@ class StudentInfo(models.Model):
max_length=30,
default=random_matrikel_no)
<<<<<<< HEAD
<<<<<<< HEAD
=======
exams = models.ManyToManyField(StudentsExam,
blank=True,
related_name='exams',
)
>>>>>>> added new many-to-many field and wrapper class
=======
>>>>>>> exams now manytomany field, problems resolved
user = models.OneToOneField(get_user_model(),
on_delete=models.CASCADE,
related_name='student')
def add_exam(self, exam):
<<<<<<< HEAD
<<<<<<< HEAD
exam_info = ExamInfo(exam=exam, student=self)
exam_info.save()
self.exams.add(exam_info)
=======
students_exam = StudentsExam()
students_exam.exam = exam
students_exam.student = self
self.exams.add(students_exam)
=======
exam_info = ExamInfo(exam=exam, student=self)
exam_info.save()
self.exams.add(exam_info)
>>>>>>> exams now manytomany field, problems resolved
<<<<<<< HEAD
@classmethod
def get_annotated_score_submission_list(cls) -> QuerySet:
"""Can be used to quickly annotate a user with the necessary
@@ -176,10 +132,7 @@ class StudentInfo(models.Model):
output_field=BooleanField()
)
).order_by('user__username')
>>>>>>> added new many-to-many field and wrapper class
=======
>>>>>>> removed class-method in StudentInfo, working on fix in StudentJsonExport
def disable(self):
"""The student won't be able to login in anymore, but his current
session can be continued until s/he logs out.
Loading