Merge pull request #4 from pyohio/future-django

Changes for Django 1.5+
This commit is contained in:
David Ray 2014-01-16 05:17:42 -08:00
commit f369e1d8ad
52 changed files with 238 additions and 140 deletions

View file

@ -1,6 +1,6 @@
from django.conf.urls.defaults import url, patterns from django.conf.urls import patterns, url
urlpatterns = patterns("symposion.boxes.views", urlpatterns = patterns("symposion.boxes.views",
url(r"^([-\w]+)/edit/$", "box_edit", name="box_edit"), url(r"^([-\w]+)/edit/$", "box_edit", name="box_edit"),
) )

View file

@ -1,7 +1,9 @@
from django.conf.urls.defaults import url, patterns from django.conf.urls import url, patterns
PAGE_RE = r"(([\w-]{1,})(/[\w-]{1,})*)/" PAGE_RE = r"(([\w-]{1,})(/[\w-]{1,})*)/"
urlpatterns = patterns("symposion.cms.views", urlpatterns = patterns("symposion.cms.views",
url(r"^files/$", "file_index", name="file_index"), url(r"^files/$", "file_index", name="file_index"),
url(r"^files/create/$", "file_create", name="file_create"), url(r"^files/create/$", "file_create", name="file_create"),

View file

@ -1,4 +1,4 @@
from django.conf.urls.defaults import patterns, url from django.conf.urls import patterns, url
urlpatterns = patterns("symposion.conference.views", urlpatterns = patterns("symposion.conference.views",

View file

@ -23,7 +23,7 @@ def export_as_csv_action(
elif exclude: elif exclude:
excludeset = set(exclude) excludeset = set(exclude)
field_names = field_names - excludeset field_names = field_names - excludeset
response = HttpResponse(mimetype="text/csv") response = HttpResponse(content_type="text/csv")
response["Content-Disposition"] = "attachment; filename=%s.csv" % unicode(opts).replace(".", "_") response["Content-Disposition"] = "attachment; filename=%s.csv" % unicode(opts).replace(".", "_")
writer = csv.writer(response) writer = csv.writer(response)
if header: if header:

View file

@ -1,4 +1,4 @@
from django.conf.urls.defaults import patterns, url from django.conf.urls import patterns, url
urlpatterns = patterns("symposion.proposals.views", urlpatterns = patterns("symposion.proposals.views",

View file

@ -1,3 +1,4 @@
import hashlib
import random import random
import sys import sys
@ -6,7 +7,6 @@ from django.core.exceptions import ObjectDoesNotExist
from django.db.models import Q from django.db.models import Q
from django.http import Http404, HttpResponse, HttpResponseForbidden from django.http import Http404, HttpResponse, HttpResponseForbidden
from django.shortcuts import render, redirect, get_object_or_404 from django.shortcuts import render, redirect, get_object_or_404
from django.utils.hashcompat import sha_constructor
from django.views import static from django.views import static
from django.contrib import messages from django.contrib import messages
@ -37,21 +37,21 @@ def proposal_submit(request):
request.user.speaker_profile request.user.speaker_profile
except ObjectDoesNotExist: except ObjectDoesNotExist:
return redirect("dashboard") return redirect("dashboard")
kinds = [] kinds = []
for proposal_section in ProposalSection.available(): for proposal_section in ProposalSection.available():
for kind in proposal_section.section.proposal_kinds.all(): for kind in proposal_section.section.proposal_kinds.all():
kinds.append(kind) kinds.append(kind)
return render(request, "proposals/proposal_submit.html", { return render(request, "proposals/proposal_submit.html", {
"kinds": kinds, "kinds": kinds,
}) })
def proposal_submit_kind(request, kind_slug): def proposal_submit_kind(request, kind_slug):
kind = get_object_or_404(ProposalKind, slug=kind_slug) kind = get_object_or_404(ProposalKind, slug=kind_slug)
if not request.user.is_authenticated(): if not request.user.is_authenticated():
return redirect("home") # @@@ unauth'd speaker info page? return redirect("home") # @@@ unauth'd speaker info page?
else: else:
@ -59,12 +59,12 @@ def proposal_submit_kind(request, kind_slug):
speaker_profile = request.user.speaker_profile speaker_profile = request.user.speaker_profile
except ObjectDoesNotExist: except ObjectDoesNotExist:
return redirect("dashboard") return redirect("dashboard")
if not kind.section.proposalsection.is_available(): if not kind.section.proposalsection.is_available():
return redirect("proposal_submit") return redirect("proposal_submit")
form_class = get_form(settings.PROPOSAL_FORMS[kind_slug]) form_class = get_form(settings.PROPOSAL_FORMS[kind_slug])
if request.method == "POST": if request.method == "POST":
form = form_class(request.POST) form = form_class(request.POST)
if form.is_valid(): if form.is_valid():
@ -79,7 +79,7 @@ def proposal_submit_kind(request, kind_slug):
return redirect("dashboard") return redirect("dashboard")
else: else:
form = form_class() form = form_class()
return render(request, "proposals/proposal_submit_kind.html", { return render(request, "proposals/proposal_submit_kind.html", {
"kind": kind, "kind": kind,
"form": form, "form": form,
@ -91,17 +91,17 @@ def proposal_speaker_manage(request, pk):
queryset = ProposalBase.objects.select_related("speaker") queryset = ProposalBase.objects.select_related("speaker")
proposal = get_object_or_404(queryset, pk=pk) proposal = get_object_or_404(queryset, pk=pk)
proposal = ProposalBase.objects.get_subclass(pk=proposal.pk) proposal = ProposalBase.objects.get_subclass(pk=proposal.pk)
if proposal.speaker != request.user.speaker_profile: if proposal.speaker != request.user.speaker_profile:
raise Http404() raise Http404()
if request.method == "POST": if request.method == "POST":
add_speaker_form = AddSpeakerForm(request.POST, proposal=proposal) add_speaker_form = AddSpeakerForm(request.POST, proposal=proposal)
if add_speaker_form.is_valid(): if add_speaker_form.is_valid():
message_ctx = { message_ctx = {
"proposal": proposal, "proposal": proposal,
} }
def create_speaker_token(email_address): def create_speaker_token(email_address):
# create token and look for an existing speaker to prevent # create token and look for an existing speaker to prevent
# duplicate tokens and confusing the pending speaker # duplicate tokens and confusing the pending speaker
@ -110,8 +110,8 @@ def proposal_speaker_manage(request, pk):
Q(user=None, invite_email=email_address) Q(user=None, invite_email=email_address)
) )
except Speaker.DoesNotExist: except Speaker.DoesNotExist:
salt = sha_constructor(str(random.random())).hexdigest()[:5] salt = hashlib.sha1(str(random.random())).hexdigest()[:5]
token = sha_constructor(salt + email_address).hexdigest() token = hashlib.sha1(salt + email_address).hexdigest()
pending = Speaker.objects.create( pending = Speaker.objects.create(
invite_email=email_address, invite_email=email_address,
invite_token=token, invite_token=token,
@ -173,14 +173,14 @@ def proposal_edit(request, pk):
if request.user != proposal.speaker.user: if request.user != proposal.speaker.user:
raise Http404() raise Http404()
if not proposal.can_edit(): if not proposal.can_edit():
ctx = { ctx = {
"title": "Proposal editing closed", "title": "Proposal editing closed",
"body": "Proposal editing is closed for this session type." "body": "Proposal editing is closed for this session type."
} }
return render(request, "proposals/proposal_error.html", ctx) return render(request, "proposals/proposal_error.html", ctx)
form_class = get_form(settings.PROPOSAL_FORMS[proposal.kind.slug]) form_class = get_form(settings.PROPOSAL_FORMS[proposal.kind.slug])
if request.method == "POST": if request.method == "POST":
@ -206,7 +206,7 @@ def proposal_edit(request, pk):
return redirect("proposal_detail", proposal.pk) return redirect("proposal_detail", proposal.pk)
else: else:
form = form_class(instance=proposal) form = form_class(instance=proposal)
return render(request, "proposals/proposal_edit.html", { return render(request, "proposals/proposal_edit.html", {
"proposal": proposal, "proposal": proposal,
"form": form, "form": form,
@ -218,22 +218,22 @@ def proposal_detail(request, pk):
queryset = ProposalBase.objects.select_related("speaker", "speaker__user") queryset = ProposalBase.objects.select_related("speaker", "speaker__user")
proposal = get_object_or_404(queryset, pk=pk) proposal = get_object_or_404(queryset, pk=pk)
proposal = ProposalBase.objects.get_subclass(pk=proposal.pk) proposal = ProposalBase.objects.get_subclass(pk=proposal.pk)
if request.user not in [p.user for p in proposal.speakers()]: if request.user not in [p.user for p in proposal.speakers()]:
raise Http404() raise Http404()
if "symposion.reviews" in settings.INSTALLED_APPS: if "symposion.reviews" in settings.INSTALLED_APPS:
from symposion.reviews.forms import SpeakerCommentForm from symposion.reviews.forms import SpeakerCommentForm
message_form = SpeakerCommentForm() message_form = SpeakerCommentForm()
if request.method == "POST": if request.method == "POST":
message_form = SpeakerCommentForm(request.POST) message_form = SpeakerCommentForm(request.POST)
if message_form.is_valid(): if message_form.is_valid():
message = message_form.save(commit=False) message = message_form.save(commit=False)
message.user = request.user message.user = request.user
message.proposal = proposal message.proposal = proposal
message.save() message.save()
ProposalMessage = SpeakerCommentForm.Meta.model ProposalMessage = SpeakerCommentForm.Meta.model
reviewers = User.objects.filter( reviewers = User.objects.filter(
id__in=ProposalMessage.objects.filter( id__in=ProposalMessage.objects.filter(
@ -242,7 +242,7 @@ def proposal_detail(request, pk):
user=request.user user=request.user
).distinct().values_list("user", flat=True) ).distinct().values_list("user", flat=True)
) )
for reviewer in reviewers: for reviewer in reviewers:
ctx = { ctx = {
"proposal": proposal, "proposal": proposal,
@ -253,13 +253,13 @@ def proposal_detail(request, pk):
[reviewer.email], "proposal_new_message", [reviewer.email], "proposal_new_message",
context=ctx context=ctx
) )
return redirect(request.path) return redirect(request.path)
else: else:
message_form = SpeakerCommentForm() message_form = SpeakerCommentForm()
else: else:
message_form = None message_form = None
return render(request, "proposals/proposal_detail.html", { return render(request, "proposals/proposal_detail.html", {
"proposal": proposal, "proposal": proposal,
"message_form": message_form "message_form": message_form
@ -271,7 +271,7 @@ def proposal_cancel(request, pk):
queryset = ProposalBase.objects.select_related("speaker") queryset = ProposalBase.objects.select_related("speaker")
proposal = get_object_or_404(queryset, pk=pk) proposal = get_object_or_404(queryset, pk=pk)
proposal = ProposalBase.objects.get_subclass(pk=proposal.pk) proposal = ProposalBase.objects.get_subclass(pk=proposal.pk)
if proposal.speaker.user != request.user: if proposal.speaker.user != request.user:
return HttpResponseForbidden() return HttpResponseForbidden()
@ -281,7 +281,7 @@ def proposal_cancel(request, pk):
# @@@ fire off email to submitter and other speakers # @@@ fire off email to submitter and other speakers
messages.success(request, "%s has been cancelled" % proposal.title) messages.success(request, "%s has been cancelled" % proposal.title)
return redirect("dashboard") return redirect("dashboard")
return render(request, "proposals/proposal_cancel.html", { return render(request, "proposals/proposal_cancel.html", {
"proposal": proposal, "proposal": proposal,
}) })
@ -339,10 +339,10 @@ def document_create(request, proposal_pk):
queryset = ProposalBase.objects.select_related("speaker") queryset = ProposalBase.objects.select_related("speaker")
proposal = get_object_or_404(queryset, pk=proposal_pk) proposal = get_object_or_404(queryset, pk=proposal_pk)
proposal = ProposalBase.objects.get_subclass(pk=proposal.pk) proposal = ProposalBase.objects.get_subclass(pk=proposal.pk)
if proposal.cancelled: if proposal.cancelled:
return HttpResponseForbidden() return HttpResponseForbidden()
if request.method == "POST": if request.method == "POST":
form = SupportingDocumentCreateForm(request.POST, request.FILES) form = SupportingDocumentCreateForm(request.POST, request.FILES)
if form.is_valid(): if form.is_valid():
@ -353,7 +353,7 @@ def document_create(request, proposal_pk):
return redirect("proposal_detail", proposal.pk) return redirect("proposal_detail", proposal.pk)
else: else:
form = SupportingDocumentCreateForm() form = SupportingDocumentCreateForm()
return render(request, "proposals/document_create.html", { return render(request, "proposals/document_create.html", {
"proposal": proposal, "proposal": proposal,
"form": form, "form": form,
@ -378,8 +378,8 @@ def document_download(request, pk, *args):
def document_delete(request, pk): def document_delete(request, pk):
document = get_object_or_404(SupportingDocument, pk=pk, uploaded_by=request.user) document = get_object_or_404(SupportingDocument, pk=pk, uploaded_by=request.user)
proposal_pk = document.proposal.pk proposal_pk = document.proposal.pk
if request.method == "POST": if request.method == "POST":
document.delete() document.delete()
return redirect("proposal_detail", proposal_pk) return redirect("proposal_detail", proposal_pk)

View file

@ -1,4 +1,4 @@
from django.conf.urls.defaults import patterns, url from django.conf.urls import patterns, url
urlpatterns = patterns("symposion.reviews.views", urlpatterns = patterns("symposion.reviews.views",
@ -14,9 +14,9 @@ urlpatterns = patterns("symposion.reviews.views",
url(r"^section/(?P<section_slug>[\w\-]+)/notification/(?P<status>\w+)/$", "result_notification", name="result_notification"), url(r"^section/(?P<section_slug>[\w\-]+)/notification/(?P<status>\w+)/$", "result_notification", name="result_notification"),
url(r"^section/(?P<section_slug>[\w\-]+)/notification/(?P<status>\w+)/prepare/$", "result_notification_prepare", name="result_notification_prepare"), url(r"^section/(?P<section_slug>[\w\-]+)/notification/(?P<status>\w+)/prepare/$", "result_notification_prepare", name="result_notification_prepare"),
url(r"^section/(?P<section_slug>[\w\-]+)/notification/(?P<status>\w+)/send/$", "result_notification_send", name="result_notification_send"), url(r"^section/(?P<section_slug>[\w\-]+)/notification/(?P<status>\w+)/send/$", "result_notification_send", name="result_notification_send"),
url(r"^review/(?P<pk>\d+)/$", "review_detail", name="review_detail"), url(r"^review/(?P<pk>\d+)/$", "review_detail", name="review_detail"),
url(r"^(?P<pk>\d+)/delete/$", "review_delete", name="review_delete"), url(r"^(?P<pk>\d+)/delete/$", "review_delete", name="review_delete"),
url(r"^assignments/$", "review_assignments", name="review_assignments"), url(r"^assignments/$", "review_assignments", name="review_assignments"),
url(r"^assignment/(?P<pk>\d+)/opt-out/$", "review_assignment_opt_out", name="review_assignment_opt_out"), url(r"^assignment/(?P<pk>\d+)/opt-out/$", "review_assignment_opt_out", name="review_assignment_opt_out"),

View file

@ -1,4 +1,4 @@
from django.conf.urls.defaults import url, patterns from django.conf.urls import url, patterns
urlpatterns = patterns("symposion.schedule.views", urlpatterns = patterns("symposion.schedule.views",

View file

@ -78,7 +78,7 @@ def schedule_list_csv(request, slug=None):
presentations = Presentation.objects.filter(section=schedule.section) presentations = Presentation.objects.filter(section=schedule.section)
presentations = presentations.exclude(cancelled=True).order_by("id") presentations = presentations.exclude(cancelled=True).order_by("id")
response = HttpResponse(mimetype="text/csv") response = HttpResponse(content_type="text/csv")
if slug: if slug:
file_slug = slug file_slug = slug
else: else:

View file

@ -1,4 +1,4 @@
from django.conf.urls.defaults import patterns, url from django.conf.urls import patterns, url
urlpatterns = patterns("symposion.speakers.views", urlpatterns = patterns("symposion.speakers.views",

View file

@ -1,9 +1,9 @@
from django.conf.urls.defaults import patterns, url from django.conf.urls import patterns, url
from django.views.generic.simple import direct_to_template from django.views.generic import TemplateView
urlpatterns = patterns("symposion.sponsorship.views", urlpatterns = patterns("symposion.sponsorship.views",
url(r"^$", direct_to_template, {"template": "sponsorship/list.html"}, name="sponsor_list"), url(r"^$", TemplateView.as_view(template_name="sponsorship/list.html"), name="sponsor_list"),
url(r"^apply/$", "sponsor_apply", name="sponsor_apply"), url(r"^apply/$", "sponsor_apply", name="sponsor_apply"),
url(r"^add/$", "sponsor_add", name="sponsor_add"), url(r"^add/$", "sponsor_add", name="sponsor_add"),
url(r"^(?P<pk>\d+)/$", "sponsor_detail", name="sponsor_detail"), url(r"^(?P<pk>\d+)/$", "sponsor_detail", name="sponsor_detail"),

View file

@ -1,4 +1,4 @@
from django.conf.urls.defaults import patterns, url from django.conf.urls import patterns, url
urlpatterns = patterns("symposion.teams.views", urlpatterns = patterns("symposion.teams.views",

View file

@ -1,5 +1,8 @@
{% extends "site_base.html" %} {% extends "site_base.html" %}
{% load url from future %}
{% load bootstrap_tags %} {% load bootstrap_tags %}
{% block head_title %}Upload File{% endblock %} {% block head_title %}Upload File{% endblock %}
@ -8,7 +11,7 @@
<div class="row"> <div class="row">
<div class="span12"> <div class="span12">
<h1>Upload File</h1> <h1>Upload File</h1>
<form method="POST" action="{% url file_create %}" enctype="multipart/form-data"> <form method="POST" action="{% url 'file_create' %}" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form|as_bootstrap }} {{ form|as_bootstrap }}
<div class="form-actions"> <div class="form-actions">

View file

@ -1,5 +1,8 @@
{% extends "site_base.html" %} {% extends "site_base.html" %}
{% load url from future %}
{% block head_title %}Uploaded Files{% endblock %} {% block head_title %}Uploaded Files{% endblock %}
{% block body_outer %} {% block body_outer %}
@ -9,7 +12,7 @@
{% for file in files %} {% for file in files %}
<div style="margin-top: 1em;"> <div style="margin-top: 1em;">
<form class="pull-right" action="{% url file_delete file.pk %}" method="post"> <form class="pull-right" action="{% url 'file_delete' file.pk %}" method="post">
{% csrf_token %} {% csrf_token %}
<button type="submit" class="btn btn-error"><i class="icon-trash"></i> delete</button> <button type="submit" class="btn btn-error"><i class="icon-trash"></i> delete</button>
</form> </form>
@ -20,7 +23,7 @@
<p>No uploaded files.</p> <p>No uploaded files.</p>
{% endfor %} {% endfor %}
<div style="margin-top: 2em"> <div style="margin-top: 2em">
<a class="btn btn-success" href="{% url file_create %}"> <a class="btn btn-success" href="{% url 'file_create' %}">
<i class="icon-plus icon-white"></i> <i class="icon-plus icon-white"></i>
Add File Add File
</a> </a>

View file

@ -1,5 +1,8 @@
{% extends "site_base.html" %} {% extends "site_base.html" %}
{% load url from future %}
{% load sitetree %} {% load sitetree %}
{% load i18n %} {% load i18n %}
@ -12,7 +15,7 @@
{% block body %} {% block body %}
{% if editable %} {% if editable %}
<div class="pull-right"> <div class="pull-right">
<a href="{% url cms_page_edit page.path %}" class="btn"><i class="icon-pencil icon-large"></i> Edit this page</a> <a href="{% url 'cms_page_edit' page.path %}" class="btn"><i class="icon-pencil icon-large"></i> Edit this page</a>
</div> </div>
{% endif %} {% endif %}
<h2>{{ page.title }}</h2> <h2>{{ page.title }}</h2>

View file

@ -1,5 +1,8 @@
{% extends "site_base.html" %} {% extends "site_base.html" %}
{% load url from future %}
{% load i18n %} {% load i18n %}
{% load sitetree %} {% load sitetree %}
@ -68,9 +71,9 @@
<td>{{ user.get_full_name }}</td> <td>{{ user.get_full_name }}</td>
<td> <td>
{% if user.speaker_profile %} {% if user.speaker_profile %}
<a href="{% url speaker_profile user.speaker_profile.pk %}">{{ user.speaker_profile }}</a> <a href="{% url 'speaker_profile' user.speaker_profile.pk %}">{{ user.speaker_profile }}</a>
{% else %} {% else %}
<a href="{% url speaker_create_staff user.pk %}" class="btn btn-mini">create</a> <a href="{% url 'speaker_create_staff' user.pk %}" class="btn btn-mini">create</a>
{% endif %} {% endif %}
</td> </td>
</tr> </tr>

View file

@ -1,5 +1,8 @@
{% extends "site_base.html" %} {% extends "site_base.html" %}
{% load url from future %}
{% load i18n %} {% load i18n %}
{% load proposal_tags %} {% load proposal_tags %}
{% load review_tags %} {% load review_tags %}
@ -16,14 +19,14 @@
<h3>{% trans "Speaking" %}</h3> <h3>{% trans "Speaking" %}</h3>
<div class="pull-right header-actions"> <div class="pull-right header-actions">
{% if not user.speaker_profile %} {% if not user.speaker_profile %}
<a href="{% url speaker_create %}" class="btn"> <a href="{% url 'speaker_create' %}" class="btn">
<i class="icon-plus-sign"></i> Create a speaker profile <i class="icon-plus-sign"></i> Create a speaker profile
</a> </a>
{% else %} {% else %}
<a href="{% url speaker_edit %}" class="btn"> <a href="{% url 'speaker_edit' %}" class="btn">
<i class="icon-pencil"></i> Edit your speaker profile <i class="icon-pencil"></i> Edit your speaker profile
</a> </a>
<a href="{% url proposal_submit %}" class="btn"> <a href="{% url 'proposal_submit' %}" class="btn">
<i class="icon-plus-sign"></i> Submit a new proposal <i class="icon-plus-sign"></i> Submit a new proposal
</a> </a>
{% endif %} {% endif %}
@ -32,7 +35,7 @@
<div class="dashboard-panel-content"> <div class="dashboard-panel-content">
{% if not user.speaker_profile %} {% if not user.speaker_profile %}
<p>To submit a proposal, you must first <a href="{% url speaker_create %}">create a speaker profile</a>.</p> <p>To submit a proposal, you must first <a href="{% url 'speaker_create' %}">create a speaker profile</a>.</p>
{% else %} {% else %}
<h4>Your Proposals</h4> <h4>Your Proposals</h4>
{% if user.speaker_profile.proposals.exists %} {% if user.speaker_profile.proposals.exists %}
@ -92,7 +95,7 @@
<h3>{% trans "Sponsorship" %}</h3> <h3>{% trans "Sponsorship" %}</h3>
<div class="pull-right header-actions"> <div class="pull-right header-actions">
{% if not user.sponsorships.exists %} {% if not user.sponsorships.exists %}
<a href="{% url sponsor_apply %}" class="btn"> <a href="{% url 'sponsor_apply' %}" class="btn">
<i class="icon-plus-sign"></i> Apply to be a sponsor <i class="icon-plus-sign"></i> Apply to be a sponsor
</a> </a>
{% endif %} {% endif %}
@ -101,13 +104,13 @@
<div class="dashboard-panel-content"> <div class="dashboard-panel-content">
{% if not user.sponsorships.exists %} {% if not user.sponsorships.exists %}
<p>If you or your organization would be interested in sponsorship opportunities, <a href="{% url sponsor_apply %}">use our online form to apply to be a sponsor</a>. <p>If you or your organization would be interested in sponsorship opportunities, <a href="{% url 'sponsor_apply' %}">use our online form to apply to be a sponsor</a>.
{% else %} {% else %}
<h4>Your Sponsorship</h4> <h4>Your Sponsorship</h4>
<ul> <ul>
{% for sponsorship in user.sponsorships.all %} {% for sponsorship in user.sponsorships.all %}
<li> <li>
<a href="{% url sponsor_detail sponsorship.pk %}"><b>{{ sponsorship.name }}</b></a> <a href="{% url 'sponsor_detail' sponsorship.pk %}"><b>{{ sponsorship.name }}</b></a>
({{ sponsorship.level }}) ({{ sponsorship.level }})
{% if not sponsorship.active %} {% if not sponsorship.active %}
<span class="label label-warning">awaiting approval</span> <span class="label label-warning">awaiting approval</span>
@ -118,7 +121,7 @@
{% endif %} {% endif %}
{% if user.is_staff %} {% if user.is_staff %}
<p> <p>
As staff, you can directly <a href="{% url sponsor_add %}">add a sponsor</a> if the organization isn't As staff, you can directly <a href="{% url 'sponsor_add' %}">add a sponsor</a> if the organization isn't
applying themselves. applying themselves.
</p> </p>
{% endif %} {% endif %}
@ -138,9 +141,9 @@
<ul> <ul>
{% for section in review_sections %} {% for section in review_sections %}
<h5>{{ section }}</h5> <h5>{{ section }}</h5>
<li><a href="{% url review_section section.section.slug %}">All</a></li> <li><a href="{% url 'review_section' section.section.slug %}">All</a></li>
<li><a href="{% url user_reviewed section.section.slug %}">Reviewed by you</a></li> <li><a href="{% url 'user_reviewed' section.section.slug %}">Reviewed by you</a></li>
<li><a href="{% url user_not_reviewed section.section.slug %}">Not Reviewed by you</a></li> <li><a href="{% url 'user_not_reviewed' section.section.slug %}">Not Reviewed by you</a></li>
{% endfor %} {% endfor %}
</ul> </ul>
@ -183,7 +186,7 @@
{% for membership in user.memberships.all %} {% for membership in user.memberships.all %}
<tr> <tr>
<td> <td>
<a href="{% url team_detail membership.team.slug %}">{{ membership.team.name }}</a> <a href="{% url 'team_detail' membership.team.slug %}">{{ membership.team.name }}</a>
{% if membership.team.description %}<br>{{ membership.team.description }}{% endif %} {% if membership.team.description %}<br>{{ membership.team.description }}{% endif %}
</td> </td>
<td> <td>
@ -204,7 +207,7 @@
{% for team in available_teams %} {% for team in available_teams %}
<tr> <tr>
<td> <td>
<a href="{% url team_detail team.slug %}">{{ team }}</a> <a href="{% url 'team_detail' team.slug %}">{{ team }}</a>
{% if team.description %}<br>{{ team.description }}{% endif %} {% if team.description %}<br>{{ team.description }}{% endif %}
</td> </td>
<td> <td>

View file

@ -1,3 +1,4 @@
{% load url from future %}
{% load account_tags %} {% load account_tags %}
<p> <p>
<b>{% user_display message.user %}</b> has added a message on <b>{{ proposal.title }}</b>. <b>{% user_display message.user %}</b> has added a message on <b>{{ proposal.title }}</b>.
@ -6,6 +7,6 @@
{{ message.message|safe }} {{ message.message|safe }}
</blockquote> </blockquote>
<p> <p>
{% if reviewer %}{% url review_detail proposal.pk as detail_url %}{% else %}{% url proposal_detail proposal.pk as detail_url %}{% endif %} {% if reviewer %}{% url 'review_detail' proposal.pk as detail_url %}{% else %}{% url 'proposal_detail' proposal.pk as detail_url %}{% endif %}
Respond online at <a href="http://{{ current_site }}{{ detail_url }}#proposal-feedback">http://{{ current_site }}{{ detail_url }}#proposal-feedback</a> Respond online at <a href="http://{{ current_site }}{{ detail_url }}#proposal-feedback">http://{{ current_site }}{{ detail_url }}#proposal-feedback</a>
</p> </p>

View file

@ -1,8 +1,9 @@
{% load url from future %}
{% load account_tags %} {% load account_tags %}
<p> <p>
<b>{% user_display user %}</b> has made changes to <b>{{ proposal.title }}</b> which you have previously reviewed or commented on. <b>{% user_display user %}</b> has made changes to <b>{{ proposal.title }}</b> which you have previously reviewed or commented on.
</p> </p>
<p> <p>
{% url review_detail proposal.pk as detail_url %} {% url 'review_detail' proposal.pk as detail_url %}
View the latest version of the proposal online at <a href="http://{{ current_site }}{{ detail_url }}">http://{{ current_site }}{{ detail_url }}</a> View the latest version of the proposal online at <a href="http://{{ current_site }}{{ detail_url }}">http://{{ current_site }}{{ detail_url }}</a>
</p> </p>

View file

@ -1,6 +1,7 @@
{% load url from future %}
<p>{{ proposal.speaker.name }} attached you as an additional speaker to a <p>{{ proposal.speaker.name }} attached you as an additional speaker to a
talk proposal for {{ current_site.name }} entitled "{{ proposal.title }}".</p> talk proposal for {{ current_site.name }} entitled "{{ proposal.title }}".</p>
<p>For more details, visit the {{ current_site.name }} speaker dashboard: <p>For more details, visit the {{ current_site.name }} speaker dashboard:
<a href="http://{{ current_site }}{% url dashboard %}">http://{{ current_site }}{% url dashboard %}</a> <a href="http://{{ current_site }}{% url 'dashboard' %}">http://{{ current_site }}{% url 'dashboard' %}</a>
</p> </p>

View file

@ -1,9 +1,10 @@
{% load url from future %}
<p>{{ proposal.speaker.name }} attached you as an additional speaker to a <p>{{ proposal.speaker.name }} attached you as an additional speaker to a
talk proposal for {{ current_site.name }} entitled "{{ proposal.title }}".</p> talk proposal for {{ current_site.name }} entitled "{{ proposal.title }}".</p>
<p>Go to</p> <p>Go to</p>
<p><a href="http://{{ current_site }}{% url speaker_create_token token %}">http://{{ current_site }}{% url speaker_create_token token %}</a></p> <p><a href="http://{{ current_site }}{% url 'speaker_create_token' token %}">http://{{ current_site }}{% url 'speaker_create_token' token %}</a></p>
<p>to confirm.</p> <p>to confirm.</p>

View file

@ -1,8 +1,9 @@
{% load url from future %}
<p>{{ proposal.speaker.name }} attached you as an additional speaker to a <p>{{ proposal.speaker.name }} attached you as an additional speaker to a
talk proposal for {{ current_site.name }} entitled "{{ proposal.title }}".</p> talk proposal for {{ current_site.name }} entitled "{{ proposal.title }}".</p>
<p>Go to</p> <p>Go to</p>
<p><a href="http://{{ current_site }}{% url speaker_create_token token %}">http://{{ current_site }}{% url speaker_create_token token %}</a></p> <p><a href="http://{{ current_site }}{% url 'speaker_create_token' token %}">http://{{ current_site }}{% url 'speaker_create_token' token %}</a></p>
<p>to confirm and fill out your speaker profile.</p> <p>to confirm and fill out your speaker profile.</p>

View file

@ -1,8 +1,9 @@
{% load url from future %}
{% load i18n %} {% load i18n %}
<tr> <tr>
<td> <td>
<a href="{% url proposal_detail proposal.pk %}">{{ proposal.title }}</a> <a href="{% url 'proposal_detail' proposal.pk %}">{{ proposal.title }}</a>
</td> </td>
<td>{{ proposal.kind.name }}</td> <td>{{ proposal.kind.name }}</td>
@ -31,9 +32,9 @@
<span class="caret"></span> <span class="caret"></span>
</a> </a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a href="{% url proposal_pending_join proposal.id %}"> <li><a href="{% url 'proposal_pending_join' proposal.id %}">
{% trans 'Accept invitation' %}</a></li> {% trans 'Accept invitation' %}</a></li>
<li><a href="{% url proposal_pending_decline proposal.id <li><a href="{% url 'proposal_pending_decline' proposal.id
%}">{% trans 'Decline invitation' %}</a></li> %}">{% trans 'Decline invitation' %}</a></li>
</ul> </ul>
</div> </div>

View file

@ -1,3 +1,4 @@
{% load url from future %}
{% load i18n %} {% load i18n %}
<dl class="dl-horizontal"> <dl class="dl-horizontal">
@ -45,7 +46,7 @@
<tr> <tr>
<td><a href="{{ document.download_url }}">{{ document.description }}</a></td> <td><a href="{{ document.download_url }}">{{ document.description }}</a></td>
<td> <td>
<form style="margin: 0;" method="post" action="{% url proposal_document_delete document.pk %}"> <form style="margin: 0;" method="post" action="{% url 'proposal_document_delete' document.pk %}">
{% csrf_token %} {% csrf_token %}
<button type="submit" class="btn btn-mini">delete</button> <button type="submit" class="btn btn-mini">delete</button>
</form> </form>

View file

@ -1,6 +1,7 @@
{% load url from future %}
<tr> <tr>
<td> <td>
<a href="{% url proposal_detail proposal.pk %}">{{ proposal.title }}</a> <a href="{% url 'proposal_detail' proposal.pk %}">{{ proposal.title }}</a>
</td> </td>
<td>{{ proposal.kind.name }}</td> <td>{{ proposal.kind.name }}</td>
@ -24,8 +25,8 @@
<td> <td>
{% if not proposal.cancelled %} {% if not proposal.cancelled %}
{% if request.user == proposal.speaker.user and proposal.can_edit %} {% if request.user == proposal.speaker.user and proposal.can_edit %}
<a href="{% url proposal_edit proposal.pk %}" class="btn btn-mini"><i class="icon-pencil"></i> Edit</a> <a href="{% url 'proposal_edit' proposal.pk %}" class="btn btn-mini"><i class="icon-pencil"></i> Edit</a>
<a href="{% url proposal_speaker_manage proposal.id %}" class="btn btn-mini"><i class="icon-user"></i> Manage Additional Speakers</a> <a href="{% url 'proposal_speaker_manage' proposal.id %}" class="btn btn-mini"><i class="icon-user"></i> Manage Additional Speakers</a>
{% endif %} {% endif %}
{% endif %} {% endif %}
</td> </td>

View file

@ -1,5 +1,8 @@
{% extends "proposals/base.html" %} {% extends "proposals/base.html" %}
{% load url from future %}
{% load i18n %} {% load i18n %}
{% load bootstrap_tags %} {% load bootstrap_tags %}
@ -13,6 +16,6 @@
{% csrf_token %} {% csrf_token %}
<p>Are you sure you want to cancel <b>{{ proposal.title }}</b>?</p> <p>Are you sure you want to cancel <b>{{ proposal.title }}</b>?</p>
<input class="btn btn-danger" type="submit" value="I am sure" /> <input class="btn btn-danger" type="submit" value="I am sure" />
<a class="btn" href="{% url proposal_detail proposal.pk %}">{% trans 'No, keep it for now' %}</a> <a class="btn" href="{% url 'proposal_detail' proposal.pk %}">{% trans 'No, keep it for now' %}</a>
</form> </form>
{% endblock %} {% endblock %}

View file

@ -1,5 +1,8 @@
{% extends "proposals/base.html" %} {% extends "proposals/base.html" %}
{% load url from future %}
{% load i18n %} {% load i18n %}
{% load account_tags %} {% load account_tags %}
{% load bootstrap_tags %} {% load bootstrap_tags %}
@ -10,14 +13,14 @@
<div class="pull-right"> <div class="pull-right">
{% if not proposal.cancelled %} {% if not proposal.cancelled %}
{% if request.user == proposal.speaker.user %} {% if request.user == proposal.speaker.user %}
<a href="{% url proposal_edit proposal.pk %}" class="btn"> <a href="{% url 'proposal_edit' proposal.pk %}" class="btn">
{% trans "Edit this proposal" %} {% trans "Edit this proposal" %}
</a> </a>
<a href="{% url proposal_cancel proposal.pk %}" class="btn"> <a href="{% url 'proposal_cancel' proposal.pk %}" class="btn">
{% trans "Cancel this proposal" %} {% trans "Cancel this proposal" %}
</a> </a>
{% else %} {% else %}
<a href="{% url proposal_leave proposal.pk %}" class="btn"> <a href="{% url 'proposal_leave' proposal.pk %}" class="btn">
{% trans "Remove me from this proposal" %} {% trans "Remove me from this proposal" %}
</a> </a>
{% endif %} {% endif %}
@ -52,7 +55,7 @@
<tr> <tr>
<td><a href="{{ document.download_url }}">{{ document.description }}</a></td> <td><a href="{{ document.download_url }}">{{ document.description }}</a></td>
<td> <td>
<form style="margin: 0;" method="post" action="{% url proposal_document_delete document.pk %}"> <form style="margin: 0;" method="post" action="{% url 'proposal_document_delete' document.pk %}">
{% csrf_token %} {% csrf_token %}
<button type="submit" class="btn btn-mini">{% trans 'delete' %}</button> <button type="submit" class="btn btn-mini">{% trans 'delete' %}</button>
</form> </form>
@ -63,7 +66,7 @@
{% else %} {% else %}
<p>{% trans 'No supporting documents attached to this proposal.' %}</p> <p>{% trans 'No supporting documents attached to this proposal.' %}</p>
{% endif %} {% endif %}
<a class="btn btn-small{% if proposal.cancelled %} btn-disabled{% endif %}" href="{% url proposal_document_create proposal.pk %}"><i class="icon-upload"></i> {% trans 'Add Document' %}</a> <a class="btn btn-small{% if proposal.cancelled %} btn-disabled{% endif %}" href="{% url 'proposal_document_create' proposal.pk %}"><i class="icon-upload"></i> {% trans 'Add Document' %}</a>
</div> </div>
{% endif %} {% endif %}

View file

@ -1,5 +1,8 @@
{% extends "proposals/base.html" %} {% extends "proposals/base.html" %}
{% load url from future %}
{% load bootstrap_tags %} {% load bootstrap_tags %}
{% load markitup_tags %} {% load markitup_tags %}
@ -8,7 +11,7 @@
{% block body %} {% block body %}
<h1>Edit: {{ proposal.title }}</h1> <h1>Edit: {{ proposal.title }}</h1>
<p><a href="{% url proposal_speaker_manage proposal.pk %}">Manage speakers</a></p> <p><a href="{% url 'proposal_speaker_manage' proposal.pk %}">Manage speakers</a></p>
<form method="POST" action="" enctype="multipart/form-data"> <form method="POST" action="" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
@ -17,7 +20,7 @@
</fieldset> </fieldset>
<div class="form-actions"> <div class="form-actions">
<input class="btn btn-primary" type="submit" value="Save" /> <input class="btn btn-primary" type="submit" value="Save" />
<a class="btn" href="{% url proposal_detail proposal.pk %}">Cancel</a> <a class="btn" href="{% url 'proposal_detail' proposal.pk %}">Cancel</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View file

@ -1,4 +1,7 @@
{% extends "proposals/base.html" %} {% extends "proposals/base.html" %}
{% load url from future %}
{% load i18n %} {% load i18n %}
{% load bootstrap_tags %} {% load bootstrap_tags %}
@ -7,7 +10,7 @@
<h1>{% trans 'Proposal:' %} {{ proposal.title }}</h1> <h1>{% trans 'Proposal:' %} {{ proposal.title }}</h1>
<p> <p>
<a href="{% url proposal_edit proposal.pk %}">{% trans 'Edit proposal' %} <a href="{% url 'proposal_edit' proposal.pk %}">{% trans 'Edit proposal' %}
</a> </a>
</p> </p>

View file

@ -1,5 +1,8 @@
{% extends "proposals/base.html" %} {% extends "proposals/base.html" %}
{% load url from future %}
{% load boxes_tags %} {% load boxes_tags %}
{% load i18n %} {% load i18n %}
@ -13,7 +16,7 @@
<ul> <ul>
{% for kind in kinds %} {% for kind in kinds %}
<li><a href="{% url proposal_submit_kind kind.slug %}">{{ kind }}</a></li> <li><a href="{% url 'proposal_submit_kind' kind.slug %}">{{ kind }}</a></li>
{% endfor %} {% endfor %}
</ul> </ul>
{% else %} {% else %}

View file

@ -1,3 +1,4 @@
{% load url from future %}
{% load i18n %} {% load i18n %}
<table class="table table-striped table-bordered table-reviews"> <table class="table table-striped table-bordered table-reviews">
@ -18,7 +19,7 @@
<tr class="{{ proposal.user_vote_css }}"> <tr class="{{ proposal.user_vote_css }}">
<td>{{ proposal.number }}</td> <td>{{ proposal.number }}</td>
<td> <td>
<a href="{% url review_detail proposal.pk %}"> <a href="{% url 'review_detail' proposal.pk %}">
<small><strong>{{ proposal.speaker }}</strong></small> <small><strong>{{ proposal.speaker }}</strong></small>
<br /> <br />
{{ proposal.title }} {{ proposal.title }}

View file

@ -1,5 +1,8 @@
{% extends "site_base.html" %} {% extends "site_base.html" %}
{% load url from future %}
{% load i18n %} {% load i18n %}
{% load sitetree %} {% load sitetree %}
@ -60,25 +63,25 @@
{{ section }} {{ section }}
</li> </li>
<li> <li>
<a href="{% url review_section section.section.slug %}"> <a href="{% url 'review_section' section.section.slug %}">
{% trans "All Reviews" %} {% trans "All Reviews" %}
</a> </a>
</li> </li>
{% comment %} {% comment %}
<li> <li>
<a href="{% url review_section_assignments section.section.slug %}"> <a href="{% url 'review_section_assignments' section.section.slug %}">
{% trans "Your Assignments" %} {% trans "Your Assignments" %}
</a> </a>
</li> </li>
{% endcomment %} {% endcomment %}
<li> <li>
<a href="{% url review_status section.section.slug %}"> <a href="{% url 'review_status' section.section.slug %}">
{% trans "Voting Status" %} {% trans "Voting Status" %}
</a> </a>
</li> </li>
{% if request.user.is_staff %} {% if request.user.is_staff %}
<li> <li>
<a href="{% url result_notification section.section.slug 'accepted' %}">Result Notification</a> <a href="{% url 'result_notification' section.section.slug 'accepted' %}">Result Notification</a>
</li> </li>
{% endif %} {% endif %}
{% endfor %} {% endfor %}

View file

@ -1,5 +1,8 @@
{% extends "reviews/base.html" %} {% extends "reviews/base.html" %}
{% load url from future %}
{% load i18n %} {% load i18n %}
{% block extra_style %} {% block extra_style %}
@ -13,14 +16,14 @@
{% block body %} {% block body %}
<ul class="nav nav-pills"> <ul class="nav nav-pills">
<li{% if status == 'accepted' %} class="active"{% endif %}><a href="{% url result_notification section_slug 'accepted' %}">accepted</a> <li{% if status == 'accepted' %} class="active"{% endif %}><a href="{% url 'result_notification' section_slug 'accepted' %}">accepted</a>
<li{% if status == 'rejected' %} class="active"{% endif %}><a href="{% url result_notification section_slug 'rejected' %}">rejected</a> <li{% if status == 'rejected' %} class="active"{% endif %}><a href="{% url 'result_notification' section_slug 'rejected' %}">rejected</a>
<li{% if status == 'standby' %} class="active"{% endif %}><a href="{% url result_notification section_slug 'standby' %}">standby</a> <li{% if status == 'standby' %} class="active"{% endif %}><a href="{% url 'result_notification' section_slug 'standby' %}">standby</a>
</ul> </ul>
<h1>Result Notification</h1> <h1>Result Notification</h1>
<form method="post" action="{% url result_notification_prepare section_slug status %}"> <form method="post" action="{% url 'result_notification_prepare' section_slug status %}">
{% csrf_token %} {% csrf_token %}
@ -54,7 +57,7 @@
<td><input class="action-select" type="checkbox" name="_selected_action" value="{{ proposal.pk }}"></td> <td><input class="action-select" type="checkbox" name="_selected_action" value="{{ proposal.pk }}"></td>
<td>{{ proposal.number }}</td> <td>{{ proposal.number }}</td>
<td> <td>
<a href="{% url review_detail proposal.pk %}"> <a href="{% url 'review_detail' proposal.pk %}">
<small><strong>{{ proposal.speaker }}</strong></small> <small><strong>{{ proposal.speaker }}</strong></small>
<br /> <br />
{{ proposal.title }} {{ proposal.title }}

View file

@ -1,5 +1,8 @@
{% extends "reviews/base.html" %} {% extends "reviews/base.html" %}
{% load url from future %}
{% load i18n %} {% load i18n %}
{% block body %} {% block body %}
@ -23,7 +26,7 @@
<div class="span6"> <div class="span6">
<h2>Email</h2> <h2>Email</h2>
<form method="post" action="{% url result_notification_send section_slug status %}"> <form method="post" action="{% url 'result_notification_send' section_slug status %}">
{% csrf_token %} {% csrf_token %}
@ -42,7 +45,7 @@
{% include "reviews/_result_notification_prepare_help.html" %} {% include "reviews/_result_notification_prepare_help.html" %}
<button type="submit" class="btn btn-primary">Send {{ proposals|length }} Email{{ proposals|length|pluralize }}</button> <button type="submit" class="btn btn-primary">Send {{ proposals|length }} Email{{ proposals|length|pluralize }}</button>
<a class="btn" href="{% url result_notification section_slug status %}">Cancel</a> <a class="btn" href="{% url 'result_notification' section_slug status %}">Cancel</a>
</form> </form>
</div> </div>
</form> </form>

View file

@ -1,5 +1,8 @@
{% extends "reviews/base.html" %} {% extends "reviews/base.html" %}
{% load url from future %}
{% block body %} {% block body %}
<h1>Reviewers</h1> <h1>Reviewers</h1>
@ -30,7 +33,7 @@
{% for reviewer in reviewers %} {% for reviewer in reviewers %}
<tr> <tr>
<td> <td>
<a href="{% url review_list_user section_slug reviewer.pk %}">{{ reviewer.get_full_name }}</a> <a href="{% url 'review_list_user' section_slug reviewer.pk %}">{{ reviewer.get_full_name }}</a>
</td> </td>
<td> <td>
{{ reviewer.total_votes }} {{ reviewer.total_votes }}

View file

@ -1,5 +1,8 @@
{% extends "reviews/base.html" %} {% extends "reviews/base.html" %}
{% load url from future %}
{% block body %} {% block body %}
<h1>Review Assignments</h1> <h1>Review Assignments</h1>
@ -13,12 +16,12 @@
{% for assignment in assignments %} {% for assignment in assignments %}
<tr> <tr>
<td> <td>
<a href="{% url review_detail assignment.proposal.pk %}"> <a href="{% url 'review_detail' assignment.proposal.pk %}">
{{ assignment.proposal.title }} {{ assignment.proposal.title }}
</a> </a>
</td> </td>
<td> <td>
<form method="post" action="{% url review_assignment_opt_out assignment.pk %}"> <form method="post" action="{% url 'review_assignment_opt_out' assignment.pk %}">
{% csrf_token %} {% csrf_token %}
<input type="submit" value="Opt-out" /> <input type="submit" value="Opt-out" />
</form> </form>

View file

@ -1,5 +1,8 @@
{% extends "reviews/base.html" %} {% extends "reviews/base.html" %}
{% load url from future %}
{% load i18n %} {% load i18n %}
{% load markitup_tags %} {% load markitup_tags %}
{% load bootstrap_tags %} {% load bootstrap_tags %}
@ -126,7 +129,7 @@
</div> </div>
{% if is_manager %} {% if is_manager %}
<div class="pull-right"> <div class="pull-right">
<form class="form-inline" action="{% url review_delete review.id %}" method="POST"> <form class="form-inline" action="{% url 'review_delete' review.id %}" method="POST">
{% csrf_token %} {% csrf_token %}
<button class="btn btn-mini btn-danger" type="submit">Delete</button> <button class="btn btn-mini btn-danger" type="submit">Delete</button>
</form> </form>

View file

@ -1,5 +1,8 @@
{% extends "site_base.html" %} {% extends "site_base.html" %}
{% load url from future %}
{% load markitup_tags %} {% load markitup_tags %}
{% load uni_form_tags %} {% load uni_form_tags %}
@ -55,7 +58,7 @@
<h2>Review</h2> <h2>Review</h2>
<form method="POST" action="{% url review_review proposal.pk %}" class="uniForm"> <form method="POST" action="{% url 'review_review' proposal.pk %}" class="uniForm">
{% csrf_token %} {% csrf_token %}
<fieldset class="inlineLabels"> <fieldset class="inlineLabels">
{{ review_form|as_uni_form }} {{ review_form|as_uni_form }}
@ -67,7 +70,7 @@
<h2>Comment</h2> <h2>Comment</h2>
<form method="POST" action="{% url review_comment proposal.pk %}" class="uniForm"> <form method="POST" action="{% url 'review_comment' proposal.pk %}" class="uniForm">
{% csrf_token %} {% csrf_token %}
<fieldset> <fieldset>
{{ comment_form|as_uni_form }} {{ comment_form|as_uni_form }}

View file

@ -1,15 +1,18 @@
{% extends "reviews/base.html" %} {% extends "reviews/base.html" %}
{% load url from future %}
{% block body %} {% block body %}
<h1>Voting Status ({{ section_slug }})</h1> <h1>Voting Status ({{ section_slug }})</h1>
{% if key %} {% if key %}
<div class="breadcrumbs"> <div class="breadcrumbs">
<a href="{% url review_status section_slug "positive" %}">Positive</a> | <a href="{% url 'review_status' section_slug "positive" %}">Positive</a> |
<a href="{% url review_status section_slug "negative" %}">Negative</a> | <a href="{% url 'review_status' section_slug "negative" %}">Negative</a> |
<a href="{% url review_status section_slug "indifferent" %}">Indifferent</a> | <a href="{% url 'review_status' section_slug "indifferent" %}">Indifferent</a> |
<a href="{% url review_status section_slug "controversial" %}">Controversial</a> | <a href="{% url 'review_status' section_slug "controversial" %}">Controversial</a> |
<a href="{% url review_status section_slug "too_few" %}">Too Few</a> <a href="{% url 'review_status' section_slug "too_few" %}">Too Few</a>
</div> </div>
<div> <div>
@ -42,35 +45,35 @@
<dl> <dl>
<dt> <dt>
<a href="{% url review_status section_slug "positive" %}">Positive</a> <a href="{% url 'review_status' section_slug "positive" %}">Positive</a>
<span class="badge">{{ proposals.positive|length }}</span> <span class="badge">{{ proposals.positive|length }}</span>
</dt> </dt>
<dd> <dd>
proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and at least one +1 and no &minus;1s proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and at least one +1 and no &minus;1s
</dd> </dd>
<dt> <dt>
<a href="{% url review_status section_slug "negative" %}">Negative</a> <a href="{% url 'review_status' section_slug "negative" %}">Negative</a>
<span class="badge">{{ proposals.negative|length }}</span> <span class="badge">{{ proposals.negative|length }}</span>
</dt> </dt>
<dd> <dd>
proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and at least one &minus;1 and no +1s proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and at least one &minus;1 and no +1s
</dd> </dd>
<dt> <dt>
<a href="{% url review_status section_slug "indifferent" %}">Indifferent</a> <a href="{% url 'review_status' section_slug "indifferent" %}">Indifferent</a>
<span class="badge">{{ proposals.indifferent|length }}</span> <span class="badge">{{ proposals.indifferent|length }}</span>
</dt> </dt>
<dd> <dd>
proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and neither a +1 or a &minus;1 proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and neither a +1 or a &minus;1
</dd> </dd>
<dt> <dt>
<a href="{% url review_status section_slug "controversial" %}">Controversial</a> <a href="{% url 'review_status' section_slug "controversial" %}">Controversial</a>
<span class="badge">{{ proposals.controversial|length }}</span> <span class="badge">{{ proposals.controversial|length }}</span>
</dt> </dt>
<dd> <dd>
proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and both a +1 and &minus;1 proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and both a +1 and &minus;1
</dd> </dd>
<dt> <dt>
<a href="{% url review_status section_slug "too_few" %}">Too Few Reviews</a> <a href="{% url 'review_status' section_slug "too_few" %}">Too Few Reviews</a>
<span class="badge">{{ proposals.too_few|length }}</span> <span class="badge">{{ proposals.too_few|length }}</span>
</dt> </dt>
<dd> <dd>

View file

@ -1,3 +1,4 @@
{% load url from future %}
<table class="calendar table table-bordered"> <table class="calendar table table-bordered">
<thead> <thead>
<tr> <tr>
@ -15,9 +16,9 @@
<td class="slot slot-{{ slot.kind.label }}" colspan="{{ slot.colspan }}" rowspan="{{ slot.rowspan }}"> <td class="slot slot-{{ slot.kind.label }}" colspan="{{ slot.colspan }}" rowspan="{{ slot.rowspan }}">
{% if slot.kind.label == "talk" or slot.kind.label == "tutorial" %} {% if slot.kind.label == "talk" or slot.kind.label == "tutorial" %}
{% if not slot.content %} {% if not slot.content %}
<a class="btn btn-mini edit-slot" data-action="{% url schedule_slot_edit schedule.section.slug slot.pk %}" href="#">+</a> <a class="btn btn-mini edit-slot" data-action="{% url 'schedule_slot_edit' schedule.section.slug slot.pk %}" href="#">+</a>
{% else %} {% else %}
<span class="title"><a class="edit-slot" data-action="{% url schedule_slot_edit schedule.section.slug slot.pk %}" href="#">{{ slot.content.title }}</a></span> <span class="title"><a class="edit-slot" data-action="{% url 'schedule_slot_edit' schedule.section.slug slot.pk %}" href="#">{{ slot.content.title }}</a></span>
<span class="speaker">{{ slot.content.speaker }}</span> <span class="speaker">{{ slot.content.speaker }}</span>
{% endif %} {% endif %}
{% else %} {% else %}
@ -26,7 +27,7 @@
{% else %} {% else %}
{{ slot.kind.label }} {{ slot.kind.label }}
{% endif %} {% endif %}
&mdash; <a class="edit-slot" data-action="{% url schedule_slot_edit schedule.section.slug slot.pk %}" href="#">edit</a> &mdash; <a class="edit-slot" data-action="{% url 'schedule_slot_edit' schedule.section.slug slot.pk %}" href="#">edit</a>
{% endif %} {% endif %}
</td> </td>
{% endfor %} {% endfor %}

View file

@ -1,3 +1,4 @@
{% load url from future %}
<table class="calendar table table-bordered"> <table class="calendar table table-bordered">
<thead> <thead>
<tr> <tr>
@ -17,7 +18,7 @@
{% if not slot.content %} {% if not slot.content %}
{% else %} {% else %}
<span class="title"> <span class="title">
<a href="{% url schedule_presentation_detail slot.content.pk %}">{{ slot.content.title }}</a> <a href="{% url 'schedule_presentation_detail' slot.content.pk %}">{{ slot.content.title }}</a>
</span> </span>
<span class="speaker"> <span class="speaker">
{{ slot.content.speakers|join:", " }} {{ slot.content.speakers|join:", " }}

View file

@ -1,5 +1,6 @@
{% load url from future %}
{% load i18n bootstrap_tags %} {% load i18n bootstrap_tags %}
<form id="slotEditForm" class="modal-form" method="POST" action="{% url schedule_slot_edit slug slot.pk %}"> <form id="slotEditForm" class="modal-form" method="POST" action="{% url 'schedule_slot_edit' slug slot.pk %}">
<div class="modal-header"> <div class="modal-header">
<a class="close" data-dismiss="modal">&times;</a> <a class="close" data-dismiss="modal">&times;</a>
<h3>{% trans "Edit Slot" %}</h3> <h3>{% trans "Edit Slot" %}</h3>

View file

@ -1,5 +1,8 @@
{% extends "site_base.html" %} {% extends "site_base.html" %}
{% load url from future %}
{% load sitetree %} {% load sitetree %}
{% block head_title %}Presentation: {{ presentation.title }}{% endblock %} {% block head_title %}Presentation: {{ presentation.title }}{% endblock %}
@ -17,7 +20,7 @@
<h4> <h4>
{% for speaker in presentation.speakers %} {% for speaker in presentation.speakers %}
<a href="{% url speaker_profile speaker.pk %}">{{ speaker }}</a>{% if not forloop.last %}, {% endif %}{% endfor %} <a href="{% url 'speaker_profile' speaker.pk %}">{{ speaker }}</a>{% if not forloop.last %}, {% endif %}{% endfor %}
</h4> </h4>
<dl class="dl-horizontal"> <dl class="dl-horizontal">

View file

@ -1,5 +1,8 @@
{% extends "site_base.html" %} {% extends "site_base.html" %}
{% load url from future %}
{% load i18n %} {% load i18n %}
{% load cache %} {% load cache %}
{% load sitetree %} {% load sitetree %}
@ -33,7 +36,7 @@
{% for presentation in presentations %} {% for presentation in presentations %}
<div class="row"> <div class="row">
<div class="span8 presentation well"> <div class="span8 presentation well">
<h3><a href="{% url schedule_presentation_detail presentation.pk %}">{{ presentation.title }}</a></h3> <h3><a href="{% url 'schedule_presentation_detail' presentation.pk %}">{{ presentation.title }}</a></h3>
<h4>{{ presentation.speakers|join:", " }}</h4> <h4>{{ presentation.speakers|join:", " }}</h4>
{{ presentation.description }} {{ presentation.description }}
{% if presentation.slot %} {% if presentation.slot %}

View file

@ -1,5 +1,8 @@
{% extends "speakers/base.html" %} {% extends "speakers/base.html" %}
{% load url from future %}
{% load bootstrap_tags %} {% load bootstrap_tags %}
{% load i18n %} {% load i18n %}
{% load boxes_tags %} {% load boxes_tags %}
@ -17,7 +20,7 @@
</fieldset> </fieldset>
<div class="form-actions"> <div class="form-actions">
<input class="btn btn-primary" type="submit" value="Save" /> <input class="btn btn-primary" type="submit" value="Save" />
<a class="btn" href="{% url dashboard %}">Cancel</a> <a class="btn" href="{% url 'dashboard' %}">Cancel</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View file

@ -1,5 +1,8 @@
{% extends "speakers/base.html" %} {% extends "speakers/base.html" %}
{% load url from future %}
{% load bootstrap_tags %} {% load bootstrap_tags %}
{% load i18n %} {% load i18n %}
{% load boxes_tags %} {% load boxes_tags %}
@ -17,7 +20,7 @@
</fieldset> </fieldset>
<div class="form-actions"> <div class="form-actions">
<input class="btn btn-primary" type="submit" value="Save" /> <input class="btn btn-primary" type="submit" value="Save" />
<a class="btn" href="{% url dashboard %}">Cancel</a> <a class="btn" href="{% url 'dashboard' %}">Cancel</a>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View file

@ -1,5 +1,8 @@
{% extends "site_base.html" %} {% extends "site_base.html" %}
{% load url from future %}
{% load i18n %} {% load i18n %}
{% load thumbnail %} {% load thumbnail %}
@ -17,14 +20,14 @@
</div> </div>
<div class="span6"> <div class="span6">
{% if speaker.user == request.user or request.user.is_staff %} {% if speaker.user == request.user or request.user.is_staff %}
<a class="btn pull-right" href="{% url speaker_edit speaker.pk %}">Edit</a> <a class="btn pull-right" href="{% url 'speaker_edit' speaker.pk %}">Edit</a>
{% endif %} {% endif %}
<h1>{{ speaker.name }}</h1> <h1>{{ speaker.name }}</h1>
<div class="bio">{{ speaker.biography|safe }}</div> <div class="bio">{{ speaker.biography|safe }}</div>
<h2>Presentations</h2> <h2>Presentations</h2>
{% for presentation in presentations %} {% for presentation in presentations %}
<h3><a href="{% url schedule_presentation_detail presentation.pk %}">{{ presentation.title }}</a></h3> <h3><a href="{% url 'schedule_presentation_detail' presentation.pk %}">{{ presentation.title }}</a></h3>
{% if presentation.slot %} {% if presentation.slot %}
<p> <p>
{{ presentation.slot.day.date|date:"l" }} {{ presentation.slot.day.date|date:"l" }}

View file

@ -1,5 +1,8 @@
{% extends "site_base.html" %} {% extends "site_base.html" %}
{% load url from future %}
{% load bootstrap_tags %} {% load bootstrap_tags %}
{% load i18n %} {% load i18n %}
{% load boxes_tags %} {% load boxes_tags %}
@ -9,13 +12,13 @@
{% block body_class %}sponsorships{% endblock %} {% block body_class %}sponsorships{% endblock %}
{% block body %} {% block body %}
<form method="POST" action="{% url sponsor_add %}" class="form-horizontal"> <form method="POST" action="{% url 'sponsor_add' %}" class="form-horizontal">
{% csrf_token %} {% csrf_token %}
<legend>{% trans "Add a Sponsor" %}</legend> <legend>{% trans "Add a Sponsor" %}</legend>
{{ form|as_bootstrap }} {{ form|as_bootstrap }}
<div class="form-actions"> <div class="form-actions">
<input class="btn btn-primary" type="submit" value="Add" /> <input class="btn btn-primary" type="submit" value="Add" />
<a class="btn" href="{% url dashboard %}">Cancel</a> <a class="btn" href="{% url 'dashboard' %}">Cancel</a>
</div> </div>
</form> </form>

View file

@ -1,5 +1,8 @@
{% extends "site_base.html" %} {% extends "site_base.html" %}
{% load url from future %}
{% load bootstrap_tags %} {% load bootstrap_tags %}
{% load i18n %} {% load i18n %}
{% load boxes_tags %} {% load boxes_tags %}
@ -18,9 +21,9 @@
{{ form|as_bootstrap }} {{ form|as_bootstrap }}
<div class="form-actions"> <div class="form-actions">
<input class="btn btn-primary" type="submit" value="Apply" /> <input class="btn btn-primary" type="submit" value="Apply" />
<a class="btn" href="{% url dashboard %}">Cancel</a> <a class="btn" href="{% url 'dashboard' %}">Cancel</a>
<p class="help-block"> <p class="help-block">
<small>By submitting this sponsor application you are agreeing to the <a href="{% url cms_page "sponsor/terms/" %}" target="_blank">terms and conditions</a>.</small> <small>By submitting this sponsor application you are agreeing to the <a href="{% url 'cms_page' "sponsor/terms/" %}" target="_blank">terms and conditions</a>.</small>
</p> </p>
</div> </div>
</form> </form>

View file

@ -1,5 +1,8 @@
{% extends "site_base.html" %} {% extends "site_base.html" %}
{% load url from future %}
{% load bootstrap_tags %} {% load bootstrap_tags %}
{% load i18n %} {% load i18n %}
@ -33,7 +36,7 @@
<div class="form-actions"> <div class="form-actions">
<input class="btn btn-primary" type="submit" value="Save" /> <input class="btn btn-primary" type="submit" value="Save" />
<a class="btn" href="{% url dashboard %}">Cancel</a> <a class="btn" href="{% url 'dashboard' %}">Cancel</a>
</div> </div>
</form> </form>

View file

@ -1,5 +1,8 @@
{% extends "site_base.html" %} {% extends "site_base.html" %}
{% load url from future %}
{% load sponsorship_tags %} {% load sponsorship_tags %}
{% load thumbnail %} {% load thumbnail %}
{% load i18n %} {% load i18n %}
@ -12,7 +15,7 @@
<div class="row"> <div class="row">
<div class="span12"> <div class="span12">
<h1>{% trans "About Our Sponsors" %}</h1> <h1>{% trans "About Our Sponsors" %}</h1>
<a href="{% url cms_page "sponsors/prospectus/" %}" class="btn">Learn how to become a sponsor <span class="arrow"></span></a> <a href="{% url 'cms_page' "sponsors/prospectus/" %}" class="btn">Learn how to become a sponsor <span class="arrow"></span></a>
{% sponsor_levels as levels %} {% sponsor_levels as levels %}
{% for level in levels %} {% for level in levels %}

View file

@ -1,5 +1,8 @@
{% extends "site_base.html" %} {% extends "site_base.html" %}
{% load url from future %}
{% load bootstrap_tags %} {% load bootstrap_tags %}
{% block head_title %}{{ team.name }}{% endblock %} {% block head_title %}{{ team.name }}{% endblock %}
@ -9,21 +12,21 @@
<div class="span12"> <div class="span12">
<div class="pull-right"> <div class="pull-right">
{% if can_join %} {% if can_join %}
<form method="post" action="{% url team_join team.slug %}"> <form method="post" action="{% url 'team_join' team.slug %}">
{% csrf_token %} {% csrf_token %}
<input type="submit" class="btn btn-primary" value="join"> <input type="submit" class="btn btn-primary" value="join">
</form> </form>
{% endif %} {% endif %}
{% if can_leave %} {% if can_leave %}
<form method="post" action="{% url team_leave team.slug %}"> <form method="post" action="{% url 'team_leave' team.slug %}">
{% csrf_token %} {% csrf_token %}
<input type="submit" class="btn" value="leave"> <input type="submit" class="btn" value="leave">
</form> </form>
{% endif %} {% endif %}
{% if can_apply %} {% if can_apply %}
<form method="post" action="{% url team_apply team.slug %}"> <form method="post" action="{% url 'team_apply' team.slug %}">
{% csrf_token %} {% csrf_token %}
<input type="submit" class="btn btn-primary" value="apply"> <input type="submit" class="btn btn-primary" value="apply">
</form> </form>
@ -44,7 +47,7 @@
<tr> <tr>
<td>{{ membership.user.email }}{% if user == membership.user %} <span class="label label-info">you</span>{% endif %}</td> <td>{{ membership.user.email }}{% if user == membership.user %} <span class="label label-info">you</span>{% endif %}</td>
<td> <td>
<form style="margin: 0;" method="post" action="{% url team_demote membership.pk %}">{% csrf_token %}<button type="submit" class="btn btn-mini">demote</button></form> <form style="margin: 0;" method="post" action="{% url 'team_demote' membership.pk %}">{% csrf_token %}<button type="submit" class="btn btn-mini">demote</button></form>
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
@ -57,7 +60,7 @@
<tr> <tr>
<td>{{ membership.user.email }}{% if user == membership.user %} <span class="label label-info">you</span>{% endif %}</td> <td>{{ membership.user.email }}{% if user == membership.user %} <span class="label label-info">you</span>{% endif %}</td>
<td> <td>
<form style="margin: 0;" method="post" action="{% url team_promote membership.pk %}">{% csrf_token %}<button type="submit" class="btn btn-mini">promote</button></form> <form style="margin: 0;" method="post" action="{% url 'team_promote' membership.pk %}">{% csrf_token %}<button type="submit" class="btn btn-mini">promote</button></form>
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
@ -70,8 +73,8 @@
<tr> <tr>
<td>{{ membership.user.email }}</td> <td>{{ membership.user.email }}</td>
<td> <td>
<form style="margin: 0; float: left;" method="post" action="{% url team_accept membership.pk %}">{% csrf_token %}<button type="submit" class="btn btn-mini">accept</button></form> <form style="margin: 0; float: left;" method="post" action="{% url 'team_accept' membership.pk %}">{% csrf_token %}<button type="submit" class="btn btn-mini">accept</button></form>
<form style="margin: 0; float: left;" method="post" action="{% url team_reject membership.pk %}">{% csrf_token %}<button type="submit" class="btn btn-mini">reject</button></form> <form style="margin: 0; float: left;" method="post" action="{% url 'team_reject' membership.pk %}">{% csrf_token %}<button type="submit" class="btn btn-mini">reject</button></form>
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}