]> git.parisson.com Git - django-notes.git/commitdiff
First iteration of actual project files.
authorColin Powell <colin@onecardinal.com>
Fri, 1 Apr 2011 22:10:25 +0000 (18:10 -0400)
committerColin Powell <colin@onecardinal.com>
Fri, 1 Apr 2011 22:10:25 +0000 (18:10 -0400)
notes/admin.py [new file with mode: 0644]
notes/managers.py [new file with mode: 0644]
notes/models.py [new file with mode: 0644]

diff --git a/notes/admin.py b/notes/admin.py
new file mode 100644 (file)
index 0000000..1c197ad
--- /dev/null
@@ -0,0 +1,5 @@
+from notes.models import Note
+from django.contrib.contenttypes import generic
+
+class NoteInline(generic.GenericTabularInline):
+    model = Note
diff --git a/notes/managers.py b/notes/managers.py
new file mode 100644 (file)
index 0000000..86c9075
--- /dev/null
@@ -0,0 +1,5 @@
+from django.db.models import Manager
+
+class PublicManager(Manager):
+    def get_query_set(self):
+        return super(PublicManager, self).get_query_set().filter(public=True)
diff --git a/notes/models.py b/notes/models.py
new file mode 100644 (file)
index 0000000..35ed321
--- /dev/null
@@ -0,0 +1,40 @@
+from datetime import *
+from django.db import models
+from django.contrib.contenttypes.models import ContentType
+from django.contrib.contenttypes import generic
+from django.contrib.auth.models import User
+from myutils.models import MarkupMixin 
+from django_extensions.db.models import TitleSlugDescriptionModel, TimeStampedModel
+
+from notes.managers import PublicManager
+
+class Topic(TitleSlugDescriptionModel, TimeStampedModel):
+    """
+    Topic model class.
+    """
+
+class Note(MarkupMixin, TimeStampedModel):
+    """
+    Note model class.
+
+    A simple model to handle adding arbitrary numbers of notes to an animal profile.
+    """
+    topic=models.models.ForeignKey(Topic)
+    date=models.DateField(_('Date'), auto_now=True)
+    content=models.TextField(_('Content'))
+    rendered_content=models.TextField(_('Rendered content'), blank=True, null=True)
+    public=models.BooleanField(_('Public'), default=True)
+    author=models.ForeignKey(User)
+    content_type = models.ForeignKey(ContentType)
+    object_id = models.PositiveIntegerField()
+    content_object = generic.GenericForeignKey("content_type", "object_id")
+
+    public_objects = PublicManager()
+
+    class Meta:
+        verbose_name=_('Note')
+        verbose_name_plural=_('Notes')
+
+    class MarkupOptions:
+        rendered_field = 'rendered_content'
+        source_field = 'content'