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"),
 
    url(r"^(?P<path>%s)$" % PAGE_RE, "page", name="cms_page"),
 
)
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
...
 
@@ -2,34 +2,34 @@ import csv
 

	
 
from django.http import HttpResponse
 

	
 

	
 
def export_as_csv_action(
 
    description="Export selected objects as CSV file",
 
    fields=None, exclude=None, header=True):
 
    """
 
    This function returns an export csv action
 
    'fields' and 'exclude' work like in Django ModelForm
 
    'header' is whether or not to output the column names as the first row
 
    """
 
    def export_as_csv(modeladmin, request, queryset):
 
        """
 
        Generic csv export admin action.
 
        based on http://djangosnippets.org/snippets/1697/
 
        """
 
        opts = modeladmin.model._meta
 
        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])
 
        return response
 
    export_as_csv.short_description = description
 
    return export_as_csv
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"),
 
    url(r"^(\d+)/edit/$", "proposal_edit", name="proposal_edit"),
 
    url(r"^(\d+)/speakers/$", "proposal_speaker_manage", name="proposal_speaker_manage"),
 
    url(r"^(\d+)/cancel/$", "proposal_cancel", name="proposal_cancel"),
 
    url(r"^(\d+)/leave/$", "proposal_leave", name="proposal_leave"),
 
    url(r"^(\d+)/join/$", "proposal_pending_join", name="proposal_pending_join"),
 
    url(r"^(\d+)/decline/$", "proposal_pending_decline", name="proposal_pending_decline"),
 

	
 
    url(r"^(\d+)/document/create/$", "document_create", name="proposal_document_create"),
 
    url(r"^document/(\d+)/delete/$", "document_delete", name="proposal_document_delete"),
 
    url(r"^document/(\d+)/([^/]+)$", "document_download", name="proposal_document_download"),
 
)
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
 

	
 
from account.models import EmailAddress
 
from symposion.proposals.models import ProposalBase, ProposalSection, ProposalKind
 
from symposion.proposals.models import SupportingDocument, AdditionalSpeaker
 
from symposion.speakers.models import Speaker
 
from symposion.utils.mail import send_email
 

	
 
from symposion.proposals.forms import AddSpeakerForm, SupportingDocumentCreateForm
 

	
 

	
 
def get_form(name):
 
    dot = name.rindex(".")
 
    mod_name, form_name = name[:dot], name[dot + 1:]
 
    __import__(mod_name)
 
    return getattr(sys.modules[mod_name], form_name)
 

	
 

	
 
def proposal_submit(request):
 
    if not request.user.is_authenticated():
 
        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
 
            proposal.save()
 
            form.save_m2m()
 
            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
 
                return pending, token
 
            email_address = add_speaker_form.cleaned_data["email"]
 
            # check if email is on the site now
 
            users = EmailAddress.objects.get_users_for(email_address)
 
            if users:
 
                # should only be one since we enforce unique email
 
                user = users[0]
 
                message_ctx["user"] = user
 
                # look for speaker profile
 
                try:
 
                    speaker = user.speaker_profile
 
                except ObjectDoesNotExist:
 
                    speaker, token = create_speaker_token(email_address)
 
                    message_ctx["token"] = token
 
                    # fire off email to user to create profile
 
                    send_email(
 
                        [email_address], "speaker_no_profile",
 
                        context = message_ctx
...
 
@@ -152,157 +152,157 @@ def proposal_speaker_manage(request, pk):
 
                    [email_address], "speaker_invite",
 
                    context = message_ctx
 
                )
 
            invitation, created = AdditionalSpeaker.objects.get_or_create(proposalbase=proposal.proposalbase_ptr, speaker=speaker)
 
            messages.success(request, "Speaker invited to proposal.")
 
            return redirect("proposal_speaker_manage", proposal.pk)
 
    else:
 
        add_speaker_form = AddSpeakerForm(proposal=proposal)
 
    ctx = {
 
        "proposal": proposal,
 
        "speakers": proposal.speakers(),
 
        "add_speaker_form": add_speaker_form,
 
    }
 
    return render(request, "proposals/proposal_speaker_manage.html", ctx)
 

	
 

	
 
