diff options
author | luxagraf@c63593aa-01b0-44d9-8516-4b9c7e931d7f <luxagraf@c63593aa-01b0-44d9-8516-4b9c7e931d7f> | 2010-01-30 19:19:30 +0000 |
---|---|---|
committer | luxagraf@c63593aa-01b0-44d9-8516-4b9c7e931d7f <luxagraf@c63593aa-01b0-44d9-8516-4b9c7e931d7f> | 2010-01-30 19:19:30 +0000 |
commit | 0882d73ca1ba4c84ce24c946548c80d9e4d1c04e (patch) | |
tree | 605e2284e175e80477fd7b6a6e9e2a2fcae94236 /apps/blog | |
parent | 7300519c054838511ba2584394620d0841b88e5f (diff) |
added topics to posts
Diffstat (limited to 'apps/blog')
-rw-r--r-- | apps/blog/admin.py | 7 | ||||
-rw-r--r-- | apps/blog/models.py | 22 | ||||
-rw-r--r-- | apps/blog/views.py | 13 |
3 files changed, 39 insertions, 3 deletions
diff --git a/apps/blog/admin.py b/apps/blog/admin.py index 78ad458..c5c5c5d 100644 --- a/apps/blog/admin.py +++ b/apps/blog/admin.py @@ -1,6 +1,6 @@ from django.contrib import admin from django import forms -from blog.models import Entry, PostImage +from blog.models import Entry, PostImage, Topic from blog.widgets import AdminImageWidget from django.contrib.gis.admin import OSMGeoAdmin from django.contrib.gis.maps.google import GoogleMap @@ -23,7 +23,7 @@ class EntryAdmin(OSMGeoAdmin): list_filter = ('pub_date', 'enable_comments', 'status','region','location') fieldsets = ( ('Entry', {'fields': ('title','body_markdown', ('location','region'), 'pub_date', ('status','enable_comments'), 'tags', 'slug','photo_gallery'), 'classes': ('show','extrapretty','wide')}), - ('Pub Location', {'fields': ('point',('thumbnail',),'dek', 'title_keywords'), 'classes': ('collapse', 'wide')}), + ('Pub Location', {'fields': ('point',('thumbnail',),'dek', 'topics', 'title_keywords'), 'classes': ('collapse', 'wide')}), ) class Media: @@ -71,6 +71,9 @@ class EntryAdmin(OSMGeoAdmin): class PostImageAdmin(admin.ModelAdmin): list_display = ('title', 'output_tags') +class TopicAdmin(admin.ModelAdmin): + list_display = ('name', 'slug') +admin.site.register(Topic, TopicAdmin) admin.site.register(PostImage, PostImageAdmin) admin.site.register(Entry, EntryAdmin) diff --git a/apps/blog/models.py b/apps/blog/models.py index 5ff6624..bdbcd82 100644 --- a/apps/blog/models.py +++ b/apps/blog/models.py @@ -35,6 +35,17 @@ class PostImage(models.Model): return force_unicode('<img src="%s%s" alt="%s" class="postpic"/>' % \ (settings.IMAGES_URL, self.image.url.split('images')[1].split('/',1)[1], self.title)) + +class Topic(models.Model): + name = models.CharField(max_length=100) + slug = models.SlugField() + + def __unicode__(self): + return self.name + + def get_absolute_url(self): + return "/topics/%s/" % (self.slug) + class Entry(models.Model): title = models.CharField(max_length=200) slug = models.SlugField(unique_for_date='pub_date') @@ -56,6 +67,17 @@ class Entry(models.Model): photo_gallery = models.ForeignKey(PhotoGallery, blank=True, null=True, verbose_name='photo set') thumbnail = models.FileField(upload_to=get_upload_path, null=True,blank=True) title_keywords = models.CharField(max_length=200, null=True, blank=True) + topics = models.ManyToManyField(Topic, blank=True) + + @property + def longitude(self): + '''Get the site's longitude.''' + return self.point.x + + @property + def latitude(self): + '''Get the site's latitude.''' + return self.point.y class Meta: ordering = ('-pub_date',) diff --git a/apps/blog/views.py b/apps/blog/views.py index 6ccdc28..ef933eb 100644 --- a/apps/blog/views.py +++ b/apps/blog/views.py @@ -5,7 +5,7 @@ from django.views.generic.list_detail import object_list from django.http import Http404 -from blog.models import Entry +from blog.models import Entry, Topic from locations.models import Region, Country def home(request): @@ -36,6 +36,17 @@ def entry_list(request,page): """ +List of all writing +""" +def topic_list(request,slug,page): + request.page_url = '/topics/'+slug+'/%d/' + request.page = int(page) + topic = Topic.objects.get(slug=slug) + qs = Entry.objects.filter(status__exact=1,topics=topic).order_by('-pub_date').select_related() + return object_list(request, queryset=qs, template_name='archives/topics.html',) + + +""" Grabs entries by region or country """ def entry_list_by_area(request,slug,page): |