Make the petition system a bit more usable and visible

This commit is contained in:
Trever Fischer
2012-06-07 16:54:59 -04:00
parent d776b7bd1c
commit 7f710bd049
8 changed files with 59 additions and 0 deletions

8
petition/context.py Normal file
View File

@@ -0,0 +1,8 @@
import models
def open_petitions(request):
if request.user.is_staff or request.user.is_admin:
petitions = models.Petition.objects.filter(closed=False)
else:
petitions = models.Petition.objects.filter(closed=False, author=request.user)
return {'open_petitions': petitions}

View File

@@ -7,6 +7,10 @@ class Petition(models.Model):
updated = models.DateTimeField(editable=False, auto_now=True)
body = models.TextField()
closed = models.BooleanField(default=False)
@models.permalink
def get_absolute_url(self):
return ('petition.views.view', [], {'id': self.id})
def __unicode__(self):
return self.body

View File

@@ -1,6 +1,7 @@
from django.conf.urls.defaults import patterns, include, url
urlpatterns = patterns('petition',
url('^$', 'views.index'),
url('^create$', 'views.create'),
url('^(?P<id>[0-9]+)', 'views.view'),
url('^comment/(?P<id>[0-9]+)', 'views.comment'),

View File

@@ -20,6 +20,16 @@ def create(request):
return HttpResponseRedirect(reverse('petition.views.view', kwargs={"id":petition.id}))
return render_to_response('petition/create.html', {'form':form}, context_instance = RequestContext(request))
@login_required
def index(request):
if request.user.is_staff or request.user.is_admin:
openPetitions = models.Petition.objects.filter(closed=False)
closedPetitions = models.Petition.objects.filter(closed=True)
else:
openPetitions = models.Petition.objects.filter(closed=False, author=request.user)
closedPetitions = models.Petition.objects.filter(closed=True, author=request.user)
return render_to_response('petition/index.html', {'openPetitions': openPetitions, 'closedPetitions': closedPetitions}, context_instance = RequestContext(request))
@login_required
def view(request, id):
petition = models.Petition.objects.get(id__exact=id)

View File

@@ -178,6 +178,7 @@ TEMPLATE_CONTEXT_PROCESSORS = (
"minecraft.context.server_info",
"appversion.context.git_version",
"messages.context_processors.inbox",
"petition.context.open_petitions",
)
LOGIN_REDIRECT_URL = '/'

View File

@@ -495,3 +495,10 @@ fieldset {
.profile .avatar {
float: right;
}
.petition-list {
}
.petition-list .petition-title {
font-size: xx-large;
}

View File

@@ -0,0 +1,24 @@
{% extends 'base.html' %}
{% load markup %}
{% block title%}Petitions{%endblock%}
{% block content %}
<div class="item">
<h2>Open Petitions</h2>
<a href="{% url petition.views.create %}">Create Petition</a>
<ul class="petition-list">
{% for petition in openPetitions %}
<li><div class="petition-title"><a href="{{petition.get_absolute_url}}">{{petition.id}} - {{petition.body|truncatewords:8}}</a></div>
<div class="petition-summary">Filed by {{petition.author}}</div></li>
{% endfor %}
</ul>
<h2>Closed Petitions</h2>
<ul class="petition-list">
{% for petition in closedPetitions %}
<li><div class="petition-title"><a href="{{petition.get_absolute_url}}">{{petition.id}} - {{petition.body|truncatewords:8}}</a></div>
<div class="petition-summary">Filed by {{petition.author}}</div></li>
{% endfor %}
</ul>
</div>
{% endblock %}

View File

@@ -4,9 +4,12 @@
{% block title %}Petition #{{petition.id}}{% endblock %}
{% block content %}
<div class="item">
<p>Created by {{petition.author}}</p>
{{petition.body|markdown:"safe"}}
</div>
<div class="item">
{% for comment in petition.comment_set.all %}
<p>By {{comment.author}}</p>
{{comment.body|markdown:"safe"}}
@@ -17,4 +20,5 @@
{{form.as_p}}
<input type="submit" value="Submit"/>
</form>
</div>
{% endblock %}