News app.
This commit is contained in:
parent
1e13d94b20
commit
e80fa61d03
4 changed files with 84 additions and 0 deletions
0
apps/news/__init__.py
Executable file
0
apps/news/__init__.py
Executable file
43
apps/news/models.py
Executable file
43
apps/news/models.py
Executable file
|
|
@ -0,0 +1,43 @@
|
|||
from django.db import models
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
class NewsTopic(models.Model):
|
||||
"""
|
||||
Represents a news topic.
|
||||
"""
|
||||
name = models.CharField(maxlength=75, unique=True)
|
||||
description = models.TextField(blank=True)
|
||||
icon = models.ImageField(upload_to='newstopic_icons', default='newstopic_icons/default.png', blank=True, help_text="Image for the news topic.")
|
||||
|
||||
def __str__(self):
|
||||
try:
|
||||
return self.name
|
||||
except:
|
||||
return "Invalid"
|
||||
|
||||
class Meta:
|
||||
ordering = ['name']
|
||||
|
||||
class Admin:
|
||||
list_display = ('name', 'icon')
|
||||
|
||||
class NewsEntry(models.Model):
|
||||
"""
|
||||
An individual news entry.
|
||||
"""
|
||||
author = models.ForeignKey(User, related_name='author')
|
||||
title = models.CharField(maxlength=255)
|
||||
body = models.TextField()
|
||||
topic = models.ForeignKey(NewsTopic, related_name='newstopic')
|
||||
date_posted = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
class Meta:
|
||||
ordering = ('-date_posted',)
|
||||
|
||||
class Admin:
|
||||
list_display = ('title', 'author', 'topic', 'date_posted')
|
||||
list_filter = ('topic',)
|
||||
search_fields = ['title']
|
||||
6
apps/news/urls.py
Executable file
6
apps/news/urls.py
Executable file
|
|
@ -0,0 +1,6 @@
|
|||
from django.conf.urls.defaults import *
|
||||
|
||||
urlpatterns = patterns('apps.news.views',
|
||||
# (r'^news/show/(?P<entry_id>\d+)/$', 'show_news'),
|
||||
# (r'^news/categories/list/$', 'recent_kills'),
|
||||
)
|
||||
35
apps/news/views.py
Executable file
35
apps/news/views.py
Executable file
|
|
@ -0,0 +1,35 @@
|
|||
#
|
||||
# News display.
|
||||
#
|
||||
from django.shortcuts import render_to_response, get_object_or_404
|
||||
from django.db import connection
|
||||
from django.template import RequestContext
|
||||
from django import newforms as forms
|
||||
from django.newforms.util import ValidationError
|
||||
import django.views.generic.list_detail as list_detail
|
||||
from django.contrib.auth.models import User
|
||||
from django.utils import simplejson
|
||||
|
||||
import frontier.settings as settings
|
||||
from frontier.apps.player.models import UserProfile
|
||||
from frontier.apps.news.models import NewsTopic, NewsEntry
|
||||
|
||||
nav_block = """
|
||||
<div>
|
||||
</div>
|
||||
"""
|
||||
|
||||
def index(request):
|
||||
"""
|
||||
News index.
|
||||
"""
|
||||
news_entries = NewsEntry.objects.all().order_by('-date_posted')[:10]
|
||||
|
||||
pagevars = {
|
||||
"page_title": "Front Page",
|
||||
"nav_block": nav_block,
|
||||
"news_entries": news_entries,
|
||||
}
|
||||
|
||||
context_instance = RequestContext(request)
|
||||
return render_to_response('news/index.html', pagevars, context_instance)
|
||||
Loading…
Add table
Add a link
Reference in a new issue