aboutsummaryrefslogtreecommitdiff
path: root/apps/notes/models.py
diff options
context:
space:
mode:
authorluxagraf <sng@luxagraf.net>2018-12-06 06:57:52 -0600
committerluxagraf <sng@luxagraf.net>2018-12-06 06:57:52 -0600
commitd45fa99aa9d587b5674484f68955b43f39e8f6fd (patch)
tree29b2b5c14de7a26cc9cfe88ad6e89fec0fbe1cae /apps/notes/models.py
parent45245bc0a9b659ff547ec20eb70af3def4ee7c6f (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.py29
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: