from django.contrib import admin
from django.contrib.contenttypes import generic
-from philo.models import Attribute, Relationship
+from philo.models import Tag, Attribute, Relationship
COLLAPSE_CLASSES = ('collapse', 'collapse-closed', 'closed',)
class EntityAdmin(admin.ModelAdmin):
inlines = [AttributeInline, RelationshipInline]
- save_on_top = True
\ No newline at end of file
+ save_on_top = True
+
+
+admin.site.register(Tag)
\ No newline at end of file
class Blog(Entity, Titled):
- pass
+ @property
+ def entry_tags(self):
+ """ Returns a QuerySet of Tags that are used on any entries in this blog. """
+ return Tag.objects.filter(blogentries__blog=self)
class BlogEntry(Entity, Titled):
date = models.DateTimeField(default=datetime.now)
content = models.TextField()
excerpt = models.TextField()
- tags = models.ManyToManyField(Tag)
+ tags = models.ManyToManyField(Tag, related_name='blogentries')
class Meta:
ordering = ['-date']
- verbose_name_plural = "Blog Entries"
+ verbose_name_plural = "blog entries"
register_value_model(BlogEntry)
return base_patterns + entry_patterns
def index_view(self, request):
- entries = self.blog.entries.order_by('-date')
- return HttpResponse(self.index_template.django_template.render(RequestContext(request, {'blog': self.blog, 'entries': entries})), mimetype=self.index_template.mimetype)
+ return HttpResponse(self.index_template.django_template.render(RequestContext(request, {'blog': self.blog})), mimetype=self.index_template.mimetype)
def archive_view(self, request, year=None, month=None, day=None):
entries = self.blog.entries.all()
return HttpResponse(self.archive_template.django_template.render(RequestContext(request, {'blog': self.blog, 'year': year, 'month': month, 'day': day, 'entries': entries})), mimetype=self.archive_template.mimetype)
def tag_view(self, request, tag=None):
- # return HttpResponse(self.tag_template.django_template.render(RequestContext(request, {'blog': self.blog, 'tag': tag, 'entries': None})), mimetype=self.tag_template.mimetype)
- raise Http404
+ entries = self.blog.entries.filter(tags__slug=tag)
+ return HttpResponse(self.tag_template.django_template.render(RequestContext(request, {'blog': self.blog, 'tag': tag, 'entries': entries})), mimetype=self.tag_template.mimetype)
def entry_view(self, request, slug, year=None, month=None, day=None):
entries = self.blog.entries.all()