@login_required
 
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()
 
            if hasattr(proposal, "reviews"):
 
                users = User.objects.filter(
 
                    Q(review__proposal=proposal) |
 
                    Q(proposalmessage__proposal=proposal)
 
                )
 
                users = users.exclude(id=request.user.id).distinct()
 
                for user in users:
 
                    ctx = {
 
                        "user": request.user,
 
                        "proposal": proposal,
 
                    }
 
                    send_email(
 
                        [user.email], "proposal_updated",
 
                        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
 
def proposal_leave(request, pk):
 
    queryset = ProposalBase.objects.select_related("speaker")
 
    proposal = get_object_or_404(queryset, pk=pk)
 
    proposal = ProposalBase.objects.get_subclass(pk=proposal.pk)
 

	
 
    try:
 
        speaker = proposal.additional_speakers.get(user=request.user)
 
    except ObjectDoesNotExist:
 
        return HttpResponseForbidden()
 
    if request.method == "POST":
 
        proposal.additional_speakers.remove(speaker)
 
        # @@@ fire off email to submitter and other speakers
 
        messages.success(request, "You are no longer speaking on %s" % proposal.title)
 
        return redirect("dashboard")
 
    ctx = {
 
        "proposal": proposal,
 
    }
 
    return render(request, "proposals/proposal_leave.html", ctx)
...
 
@@ -318,68 +318,68 @@ def proposal_pending_join(request, pk):
 
        messages.success(request, "You have accepted the invitation to join %s" % proposal.title)
 
        return redirect("dashboard")
 
    else:
 
        return redirect("dashboard")
 

	
 

	
 
@login_required
 
def proposal_pending_decline(request, pk):
 
    proposal = get_object_or_404(ProposalBase, pk=pk)
 
    speaking = get_object_or_404(AdditionalSpeaker, speaker=request.user.speaker_profile, proposalbase=proposal)
 
    if speaking.status == AdditionalSpeaker.SPEAKING_STATUS_PENDING:
 
        speaking.status = AdditionalSpeaker.SPEAKING_STATUS_DECLINED
 
        speaking.save()
 
        messages.success(request, "You have declined to speak on %s" % proposal.title)
 
        return redirect("dashboard")
 
    else:
 
        return redirect("dashboard")
 

	
 

	
 
@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,
 
    })
 

	
 

	
 
@login_required
 
def document_download(request, pk, *args):
 
    document = get_object_or_404(SupportingDocument, pk=pk)
 
    if getattr(settings, "USE_X_ACCEL_REDIRECT", False):
 
        response = HttpResponse()
 
        response["X-Accel-Redirect"] = document.file.url
 
        # delete content-type to allow Gondor to determine the filetype and
 
        # we definitely don't want Django's crappy default :-)
 
        del response["content-type"]
 
    else:
 
        response = static.serve(request, document.file.name, document_root=settings.MEDIA_ROOT)
 
    return response
 

	
 

	
 
@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"),
 
    url(r"^section/(?P<section_slug>[\w\-]+)/assignments/$", "review_section", {"assigned": True}, name="review_section_assignments"),
 
    url(r"^section/(?P<section_slug>[\w\-]+)/status/$", "review_status", name="review_status"),
 
    url(r"^section/(?P<section_slug>[\w\-]+)/status/(?P<key>\w+)/$", "review_status", name="review_status"),
 
    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"),
 
    url(r"^presentations.csv$", "schedule_list_csv", name="schedule_list_csv"),
 
    url(r"^presentation/(\d+)/$", "schedule_presentation_detail", name="schedule_presentation_detail"),
 
    url(r"^([\w\-]+)/$", "schedule_detail", name="schedule_detail"),
 
    url(r"^([\w\-]+)/edit/$", "schedule_edit", name="schedule_edit"),
 
    url(r"^([\w\-]+)/list/$", "schedule_list", name="schedule_list"),
 
    url(r"^([\w\-]+)/presentations.csv$", "schedule_list_csv", name="schedule_list_csv"),
 
    url(r"^([\w\-]+)/edit/slot/(\d+)/", "schedule_slot_edit", name="schedule_slot_edit"),
 
)
symposion/schedule/views.py
Show inline comments
...
 
@@ -57,49 +57,49 @@ def schedule_detail(request, slug=None):
 
        "days": days,
 
    }
 
    return render(request, "schedule/schedule_detail.html", ctx)
 

	
 

	
 
def schedule_list(request, slug=None):
 
    schedule = fetch_schedule(slug)
 

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

	
 
    ctx = {
 
        "schedule": schedule,
 
        "presentations": presentations,
 
    }
 
    return render(request, "schedule/schedule_list.html", ctx)
 

	
 

	
 
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
 

	
 
    response.write(loader.get_template("schedule/schedule_list.csv").render(Context({
 
        "presentations": presentations,
 

	
 
    })))
 
    return response
 

	
 

	
 
@login_required
 
