from django.db import models from django.utils.translation import gettext_lazy as _ from vbv_lernwelt.duedate.models import DueDate class CourseSessionAttendanceCourse(models.Model): """ Präsenzkurs Durchührung Kann über einen Zeitraum von meheren Tagen gehen. """ course_session = models.ForeignKey( "course.CourseSession", on_delete=models.CASCADE, ) learning_content = models.ForeignKey( "learnpath.LearningContentAttendanceCourse", on_delete=models.CASCADE, ) due_date = models.OneToOneField( "duedate.DueDate", on_delete=models.CASCADE, related_name="attendance_course_due_date", ) location = models.CharField(max_length=255, blank=True, default="") trainer = models.CharField(max_length=255, blank=True, default="") def save(self, *args, **kwargs): if not self.pk: title = "" page = None if self.learning_content_id: title = self.learning_content.title page = self.learning_content.page_ptr self.due_date = DueDate.objects.create( title=f"{title} {_('Präsenzkurs')}", course_session=self.course_session, page=page) super().save(*args, **kwargs) def __str__(self): return f"{self.course_session} - {self.learning_content}" class CourseSessionAssignment(models.Model): """ Auftrag - Geletitete Fallarbeit ist eine speziefische ausprägung eines Auftrags (assignment_type) """ course_session = models.ForeignKey( "course.CourseSession", on_delete=models.CASCADE, ) learning_content = models.ForeignKey( "learnpath.LearningContentAssignment", on_delete=models.CASCADE, ) submission_deadline = models.OneToOneField( "duedate.DueDate", on_delete=models.CASCADE, related_name="assignment_submission_deadline", ) evaluation_deadline = models.OneToOneField( "duedate.DueDate", on_delete=models.CASCADE, related_name="assignment_evaluation_deadline", ) def save(self, *args, **kwargs): if not self.pk: title = "" page = None if self.learning_content_id: title = self.learning_content.title page = self.learning_content.page_ptr self.submission_deadline = DueDate.objects.create( title=f"{title} {_('Submission Deadline')}", course_session=self.course_session, page=page) self.evaluation_deadline = DueDate.objects.create( title=f"{title} {_('Evaluation Deadline')}", course_session=self.course_session, page=page) super().save(*args, **kwargs) def __str__(self): return f"{self.course_session} - {self.learning_content}"