skillbox/server/notes/models.py

45 lines
1.3 KiB
Python

from django.db import models
# Create your models here.
from core.wagtail_utils import StrictHierarchyPage
from users.models import User
class Note(models.Model):
text = models.TextField()
class Bookmark(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
note = models.OneToOneField(Note, null=True, on_delete=models.SET_NULL)
class Meta:
abstract = True
class ContentBlockBookmark(Bookmark):
uuid = models.UUIDField(unique=False)
content_block = models.ForeignKey('books.ContentBlock', on_delete=models.CASCADE)
class Meta:
constraints = [
models.UniqueConstraint(fields=['uuid', 'content_block', 'user'], name='unique_content_bookmark_per_user')
]
class ModuleBookmark(Bookmark):
module = models.ForeignKey('books.Module', on_delete=models.CASCADE)
class ChapterBookmark(Bookmark):
chapter = models.ForeignKey('books.Chapter', on_delete=models.CASCADE)
class InstrumentBookmark(Bookmark):
uuid = models.UUIDField(unique=False)
instrument = models.ForeignKey('basicknowledge.BasicKnowledge', on_delete=models.CASCADE)
class Meta:
constraints = [
models.UniqueConstraint(fields=['uuid', 'instrument', 'user'], name='unique_instrument_bookmark_per_user')
]