def schedule_edit(request, slug=None):
 

	
 
    if not request.user.is_staff:
 
        raise Http404()
 

	
 
    schedule = fetch_schedule(slug)
 

	
 
    days_qs = Day.objects.filter(schedule=schedule)
 
    days = [TimeTable(day) for day in days_qs]
 
    ctx = {
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"),
 
    url(r"^profile/(?P<pk>\d+)/$", "speaker_profile", name="speaker_profile"),
 
    url(r"^staff/create/(\d+)/$", "speaker_create_staff", name="speaker_create_staff"),
 
)
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"),
 
    url(r"^(?P<slug>[\w\-]+)/leave/$", "team_leave", name="team_leave"),
 
    url(r"^(?P<slug>[\w\-]+)/apply/$", "team_apply", name="team_apply"),
 

	
 
    # membership specific
 
    url(r"^promote/(?P<pk>\d+)/$", "team_promote", name="team_promote"),
 
    url(r"^demote/(?P<pk>\d+)/$", "team_demote", name="team_demote"),
 
    url(r"^accept/(?P<pk>\d+)/$", "team_accept", name="team_accept"),
 
    url(r"^reject/(?P<pk>\d+)/$", "team_reject", name="team_reject"),
 
)
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>
 
        </div>
 
    </div>
 
{% endblock %}
...
 
\ No newline at end of file
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>
 
{% endblock %}
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 }}
 
    </div>
 
    
 
{% endblock %}
...
 
\ No newline at end of file
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 %}
 
    <style type="text/css">
 
        div.dataTables_length label {
 
            float: left;
 
            text-align: left;
 
        }
 

	
 
        div.dataTables_length select {
 
            width: 75px;
 
        }
 

	
 
        div.dataTables_filter label {
 
            float: right;
 
        }
 

	
 
        div.dataTables_info {
 
            padding-top: 8px;
 
        }
 

	
...
 
@@ -47,51 +50,51 @@
 
        table.dataTable th:active {
 
            outline: none;
 
        }
 
    </style>
 
{% endblock %}
 

	
 
