diff options
author | luxagraf <sng@luxagraf.net> | 2018-12-06 06:57:52 -0600 |
---|---|---|
committer | luxagraf <sng@luxagraf.net> | 2018-12-06 06:57:52 -0600 |
commit | d45fa99aa9d587b5674484f68955b43f39e8f6fd (patch) | |
tree | 29b2b5c14de7a26cc9cfe88ad6e89fec0fbe1cae /apps/notes/models.py | |
parent | 45245bc0a9b659ff547ec20eb70af3def4ee7c6f (diff) |
redid tags to use through model, cleaned up note and notebook detail
views
Diffstat (limited to 'apps/notes/models.py')
-rw-r--r-- | apps/notes/models.py | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/apps/notes/models.py b/apps/notes/models.py index c0b23ce..95c1c96 100644 --- a/apps/notes/models.py +++ b/apps/notes/models.py @@ -12,18 +12,36 @@ from django.conf import settings from utils.util import unique_slug_generator +from django.utils.translation import ugettext_lazy as _ + +from taggit.managers import TaggableManager +from taggit.models import TagBase, GenericTaggedItemBase + + +class LuxTag(TagBase): + color_rgb = models.CharField(max_length=20, null=True, blank=True) + + class Meta: + verbose_name = _("Tag") + verbose_name_plural = _("Tags") + + +class TaggedNotes(GenericTaggedItemBase): + tag = models.ForeignKey(LuxTag, related_name="%(app_label)s_%(class)s_items", on_delete=models.CASCADE) + class Notebook(models.Model): + """ Notebook model for Notes """ unique_id = models.UUIDField(default=uuid.uuid4, editable=False) owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) name = models.CharField(max_length=250) - url = models.CharField(max_length=250, null=True, blank=True) + color_rgb = models.CharField(max_length=20, null=True, blank=True) slug = models.SlugField(blank=True) date_created = models.DateTimeField(blank=True, auto_now_add=True, editable=False) date_updated = models.DateTimeField(blank=True, auto_now=True, editable=False) class Meta: - unique_together = ("owner", "slug") + unique_together = ("owner", "name") def __str__(self): return self.name @@ -35,7 +53,7 @@ class Notebook(models.Model): @cached_property def get_absolute_url(self): - return reverse("notes:notebook-detail", kwargs={"user": self.owner.username, "slug": self.slug}) + return reverse("notebooks:detail", kwargs={"slug": self.slug}) class Note(models.Model): @@ -50,18 +68,19 @@ class Note(models.Model): url = models.CharField(max_length=250, null=True, blank=True) slug = models.SlugField(blank=True) notebook = models.ForeignKey(Notebook, null=True, blank=True, on_delete=models.SET_NULL) - tags = TaggableManager(blank=True, help_text='Tags') + tags = TaggableManager(through=TaggedNotes, blank=True, help_text='Tags') is_public = models.BooleanField(default=False) class Meta: unique_together = ("owner", "slug") + ordering = ("-date_created", "-date_updated") def __str__(self): return self.title @cached_property def get_absolute_url(self): - return reverse("notes:note-detail", kwargs={"user": self.owner.username, "slug": self.slug}) + return reverse("notes:detail", kwargs={"slug": self.slug, 'pk': self.pk}) def save(self, **kwargs): if not self.title: |