Changeset - f369e1d8adc6
[Not reviewed]
Merge
! ! !
David Ray - 10 years ago 2014-01-16 13:17:42
dray@caktusgroup.com
Merge pull request #4 from pyohio/future-django

Changes for Django 1.5+
52 files changed with 238 insertions and 140 deletions:
0 comments (0 inline, 0 general)
symposion/boxes/urls.py
Show inline comments
 
from django.conf.urls.defaults import url, patterns
 
from django.conf.urls import patterns, url
 

	
 

	
 
urlpatterns = patterns("symposion.boxes.views",
 
    url(r"^([-\w]+)/edit/$", "box_edit", name="box_edit"),
 
)
...
 
\ No newline at end of file
 
)
symposion/cms/urls.py
Show inline comments
 
from django.conf.urls.defaults import url, patterns
 
from django.conf.urls import url, patterns
 

	
 

	
 
PAGE_RE = r"(([\w-]{1,})(/[\w-]{1,})*)/"
 

	
 

	
 
urlpatterns = patterns("symposion.cms.views",
 
    url(r"^files/$", "file_index", name="file_index"),
 
    url(r"^files/create/$", "file_create", name="file_create"),
 
    url(r"^files/(\d+)/([^/]+)$", "file_download", name="file_download"),
 
    url(r"^files/(\d+)/delete/$", "file_delete", name="file_delete"),
 
    url(r"^(?P<path>%s)_edit/$" % PAGE_RE, "page_edit", name="cms_page_edit"),
symposion/conference/urls.py
Show inline comments
 
from django.conf.urls.defaults import patterns, url
 
from django.conf.urls import patterns, url
 

	
 

	
 
urlpatterns = patterns("symposion.conference.views",
 
    url(r"^users/$", "user_list", name="user_list"),
 
)
symposion/proposals/actions.py
Show inline comments
...
 
@@ -20,13 +20,13 @@ def export_as_csv_action(
 
        if fields:
 
            fieldset = set(fields)
 
            field_names = fieldset
 
        elif exclude:
 
            excludeset = set(exclude)
 
            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(".", "_")
 
        writer = csv.writer(response)
 
        if header:
 
            writer.writerow(list(field_names))
 
        for obj in queryset:
 
            writer.writerow([unicode(getattr(obj, field)).encode("utf-8", "replace") for field in field_names])
symposion/proposals/urls.py
Show inline comments
 
from django.conf.urls.defaults import patterns, url
 
from django.conf.urls import patterns, url
 

	
 

	
 
urlpatterns = patterns("symposion.proposals.views",
 
    url(r"^submit/$", "proposal_submit", name="proposal_submit"),
 
    url(r"^submit/([\w\-]+)/$", "proposal_submit_kind", name="proposal_submit_kind"),
 
    url(r"^(\d+)/$", "proposal_detail", name="proposal_detail"),
symposion/proposals/views.py
Show inline comments
 
import hashlib
 
import random
 
import sys
 

	
 
from django.conf import settings
 
from django.core.exceptions import ObjectDoesNotExist
 
from django.db.models import Q
 
from django.http import Http404, HttpResponse, HttpResponseForbidden
 
from django.shortcuts import render, redirect, get_object_or_404
 
from django.utils.hashcompat import sha_constructor
 
from django.views import static
 

	
 
from django.contrib import messages
 
from django.contrib.auth.models import User
 
from django.contrib.auth.decorators import login_required
 

	
...
 
@@ -34,40 +34,40 @@ def proposal_submit(request):
 
        return redirect("home")  # @@@ unauth'd speaker info page?
 
    else:
 
        try:
 
            request.user.speaker_profile
 
        except ObjectDoesNotExist:
 
            return redirect("dashboard")
 
    
 

 
    kinds = []
 
    for proposal_section in ProposalSection.available():
 
        for kind in proposal_section.section.proposal_kinds.all():
 
            kinds.append(kind)
 
    
 

 
    return render(request, "proposals/proposal_submit.html", {
 
        "kinds": kinds,
 
    })
 

	
 

	
 
def proposal_submit_kind(request, kind_slug):
 
    
 

 
    kind = get_object_or_404(ProposalKind, slug=kind_slug)
 
    
 

 
    if not request.user.is_authenticated():
 
        return redirect("home")  # @@@ unauth'd speaker info page?
 
    else:
 
        try:
 
            speaker_profile = request.user.speaker_profile
 
        except ObjectDoesNotExist:
 
            return redirect("dashboard")
 
    
 

 
    if not kind.section.proposalsection.is_available():
 
        return redirect("proposal_submit")
 
    
 

 
    form_class = get_form(settings.PROPOSAL_FORMS[kind_slug])
 
    
 

 
    if request.method == "POST":
 
        form = form_class(request.POST)
 
        if form.is_valid():
 
            proposal = form.save(commit=False)
 
            proposal.kind = kind
 
            proposal.speaker = speaker_profile
...
 
@@ -76,45 +76,45 @@ def proposal_submit_kind(request, kind_slug):
 
            messages.success(request, "Proposal submitted.")
 
            if "add-speakers" in request.POST:
 
                return redirect("proposal_speaker_manage", proposal.pk)
 
            return redirect("dashboard")
 
    else:
 
        form = form_class()
 
    
 

 
    return render(request, "proposals/proposal_submit_kind.html", {
 
        "kind": kind,
 
        "form": form,
 
    })
 

	
 

	
 
@login_required
 
def proposal_speaker_manage(request, pk):
 
    queryset = ProposalBase.objects.select_related("speaker")
 
    proposal = get_object_or_404(queryset, pk=pk)
 
    proposal = ProposalBase.objects.get_subclass(pk=proposal.pk)
 
    
 

 
    if proposal.speaker != request.user.speaker_profile:
 
        raise Http404()
 
    
 

 
    if request.method == "POST":
 
        add_speaker_form = AddSpeakerForm(request.POST, proposal=proposal)
 
        if add_speaker_form.is_valid():
 
            message_ctx = {
 
                "proposal": proposal,
 
            }
 
            
 

 
            def create_speaker_token(email_address):
 
                # create token and look for an existing speaker to prevent
 
                # duplicate tokens and confusing the pending speaker
 
                try:
 
                    pending = Speaker.objects.get(
 
                        Q(user=None, invite_email=email_address)
 
                    )
 
                except Speaker.DoesNotExist:
 
                    salt = sha_constructor(str(random.random())).hexdigest()[:5]
 
                    token = sha_constructor(salt + email_address).hexdigest()
 
                    salt = hashlib.sha1(str(random.random())).hexdigest()[:5]
 
                    token = hashlib.sha1(salt + email_address).hexdigest()
 
                    pending = Speaker.objects.create(
 
                        invite_email=email_address,
 
                        invite_token=token,
 
                    )
 
                else:
 
                    token = pending.invite_token
...
 
@@ -170,20 +170,20 @@ def proposal_edit(request, pk):
 
    queryset = ProposalBase.objects.select_related("speaker")
 
    proposal = get_object_or_404(queryset, pk=pk)
 
    proposal = ProposalBase.objects.get_subclass(pk=proposal.pk)
 

	
 
    if request.user != proposal.speaker.user:
 
        raise Http404()
 
    
 

 
    if not proposal.can_edit():
 
        ctx = {
 
            "title": "Proposal editing closed",
 
            "body": "Proposal editing is closed for this session type."
 
        }
 
        return render(request, "proposals/proposal_error.html", ctx)
 
    
 

 
    form_class = get_form(settings.PROPOSAL_FORMS[proposal.kind.slug])
 

	
 
    if request.method == "POST":
 
        form = form_class(request.POST, instance=proposal)
 
        if form.is_valid():
 
            form.save()
...
 
@@ -203,88 +203,88 @@ def proposal_edit(request, pk):
 
                        context=ctx
 
                    )
 
            messages.success(request, "Proposal updated.")
 
            return redirect("proposal_detail", proposal.pk)
 
    else:
 
        form = form_class(instance=proposal)
 
    
 

 
    return render(request, "proposals/proposal_edit.html", {
 
        "proposal": proposal,
 
        "form": form,
 
    })
 

	
 

	
 
@login_required
 
def proposal_detail(request, pk):
 
    queryset = ProposalBase.objects.select_related("speaker", "speaker__user")
 
    proposal = get_object_or_404(queryset, pk=pk)
 
    proposal = ProposalBase.objects.get_subclass(pk=proposal.pk)
 
    
 

 
    if request.user not in [p.user for p in proposal.speakers()]:
 
        raise Http404()
 
    
 

 
    if "symposion.reviews" in settings.INSTALLED_APPS:
 
        from symposion.reviews.forms import SpeakerCommentForm
 
        message_form = SpeakerCommentForm()
 
        if request.method == "POST":
 
            message_form = SpeakerCommentForm(request.POST)
 
            if message_form.is_valid():
 
                
 

 
                message = message_form.save(commit=False)
 
                message.user = request.user
 
                message.proposal = proposal
 
                message.save()
 
                
 

 
                ProposalMessage = SpeakerCommentForm.Meta.model
 
                reviewers = User.objects.filter(
 
                    id__in=ProposalMessage.objects.filter(
 
                        proposal=proposal
 
                    ).exclude(
 
                        user=request.user
 
                    ).distinct().values_list("user", flat=True)
 
                )
 
                
 

 
                for reviewer in reviewers:
 
                    ctx = {
 
                        "proposal": proposal,
 
                        "message": message,
 
                        "reviewer": True,
 
                    }
 
                    send_email(
 
                        [reviewer.email], "proposal_new_message",
 
                        context=ctx
 
                    )
 
                
 

 
                return redirect(request.path)
 
        else:
 
            message_form = SpeakerCommentForm()
 
    else:
 
        message_form = None
 
    
 

 
    return render(request, "proposals/proposal_detail.html", {
 
        "proposal": proposal,
 
        "message_form": message_form
 
    })
 

	
 

	
 
@login_required
 
def proposal_cancel(request, pk):
 
    queryset = ProposalBase.objects.select_related("speaker")
 
    proposal = get_object_or_404(queryset, pk=pk)
 
    proposal = ProposalBase.objects.get_subclass(pk=proposal.pk)
 
    
 

 
    if proposal.speaker.user != request.user:
 
        return HttpResponseForbidden()
 

	
 
    if request.method == "POST":
 
        proposal.cancelled = True
 
        proposal.save()
 
        # @@@ fire off email to submitter and other speakers
 
        messages.success(request, "%s has been cancelled" % proposal.title)
 
        return redirect("dashboard")
 
    
 

 
    return render(request, "proposals/proposal_cancel.html", {
 
        "proposal": proposal,
 
    })
 

	
 

	
 
@login_required
...
 
@@ -336,27 +336,27 @@ def proposal_pending_decline(request, pk):
 

	
 
@login_required
 
def document_create(request, proposal_pk):
 
    queryset = ProposalBase.objects.select_related("speaker")
 
    proposal = get_object_or_404(queryset, pk=proposal_pk)
 
    proposal = ProposalBase.objects.get_subclass(pk=proposal.pk)
 
    
 

 
    if proposal.cancelled:
 
        return HttpResponseForbidden()
 
    
 

 
    if request.method == "POST":
 
        form = SupportingDocumentCreateForm(request.POST, request.FILES)
 
        if form.is_valid():
 
            document = form.save(commit=False)
 
            document.proposal = proposal
 
            document.uploaded_by = request.user
 
            document.save()
 
            return redirect("proposal_detail", proposal.pk)
 
    else:
 
        form = SupportingDocumentCreateForm()
 
        
 

 
    return render(request, "proposals/document_create.html", {
 
        "proposal": proposal,
 
        "form": form,
 
    })
 

	
 

	
...
 
@@ -375,11 +375,11 @@ def document_download(request, pk, *args):
 

	
 

	
 
@login_required
 
def document_delete(request, pk):
 
    document = get_object_or_404(SupportingDocument, pk=pk, uploaded_by=request.user)
 
    proposal_pk = document.proposal.pk
 
    
 

 
    if request.method == "POST":
 
        document.delete()
 
    
 

 
    return redirect("proposal_detail", proposal_pk)
symposion/reviews/urls.py
Show inline comments
 
from django.conf.urls.defaults import patterns, url
 
from django.conf.urls import patterns, url
 

	
 

	
 
urlpatterns = patterns("symposion.reviews.views",
 
    url(r"^section/(?P<section_slug>[\w\-]+)/all/$", "review_section", {"reviewed": "all"}, name="review_section"),
 
    url(r"^section/(?P<section_slug>[\w\-]+)/reviewed/$", "review_section", {"reviewed": "reviewed"}, name="user_reviewed"),
 
    url(r"^section/(?P<section_slug>[\w\-]+)/not_reviewed/$", "review_section", {"reviewed": "not_reviewed"}, name="user_not_reviewed"),
...
 
@@ -11,13 +11,13 @@ urlpatterns = patterns("symposion.reviews.views",
 
    url(r"^section/(?P<section_slug>[\w\-]+)/list/(?P<user_pk>\d+)/$", "review_list", name="review_list_user"),
 
    url(r"^section/(?P<section_slug>[\w\-]+)/admin/$", "review_admin", name="review_admin"),
 
    url(r"^section/(?P<section_slug>[\w\-]+)/admin/accept/$", "review_bulk_accept", name="review_bulk_accept"),
 
    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+)/send/$", "result_notification_send", name="result_notification_send"),
 
    
 

 
    url(r"^review/(?P<pk>\d+)/$", "review_detail", name="review_detail"),
 
    
 

 
    url(r"^(?P<pk>\d+)/delete/$", "review_delete", name="review_delete"),
 
    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"),
 
)
symposion/schedule/urls.py
Show inline comments
 
from django.conf.urls.defaults import url, patterns
 
from django.conf.urls import url, patterns
 

	
 

	
 
urlpatterns = patterns("symposion.schedule.views",
 
    url(r"^$", "schedule_conference", name="schedule_conference"),
 
    url(r"^edit/$", "schedule_edit", name="schedule_edit"),
 
    url(r"^list/$", "schedule_list", name="schedule_list"),
symposion/schedule/views.py
Show inline comments
...
 
@@ -75,13 +75,13 @@ def schedule_list(request, slug=None):
 
def schedule_list_csv(request, slug=None):
 
    schedule = fetch_schedule(slug)
 

	
 
    presentations = Presentation.objects.filter(section=schedule.section)
 
    presentations = presentations.exclude(cancelled=True).order_by("id")
 

	
 
    response = HttpResponse(mimetype="text/csv")
 
    response = HttpResponse(content_type="text/csv")
 
    if slug:
 
        file_slug = slug
 
    else:
 
        file_slug = "presentations"
 
    response["Content-Disposition"] = 'attachment; filename="%s.csv"' % file_slug
 

	
symposion/speakers/urls.py
Show inline comments
 
from django.conf.urls.defaults import patterns, url
 
from django.conf.urls import patterns, url
 

	
 

	
 
urlpatterns = patterns("symposion.speakers.views",
 
    url(r"^create/$", "speaker_create", name="speaker_create"),
 
    url(r"^create/(\w+)/$", "speaker_create_token", name="speaker_create_token"),
 
    url(r"^edit/(?:(?P<pk>\d+)/)?$", "speaker_edit", name="speaker_edit"),
symposion/sponsorship/urls.py
Show inline comments
 
from django.conf.urls.defaults import patterns, url
 
from django.views.generic.simple import direct_to_template
 
from django.conf.urls import patterns, url
 
from django.views.generic import TemplateView
 

	
 

	
 
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"^add/$", "sponsor_add", name="sponsor_add"),
 
    url(r"^(?P<pk>\d+)/$", "sponsor_detail", name="sponsor_detail"),
 
)
symposion/teams/urls.py
Show inline comments
 
from django.conf.urls.defaults import patterns, url
 
from django.conf.urls import patterns, url
 

	
 

	
 
urlpatterns = patterns("symposion.teams.views",
 
    # team specific
 
    url(r"^(?P<slug>[\w\-]+)/$", "team_detail", name="team_detail"),
 
    url(r"^(?P<slug>[\w\-]+)/join/$", "team_join", name="team_join"),
symposion/templates/cms/file_create.html
Show inline comments
 
{% extends "site_base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load bootstrap_tags %}
 

	
 
{% block head_title %}Upload File{% endblock %}
 

	
 
{% block body_outer %}
 
    <div class="row">
 
        <div class="span12">
 
            <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 %}
 
                {{ form|as_bootstrap }}
 
                <div class="form-actions">
 
                    <button class="btn btn-primary" type="submit">Upload</button>
 
                </div>
 
            </form>
symposion/templates/cms/file_index.html
Show inline comments
 
{% extends "site_base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% block head_title %}Uploaded Files{% endblock %}
 

	
 
{% block body_outer %}
 
    <div class="row">
 
        <div class="span12">
 
            <h1>Files</h1>
 
                    
 
            {% for file in files %}
 
                <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 %}
 
                        <button type="submit" class="btn btn-error"><i class="icon-trash"></i> delete</button>
 
                    </form>
 
                    <h3><a href="{{ file.download_url }}">{{ file.file }}</a></h3>
 
                    <span style="font-style:italic; color: #999;">Uploaded {{ file.created|date:"N j, Y" }}</span>
 
                </div>
 
            {% empty %}
 
                <p>No uploaded files.</p>
 
            {% endfor %}
 
            <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>
 
                    Add File
 
                </a>
 
            </div>
 
        </div>
 
    </div>
symposion/templates/cms/page_detail.html
Show inline comments
 
{% extends "site_base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load sitetree %}
 
{% load i18n %}
 

	
 
{% block body_class %}cms-page{% endblock %}
 

	
 
{% block head_title %}{{ page.title }}{% endblock %}
 

	
 
{% block breadcrumbs %}{% sitetree_breadcrumbs from "main" %}{% endblock %}
 

	
 
{% block body %}
 
    {% if editable %}
 
        <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>
 
    {% endif %}
 
    <h2>{{ page.title }}</h2>
 
    
 
    <div class="page-content">
 
        {{ page.body }}
symposion/templates/conference/user_list.html
Show inline comments
 
{% extends "site_base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load i18n %}
 
{% load sitetree %}
 

	
 
{% block head_title %}User List{% endblock %}
 

	
 
{% block extra_style %}
...
 
@@ -65,15 +68,15 @@
 
                    {% for user in users %}
 
                        <tr>
 
                            <td>{{ user.email }}</td>
 
                            <td>{{ user.get_full_name }}</td>
 
                            <td>
 
                                {% 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 %}
 
                                    <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 %}
 
                            </td>
 
                        </tr>
 
                    {% endfor %}
 
                </tbody>
 
            </table>
symposion/templates/dashboard.html
Show inline comments
 
{% extends "site_base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load i18n %}
 
{% load proposal_tags %}
 
{% load review_tags %}
 
{% load teams_tags %}
 

	
 
{% block head_title %}Dashboard{% endblock %}
...
 
@@ -13,29 +16,29 @@
 
    <div class="dashboard-panel">
 
        <div class="dashboard-panel-header">
 
            <i class="icon-bullhorn"></i>
 
            <h3>{% trans "Speaking" %}</h3>
 
            <div class="pull-right header-actions">
 
                {% 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
 
                    </a>
 
                {% else %}
 
                    <a href="{% url speaker_edit %}" class="btn">
 
                    <a href="{% url 'speaker_edit' %}" class="btn">
 
                        <i class="icon-pencil"></i> Edit your speaker profile
 
                    </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
 
                    </a>
 
                {% endif %}
 
            </div>
 
        </div>
 
        
 
        <div class="dashboard-panel-content">
 
            {% 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 %}
 
                <h4>Your Proposals</h4>
 
                {% if user.speaker_profile.proposals.exists %}
 
                    <table class="table">
 
                        <tr>
 
                            <th>Title</th>
...
 
@@ -89,39 +92,39 @@
 
    <div class="dashboard-panel">
 
        <div class="dashboard-panel-header">
 
            <i class="icon-briefcase"></i>
 
            <h3>{% trans "Sponsorship" %}</h3>
 
            <div class="pull-right header-actions">
 
                {% 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
 
                    </a>
 
                {% endif %}
 
            </div>
 
        </div>
 
        
 
        <div class="dashboard-panel-content">
 
            {% 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 %}
 
                <h4>Your Sponsorship</h4>
 
                <ul>
 
                    {% for sponsorship in user.sponsorships.all %}
 
                        <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 }})
 
                            {% if not sponsorship.active %}
 
                                <span class="label label-warning">awaiting approval</span>
 
                            {% endif %}
 
                        </li>
 
                    {% endfor %}
 
                </ul>
 
            {% endif %}
 
            {% if user.is_staff %}
 
                <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.
 
                </p>
 
            {% endif %}
 
        </div>
 
    </div>
 
        
...
 
@@ -135,15 +138,15 @@
 
            <div class="dashboard-panel-content">
 
                <h4>Reviews by Section</h4>
 
                
 
                <ul>
 
                    {% for section in review_sections %}
 
                        <h5>{{ section }}</h5>
 
                            <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_not_reviewed section.section.slug %}">Not Reviewed by you</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_not_reviewed' section.section.slug %}">Not Reviewed by you</a></li>
 
                    {% endfor %}
 
                </ul>
 
                
 
                {% comment %}
 
                <h4>My Assignments</h4>
 
                <table class="table">
...
 
@@ -180,13 +183,13 @@
 
                {% if user.memberships.exists %}
 
                    <h4>Your Teams</h4>
 
                    <table class="table table-striped">
 
                        {% for membership in user.memberships.all %}
 
                            <tr>
 
                                <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 %}
 
                                </td>
 
                                <td>
 
                                    <span class="label{% if membership.state == 'invited' %} label-info{% endif %}">{{ membership.get_state_display }}</span>
 
                                </td>
 
                                <td>
...
 
@@ -201,13 +204,13 @@
 
                {% if available_teams %}
 
                    <h4>Available Teams</h4>
 
                    <table class="table table-striped">
 
                        {% for team in available_teams %}
 
                            <tr>
 
                                <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 %}
 
                                </td>
 
                                <td>
 
                                    <span class="label">{{ team.get_access_display }}</span>
 
                                </td>
 
                            </tr>
symposion/templates/emails/proposal_new_message/message.html
Show inline comments
 
{% load url from future %}
 
{% load account_tags %}
 
<p>
 
    <b>{% user_display message.user %}</b> has added a message on <b>{{ proposal.title }}</b>.
 
</p>
 
<blockquote>
 
    {{ message.message|safe }}
 
</blockquote>
 
<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>
 
</p>
...
 
\ No newline at end of file
symposion/templates/emails/proposal_updated/message.html
Show inline comments
 
{% load url from future %}
 
{% load account_tags %}
 
<p>
 
    <b>{% user_display user %}</b> has made changes to <b>{{ proposal.title }}</b> which you have previously reviewed or commented on.
 
</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>
 
</p>
symposion/templates/emails/speaker_addition/message.html
Show inline comments
 
{% load url from future %}
 
<p>{{ proposal.speaker.name }} attached you as an additional speaker to a
 
    talk proposal for {{ current_site.name }} entitled "{{ proposal.title }}".</p>
 

	
 
<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>
symposion/templates/emails/speaker_invite/message.html
Show inline comments
 
{% load url from future %}
 
<p>{{ proposal.speaker.name }} attached you as an additional speaker to a
 
    talk proposal for {{ current_site.name }} entitled "{{ proposal.title }}".</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>If you don't have account on the website, you will be asked to create one.</p>
symposion/templates/emails/speaker_no_profile/message.html
Show inline comments
 
{% load url from future %}
 
<p>{{ proposal.speaker.name }} attached you as an additional speaker to a
 
    talk proposal for {{ current_site.name }} entitled "{{ proposal.title }}".</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>
symposion/templates/proposals/_pending_proposal_row.html
Show inline comments
 
{% load url from future %}
 
{% load i18n %}
 

	
 
<tr>
 
    <td>
 
        <a href="{% url proposal_detail proposal.pk %}">{{ proposal.title }}</a>
 
        <a href="{% url 'proposal_detail' proposal.pk %}">{{ proposal.title }}</a>
 
    </td>
 
    
 
    <td>{{ proposal.kind.name }}</td>
 
    
 
    <td>
 
        {% if proposal.cancelled %}
...
 
@@ -28,15 +29,15 @@
 
            <div class="btn-group">
 
                <a class="btn btn-mini dropdown-toggle" data-toggle="dropdown" href="#">
 
                {% trans 'Choose Response' %}
 
                <span class="caret"></span>
 
                </a>
 
                <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>
 
                    <li><a href="{% url proposal_pending_decline proposal.id
 
                    <li><a href="{% url 'proposal_pending_decline' proposal.id
 
		    %}">{% trans 'Decline invitation' %}</a></li>
 
                </ul>
 
            </div>
 
        {% endif %}
 
    </td>
 