{% block body_outer %}
 
    <div class="row">
 
        <div class="span12">
 
            <h1>User List</h1>
 
            <table class="table table-striped table-bordered table-reviews">
 
                <thead>
 
                    <th>{% trans "Email" %}</th>
 
                    <th>{% trans "Name" %}</th>
 
                    <th>{% trans "Speaker Profile?" %}</th>
 
                </thead>
 
                
 
                <tbody>
 
                    {% 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>
 
        </div>
 
    </div>
 
{% endblock %}
 

	
 
{% block extra_script %}
 
    <script src="{{ STATIC_URL }}datatables/js/jquery.dataTables.min.js" type="text/javascript"></script>
 
    <script src="{{ STATIC_URL }}tabletools/js/TableTools.min.js" type="text/javascript"></script>
 
    <script src="{{ STATIC_URL }}datatables/js/dataTables.bootstrap.js" type="text/javascript"></script>
 
    <script type="text/javascript">
 
        $(function() {
 
            $(".tip").tooltip();
 
            $("table.table-reviews").dataTable({
 
                "sDom": "<'row'<'span3'l><'span3'T><'span4'f>r>t<'row'<'span3'i><'span5'p>>",
 
                "sPaginationType": "bootstrap",
 
                "bStateSave": true,
 
                "oTableTools": {
 
                    "aButtons": [
 
                        "copy",
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 %}
 

	
 
{% block body_class %}auth{% endblock %}
 

	
 
{% block body %}
 
    <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>
 
                            <th>Session type</th>
 
                            <th>Status</th>
 
                            <th>Actions</th>
 
                        </tr>
 
                        {% for proposal in user.speaker_profile.proposals.all %}
 
                            {% include "proposals/_proposal_row.html" %}
 
                        {% endfor %}
 
                    </table>
 
                {% else %}
 
                    <p>No proposals submitted yet.</p>
 
                {% endif %}
 
            
 
                {% associated_proposals as associated_proposals %}
 
                {% if associated_proposals %}
 
                    <h4>Proposals you have joined as an additional speaker</h4>
 
                    <table class="table">
 
                        <tr>
 
                            <th>Title</th>
...
 
@@ -71,151 +74,151 @@
 
                {% if pending_proposals %}
 
                    <h4>Proposals you have been invited to join</h4>
 
                    <table class="table">
 
                        <tr>
 
                            <th>Title</th>
 
                            <th>Session type</th>
 
                            <th>Status</th>
 
                            <th>Actions</th>
 
                        </tr>
 
                        {% for proposal in pending_proposals %}
 
                            {% include "proposals/_pending_proposal_row.html" %}
 
                        {% endfor %}
 
                    </table>
 
                {% endif %}
 
            {% endif %}
 
        </div>
 
    </div>
 
    
 
    <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>
 
        
 
    {% if review_sections %}
 
        <div class="dashboard-panel">
 
            <div class="dashboard-panel-header">
 
                <i class="icon-briefcase"></i>
 
                <h3>{% trans "Reviews" %}</h3>
 
            </div>
 
            
 
            <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">
 
                    <thead>
 
                        <td>Proposal Title</td>
 
                        <td>Score</td>
 
                    </thead>
 
                    <tbody>
 
                        <tr>
 
                            <td>Title Three</td>
 
                            <td>-1</td>
 
                        </tr>
 
                        <tr>
 
                            <td>Title Four</td>
 
                            <td>+2</td>
 
                        </tr>
 
                    </tbody>
 
                </table>
 
                {% endcomment %}
 
                
 
            </div>
 
    </div>
 
    {% endif %}
 
    
 
    {% available_teams as available_teams %}
 
    {% if user.memberships.exists or available_teams %}
 
        <div class="dashboard-panel">
 
            <div class="dashboard-panel-header">
 
                <i class="icon-group"></i>
 
                <h3>{% trans "Teams" %}</h3>
 
            </div>
 
            
 
            <div class="dashboard-panel-content">
 
                {% 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>
 
                                    {% if membership.state == "manager" or user.is_staff %}
 
                                        {% if membership.team.applicants %}{{ membership.team.applicants.count }} applicant{{ membership.team.applicants.count|pluralize }}{% endif %}
 
                                    {% endif %}
 
                                </td>
 
                            </tr>
 
                        {% endfor %}
 
                    </table>
 
                {% endif %}
 
                {% 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>
 

	
 
                        {% endfor %}
 
                    </table>
 
                {% endif %}
 
            </div>
 
        </div>
 
    {% endif %}
 
{% endblock %}
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 %}
 
            <span class="label label-important">{% trans 'Cancelled' %}</span>
 
        {% else %}
 
            {% if request.user == proposal.speaker.user %}
 
                {% if proposal.result.status == "accepted" %}
 
                    <span class="label label-success">{% trans 'Accepted' %}</span>
 
                {% else %}
 
                    <span class="label">{% trans 'Submitted' %}</span>
 
                {% endif %}
 
            {% else %}
 
                <span class="label">{% trans 'Invited' %}</span>
 
            {% endif %}
 
        {% endif %}
 
    </td>
 
        
 
    <td>
 
        {% if not proposal.cancelled %}
 
            <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>
 
    
 
    <dt>{% trans "Track" %}</dt>
 
    <dd>{{ proposal.track }}&nbsp;</dd>
 
    
 
    <dt>{% trans "Audience Level" %}</dt>
 
    <dd>{{ proposal.get_audience_level_display }}&nbsp;</dd>
 
    
 
    {% if proposal.additional_speakers.all %}
 
        <dt>{% trans "Additional Speakers" %}</dt>
 
        <dd>
 
            {% for speaker in proposal.additional_speakers.all %}
 
                <li>
 
                    {% if speaker.user %}
 
                        <strong>{{ speaker.name }}</strong> &lt;{{ speaker.email }}&gt;
 
                    {% else %}
 
                        {{ speaker.email }} ({% trans "Invitation Sent" %})
 
                    {% endif %}
 
                </li>
 
            {% endfor %}
 
        </dd>
 
    {% endif %}
 
    
 
    <dt>{% trans "Description" %}</dt>
 
    <dd>{{ proposal.description }}&nbsp;</dd>
 
    
 
    <dt>{% trans "Abstract" %}</dt>
 
    <dd>{{ proposal.abstract|safe }}&nbsp;</dd>
 
    
 
    <dt>{% trans "Notes" %}</dt>
 
    <dd>{{ proposal.additional_notes|safe }}&nbsp;</dd>
 
    
 
    <dt>{% trans "Speaker Bio" %}</dt>
 
    <dd>{{ proposal.speaker.biography|safe }}&nbsp;</dd>
 
    
 
    <dt>{% trans "Documents" %}</dt>
 
    <dd>
 
        {% 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 %}
 
            </table>
 
        {% else %}
 
            No supporting documents attached to this proposal.
 
        {% endif %}
 
    </dd>
 
</dl>
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 %}
 
            <span class="label label-important">Cancelled</span>
 
        {% else %}
 
            {% if request.user == proposal.speaker.user %}
 
                {% if proposal.result.status == "accepted" %}
 
                    <span class="label label-success">Accepted</span>
 
                {% else %}
 
                    <span class="label">Submitted</span>
 
                {% endif %}
 
            {% else %}
 
                <span class="label">Associated</span>
 
            {% endif %}
 
        {% 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 %}
 

	
 
{% block body %}
 
    <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 %}
 
    </div>
 
    
 
    <h3>#{{ proposal.number }}: {{ proposal.title }} ({{ proposal.speaker }}, Track: {{ proposal.track }})</h3>
 
    
 
    <div class="tabbable">
 
        <ul class="nav nav-tabs">
 
            <li class="active"><a href="#proposal-detail" data-toggle="tab">{% trans "Proposal Details" %}</a></li>
 
            {% if request.user == proposal.speaker.user %}
 
                <li><a href="#proposal-documents" data-toggle="tab">{% trans "Supporting Documents" %}</a></li>
 
            {% endif %}
 
            {% if message_form %}
 
                <li><a href="#proposal-feedback" data-toggle="tab">{% trans "Reviewer Feedback" %} <span class="badge">{{ proposal.messages.all|length }}</span></a></li>
 
            {% endif %}
 
        </ul>
 
        <div class="tab-content">
 
            <div class="tab-pane active" id="proposal-detail">
 
                {% include "proposals/_proposal_fields.html" %}
 
            </div>
 
            {% if request.user == proposal.speaker.user %}
 
                <div class="tab-pane" id="proposal-documents">
 
                    <h3>{% trans 'Supporting Documents' %}</h3>
 
                    
 
                    {% 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">
 
            
 
            <h3>{% trans 'Conversation with Reviewers' %}</h3>
 
            
 
            {% for message in proposal.messages.all %}
 
                <div class="review-box">
 
                    <div class="comment">{{ message.message|safe }}</div>
 
                    <div class="dateline"><b>{% user_display message.user %}</b> {{ message.submitted_at|timesince }} ago</div>
 
                </div>
 
                <div class="clear"></div>
 
            {% endfor %}
 
            
 
            <h3>{% trans 'Leave a Message' %}</h3>
 
            
 
            <p>{% trans 'You can leave a message for the reviewers here.' %}</p>
 
            
 
            <form action="" method="POST" accept-charset="utf-8">
 
                {% csrf_token %}
 
                <fieldset>
 
                    {{ message_form|as_bootstrap }}
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 %}
 
        {% if speaker.user %}
 
            <p><b>{{ speaker.name }}</b> &mdash; {{ speaker.email }}</p>
 
        {% else %}
 
            <p>{{ speaker.email }} &mdash; {% trans 'pending invitation' %}</p>
 
        {% endif %}
 
    {% endfor %}
 
    
 
    <h2>{% trans 'Add another speaker' %}</h2>
 
    
 
    <form method="POST" action="" enctype="multipart/form-data" class="uniForm">
 
        {% csrf_token %}
 
        {{ add_speaker_form|as_bootstrap }}
 
        <div class="form-action">
 
            <input type="submit" value="Add speaker" class="btn btn-primary" />
 
        </div>
 
    </form>
 
{% endblock %}
 

	
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 %}
 
    {% box "proposal_submit" %}
 
    
 
    {% 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>
 
        <th>{% trans "Category" %}</th>
 
        <th><i class="icon-comment-alt"></i></th>
 
        <th>{% trans "+1" %}</th>
 
        <th>{% trans "+0" %}</th>
 
        <th>{% trans "-0" %}</th>
 
        <th>{% trans "-1" %}</th>
 
        <th><a href="#" class="tip" title="{% trans "Your Rating" %}"><i class="icon-user"></i></a></th>
 
    </thead>
 
    
 
    <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>
 
                <td>{{ proposal.comment_count }}</td>
 
                <td>{{ proposal.plus_one }}</td>
 
                <td>{{ proposal.plus_zero }}</td>
 
                <td>{{ proposal.minus_zero }}</td>
 
                <td>{{ proposal.minus_one }}</td>
 
                <td>{{ proposal.user_vote|default:"" }}</td>
 
            </tr>
 
        {% endfor %}
 
    </tbody>
 
</table>
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 {
 
            float: left;
 
            text-align: left;
 
        }
 

	
 
        div.dataTables_length select {
 
            width: 75px;
 
        }
 

	
 
        div.dataTables_filter label {
 
            float: right;
 
        }
 

	
 
        div.dataTables_info {
 
            padding-top: 8px;
 
        }
 

	
 
        div.dataTables_paginate {
 
            float: right;
...
 
@@ -39,67 +42,67 @@
 
        table.table thead .sorting_asc_disabled,
 
        table.table thead .sorting_desc_disabled {
 
            cursor: pointer;
 
            *cursor: hand;
 
        }
 

	
 
        table.dataTable th:active {
 
            outline: none;
 
        }
 
    </style>
 
{% endblock %}
 

	
 
{% block body_class %}reviews{% endblock %}
 

	
 
{% block body_outer %}
 
    <div class="row">
 
        <div class="span2">
 
            {% block sidebar %}
 
                <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>
 
        <div class="span10">
 
            {% block body %}
 
            {% endblock %}
 
        </div>
 
    </div>
 
{% endblock %}
 

	
 
{% block extra_script %}
 
    <script src="{{ STATIC_URL }}datatables/js/jquery.dataTables.min.js" type="text/javascript"></script>
 
    <script src="{{ STATIC_URL }}tabletools/js/TableTools.min.js" type="text/javascript"></script>
 
    <script src="{{ STATIC_URL }}datatables/js/dataTables.bootstrap.js" type="text/javascript"></script>
 
    <script type="text/javascript">
 
        $(function() {
 
            $(".tip").tooltip();
 
            $("table.table-reviews").dataTable({
 
                "sDom": "<'row'<'span3'l><'span3'T><'span4'f>r>t<'row'<'span3'i><'span5'p>>",
 
                "sPaginationType": "bootstrap",
 
                "bStateSave": true,
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;
 
        }
 
    </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/>
 
            then pick an email template
 
            <select name="notification_template">
 
                <option value="">[blank]</option>
 
                {% for template in notification_templates %}
 
                    <option value="{{ template.pk }}">{{ template.label }}</option>
 
                {% endfor %}
 
            </select>
 
            <br/>
 
            <button id="next-button" type="submit" class="btn btn-primary" disabled>Next <i class="icon icon-chevron-right"></i></button>
 
        </p>
 
        
 
        <table class="table table-striped table-bordered">
 
            <thead>
 
                <th><input type="checkbox" id="action-toggle"></th>
 
                <th>#</th>
 
                <th>{% trans "Speaker / Title" %}</th>
 
                <th>{% trans "Category" %}</th>
 
                <th>{% trans "Status" %}</th>
 
                <th>{% trans "Notified?" %}</th>
 
            </thead>
 
            
 
            <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>
 
                        <td>
 
                            {% with proposal.result.status as status %}
 
                                <div class="{{ status }}">
 
                                    {% if status != "undecided" %}
 
                                        <span>{{ status }}</span>
 
                                    {% endif %}
 
                                </div>
 
                            {% endwith %}
 
                        </td>
 
                        <td>
 
                            {% if proposal.notifications.exists %}yes{% endif %}
 
                        </td>
 
                    </tr>
 
                {% endfor %}
 
            </tbody>
 
        </table>
 
    </form>
 
{% endblock %}
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">
 
        <div class="span4">
 
            <h2>Proposals</h2>
 
            <table class="table table-striped table-compact">
 
                {% for proposal in proposals %}
 
                    <tr>
 
                        <td>
 
                            <strong>{{ proposal.speaker }}</strong> ({{ proposal.speaker.email }})
 
                            <br />
 
                            {{ proposal.title }}
 
                        </td>
 
                    </tr>
 
                {% 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/>
 
                <label>Subject</label>
 
                <input type="text" name="subject" class="span5" value="{{ notification_template.subject }}" />
 
                <br/>
 
                <label>Body</label>
 
                <textarea class="span5" rows="10" name="body">{{ notification_template.body }}</textarea>
 
                <br/>
 
                <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>
 
                Reviewer
 
            </th>
 
            <th>
 
                Proposals<br/>Reviewed
 
            </td>
 
            <th>
 
                Comments
 
            </th>
 
            <th>
 
                +1
 
            </th>
 
            <th>
 
                +0
 
            </th>
 
            <th>
 
                &minus;0
 
            </th>
 
            <th>
 
                &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 }}
 
            </td>
 
            <td>
 
                {{ reviewer.plus_one }}
 
            </td>
 
            <td>
 
                {{ reviewer.plus_zero }}
 
            </td>
 
            <td>
 
                {{ reviewer.minus_zero }}
 
            </td>
 
            <td>
 
                {{ reviewer.minus_one }}
 
            </td>
 
        </tr>
 
        {% endfor %}
 
    </table>
 
{% endblock %}
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>
 
                <th>Proposal</th>
 
                <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 %}
 
        </table>
 
    {% else %}
 
        <p>You do not have any assignments.</p>
 
    {% endif %}
 
{% endblock %}
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 %}
 
    <style type="text/css">
 
        body.reviews .markItUpEditor {
 
            width: 500px;
 
            height: 100px;
 
        }
 
    </style>
 

	
 
{% endblock %}
 

	
 
{% block body %}
 
    {% if request.user.is_staff %}
 
        <div class="pull-right">
 
            <form class="result-form form-inline" method="POST" action="">
 
                {% csrf_token %}
 
                <div class="btn-group">
 
                    {% if proposal.result.status == "accepted" %}
 
                        <a class="btn dropdown-toggle btn-success" data-toggle="dropdown" href="#">Accepted <span class="caret"></span></a>
 
                        <div class="dropdown-menu pull-right" style="width: 200px; padding-left: 10px;">
...
 
@@ -105,49 +108,49 @@
 
                
 
                {% if review_form %}
 
                    <form method="POST" action="" class="review-form">
 
                        <legend>{% trans "Submit Review" %}</legend>
 
                        <p>Enter your vote and any comment to go along with it. You can revise your vote or comment multiple times with an existing vote (your previously recorded score will be replaced during calculations). <b>Your vote and comments are not public and will only be viewable by other reviewers.</b></p>
 
                        {% csrf_token %}
 
                            {{ review_form|as_bootstrap }}
 
                            <div class="form-action">
 
                                <input type="submit" class="btn btn-primary" name="vote_submit" value="Submit Review" />
 
                            </div>
 
                    </form>
 
                {% else %}
 
                    <p>You do not have permission to vote on this proposal.</p>
 
                {% endif %}
 

	
 
                {% if reviews %}
 
                    <h5>Review Comments</h5>
 
                    {% for review in reviews %}
 
                        <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">
 
                                <b>{% user_display review.user %}</b>
 
                                {{ review.submitted_at|timesince }} ago <br />
 
                                {{ review.comment|safe }}
 
                            </div>
 
                        </div>
 
                    {% endfor %}
 
                {% endif %}
 

	
 
                {% markitup_media "no-jquery" %}
 
            </div>
 
            <div class="tab-pane" id="proposal-feedback">
 
                {% if review_messages %}
 
                    <h3>{% trans "Conversation with the submitter" %}</h3>
 
                    {% for message in review_messages %}
 
                        <div class="comment-box">
 
                            <div class="commment-content">
 
                                <b>{% user_display message.user %}</b>
 
                                {{ message.submitted_at|timesince }} ago <br />
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 %}
 
    <h1>Proposal Review</h1>
 
    
 
    <div class="proposal">
 
        <h2>{{ proposal.title }}</h2>
 
        
 
        <p>
 
            {% if proposal.cancelled %}
 
                Cancelled
 
            {% endif %}
 
        </p>
 
        
 
        <div>
 
            {{ proposal.description }}
 
        </div>
 
        
 
        <p><b>Type</b>: {{ proposal.get_session_type_display }}</p>
 
        
 
        <h3>Abstract</h3>
...
 
@@ -34,47 +37,47 @@
 
        
 
        {% if proposal.additional_speakers.all %}
 
            <p><b>Additional speakers</b>:</p>
 
            <ul>
 
            {% for speaker in proposal.additional_speakers.all %}
 
                {% if speaker.user %}
 
                    <li><b>{{ speaker.name }}</b> &mdash; {{ speaker.email }}</li>
 
                {% else %}
 
                    <li>{{ speaker.email }} &mdash; pending invitation</li>
 
                {% endif %}
 
            {% endfor %}
 
            </ul>
 
        {% endif %}
 
        
 
        <h3>Additional Notes (private from submitter)</h3>
 
        <div class="additional_notes">
 
            {{ proposal.additional_notes }}
 
        </div>
 
    </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>
 
        </fieldset>
 
    </form>
 
    
 
{% endblock %}
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>
 
            {% endif %}
 
            {% if key == "negative" %}
 
                <h3>Negative
 
                <small>proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and at least one &minus;1 and no +1s</small></h3>
 
            {% endif %}
 
            {% if key == "indifferent" %}
 
                <h3>Indifferent
 
                <small>proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and neither a +1 or a &minus;1</small></h3>
 
            {% endif %}
 
            {% if key == "controversial" %}
 
                <h3>Controversial
 
                <small>proposals with at least {{ vote_threshold }} vote{{ vote_threshold|pluralize }} and both a +1 and &minus;1</small></h3>
 
            {% endif %}
 
            {% if key == "too_few" %}
 
                <h3>Too Few Reviews
 
                <small>proposals with fewer than {{ vote_threshold }} vote{{ vote_threshold|pluralize }}</small></h3>
 
            {% endif %}
 

	
 
            {% include "reviews/_review_table.html" %}
 

	
 
        </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>
 
    {% endif %}
 

	
 
{% endblock %}
...
 
\ No newline at end of file
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>
 
            {% endfor %}
 
        </tr>
 
    </thead>
 
    <tbody>
 
        {% for row in timetable %}
 
            <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 %}
 
            </tr>
 
        {% endfor %}
 
    </tbody>
 
</table>
...
 
\ No newline at end of file
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>
 
            {% endfor %}
 
        </tr>
 
    </thead>
 
    <tbody>
 
        {% for row in timetable %}
 
            <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 %}
 
                            {% 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 %}
 
                            {% if slot.content_override.raw %}
 
                                {{ slot.content_override.rendered|safe }}
 
                            {% else %}
 
                                {{ slot.kind.label }}
 
                            {% endif %}
 
                        {% endif %}
 
                    </td>
 
                {% endfor %}
 
                {% if forloop.last %}
 
                    <td colspan="{{ timetable.rooms|length }}"></td>
 
                {% endif %}
 
            </tr>
 
        {% endfor %}
 
    </tbody>
 
</table>
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 %}
 
        {{ form|as_bootstrap }}
 
    </div>
 
    <div class="modal-footer">
 
        <button type="submit" class="btn btn-primary">Save</button>
 
    </div>
 
</form>
...
 
\ No newline at end of file
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 %}
 

	
 
{% block body %}
 
    {% if presentation.slot %}
 
        <h4>
 
            {{ presentation.slot.day.date|date:"l" }}
 
            {{ presentation.slot.start}}&ndash;{{ presentation.slot.end }}
 
        </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>
 

	
 
    <h3>Description</h3>
 

	
 
    <div class="description">{{ presentation.description }}</div>
 

	
 
    <h3>Abstract</h3>
 

	
 
    <div class="abstract">{{ presentation.abstract|safe }}</div>
 
{% endblock %}
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 %}
 

	
 
