Files
penracourses/oef/models.py
T
Ross 28bfa34367 .
2024-10-07 17:46:09 +01:00

61 lines
1.8 KiB
Python

from django.db import models
from django.urls import reverse
# Create your models here.
class Entry(models.Model):
modality = models.CharField(max_length=200)
exam_code = models.CharField(max_length=50)
exam_name = models.CharField(max_length=200)
questions = models.TextField()
questions_original = models.TextField()
oef_name = models.CharField(max_length=200, blank=True)
comments = models.TextField(blank=True)
#format = models.ForeignKey('Formats', on_delete=models.CASCADE, null=True, blank=True)
def __str__(self):
return self.exam_name
def get_absolute_url(self):
return reverse("oef:entry_detail", kwargs={"pk": self.pk})
def clean(self) -> None:
self.questions = self.questions.replace("\r\n", "\n")
return super().clean()
def save(self, *args, **kwargs):
self.questions = self.questions.replace("\r\n", "\n")
return super().save(*args, **kwargs)
class Formats(models.Model):
name = models.CharField(max_length=200)
format = models.TextField(blank=True)
inherits = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse("oef:format_update", kwargs={"pk": self.pk})
def clean(self) -> None:
self.format = self.format.replace("\r\n", "\n")
return super().clean()
def save(self, *args, **kwargs):
self.format = self.format.replace("\r\n", "\n")
return super().save(*args, **kwargs)
def get_format(self):
formats = [self.format]
while self.inherits:
self = self.inherits
formats.append(self.format)
formats.reverse()
return "\n".join(formats)