Merge pull request #4 from pyohio/future-django
Changes for Django 1.5+
This commit is contained in:
		
						commit
						f369e1d8ad
					
				
					 52 changed files with 238 additions and 140 deletions
				
			
		|  | @ -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"), | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -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"), | ||||||
|  |  | ||||||
|  | @ -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", | ||||||
|  |  | ||||||
|  | @ -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: | ||||||
|  |  | ||||||
|  | @ -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", | ||||||
|  |  | ||||||
|  | @ -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) | ||||||
|  |  | ||||||
|  | @ -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"), | ||||||
|  |  | ||||||
|  | @ -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", | ||||||
|  |  | ||||||
|  | @ -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: | ||||||
|  |  | ||||||
|  | @ -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", | ||||||
|  |  | ||||||
|  | @ -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"), | ||||||
|  |  | ||||||
|  | @ -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", | ||||||
|  |  | ||||||
|  | @ -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"> | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
|  | @ -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> | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
|  |  | ||||||
|  | @ -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 %} | ||||||
|  |  | ||||||
|  | @ -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 %} | ||||||
|      |      | ||||||
|  |  | ||||||
|  | @ -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 %} | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
|      |      | ||||||
|  |  | ||||||
|  | @ -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 %} | ||||||
|  |  | ||||||
|  | @ -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 }} | ||||||
|  |  | ||||||
|  | @ -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 %} | ||||||
|  |  | ||||||
|  | @ -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 }} | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
|  |  | ||||||
|  | @ -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 }} | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
|  |  | ||||||
|  | @ -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 }} | ||||||
|  |  | ||||||
|  | @ -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 −1s |                 proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and at least one +1 and no −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 −1 and no +1s |                 proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and at least one −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 −1 |                 proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and neither a +1 or a −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 −1 |                 proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and both a +1 and −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> | ||||||
|  |  | ||||||
|  | @ -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 %} | ||||||
|                             — <a class="edit-slot" data-action="{% url schedule_slot_edit schedule.section.slug slot.pk %}" href="#">edit</a> |                             — <a class="edit-slot" data-action="{% url 'schedule_slot_edit' schedule.section.slug slot.pk %}" href="#">edit</a> | ||||||
|                         {% endif %} |                         {% endif %} | ||||||
|                     </td> |                     </td> | ||||||
|                 {% endfor %} |                 {% endfor %} | ||||||
|  |  | ||||||
|  | @ -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:", " }} | ||||||
|  |  | ||||||
|  | @ -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">×</a> |         <a class="close" data-dismiss="modal">×</a> | ||||||
|         <h3>{% trans "Edit Slot" %}</h3> |         <h3>{% trans "Edit Slot" %}</h3> | ||||||
|  |  | ||||||
|  | @ -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"> | ||||||
|  |  | ||||||
|  | @ -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 %} | ||||||
|  |  | ||||||
|  | @ -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 %} | ||||||
|  |  | ||||||
|  | @ -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 %} | ||||||
|  |  | ||||||
|  | @ -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" }} | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
|  |  | ||||||
|  | @ -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> | ||||||
|  |  | ||||||
|  | @ -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 %} | ||||||
|  |  | ||||||
|  | @ -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 %} | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 David Ray
						David Ray