{% block extra_head %}
 
    <style>
 
        .presentation {
 

	
 
        }
 
        .presentation h3 {
 
            line-height: 1.1em;
 
            font-weight: bold;
 
        }
 
        .presentation h4 {
 

	
 
        }
 
        .presentation p {
 
            margin-bottom: 0.5em;
 
            line-height: 1.2em;
 
        }
 
    </style>
 
{% endblock %}
 

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

	
 
{% 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 }}
 
                            in
 
                            {{ presentation.slot.rooms|join:", " }}
 
                        </h4>
 
                    {% endif %}
 
                </div>
 
            </div>
 
        {% endfor %}
 
    {% endcache %}
 
{% endblock %}
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 %}
 

	
 
{% block body %}
 
    {% box "speaker-profile" %}
 

	
 
    <form method="POST" action="" enctype="multipart/form-data">
 
        {% csrf_token %}
 
        <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 %}
 

	
 
{% block body %}
 
    {% box "speaker-profile" %}
 

	
 
    <form method="POST" action="" enctype="multipart/form-data">
 
        {% csrf_token %}
 
        <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 %}
 

	
 
{% block body %}
 
    <div class="row">
 
        <div class="span2">
 
            {% if speaker.photo %}
 
                <img src="{% thumbnail speaker.photo '128x128' %}" alt="{{ speaker.name }}" />
 
            {% 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:", " }}
 
                    </p>
 
                {% endif %}
 
            {% empty %}
 
                <p>No presentations. This page is only visible to staff until there is a presentation.<p>
 
            {% endfor %}
 
        </div>
 
    </div>
 