</tr>
symposion/templates/proposals/_proposal_fields.html
Show inline comments
 
{% load url from future %}
 
{% load i18n %}
 

	
 
<dl class="dl-horizontal">
 
    <dt>{% trans "Submitted by" %}</dt>
 
    <dd>{{ proposal.speaker }}</dd>
 
    
...
 
@@ -42,13 +43,13 @@
 
        {% if proposal.supporting_documents.exists %}
 
            <table class="table table-striped">
 
                {% for document in proposal.supporting_documents.all %}
 
                    <tr>
 
                        <td><a href="{{ document.download_url }}">{{ document.description }}</a></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 %}
 
                            <button type="submit" class="btn btn-mini">delete</button>
 
                        </form>
 
                    </td>
 
                    </tr>
 
                {% endfor %}
symposion/templates/proposals/_proposal_row.html
Show inline comments
 
{% load url from future %}
 
<tr>
 
    <td>
 
        <a href="{% url proposal_detail proposal.pk %}">{{ proposal.title }}</a>
 
        <a href="{% url 'proposal_detail' proposal.pk %}">{{ proposal.title }}</a>
 
    </td>
 
    
 
    <td>{{ proposal.kind.name }}</td>
 
    
 
    <td>
 
        {% if proposal.cancelled %}
...
 
