newest version link for application

This commit is contained in:
Oskar Hahn 2011-09-06 10:41:06 +02:00
parent f6b335245d
commit 08a1e88e12
5 changed files with 38 additions and 16 deletions

View File

@ -62,6 +62,16 @@ class Application(models.Model):
except IndexError: except IndexError:
return None return None
@property
def public_version(self):
"""
Return permitted, if the application was permitted, else last_version
"""
if self.permitted is not None:
return self.permitted
else:
return self.last_version
def accept_version(self, version): def accept_version(self, version):
""" """
accept a Version accept a Version
@ -358,15 +368,12 @@ class Application(models.Model):
if name in ('title', 'text', 'reason', 'time', 'aid'): if name in ('title', 'text', 'reason', 'time', 'aid'):
try: try:
if name == 'aid': if name == 'aid':
return self.permitted.aid return self.last_version.aid
return self.permitted.__dict__[name] return self.last_version.__dict__[name]
except TypeError: except TypeError:
raise AttributeError(name) raise AttributeError(name)
except AttributeError: except AttributeError:
if name == 'aid': raise AttributeError(name)
return self.last_version.aid
return self.last_version.__dict__[name]
#raise AttributeError(name)
raise AttributeError(name) raise AttributeError(name)
def gen_poll(self, user=None): def gen_poll(self, user=None):

View File

@ -1,5 +1,5 @@
{% extends "application/base_application.html" %} {% extends "application/base_application.html" %}
{% block title %}{{ block.super }} - {% trans "Application" %} "{{ application.title }}"{% endblock %} {% block title %}{{ block.super }} - {% trans "Application" %} "{{ version.title }}"{% endblock %}
{% load tags %} {% load tags %}
{% block content %} {% block content %}
@ -212,16 +212,23 @@
{% else %} {% else %}
<i>[no number]</i> <i>[no number]</i>
{% endif %}</h1> {% endif %}</h1>
{% trans "Version" %} {{ application.aid }} {% trans "Version" %} {{ version.aid }}
{% if application.public_version != application.last_version %}
<h2>{{ application.title }}</h2> {% if version == application.public_version %}
(<a href="{% url application_view_newest application.id %}">{% trans "Show newest Version" %}</a>)
{% else %}
(<a href="{% url application_view application.id %}">{% trans "Show permitted Version" %}</a>)
{% endif %}
{% endif %}
{{ application.text|linebreaks }} <h2>{{ version.title }}</h2>
{{ version.text|linebreaks }}
<h2>{% trans "Reason" %}:</h2> <h2>{% trans "Reason" %}:</h2>
{% if application.reason %} {% if version.reason %}
{{ application.reason|linebreaks }} {{ version.reason|linebreaks }}
{% else %} {% else %}
- -
{% endif %} {% endif %}

View File

@ -19,6 +19,9 @@ urlpatterns = patterns('application.views',
url(r'^application/(?P<application_id>\d+)$', 'view', \ url(r'^application/(?P<application_id>\d+)$', 'view', \
name='application_view'), name='application_view'),
url(r'^application/(?P<application_id>\d+)/newest$', 'view', {'newest': True}, \
name='application_view_newest'),
url(r'^application/new$', 'edit', \ url(r'^application/new$', 'edit', \
name='application_new'), name='application_new'),

View File

@ -63,11 +63,15 @@ def overview(request):
@permission_required('application.can_see_application') @permission_required('application.can_see_application')
@template('application/view.html') @template('application/view.html')
def view(request, application_id): def view(request, application_id, newest=False):
""" """
View one application. View one application.
""" """
application = Application.objects.get(pk=application_id) application = Application.objects.get(pk=application_id)
if newest:
version = application.last_version
else:
version = application.public_version
revisions = application.versions revisions = application.versions
actions = application.get_allowed_actions(user=request.user) actions = application.get_allowed_actions(user=request.user)
@ -76,6 +80,7 @@ def view(request, application_id):
'revisions': revisions, 'revisions': revisions,
'actions': actions, 'actions': actions,
'min_supporters': int(config_get('application_min_supporters')), 'min_supporters': int(config_get('application_min_supporters')),
'version': version
} }
@ -373,7 +378,7 @@ def permit_version(request, aversion_id):
@permission_required('application.can_manage_application') @permission_required('application.can_manage_application')
def reject_version(request, aversion_id): def reject_version(request, aversion_id):
aversion = AVersion.objects.get(pk=aversion_id) aversion = AVersion.objects.get(pk=aversion_id)
application = aversion.application application = aversion.application
if request.method == 'POST': if request.method == 'POST':
if application.reject_version(aversion): if application.reject_version(aversion):
messages.success(request, _("Version <b>%s</b> rejected.") % (aversion.aid)) messages.success(request, _("Version <b>%s</b> rejected.") % (aversion.aid))

View File

@ -82,7 +82,7 @@ def view(request, assignment_id=None):
polls = [] polls = []
for poll in assignment.poll_set.filter(assignment=assignment): for poll in assignment.poll_set.filter(assignment=assignment):
polls.append(poll) polls.append(poll)
return {'assignment': assignment, return {'assignment': assignment,
'form': form, 'form': form,
'votes': votes, 'votes': votes,