{% endblock %}
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 %}
 

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

	
 
{% block body %}
 

	
 
    {% box "sponsorship-apply" %}
 

	
 
    <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 %}
 

	
 
{% block body %}
 
    <h2>{{ sponsor.name }} ({{ sponsor.level }})</h2>
 

	
 
    <form enctype="multipart/form-data" method="POST" action="" class="form-horizontal">
 
        {% csrf_token %}
 
        <fieldset>
 
            {{ form|as_bootstrap }}
 
        </fieldset>
 

	
 
        <h3>{{ sponsor.level }} Sponsor Benefits</h3>
 

	
 
        {{ formset.management_form }}
 
        {{ formset.non_form_errors }}
 

	
 
        {% for form in formset.forms %}
 
            <div class="control-group">
 
                <label class="control-label">{{ form.instance.benefit }}</label>
 
                <div class="controls">
 
                    {{ form }}
 
                    <p class="help-block">{{ form.instance.benefit.description }}</p>
 
                </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>
 

	
 
                    {% for sponsor in level.sponsors %}
 
                        {% if sponsor.website_logo %}
 
                            <div class="row">
 
                                <div class="span2">
 
                                    <h2>
 
                                        <a href="{{ sponsor.external_url }}">
 
                                            <img src="{% thumbnail sponsor.website_logo '150x80' %}" alt="{{ sponsor.name }}" />
 
                                        </a>
 
                                    </h2>
 
                                </div>
 
                                <div class="span10">
 
                                    <h5>{{ sponsor.name }}</h5>
 
                                    <p><a href="{{ sponsor.external_url }}">{{ sponsor.external_url }}</a></p>
 
                                    <p>{{ sponsor.listing_text|urlize|linebreaks }}</p>
 
                                </div>
 
                            </div>
 
                        {% endif %}
 
                    {% endfor %}
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>
 
            
 
            <h1>{{ team.name }}{% if state %} <span class="label">{{ state }}</span>{% endif %}</h1>
 
            
 
            {% if team.description %}<p>{{ team.description }}</p>{% endif %}
 
            
 
            {% if state == "invited" %}<p>You have been invited to join this team. Click <b>join</b> to the right to accept.</p>{% endif %}
 
            
 
            {% if user.is_staff or state == "manager" %}
 
                {% if team.managers %}
 
                    <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 %}
 
                    <h2>Invitees</h2>
 
                    <table class="table table-striped">
 
                        {% for membership in team.invitees %}
 
                            <tr>
 
                                <td>{{ membership.user.email }}</td>
 
                            </tr>
 
                        {% endfor %}
 
                    </table>
 
                {% endif %}
 
                {% if invite_form %}
 
                    <form method="POST" action="" class="form-horizontal">
 
                        {% csrf_token %}
 
                        <legend>Invite User to Team</legend>
 
                        {{ invite_form|as_bootstrap }}
 
                        <div class="form-actions">
 
                            <input class="btn btn-primary" type="submit" value="Invite" />
 
                        </div>
 
                    </form>
0 comments (0 inline, 0 general)