@@ -21,12 +22,12 @@
 
        {% endif %}
 
    </td>
 
        
 
    <td>
 
        {% if not proposal.cancelled %}
 
            {% 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_speaker_manage proposal.id %}" class="btn btn-mini"><i class="icon-user"></i> Manage Additional Speakers</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>
 
            {% endif %}
 
        {% endif %}
 
    </td>
 
</tr>
symposion/templates/proposals/proposal_cancel.html
Show inline comments
 
{% extends "proposals/base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load i18n %}
 

	
 
{% load bootstrap_tags %}
 

	
 
{% block head_title %}{% trans 'Cancel Proposal' %}{% endblock %}
 

	
...
 
@@ -10,9 +13,9 @@
 
    <h1>Cancel: {{ proposal.title }}</h1>
 
    
 
    <form method="POST" action="" enctype="multipart/form-data">
 
        {% csrf_token %}
 
        <p>Are you sure you want to cancel <b>{{ proposal.title }}</b>?</p>
 
        <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>
 
{% endblock %}
symposion/templates/proposals/proposal_detail.html
Show inline comments
 
{% extends "proposals/base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load i18n %}
 
{% load account_tags %}
 
{% load bootstrap_tags %}
 

	
 
{% block head_title %}{{ proposal.title }}{% endblock %}
 

	
 
{% block body %}
 
    <div class="pull-right">
 
        {% if not proposal.cancelled %}
 
            {% 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" %}
 
                </a>
 
                <a href="{% url proposal_cancel proposal.pk %}" class="btn">
 
                <a href="{% url 'proposal_cancel' proposal.pk %}" class="btn">
 
                    {% trans "Cancel this proposal" %}
 
                </a>
 
            {% 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" %}
 
                </a>
 
            {% endif %}
 
        {% else %}
 
            {% trans 'Cancelled' }
 
        {% endif %}
...
 
@@ -49,24 +52,24 @@
 
                    {% if proposal.supporting_documents.exists %}
 
                        <table class="table table-striped">
 
                            {% for document in proposal.supporting_documents.all %}
 
                                <tr>
 
                                    <td><a href="{{ document.download_url }}">{{ document.description }}</a></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 %}
 
                                        <button type="submit" class="btn btn-mini">{% trans 'delete' %}</button>
 
                                    </form>
 
                                </td>
 
                                </tr>
 
                            {% endfor %}
 
                        </table>
 
                    {% else %}
 
                        <p>{% trans 'No supporting documents attached to this proposal.' %}</p>
 
                    {% 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>
 
            {% endif %}
 
    
 
    {% if message_form %}
 
        <div class="tab-pane" id="proposal-feedback">
 
            
symposion/templates/proposals/proposal_edit.html
Show inline comments
 
{% extends "proposals/base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load bootstrap_tags %}
 
{% load markitup_tags %}
 

	
 
{% block head_title %}Editing {{ proposal.title }}{% endblock %}
 

	
 
{% block body %}
 
    <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">
 
        {% csrf_token %}
 
        <fieldset>
 
            {{ form|as_bootstrap }}
 
        </fieldset>
 
        <div class="form-actions">
 
            <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>
 
    </form>
 
{% endblock %}
symposion/templates/proposals/proposal_speaker_manage.html
Show inline comments
 
{% extends "proposals/base.html" %}
 

	
 
{% load url from future %}
 

	
 
{% load i18n %}
 

	
 
{% load bootstrap_tags %}
 

	
 
{% block body %}
 
    <h1>{% trans 'Proposal:' %} {{ proposal.title }}</h1>
 
    
 
    <p>
 
      <a href="{% url proposal_edit proposal.pk %}">{% trans 'Edit proposal' %}
 
      <a href="{% url 'proposal_edit' proposal.pk %}">{% trans 'Edit proposal' %}
 
      </a>
 
    </p>
 
    
 
    <h2>{% trans 'Current Speakers' %}</h2>
 
    
 
    {% for speaker in speakers %}
symposion/templates/proposals/proposal_submit.html
Show inline comments
 
{% extends "proposals/base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load boxes_tags %}
 
{% load i18n %}
 

	
 
{% block page_title %}{% trans "Submit A Proposal" %}{% endblock %}
 

	
 
{% block body %}
...
 
@@ -10,13 +13,13 @@
 
    
 
    {% if kinds %}
 
        <p>Select what kind of proposal you'd like to submit:</p>
 
    
 
        <ul>
 
            {% 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 %}
 
        </ul>
 
    {% else %}
 
        <p>Proposals are not currently open for submission.</p>
 
    {% endif %}
 
{% endblock %}
symposion/templates/reviews/_review_table.html
Show inline comments
 
{% load url from future %}
 
{% load i18n %}
 

	
 
<table class="table table-striped table-bordered table-reviews">
 
    <thead>
 
        <th>#</th>
 
        <th>{% trans "Speaker / Title" %}</th>
...
 
@@ -15,13 +16,13 @@
 
    
 
    <tbody>
 
        {% for proposal in proposals %}
 
            <tr class="{{ proposal.user_vote_css }}">
 
                <td>{{ proposal.number }}</td>
 
                <td>
 
                    <a href="{% url review_detail proposal.pk %}">
 
                    <a href="{% url 'review_detail' proposal.pk %}">
 
                        <small><strong>{{ proposal.speaker }}</strong></small>
 
                        <br />
 
                        {{ proposal.title }}
 
                    </a>
 
                </td>
 
                <td>{{ proposal.track }}</td>
symposion/templates/reviews/base.html
Show inline comments
 
{% extends "site_base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load i18n %}
 
{% load sitetree %}
 

	
 
{% block extra_style %}
 
    <style type="text/css">
 
        div.dataTables_length label {
...
 
@@ -57,31 +60,31 @@
 
                <ul class="nav nav-list well">
 
                    {% for section in review_sections %}
 
                        <li class="nav-header">
 
                            {{ section }}
 
                        </li>
 
                        <li>
 
                            <a href="{% url review_section section.section.slug %}">
 
                            <a href="{% url 'review_section' section.section.slug %}">
 
                                {% trans "All Reviews" %}
 
                            </a>
 
                        </li>
 
                        {% comment %}
 
                        <li>
 
                            <a href="{% url review_section_assignments section.section.slug %}">
 
                            <a href="{% url 'review_section_assignments' section.section.slug %}">
 
                                {% trans "Your Assignments" %}
 
                            </a>
 
                        </li>
 
                        {% endcomment %}
 
                        <li>
 
                            <a href="{% url review_status section.section.slug %}">
 
                            <a href="{% url 'review_status' section.section.slug %}">
 
                                {% trans "Voting Status" %}
 
                            </a>
 
                        </li>
 
                        {% if request.user.is_staff %}
 
                            <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>
 
                        {% endif %}
 
                    {% endfor %}
 
                </ul>
 
            {% endblock %}
 
        </div>
symposion/templates/reviews/result_notification.html
Show inline comments
 
{% extends "reviews/base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load i18n %}
 

	
 
{% block extra_style %}
 
    <style type="text/css">
 
        .table-striped tbody tr.selected td {
 
            background-color: #F7F4E6;
...
 
@@ -10,20 +13,20 @@
 
    </style>
 
{% endblock %}
 

	
 
{% block body %}
 
    
 
    <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 == '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 == '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 == 'standby' %} class="active"{% endif %}><a href="{% url 'result_notification' section_slug 'standby' %}">standby</a>
 
    </ul>
 
    
 
    <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 %}
 
        
 
        <p>
 
            Select one or more proposals (<span class="action-counter">0</span> currently selected)
 
            <br/>
...
 
@@ -51,13 +54,13 @@
 
            <tbody>
 
                {% for proposal in proposals %}
 
                    <tr>
 
                        <td><input class="action-select" type="checkbox" name="_selected_action" value="{{ proposal.pk }}"></td>
 
                        <td>{{ proposal.number }}</td>
 
                        <td>
 
                            <a href="{% url review_detail proposal.pk %}">
 
                            <a href="{% url 'review_detail' proposal.pk %}">
 
                                <small><strong>{{ proposal.speaker }}</strong></small>
 
                                <br />
 
                                {{ proposal.title }}
 
                            </a>
 
                        </td>
 
                        <td>{{ proposal.track }}</td>
symposion/templates/reviews/result_notification_prepare.html
Show inline comments
 
{% extends "reviews/base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load i18n %}
 

	
 
{% block body %}
 
    <h1>Result Notification Prepare</h1>
 
    
 
    <div class="row">
...
 
@@ -20,13 +23,13 @@
 
                {% endfor %}
 
            </table>
 
        </div>
 
        <div class="span6">
 
            <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 %}
 
                
 
                <label>From Address</label>
 
                <input type="text" name="from_address" class="span5" value="{{ notification_template.from_address }}" />
 
                <br/>
...
 
@@ -39,11 +42,11 @@
 
                <input type="hidden" name="notification_template" value="{{ notification_template.pk }}" />
 
                <input type="hidden" name="proposal_pks" value="{{ proposal_pks }}" />
 
                
 
                {% include "reviews/_result_notification_prepare_help.html" %}
 
                
 
                <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>
 
        </div>
 
    </form>
 
{% endblock %}
symposion/templates/reviews/review_admin.html
Show inline comments
 
{% extends "reviews/base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% block body %}
 
    <h1>Reviewers</h1>
 
    
 
    <table class="table table-striped">
 
        <tr>
 
            <th>
...
 
@@ -27,13 +30,13 @@
 
                &minus;1
 
            </th>
 
        </tr>
 
        {% for reviewer in reviewers %}
 
        <tr>
 
            <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>
 
                {{ reviewer.total_votes }}
 
            </td>
 
            <td>
 
                {{ reviewer.comment_count }}
symposion/templates/reviews/review_assignment.html
Show inline comments
 
{% extends "reviews/base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% block body %}
 
    <h1>Review Assignments</h1>
 
    
 
    {% if assignments %}
 
        <table>
 
            <tr>
...
 
@@ -10,18 +13,18 @@
 
                <th>Opted out</th>
 
                <th>Opt out</th>
 
            </tr>
 
            {% for assignment in assignments %}
 
                <tr>
 
                    <td>
 
                        <a href="{% url review_detail assignment.proposal.pk %}">
 
                        <a href="{% url 'review_detail' assignment.proposal.pk %}">
 
                            {{ assignment.proposal.title }}
 
                        </a>
 
                    </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 %}
 
                            <input type="submit" value="Opt-out" />
 
                        </form>
 
                    </td>
 
                </tr>
 
            {% endfor %}
symposion/templates/reviews/review_detail.html
Show inline comments
 
{% extends "reviews/base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load i18n %}
 
{% load markitup_tags %}
 
{% load bootstrap_tags %}
 
{% load account_tags %}
 

	
 
{% block extra_style %}
...
 
@@ -123,13 +126,13 @@
 
                        <div class="review-box">
 
                            <div class="vote pull-left">
 
                                <span>{{ review.vote }}</span>
 
                            </div>
 
                            {% if is_manager %}
 
                                <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 %}
 
                                        <button class="btn btn-mini btn-danger" type="submit">Delete</button>
 
                                    </form>
 
                                </div>
 
                            {% endif %}
 
                            <div class="review-content">
symposion/templates/reviews/review_review.html
Show inline comments
 
{% extends "site_base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load markitup_tags %}
 
{% load uni_form_tags %}
 

	
 
{% block body_class %}review{% endblock %}
 

	
 
{% block body %}
...
 
@@ -52,25 +55,25 @@
 
    </div>
 
    
 
    {% markitup_media %}
 

	
 
    <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 %}
 
        <fieldset class="inlineLabels">
 
            {{ review_form|as_uni_form }}
 
            <div class="form_block">
 
                <input type="submit" value="Submit" />
 
            </div>
 
        </fieldset>
 
    </form>
 
    
 
    <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 %}
 
        <fieldset>
 
            {{ comment_form|as_uni_form }}
 
            <div class="form_block">
 
                <input type="submit" value="Submit" />
 
            </div>
symposion/templates/reviews/review_stats.html
Show inline comments
 
{% extends "reviews/base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% block body %}
 
    <h1>Voting Status ({{ section_slug }})</h1>
 
    
 
    {% if key %}
 
        <div class="breadcrumbs">
 
            <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 "indifferent" %}">Indifferent</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 "positive" %}">Positive</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 "controversial" %}">Controversial</a>  |
 
            <a href="{% url 'review_status' section_slug "too_few" %}">Too Few</a> 
 
        </div>
 

	
 
        <div>
 
            {% if key == "positive" %}
 
                <h3>Positive
 
                <small>proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and at least one +1 and no &minus;1s</small></h3>
...
 
@@ -39,41 +42,41 @@
 
        </div>
 
    {% else %}
 
        <p>Reviews are placed into one of five buckets depending on the state of their votes:</p>
 
        
 
        <dl>
 
            <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>
 
            </dt>
 
            <dd>
 
                proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and at least one +1 and no &minus;1s
 
            </dd>
 
            <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>
 
            </dt>
 
            <dd>
 
                proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and at least one &minus;1 and no +1s
 
            </dd>
 
            <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>
 
            </dt>
 
            <dd>
 
                proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and neither a +1 or a &minus;1
 
            </dd>
 
            <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>
 
            </dt>
 
            <dd>
 
                proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and both a +1 and &minus;1
 
            </dd>
 
            <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>
 
            </dt>
 
            <dd>
 
                proposals with fewer than {{ vote_threshold }} vote{{ vote_threshold|pluralize }}
 
            </dd>
 
        </dl>
symposion/templates/schedule/_edit_grid.html
Show inline comments
 
{% load url from future %}
 
<table class="calendar table table-bordered">
 
    <thead>
 
        <tr>
 
            <th class="time">&nbsp;</th>
 
            {% for room in timetable.rooms %}
 
                <th>{{ room.name }}</th>
...
 
@@ -12,24 +13,24 @@
 
            <tr>
 
                <td class="time">{{ row.time|date:"h:iA" }}</td>
 
                {% for slot in row.slots %}
 
                    <td class="slot slot-{{ slot.kind.label }}" colspan="{{ slot.colspan }}" rowspan="{{ slot.rowspan }}">
 
                        {% if slot.kind.label == "talk" or slot.kind.label == "tutorial" %}
 
                            {% 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 %}
 
                                <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>
 
                            {% endif %}
 
                        {% else %}
 
                            {% if slot.content_override.raw %}
 
                                {{ slot.content_override.rendered|safe }}
 
                            {% else %}
 
                                {{ slot.kind.label }}
 
                            {% endif %}
 
                            &mdash; <a class="edit-slot" data-action="{% url schedule_slot_edit schedule.section.slug slot.pk %}" href="#">edit</a>
 
                            &mdash; <a class="edit-slot" data-action="{% url 'schedule_slot_edit' schedule.section.slug slot.pk %}" href="#">edit</a>
 
                        {% endif %}
 
                    </td>
 
                {% endfor %}
 
                {% if forloop.last %}
 
                    <td colspan="{{ timetable.rooms|length }}"></td>
 
                {% endif %}
symposion/templates/schedule/_grid.html
Show inline comments
 
{% load url from future %}
 
<table class="calendar table table-bordered">
 
    <thead>
 
        <tr>
 
            <th class="time">&nbsp;</th>
 
            {% for room in timetable.rooms %}
 
                <th>{{ room.name }}</th>
...
 
@@ -14,13 +15,13 @@
 
                {% for slot in row.slots %}
 
                    <td class="slot slot-{{ slot.kind.label }}" colspan="{{ slot.colspan }}" rowspan="{{ slot.rowspan }}">
 
                        {% if slot.kind.label == "talk" or slot.kind.label == "tutorial" %}
 
                            {% if not slot.content %}
 
                            {% else %}
 
                                <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 class="speaker">
 
                                    {{ slot.content.speakers|join:", " }}
 
                                </span>
 
                            {% endif %}
 
                        {% else %}
symposion/templates/schedule/_slot_edit.html
Show inline comments
 
{% load url from future %}
 
{% 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">
 
        <a class="close" data-dismiss="modal">&times;</a>
 
        <h3>{% trans "Edit Slot" %}</h3>
 
    </div>
 
    <div class="modal-body" style="height:350px">
 
        {% csrf_token %}
symposion/templates/schedule/presentation_detail.html
Show inline comments
 
{% extends "site_base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load sitetree %}
 

	
 
{% block head_title %}Presentation: {{ presentation.title }}{% endblock %}
 

	
 
{% block breadcrumbs %}{% sitetree_breadcrumbs from "main" %}{% endblock %}
 

	
...
 
@@ -14,13 +17,13 @@
 
        </h4>
 
    {% endif %}
 
    <h2>{{ presentation.title }}</h2>
 

	
 
    <h4>
 
        {% 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>
 

	
 
    <dl class="dl-horizontal">
 
        <dt>Audience level:</dt>
 
        <dd style="margin-bottom: 0;">{{ presentation.proposal.get_audience_level_display }}</dd>
 
    </dl>
symposion/templates/schedule/schedule_list.html
Show inline comments
 
{% extends "site_base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load i18n %}
 
{% load cache %}
 
{% load sitetree %}
 

	
 
{% block head_title %}Presentation Listing{% endblock %}
 

	
...
 
@@ -30,13 +33,13 @@
 
{% block body %}
 
    <h2>Accepted {{ schedule.section.name }}</h2>
 
    {% cache 600 "schedule-list" schedule.section.name %}
 
        {% for presentation in presentations %}
 
            <div class="row">
 
                <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>
 
                    {{ presentation.description }}
 
                    {% if presentation.slot %}
 
                        <h4>
 
                            {{ presentation.slot.day.date|date:"l" }}
 
                            {{ presentation.slot.start}}&ndash;{{ presentation.slot.end }}
symposion/templates/speakers/speaker_create.html
Show inline comments
 
{% extends "speakers/base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load bootstrap_tags %}
 
{% load i18n %}
 
{% load boxes_tags %}
 

	
 
{% block page_title %}{% trans "Create Speaker Profile" %}{% endblock %}
 

	
...
 
@@ -14,10 +17,10 @@
 
        <legend>{% trans "Create Speaker Profile" %}</legend>
 
        <fieldset>
 
            {{ form|as_bootstrap }}
 
        </fieldset>
 
        <div class="form-actions">
 
            <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>
 
    </form>
 
{% endblock %}
symposion/templates/speakers/speaker_edit.html
Show inline comments
 
{% extends "speakers/base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load bootstrap_tags %}
 
{% load i18n %}
 
{% load boxes_tags %}
 

	
 
{% block page_title %}{% trans "Edit Speaker Profile" %}{% endblock %}
 

	
...
 
@@ -14,10 +17,10 @@
 
        <legend>{% trans "Edit Speaker Profile" %}</legend>
 
        <fieldset>
 
            {{ form|as_bootstrap }}
 
        </fieldset>
 
        <div class="form-actions">
 
            <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>
 
    </form>
 
{% endblock %}
symposion/templates/speakers/speaker_profile.html
Show inline comments
 
{% extends "site_base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load i18n %}
 
{% load thumbnail %}
 

	
 

	
 
{% block head_title %}{{ speaker.name }}{% endblock %}
 

	
...
 
@@ -14,20 +17,20 @@
 
            {% else %}
 
                &nbsp;
 
            {% endif %}
 
        </div>
 
        <div class="span6">
 
            {% 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 %}
 
            <h1>{{ speaker.name }}</h1>
 
            <div class="bio">{{ speaker.biography|safe }}</div>
 
            
 
            <h2>Presentations</h2>
 
            {% 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 %}
 
                    <p>
 
                        {{ presentation.slot.day.date|date:"l" }}
 
                        {{ presentation.slot.start}}&ndash;{{ presentation.slot.end }}
 
                        in
 
                        {{ presentation.slot.rooms|join:", " }}
symposion/templates/sponsorship/add.html
Show inline comments
 
{% extends "site_base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load bootstrap_tags %}
 
{% load i18n %}
 
{% load boxes_tags %}
 

	
 
{% block head_title %}{% trans "Add a Sponsor" %}{% endblock %}
 

	
 
{% block body_class %}sponsorships{% endblock %}
 

	
 
{% block body %}
 
    <form method="POST" action="{% url sponsor_add %}" class="form-horizontal">
 
    <form method="POST" action="{% url 'sponsor_add' %}" class="form-horizontal">
 
        {% csrf_token %}
 
        <legend>{% trans "Add a Sponsor" %}</legend>
 
        {{ form|as_bootstrap }}
 
        <div class="form-actions">
 
            <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>
 
    </form>
 

	
 
{% endblock %}
symposion/templates/sponsorship/apply.html
Show inline comments
 
{% extends "site_base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load bootstrap_tags %}
 
{% load i18n %}
 
{% load boxes_tags %}
 

	
 
{% block head_title %}{% trans "Apply to be a Sponsor" %}{% endblock %}
 

	
...
 
@@ -15,14 +18,14 @@
 
    <form method="POST" action="" class="form-horizontal">
 
        {% csrf_token %}
 
        <legend>{% trans "Apply to Be a Sponsor" %}</legend>
 
        {{ form|as_bootstrap }}
 
        <div class="form-actions">
 
            <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">
 
                <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>
 
        </div>
 
    </form>
 

	
 
{% endblock %}
symposion/templates/sponsorship/detail.html
Show inline comments
 
{% extends "site_base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load bootstrap_tags %}
 
{% load i18n %}
 

	
 
{% block head_title %}{{ sponsor }}{% endblock %}
 

	
 
{% block page_title %}{% trans "Sponsorship" %}{% endblock %}
...
 
@@ -30,11 +33,11 @@
 
                </div>
 
            </div>
 
        {% endfor %}
 

	
 
        <div class="form-actions">
 
            <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>
 

	
 
    </form>
 
{% endblock %}
...
 
\ No newline at end of file
symposion/templates/sponsorship/list.html
Show inline comments
 
{% extends "site_base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load sponsorship_tags %}
 
{% load thumbnail %}
 
{% load i18n %}
 

	
 
{% block head_title %}{% trans "About Our Sponsors" %}{% endblock %}
 

	
 
{% block body_class %}sponsorships{% endblock %}
 

	
 
{% block body_outer %}
 
    <div class="row">
 
        <div class="span12">
 
            <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 %}
 
            {% for level in levels %}
 
                {% if level.sponsors %}
 
                    <h3>{{ level.name }}</h3>
 

	
symposion/templates/teams/team_detail.html
Show inline comments
 
{% extends "site_base.html" %}
 

	
 
{% load url from future %}
 

	
 

	
 
{% load bootstrap_tags %}
 

	
 
{% block head_title %}{{ team.name }}{% endblock %}
 

	
 
{% block body_outer %}
 
    <div class="row">
 
        <div class="span12">
 
            <div class="pull-right">
 
            {% if can_join %}
 
                <form method="post" action="{% url team_join team.slug %}">
 
                <form method="post" action="{% url 'team_join' team.slug %}">
 
                    {% csrf_token %}
 
                    <input type="submit" class="btn btn-primary" value="join">
 
                </form>
 
            {% endif %}
 
            
 
            {% if can_leave %}
 
                <form method="post" action="{% url team_leave team.slug %}">
 
                <form method="post" action="{% url 'team_leave' team.slug %}">
 
                    {% csrf_token %}
 
                    <input type="submit" class="btn" value="leave">
 
                </form>
 
            {% endif %}
 
            
 
            {% if can_apply %}
 
                <form method="post" action="{% url team_apply team.slug %}"> 
 
                <form method="post" action="{% url 'team_apply' team.slug %}"> 
 
                    {% csrf_token %}
 
                    <input type="submit" class="btn btn-primary" value="apply">
 
                </form>
 
            {% endif %}
 
            </div>
 
            
...
 
@@ -41,40 +44,40 @@
 
                    <h2>Managers</h2>
 
                    <table class="table table-striped">
 
                        {% for membership in team.managers %}
 
                            <tr>
 
                                <td>{{ membership.user.email }}{% if user == membership.user %} <span class="label label-info">you</span>{% endif %}</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>
 
                            </tr>
 
                        {% endfor %}
 
                    </table>
 
                {% endif %}
 
                {% if team.members %}
 
                    <h2>Team Members</h2>
 
                    <table class="table table-striped">
 
                        {% for membership in team.members %}
 
                            <tr>
 
                                <td>{{ membership.user.email }}{% if user == membership.user %} <span class="label label-info">you</span>{% endif %}</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>
 
                            </tr>
 
                        {% endfor %}
 
                    </table>
 
                {% endif %}
 
                {% if team.applicants and team.access == "application" %}
 
                    <h2>Applicants</h2>
 
                    <table class="table table-striped">
 
                        {% for membership in team.applicants %}
 
                            <tr>
 
                                <td>{{ membership.user.email }}</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_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_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>
 
                                </td>
 
                            </tr>
 
                        {% endfor %}
 
                    </table>
 
                {% endif %}
 
                {% if team.invitees %}
0 comments (0 inline, 0 general)