add default templates
This commit is contained in:
parent
02d9fc0518
commit
67bca7473b
55 changed files with 1830 additions and 0 deletions
32
symposion/templates/boxes/box.html
Normal file
32
symposion/templates/boxes/box.html
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
{% load markitup_tags %}
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
|
{% if form %}
|
||||||
|
<div id="edit_{{ label }}" class="modal fade hide">
|
||||||
|
<form id="edit_form_{{ label }}" accept-charset="UTF-8" class="modal-form" method="POST" action="{{ form_action }}?next={{ request.path }}">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||||
|
<h3>{% trans "Editing content:" %} {{ label }}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
{% csrf_token %}
|
||||||
|
{{ form.content }}
|
||||||
|
|
||||||
|
{% markitup_editor form.content.auto_id %}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<div class="pull-left">Content is processed using <a href="http://daringfireball.net/projects/markdown/syntax" target="_blank">Markdown</a></div>
|
||||||
|
<a href="#" class="btn" data-dismiss="modal">Close</a>
|
||||||
|
<button type="submit" class="btn btn-primary">Save changes</a>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div id="content_{{ label }}" class="content-box {% if form %}editable{% endif %}">
|
||||||
|
{% if form %}
|
||||||
|
<a href="#edit_{{ label }}" data-toggle="modal" class="btn edit-toggle"><i class="icon-pencil"></i> Edit this content</a>
|
||||||
|
{% endif %}
|
||||||
|
{{ box.content|safe }}
|
||||||
|
</div>
|
24
symposion/templates/cms/page_detail.html
Normal file
24
symposion/templates/cms/page_detail.html
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{% extends "site_base.html" %}
|
||||||
|
|
||||||
|
{% 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>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
<h2>{{ page.title }}</h2>
|
||||||
|
|
||||||
|
<div class="page-content">
|
||||||
|
{{ page.body }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock %}
|
22
symposion/templates/cms/page_edit.html
Normal file
22
symposion/templates/cms/page_edit.html
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{% extends "site_base.html" %}
|
||||||
|
|
||||||
|
{% load sitetree %}
|
||||||
|
{% load i18n %}
|
||||||
|
{% load bootstrap_tags %}
|
||||||
|
|
||||||
|
{% block body_class %}cms-page{% endblock %}
|
||||||
|
|
||||||
|
{% block head_title %}Create Page{% endblock %}
|
||||||
|
|
||||||
|
{% block page_title %}{% trans "Edit page at:" %} {{ path }}{% endblock %}
|
||||||
|
{% block breadcrumbs %}{% sitetree_breadcrumbs from "main" %}{% endblock %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<form method="POST" action="">
|
||||||
|
{% csrf_token %}
|
||||||
|
{{ form|as_bootstrap }}
|
||||||
|
<div class="form-actions">
|
||||||
|
<input class="btn btn-primary" type="submit" value="Save" />
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
239
symposion/templates/dashboard.html
Normal file
239
symposion/templates/dashboard.html
Normal file
|
@ -0,0 +1,239 @@
|
||||||
|
{% extends "site_base.html" %}
|
||||||
|
|
||||||
|
{% 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">
|
||||||
|
<i class="icon-plus-sign"></i> Create a speaker profile
|
||||||
|
</a>
|
||||||
|
{% else %}
|
||||||
|
<a href="{% url speaker_edit %}" class="btn">
|
||||||
|
<i class="icon-pencil"></i> Edit your speaker profile
|
||||||
|
</a>
|
||||||
|
<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>
|
||||||
|
{% 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>
|
||||||
|
<th>Session type</th>
|
||||||
|
<th>Status</th>
|
||||||
|
<th>Actions</th>
|
||||||
|
</tr>
|
||||||
|
{% for proposal in associated_proposals %}
|
||||||
|
{% include "proposals/_proposal_row.html" %}
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% pending_proposals as pending_proposals %}
|
||||||
|
{% 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">
|
||||||
|
<i class="icon-plus-sign"></i> Apply to be a sponsor
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="dashboard-panel-content">
|
||||||
|
<p>
|
||||||
|
{% 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>.
|
||||||
|
{% else %}
|
||||||
|
<h4>Your Sponsorship</h4>
|
||||||
|
<ul>
|
||||||
|
{% for sponsorship in user.sponsorships.all %}
|
||||||
|
<li>
|
||||||
|
{% if sponsorship.active %}
|
||||||
|
<a href="{% url sponsor_detail sponsorship.pk %}"><b>{{ sponsorship.name }}</b></a>
|
||||||
|
({{ sponsorship.level }})
|
||||||
|
{% else %}
|
||||||
|
<b>{{ sponsorship.name }}</b>
|
||||||
|
({{ sponsorship.level }})
|
||||||
|
<span class="label label-warning">awaiting approval</span>
|
||||||
|
{% endif %}
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if review_sections %}
|
||||||
|
<div class="dashboard-panel">
|
||||||
|
<div class="dashboard-panel-header">
|
||||||
|
<i class="icon-briefcase"></i>
|
||||||
|
<h3>{% trans "Reviews" %}</h3>
|
||||||
|
</div>
|
||||||
|
{% user_reviews as user_reviews %}
|
||||||
|
<div class="dashboard-panel-content">
|
||||||
|
<h4>Review Sections</h4>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
{% for section in review_sections %}
|
||||||
|
<li><a href="{% url review_section section.section.slug %}">{{ section }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h4>Proposals you have reviewed</h4>
|
||||||
|
<table class="table table-condensed">
|
||||||
|
<thead>
|
||||||
|
<th>#</th>
|
||||||
|
<th>Speaker / Title</th>
|
||||||
|
<th>Your Vote</th>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for review in user_reviews %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ review.proposal.number }}</td>
|
||||||
|
<td>
|
||||||
|
<b>{{ review.proposal.speaker }}</b>
|
||||||
|
<br />
|
||||||
|
{{ review.proposal.title }}
|
||||||
|
</td>
|
||||||
|
<td>{{ review.vote }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
{% 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>
|
||||||
|
{% 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>
|
||||||
|
{% 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 %}
|
11
symposion/templates/emails/proposal_new_message/message.html
Normal file
11
symposion/templates/emails/proposal_new_message/message.html
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{% 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 %}
|
||||||
|
Respond online at <a href="http://{{ current_site }}{{ detail_url }}#proposal-feedback">http://{{ current_site }}{{ detail_url }}#proposal-feedback</a>
|
||||||
|
</p>
|
|
@ -0,0 +1 @@
|
||||||
|
{% load account_tags %}New message on "{{ proposal.title }}" from {% user_display message.user %}
|
6
symposion/templates/emails/speaker_addition/message.html
Normal file
6
symposion/templates/emails/speaker_addition/message.html
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<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>
|
||||||
|
</p>
|
1
symposion/templates/emails/speaker_addition/subject.txt
Normal file
1
symposion/templates/emails/speaker_addition/subject.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{{ proposal.speaker.name }} has invited you to join as a speaker on {{ proposal.title }}
|
10
symposion/templates/emails/speaker_invite/message.html
Normal file
10
symposion/templates/emails/speaker_invite/message.html
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<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>to confirm.</p>
|
||||||
|
|
||||||
|
<p>If you don't have account on the website, you will be asked to create one.</p>
|
1
symposion/templates/emails/speaker_invite/subject.txt
Normal file
1
symposion/templates/emails/speaker_invite/subject.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{{ proposal.speaker.name }} has invited you to join as a speaker on {{ proposal.title }}
|
|
@ -0,0 +1,8 @@
|
||||||
|
<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>to confirm and fill out your speaker profile.</p>
|
|
@ -0,0 +1 @@
|
||||||
|
{{ proposal.speaker.name }} has invited you to join as a speaker on {{ proposal.title }}
|
9
symposion/templates/emails/sponsor_signup/message.html
Normal file
9
symposion/templates/emails/sponsor_signup/message.html
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<p>{{ sponsor.name }} has applied to be a sponsor.</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><b>Applicant</b>: {{ sponsor.applicant }}</li>
|
||||||
|
<li><b>Sponsor Name</b>: {{ sponsor.name }}</li>
|
||||||
|
<li><b>Sponsor Contact</b>: {{ sponsor.contact_name }}</li>
|
||||||
|
<li><b>Sponsor Contact Email</b>: {{ sponsor.contact_email }}</li>
|
||||||
|
<li><b>Sponsorship Level</b>: {{ sponsor.level }}</li>
|
||||||
|
</ul>
|
1
symposion/templates/emails/sponsor_signup/subject.txt
Normal file
1
symposion/templates/emails/sponsor_signup/subject.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
New Sponsor Application
|
12
symposion/templates/emails/teams_user_applied/message.html
Normal file
12
symposion/templates/emails/teams_user_applied/message.html
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{% load i18n account_tags %}
|
||||||
|
{% user_display user as username %}
|
||||||
|
{% blocktrans with team_name=team team_url=team.get_absolute_url site_name=current_site.name site_url=current_site %}
|
||||||
|
<p>
|
||||||
|
User "{{ username }}" has applied to join <b>{{ team_name }}</b> on {{ site_name }}.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
To accept this application and see any other pending applications, visit the following url:
|
||||||
|
<a href="http://{{ site_url }}{{ team_url }}">http://{{ site_url }}{{ team_url }}</a>
|
||||||
|
</p>
|
||||||
|
{% endblocktrans %}
|
|
@ -0,0 +1 @@
|
||||||
|
{% load i18n account_tags %}{% user_display user as username %}{% blocktrans %}{{ username}} has applied to to join "{{ team }}"{% endblocktrans %}
|
12
symposion/templates/emails/teams_user_invited/message.html
Normal file
12
symposion/templates/emails/teams_user_invited/message.html
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{% load i18n account_tags %}
|
||||||
|
|
||||||
|
{% blocktrans with team_name=team team_url=team.get_absolute_url site_name=current_site.name site_url=current_site %}
|
||||||
|
<p>
|
||||||
|
You have been invited to join <b>{{ team_name }}</b> on {{ site_name }}.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
To accept this invitation, visit the following url:
|
||||||
|
<a href="http://{{ site_url }}{{ team_url }}">http://{{ site_url }}{{ team_url }}</a>
|
||||||
|
</p>
|
||||||
|
{% endblocktrans %}
|
|
@ -0,0 +1 @@
|
||||||
|
{% load i18n %}{% blocktrans %}You have been invited to join "{{ team }}"{% endblocktrans %}
|
38
symposion/templates/proposals/_pending_proposal_row.html
Normal file
38
symposion/templates/proposals/_pending_proposal_row.html
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<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.accepted %}
|
||||||
|
<span class="label label-success">Accepted</span>
|
||||||
|
{% else %}
|
||||||
|
<span class="label">Submitted</span>
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
<span class="label">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="#">
|
||||||
|
Choose Response
|
||||||
|
<span class="caret"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="{% url proposal_pending_join proposal.id %}">Accept invitation</a></li>
|
||||||
|
<li><a href="{% url proposal_pending_decline proposal.id %}">Decline invitation</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
</tr>
|
41
symposion/templates/proposals/_proposal_fields.html
Normal file
41
symposion/templates/proposals/_proposal_fields.html
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
|
<dl class="dl-horizontal">
|
||||||
|
<dt>{% trans "Submitted by" %}</dt>
|
||||||
|
<dd>{{ proposal.speaker }}</dd>
|
||||||
|
|
||||||
|
<dt>{% trans "Track" %}</dt>
|
||||||
|
<dd>{{ proposal.track }} </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> >{{ speaker.email }}<
|
||||||
|
{% else %}
|
||||||
|
{{ speaker.email }} ({% trans "Invitation Sent" %})
|
||||||
|
{% endif %}
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</dd>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<dt>{% trans "Description" %}</dt>
|
||||||
|
<dd>{{ proposal.description }} </dd>
|
||||||
|
|
||||||
|
<dt>{% trans "Abstract" %}</dt>
|
||||||
|
<dd>{{ proposal.abstract|safe }} </dd>
|
||||||
|
|
||||||
|
<dt>{% trans "Notes" %}</dt>
|
||||||
|
<dd>{{ proposal.additional_notes|safe }} </dd>
|
||||||
|
|
||||||
|
<dt>{% trans "Audience Level" %}</dt>
|
||||||
|
<dd>{{ proposal.get_audience_level_display }} </dd>
|
||||||
|
|
||||||
|
{% if request.user == proposal.speaker.user %}
|
||||||
|
<dt>{% trans "Private Notes" %}</dt>
|
||||||
|
<dd>{{ proposal.additional_notes }} </dd>
|
||||||
|
{% endif %}
|
||||||
|
</dl>
|
32
symposion/templates/proposals/_proposal_row.html
Normal file
32
symposion/templates/proposals/_proposal_row.html
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<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.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>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
</tr>
|
5
symposion/templates/proposals/base.html
Normal file
5
symposion/templates/proposals/base.html
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{% extends "site_base_onecolumn.html" %}
|
||||||
|
|
||||||
|
{% block body_outer %}
|
||||||
|
{% block body %}{% endblock %}
|
||||||
|
{% endblock %}
|
17
symposion/templates/proposals/document_create.html
Normal file
17
symposion/templates/proposals/document_create.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{% extends "proposals/base.html" %}
|
||||||
|
|
||||||
|
{% load bootstrap_tags %}
|
||||||
|
|
||||||
|
{% block page_title %}Upload Document to '{{ proposal.title }}'{% endblock %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<form method="POST" action="" enctype="multipart/form-data" class="form-horizontal">
|
||||||
|
{% csrf_token %}
|
||||||
|
<fieldset>
|
||||||
|
{{ form|as_bootstrap }}
|
||||||
|
</fieldset>
|
||||||
|
<div class="form-actions">
|
||||||
|
<input class="btn btn-primary" type="submit" value="Upload" />
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
16
symposion/templates/proposals/proposal_cancel.html
Normal file
16
symposion/templates/proposals/proposal_cancel.html
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{% extends "proposals/base.html" %}
|
||||||
|
|
||||||
|
{% load bootstrap_tags %}
|
||||||
|
|
||||||
|
{% block head_title %}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 %}">No, keep it for now</a>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
119
symposion/templates/proposals/proposal_detail.html
Normal file
119
symposion/templates/proposals/proposal_detail.html
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
{% extends "site_base.html" %}
|
||||||
|
|
||||||
|
{% 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">
|
||||||
|
{% trans "Edit this proposal" %}
|
||||||
|
</a>
|
||||||
|
<a href="{% url proposal_cancel proposal.pk %}" class="btn">
|
||||||
|
{% trans "Cancel this proposal" %}
|
||||||
|
</a>
|
||||||
|
{% else %}
|
||||||
|
<a href="{% url proposal_leave proposal.pk %}" class="btn">
|
||||||
|
{% trans "Remove me from this proposal" %}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
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>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 %}">
|
||||||
|
{% csrf_token %}
|
||||||
|
<button type="submit" class="btn btn-mini">delete</button>
|
||||||
|
</form>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
{% else %}
|
||||||
|
<p>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> Add Document</a>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if message_form %}
|
||||||
|
<div class="tab-pane" id="proposal-feedback">
|
||||||
|
|
||||||
|
<h3>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 user %}</b> {{ message.submitted_at|timesince }} ago</div>
|
||||||
|
</div>
|
||||||
|
<div class="clear"></div>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
<h3>Leave a Message</h3>
|
||||||
|
|
||||||
|
<p>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 }}
|
||||||
|
</fieldset>
|
||||||
|
<div class="actions">
|
||||||
|
<button type="submit" name="message_submit" class="btn primary">Submit</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block extra_script %}
|
||||||
|
<script src="{{ STATIC_URL }}symposion/js/jquery.history.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
var History = window.History;
|
||||||
|
|
||||||
|
$(window).bind("anchorchange", function() {
|
||||||
|
$(".nav-tabs a[href='" + location.hash + "']").click();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#.nav-tabs a[data-toggle="tab"]').on('shown', function (e) {
|
||||||
|
if (History.enabled) {
|
||||||
|
History.pushState(null, null, $(e.target).attr("href"));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{% endblock extra_script %}
|
23
symposion/templates/proposals/proposal_edit.html
Normal file
23
symposion/templates/proposals/proposal_edit.html
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{% extends "site_base.html" %}
|
||||||
|
|
||||||
|
{% 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>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
37
symposion/templates/proposals/proposal_speaker_manage.html
Normal file
37
symposion/templates/proposals/proposal_speaker_manage.html
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{% extends "proposals/base.html" %}
|
||||||
|
|
||||||
|
{% load bootstrap_tags %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<h1>Proposal: {{ proposal.title }}</h1>
|
||||||
|
|
||||||
|
<p><a href="{% url proposal_edit proposal.pk %}">Edit proposal</a></p>
|
||||||
|
|
||||||
|
<h2>Current Speakers</h2>
|
||||||
|
|
||||||
|
{% for speaker in speakers %}
|
||||||
|
{% if speaker.user %}
|
||||||
|
<p><b>{{ speaker.name }}</b> — {{ speaker.email }}</p>
|
||||||
|
{% else %}
|
||||||
|
<p>{{ speaker.email }} — pending invitation</p>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
<h2>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 %}
|
||||||
|
|
||||||
|
{% block extra_body %}
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
$("#id_email").focus();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
22
symposion/templates/proposals/proposal_submit.html
Normal file
22
symposion/templates/proposals/proposal_submit.html
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{% extends "proposals/base.html" %}
|
||||||
|
|
||||||
|
{% 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>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% else %}
|
||||||
|
<p>Proposals are not currently open for submission.</p>
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
27
symposion/templates/proposals/proposal_submit_kind.html
Normal file
27
symposion/templates/proposals/proposal_submit_kind.html
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{% extends "proposals/base.html" %}
|
||||||
|
|
||||||
|
{% load bootstrap_tags %}
|
||||||
|
{% load boxes_tags %}
|
||||||
|
{% load markitup_tags %}
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
|
{% block page_title %}Submit a Proposal for a {{ kind.name }}{% endblock %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
{% box "example_proposal" %}
|
||||||
|
|
||||||
|
<form method="POST" action="" enctype="multipart/form-data" class="form-horizontal">
|
||||||
|
{% csrf_token %}
|
||||||
|
<fieldset>
|
||||||
|
{{ form|as_bootstrap }}
|
||||||
|
</fieldset>
|
||||||
|
<div class="form-actions">
|
||||||
|
<p>
|
||||||
|
You will be able to edit your proposal after it has been submitted. The program committee may ask questions, provide feedback, and even suggest changes to your proposal as part of the review processes.
|
||||||
|
</p>
|
||||||
|
<input class="btn btn-primary" type="submit" name="finish" value="Save" />
|
||||||
|
<!-- <span style="float: right; padding: 4px 6px">or</span> -->
|
||||||
|
<input class="btn" type="submit" name="add-speakers" value="Save and Add Additional Speakers" />
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
35
symposion/templates/reviews/_review_table.html
Normal file
35
symposion/templates/reviews/_review_table.html
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
{% 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>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody>
|
||||||
|
{% for proposal in proposals %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ proposal.number }}</td>
|
||||||
|
<td>
|
||||||
|
<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>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
10
symposion/templates/reviews/access_not_permitted.html
Normal file
10
symposion/templates/reviews/access_not_permitted.html
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{% extends "reviews/base.html" %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<h1>Access Not Permitted</h1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Sorry, you do not have permission to access this page. If you
|
||||||
|
believe this is a bug, please contact us immediately.
|
||||||
|
</p>
|
||||||
|
{% endblock %}
|
218
symposion/templates/reviews/base.html
Normal file
218
symposion/templates/reviews/base.html
Normal file
|
@ -0,0 +1,218 @@
|
||||||
|
{% extends "site_base.html" %}
|
||||||
|
|
||||||
|
{% 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;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.table {
|
||||||
|
clear: both;
|
||||||
|
margin-bottom: 6px !important;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.table thead .sorting,
|
||||||
|
table.table thead .sorting_asc,
|
||||||
|
table.table thead .sorting_desc,
|
||||||
|
table.table thead .sorting_asc_disabled,
|
||||||
|
table.table thead .sorting_desc_disabled {
|
||||||
|
cursor: pointer;
|
||||||
|
*cursor: hand;
|
||||||
|
}
|
||||||
|
|
||||||
|
{% comment %}
|
||||||
|
table.table thead .sorting { background: url('{{ STATIC_URL }}datatables/images/sort_both.png') no-repeat center right; }
|
||||||
|
table.table thead .sorting_asc { background: url('{{ STATIC_URL }}datatables/images/sort_asc.png') no-repeat center right; }
|
||||||
|
table.table thead .sorting_desc { background: url('{{ STATIC_URL }}datatables/images/sort_desc.png') no-repeat center right; }
|
||||||
|
|
||||||
|
table.table thead .sorting_asc_disabled { background: url('{{ STATIC_URL }}datatables/images/sort_asc_disabled.png') no-repeat center right; }
|
||||||
|
table.table thead .sorting_desc_disabled { background: url('{{ STATIC_URL }}datatables/images/sort_desc_disabled.png') no-repeat center right; }
|
||||||
|
{% endcomment %}
|
||||||
|
|
||||||
|
table.dataTable th:active {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block body_class %}reviews{% endblock %}
|
||||||
|
|
||||||
|
{% block body_base %}
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
{% include "_messages.html" %}
|
||||||
|
|
||||||
|
{% block breadcrumbs %}
|
||||||
|
{% sitetree_breadcrumbs from "main" %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
<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 %}">
|
||||||
|
{% trans "All Reviews" %}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% comment %}
|
||||||
|
<li>
|
||||||
|
<a href="{% url review_section_assignments section.section.slug %}">
|
||||||
|
{% trans "Your Assignments" %}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endcomment %}
|
||||||
|
<li>
|
||||||
|
<a href="{% url review_status section.section.slug %}">
|
||||||
|
{% trans "Voting Status" %}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endblock %}
|
||||||
|
</div>
|
||||||
|
<div class="span10">
|
||||||
|
{% block body %}
|
||||||
|
{% endblock %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block extra_script %}
|
||||||
|
<script src="{{ STATIC_URL }}datatables/js/jquery.dataTables.min.js" type="text/javascript"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
/* Default class modification */
|
||||||
|
$.extend( $.fn.dataTableExt.oStdClasses, {
|
||||||
|
"sWrapper": "dataTables_wrapper form-inline"
|
||||||
|
} );
|
||||||
|
|
||||||
|
/* API method to get paging information */
|
||||||
|
$.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings )
|
||||||
|
{
|
||||||
|
return {
|
||||||
|
"iStart": oSettings._iDisplayStart,
|
||||||
|
"iEnd": oSettings.fnDisplayEnd(),
|
||||||
|
"iLength": oSettings._iDisplayLength,
|
||||||
|
"iTotal": oSettings.fnRecordsTotal(),
|
||||||
|
"iFilteredTotal": oSettings.fnRecordsDisplay(),
|
||||||
|
"iPage": Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ),
|
||||||
|
"iTotalPages": Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength )
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Bootstrap style pagination control */
|
||||||
|
$.extend( $.fn.dataTableExt.oPagination, {
|
||||||
|
"bootstrap": {
|
||||||
|
"fnInit": function( oSettings, nPaging, fnDraw ) {
|
||||||
|
var oLang = oSettings.oLanguage.oPaginate;
|
||||||
|
var fnClickHandler = function ( e ) {
|
||||||
|
e.preventDefault();
|
||||||
|
if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) {
|
||||||
|
fnDraw( oSettings );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$(nPaging).addClass('pagination').append(
|
||||||
|
'<ul>'+
|
||||||
|
'<li class="prev disabled"><a href="#">← '+oLang.sPrevious+'</a></li>'+
|
||||||
|
'<li class="next disabled"><a href="#">'+oLang.sNext+' → </a></li>'+
|
||||||
|
'</ul>'
|
||||||
|
);
|
||||||
|
var els = $('a', nPaging);
|
||||||
|
$(els[0]).bind( 'click.DT', { action: "previous" }, fnClickHandler );
|
||||||
|
$(els[1]).bind( 'click.DT', { action: "next" }, fnClickHandler );
|
||||||
|
},
|
||||||
|
|
||||||
|
"fnUpdate": function ( oSettings, fnDraw ) {
|
||||||
|
var iListLength = 5;
|
||||||
|
var oPaging = oSettings.oInstance.fnPagingInfo();
|
||||||
|
var an = oSettings.aanFeatures.p;
|
||||||
|
var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2);
|
||||||
|
|
||||||
|
if ( oPaging.iTotalPages < iListLength) {
|
||||||
|
iStart = 1;
|
||||||
|
iEnd = oPaging.iTotalPages;
|
||||||
|
}
|
||||||
|
else if ( oPaging.iPage <= iHalf ) {
|
||||||
|
iStart = 1;
|
||||||
|
iEnd = iListLength;
|
||||||
|
} else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) {
|
||||||
|
iStart = oPaging.iTotalPages - iListLength + 1;
|
||||||
|
iEnd = oPaging.iTotalPages;
|
||||||
|
} else {
|
||||||
|
iStart = oPaging.iPage - iHalf + 1;
|
||||||
|
iEnd = iStart + iListLength - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( i=0, iLen=an.length ; i<iLen ; i++ ) {
|
||||||
|
// Remove the middle elements
|
||||||
|
$('li:gt(0)', an[i]).filter(':not(:last)').remove();
|
||||||
|
|
||||||
|
// Add the new list items and their event handlers
|
||||||
|
for ( j=iStart ; j<=iEnd ; j++ ) {
|
||||||
|
sClass = (j==oPaging.iPage+1) ? 'class="active"' : '';
|
||||||
|
$('<li '+sClass+'><a href="#">'+j+'</a></li>')
|
||||||
|
.insertBefore( $('li:last', an[i])[0] )
|
||||||
|
.bind('click', function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength;
|
||||||
|
fnDraw( oSettings );
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add / remove disabled classes from the static elements
|
||||||
|
if ( oPaging.iPage === 0 ) {
|
||||||
|
$('li:first', an[i]).addClass('disabled');
|
||||||
|
} else {
|
||||||
|
$('li:first', an[i]).removeClass('disabled');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) {
|
||||||
|
$('li:last', an[i]).addClass('disabled');
|
||||||
|
} else {
|
||||||
|
$('li:last', an[i]).removeClass('disabled');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
$("table.table-reviews").dataTable({
|
||||||
|
"sDom": "<'row'<'span5'l><'span5'f>r>t<'row'<'span5'i><'span5'p>>",
|
||||||
|
"sPaginationType": "bootstrap",
|
||||||
|
"bStateSave": true
|
||||||
|
});
|
||||||
|
$.extend($.fn.dataTableExt.oStdClasses, {
|
||||||
|
"sWrapper": "dataTables_wrapper form-inline"
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
56
symposion/templates/reviews/review_admin.html
Normal file
56
symposion/templates/reviews/review_admin.html
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
{% extends "reviews/base.html" %}
|
||||||
|
|
||||||
|
{% 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>
|
||||||
|
−0
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
−1
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
{% for reviewer in reviewers %}
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<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 %}
|
32
symposion/templates/reviews/review_assignment.html
Normal file
32
symposion/templates/reviews/review_assignment.html
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
{% extends "reviews/base.html" %}
|
||||||
|
|
||||||
|
{% 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 %}">
|
||||||
|
{{ assignment.proposal.title }}
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<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 %}
|
17
symposion/templates/reviews/review_bulk_accept.html
Normal file
17
symposion/templates/reviews/review_bulk_accept.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{% extends "reviews/base.html" %}
|
||||||
|
|
||||||
|
{% load uni_form_tags %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
|
||||||
|
<h1>Bulk Accept</h1>
|
||||||
|
<form action="" method="POST" class="uniForm" accept-charset="utf-8">
|
||||||
|
{% csrf_token %}
|
||||||
|
<fieldset>
|
||||||
|
{{ form|as_uni_form }}
|
||||||
|
<div class="form_block">
|
||||||
|
<input type="submit" name="submit" value="submit" />
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
2
symposion/templates/reviews/review_comment.html
Normal file
2
symposion/templates/reviews/review_comment.html
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
{{ proposal }}: proposal obj
|
||||||
|
{{ form }}: comment form obj
|
167
symposion/templates/reviews/review_detail.html
Normal file
167
symposion/templates/reviews/review_detail.html
Normal file
|
@ -0,0 +1,167 @@
|
||||||
|
{% extends "reviews/base.html" %}
|
||||||
|
|
||||||
|
{% 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 %}
|
||||||
|
{% comment %}
|
||||||
|
<div class="pull-right">
|
||||||
|
<form class="result-form form-inline" method="POST" action="">
|
||||||
|
{% csrf_token %}
|
||||||
|
{% if proposal.result.get_accepted_display == "accepted" %}
|
||||||
|
<input type="submit" name="result_submit" value="reject" class="btn btn-danger" />
|
||||||
|
<input type="submit" name="result_submit" value="undecide" class="btn" />
|
||||||
|
{% else %}
|
||||||
|
{% if proposal.result.get_accepted_display == "rejected" %}
|
||||||
|
<input type="submit" name="result_submit" value="accept" class="btn btn-success" />
|
||||||
|
<input type="submit" name="result_submit" value="undecide" class="btn" />
|
||||||
|
{% else %}
|
||||||
|
<input type="submit" name="result_submit" value="accept" class="btn btn-success" />
|
||||||
|
<input type="submit" name="result_submit" value="reject" class="btn btn-danger" />
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
{% endcomment %}
|
||||||
|
|
||||||
|
<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>
|
||||||
|
<li><a href="#proposal-reviews" data-toggle="tab">{% trans "Reviews" %} <span class="badge">{{ reviews|length }}</span></a></li>
|
||||||
|
<li><a href="#proposal-feedback" data-toggle="tab">{% trans "Speaker Feedback" %} <span class="badge">{{ proposal.messages.all|length }}</span></a></li>
|
||||||
|
</ul>
|
||||||
|
<div class="tab-content">
|
||||||
|
<div class="tab-pane active" id="proposal-detail">
|
||||||
|
{% include "proposals/_proposal_fields.html" %}
|
||||||
|
</div>
|
||||||
|
<div class="tab-pane" id="proposal-reviews">
|
||||||
|
|
||||||
|
<h4>{% trans "Current Results" %}</h4>
|
||||||
|
<table class="table table-striped">
|
||||||
|
<thead>
|
||||||
|
<th>+1 votes</th>
|
||||||
|
<th>+0 votes</th>
|
||||||
|
<th>-0 votes</th>
|
||||||
|
<th>-1 votes</th>
|
||||||
|
<th>{% trans "Total Responses" %}
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>{{ proposal.plus_one }}</td>
|
||||||
|
<td>{{ proposal.plus_zero }}</td>
|
||||||
|
<td>{{ proposal.minus_zero }}</td>
|
||||||
|
<td>{{ proposal.minus_one }}</td>
|
||||||
|
<td>{{ proposal.total_votes }}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<hr />
|
||||||
|
|
||||||
|
{% 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>
|
||||||
|
<div class="review-content">
|
||||||
|
<b>
|
||||||
|
{% if review.user.speaker_profile %}
|
||||||
|
{{ review.user.speaker_profile }}
|
||||||
|
{% else %}
|
||||||
|
{% user_display review.user %}
|
||||||
|
{% endif %}</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">
|
||||||
|
<form action="" method="POST"accept-charset="utf-8">
|
||||||
|
<legend>{% trans "Send a message" %}</legend>
|
||||||
|
<p>
|
||||||
|
{% blocktrans %}
|
||||||
|
If you'd like to communicate with the submitter, use the following form and he or she will be
|
||||||
|
notified and given the opportunity to respond.
|
||||||
|
{% endblocktrans %}
|
||||||
|
</p>
|
||||||
|
{% csrf_token %}
|
||||||
|
{{ message_form|as_bootstrap }}
|
||||||
|
<div class="form-actions">
|
||||||
|
<input type="submit" class="btn btn-primary" name="message_submit" value="Send Message" />
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
{% if review_messages %}
|
||||||
|
<hr />
|
||||||
|
|
||||||
|
<h3>{% trans "Conversation with the submitter" %}</h3>
|
||||||
|
{% for message in review_messages %}
|
||||||
|
<div class="comment-box">
|
||||||
|
<div class="commment-content">
|
||||||
|
<b>
|
||||||
|
{% if message.user.speaker_profile %}
|
||||||
|
{{ message.user.speaker_profile }}
|
||||||
|
{% else %}
|
||||||
|
{% user_display message.user %}
|
||||||
|
{% endif %}</b> {{ message.submitted_at|timesince }} ago <br />
|
||||||
|
{{ message.message|safe }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block extra_script %}
|
||||||
|
<script src="{{ STATIC_URL }}symposion/js/jquery.history.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function() {
|
||||||
|
var History = window.History;
|
||||||
|
|
||||||
|
$(window).bind("anchorchange", function() {
|
||||||
|
$(".nav-tabs a[href='" + location.hash + "']").click();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#.nav-tabs a[data-toggle="tab"]').on('shown', function (e) {
|
||||||
|
if (History.enabled) {
|
||||||
|
History.pushState(null, null, $(e.target).attr("href"));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{% endblock %}
|
5
symposion/templates/reviews/review_list.html
Normal file
5
symposion/templates/reviews/review_list.html
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{% extends "reviews/base.html" %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
{% include "reviews/_review_table.html" %}
|
||||||
|
{% endblock %}
|
80
symposion/templates/reviews/review_review.html
Normal file
80
symposion/templates/reviews/review_review.html
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
{% extends "site_base.html" %}
|
||||||
|
|
||||||
|
{% 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>
|
||||||
|
<div class="abstract">
|
||||||
|
{{ proposal.abstract_html|safe }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p><b>Audience level</b>: {{ proposal.get_audience_level_display }}</p>
|
||||||
|
|
||||||
|
<p><b>Submitting speaker</b>: {{ proposal.speaker }}</p> {# @@@ bio? #}
|
||||||
|
|
||||||
|
{% 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> — {{ speaker.email }}</li>
|
||||||
|
{% else %}
|
||||||
|
<li>{{ speaker.email }} — 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">
|
||||||
|
{% 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">
|
||||||
|
{% csrf_token %}
|
||||||
|
<fieldset>
|
||||||
|
{{ comment_form|as_uni_form }}
|
||||||
|
<div class="form_block">
|
||||||
|
<input type="submit" value="Submit" />
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{% endblock %}
|
82
symposion/templates/reviews/review_stats.html
Normal file
82
symposion/templates/reviews/review_stats.html
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
{% extends "reviews/base.html" %}
|
||||||
|
|
||||||
|
{% 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>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{% if key == "positive" %}
|
||||||
|
<h3>Positive
|
||||||
|
<small>proposals with at least 3 votes and at least one +1 and no −1s</small></h3>
|
||||||
|
{% endif %}
|
||||||
|
{% if key == "negative" %}
|
||||||
|
<h3>Negative
|
||||||
|
<small>proposals with at least 3 votes and at least one −1 and no +1s</small></h3>
|
||||||
|
{% endif %}
|
||||||
|
{% if key == "indifferent" %}
|
||||||
|
<h3>Indifferent
|
||||||
|
<small>proposals with at least 3 votes and neither a +1 or a −1</small></h3>
|
||||||
|
{% endif %}
|
||||||
|
{% if key == "controversial" %}
|
||||||
|
<h3>Controversial
|
||||||
|
<small>proposals with at least 3 votes and both a +1 and −1</small></h3>
|
||||||
|
{% endif %}
|
||||||
|
{% if key == "too_few" %}
|
||||||
|
<h3>Too Few Reviews
|
||||||
|
<small>proposals with fewer than 3 votes</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>
|
||||||
|
<span class="badge">{{ proposals.positive.count }}</span>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
proposals with at least 3 votes and at least one +1 and no −1s
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a href="{% url review_status section_slug "negative" %}">Negative</a>
|
||||||
|
<span class="badge">{{ proposals.negative.count }}</span>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
proposals with at least 3 votes and at least one −1 and no +1s
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a href="{% url review_status section_slug "indifferent" %}">Indifferent</a>
|
||||||
|
<span class="badge">{{ proposals.indifferent.count }}</span>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
proposals with at least 3 votes and neither a +1 or a −1
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a href="{% url review_status section_slug "controversial" %}">Controversial</a>
|
||||||
|
<span class="badge">{{ proposals.controversial.count }}</span>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
proposals with at least 3 votes and both a +1 and −1
|
||||||
|
</dd>
|
||||||
|
<dt>
|
||||||
|
<a href="{% url review_status section_slug "too_few" %}">Too Few Reviews</a>
|
||||||
|
<span class="badge">{{ proposals.too_few.count }}</span>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
proposals with fewer than 3 votes
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% endblock %}
|
17
symposion/templates/sitetree/breadcrumbs.html
Normal file
17
symposion/templates/sitetree/breadcrumbs.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{% load sitetree %}
|
||||||
|
{% if sitetree_items %}
|
||||||
|
<ul class="breadcrumb">
|
||||||
|
{% for item in sitetree_items %}
|
||||||
|
{% if not forloop.last %}
|
||||||
|
<li>
|
||||||
|
<a href="{% sitetree_url for item %}" {% if item.hint %}title="{{ item.hint }}"{% endif %}>{{ item.title_resolved }}</a>
|
||||||
|
<span class="divider">/</span>
|
||||||
|
</li>
|
||||||
|
{% else %}
|
||||||
|
<li class="active">{{ item.title_resolved }}</li>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% else %}
|
||||||
|
|
||||||
|
{% endif %}
|
16
symposion/templates/sitetree/menu.html
Normal file
16
symposion/templates/sitetree/menu.html
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{% load sitetree %}
|
||||||
|
<ul class="nav">
|
||||||
|
{% for item in sitetree_items %}
|
||||||
|
<li class="{{ item.is_current|yesno:"active ," }}{% if item.has_children %}dropdown{% endif %}">
|
||||||
|
{% if item.has_children %}
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" title="{{ item.hint|default:"" }}">
|
||||||
|
{{ item.title_resolved }}
|
||||||
|
<b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
{% sitetree_children of item for menu template "sitetree/submenu.html" %}
|
||||||
|
{% else %}
|
||||||
|
<a href="{% sitetree_url for item %}" title="{{ item.hint|default:"" }}">{{ item.title_resolved }}</a>
|
||||||
|
{% endif %}
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
8
symposion/templates/sitetree/submenu.html
Normal file
8
symposion/templates/sitetree/submenu.html
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{% load sitetree %}
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
{% for item in sitetree_items %}
|
||||||
|
<li>
|
||||||
|
<a href="{% sitetree_url for item %}" title="{{ item.hint|default:"" }}">{{ item.title_resolved }}</a>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
15
symposion/templates/sitetree/tree.html
Normal file
15
symposion/templates/sitetree/tree.html
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{% load sitetree %}
|
||||||
|
{% if sitetree_items %}
|
||||||
|
<ul>
|
||||||
|
{% for item in sitetree_items %}
|
||||||
|
{% if item.insitetree %}
|
||||||
|
<li>
|
||||||
|
<a href="{% sitetree_url for item %}" {% if item.hint %}title="{{ item.hint }}"{% endif %}>{{ item.title_resolved }}</a>
|
||||||
|
{% if item.has_children %}
|
||||||
|
{% sitetree_children of item for sitetree template "sitetree/tree.html" %}
|
||||||
|
{% endif %}
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endif %}
|
1
symposion/templates/speakers/base.html
Normal file
1
symposion/templates/speakers/base.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{% extends "site_base_onecolumn.html" %}
|
23
symposion/templates/speakers/speaker_create.html
Normal file
23
symposion/templates/speakers/speaker_create.html
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{% extends "speakers/base.html" %}
|
||||||
|
|
||||||
|
{% 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>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
23
symposion/templates/speakers/speaker_edit.html
Normal file
23
symposion/templates/speakers/speaker_edit.html
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{% extends "speakers/base.html" %}
|
||||||
|
|
||||||
|
{% 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>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
11
symposion/templates/sponsorship/_horizontal_by_level.html
Normal file
11
symposion/templates/sponsorship/_horizontal_by_level.html
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{% load sponsorship_tags %}
|
||||||
|
{% sponsor_levels as levels %}
|
||||||
|
<div class="sponsor-list">
|
||||||
|
{% for level in levels %}
|
||||||
|
<h3>{{ level.name }}</h3>
|
||||||
|
|
||||||
|
{% for sponsor in level.sponsors %}
|
||||||
|
{% include "sponsorship/_sponsor_link.html" with sponsor=sponsor %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
10
symposion/templates/sponsorship/_sponsor_link.html
Normal file
10
symposion/templates/sponsorship/_sponsor_link.html
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{% load thumbnail %}
|
||||||
|
{% spaceless %}
|
||||||
|
<a href="{{ sponsor.external_url }}">
|
||||||
|
{% if dimensions %}
|
||||||
|
<img src="{% thumbnail sponsor.logo dimensions %}" alt="{{ sponsor.name }}" />
|
||||||
|
{% else %}
|
||||||
|
<img src="{% thumbnail sponsor.logo '150x150' %}" alt="{{ sponsor.name }}" />
|
||||||
|
{% endif %}
|
||||||
|
</a>
|
||||||
|
{% endspaceless %}
|
13
symposion/templates/sponsorship/_vertical_by_level.html
Normal file
13
symposion/templates/sponsorship/_vertical_by_level.html
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{% load sponsorship_tags %}
|
||||||
|
{% sponsor_levels as levels %}
|
||||||
|
<div class="sponsor-list">
|
||||||
|
{% for level in levels %}
|
||||||
|
<h3>{{ level.name }}</h3>
|
||||||
|
|
||||||
|
{% for sponsor in level.sponsors %}
|
||||||
|
<div>
|
||||||
|
{% include "sponsorship/_sponsor_link.html" with sponsor=sponsor %}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
7
symposion/templates/sponsorship/_wall.html
Normal file
7
symposion/templates/sponsorship/_wall.html
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{% load sponsorship_tags %}
|
||||||
|
{% sponsors as sponsors %}
|
||||||
|
<div class="sponsor-wall">
|
||||||
|
{% for sponsor in sponsors %}
|
||||||
|
{% include "sponsorship/_sponsor_link.html" with sponsor=sponsor %}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
28
symposion/templates/sponsorship/apply.html
Normal file
28
symposion/templates/sponsorship/apply.html
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{% extends "site_base.html" %}
|
||||||
|
|
||||||
|
{% load bootstrap_tags %}
|
||||||
|
{% load i18n %}
|
||||||
|
{% load boxes_tags %}
|
||||||
|
|
||||||
|
{% block head_title %}{% trans "Apply to be a Sponsor" %}{% endblock %}
|
||||||
|
|
||||||
|
{% block body_class %}sponsors{% 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>
|
||||||
|
<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>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{% endblock %}
|
40
symposion/templates/sponsorship/detail.html
Normal file
40
symposion/templates/sponsorship/detail.html
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
{% extends "site_base.html" %}
|
||||||
|
|
||||||
|
{% 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>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
42
symposion/templates/sponsorship/list.html
Normal file
42
symposion/templates/sponsorship/list.html
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
{% extends "site_base.html" %}
|
||||||
|
|
||||||
|
{% load sponsorship_tags %}
|
||||||
|
{% load thumbnail %}
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
|
{% block head_title %}{% trans "About Our Sponsors" %}{% endblock %}
|
||||||
|
|
||||||
|
{% block body_class %}sponsors{% 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>
|
||||||
|
|
||||||
|
{% sponsor_levels as levels %}
|
||||||
|
{% for level in levels %}
|
||||||
|
{% if level.sponsors %}
|
||||||
|
<h3>{{ level.name }}</h3>
|
||||||
|
|
||||||
|
{% for sponsor in level.sponsors %}
|
||||||
|
<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>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
103
symposion/templates/teams/team_detail.html
Normal file
103
symposion/templates/teams/team_detail.html
Normal file
|
@ -0,0 +1,103 @@
|
||||||
|
{% extends "site_base.html" %}
|
||||||
|
|
||||||
|
{% 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 %}">
|
||||||
|
{% 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 %}">
|
||||||
|
{% csrf_token %}
|
||||||
|
<input type="submit" class="btn" value="leave">
|
||||||
|
</form>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if can_apply %}
|
||||||
|
<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>
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
Loading…
Reference in a new issue