Fixed proposal views in dashboard
This commit is contained in:
parent
6a18824aa3
commit
8c28ca0f79
11 changed files with 5557 additions and 259 deletions
5260
dev_db.json
Normal file
5260
dev_db.json
Normal file
File diff suppressed because it is too large
Load diff
|
@ -16,217 +16,36 @@
|
|||
{% block content %}
|
||||
|
||||
{% available_categories as categories %}
|
||||
<div class="container">
|
||||
<h1 class="text-primary mb-5">Dashboard</h1>
|
||||
<div class="container mb-5">
|
||||
<h1 class="text-primary">Dashboard</h1>
|
||||
</div>
|
||||
{% if categories %}
|
||||
|
||||
{% if user.is_staff %}
|
||||
<div class="container">
|
||||
<h2>Administration</h2>
|
||||
<div class="page-row">
|
||||
<div class="col-xs-12">
|
||||
<a class="btn btn-lg btn-info" role="button" href="{% url "reports_list" %}">Reports</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if categories %}
|
||||
{% include "symposion/dashboard/_categories.html" %}
|
||||
{% endif %}
|
||||
|
||||
<div class="container">
|
||||
<div class="col-12">
|
||||
<h2>{% trans "Attend" %} {% conference_name %}</h2>
|
||||
</div>
|
||||
<div class="page-row">
|
||||
{% if not user.attendee.completed_registration %}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4>Register</h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p>To attend the conference, you must create an attendee profile and purchase your ticket</p>
|
||||
<a class="btn btn-lg btn-success" role="button" href="{% url "guided_registration" %}">Get your ticket</a>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="col-xs-12 col-sm-6 col-lg-6">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4>Attendee Profile</h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p>If you would like to change the details on your badge or your attendee statistics, you may edit your attendee profile up until the 15th January 2018</p>
|
||||
<a class="btn btn-lg btn-primary pull-left" role="button" href="{% url "user_badge" %}">Preview my badge</a>
|
||||
<a class="btn btn-lg btn-primary pull-right" role="button" href="{% url "attendee_edit" %}">Edit attendee profile</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6 col-lg-6">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4>Account Management</h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p>If you would like to change your registered email address or password, you can use our self-service account management portal</p>
|
||||
<a class="btn btn-lg btn-primary pull-right" role="button" href="https://login.linux.conf.au/manage/">Account Management</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% items_pending as pending %}
|
||||
|
||||
<div class="col-xs-12 col-sm-12 col-lg-12">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4>Account</h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
|
||||
{% if pending %}
|
||||
<div class="col-xs-12 col-sm-6 col-lg-6">
|
||||
<div class="panel panel-warning">
|
||||
<div class="panel-heading">
|
||||
<h5>Items pending payment</h5>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{% include "registrasion/_items_list.html" with items=pending %}
|
||||
<div class="right">
|
||||
<a class="btn btn-lg btn-success pull-right" role="button" href="{% url "checkout" %}">Check out and pay</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% items_purchased as purchased %}
|
||||
{% if purchased %}
|
||||
<div class="col-xs-12 col-sm-6 col-lg-6">
|
||||
<div class="panel panel-success">
|
||||
<div class="panel-heading">
|
||||
<h5>Paid Items</h5>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{% include "registrasion/_items_list.html" with items=purchased %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="col-xs-12 col-sm-6 col-lg-6">
|
||||
<div class="panel panel-success">
|
||||
<div class="panel-heading">
|
||||
<h5>Add/Update Items</h5>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{% include "registrasion/_category_list.html" with categories=categories %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% invoices as invoices %}
|
||||
{% if invoices %}
|
||||
<div class="col-xs-12 col-sm-12 col-lg-12">
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading">
|
||||
<h5>Invoices</h5>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<ul>
|
||||
{% for invoice in invoices %}
|
||||
{% if invoice.is_void %}
|
||||
<li class="void-invoice" style="display: none;">
|
||||
{% else %}
|
||||
<li>
|
||||
{% endif %}
|
||||
<a href="{% url "invoice" invoice.id %}" >Invoice {{ invoice.id }}</a>
|
||||
- ${{ invoice.value }} ({{ invoice.get_status_display }})
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<button id="toggle-void-invoices" onclick="toggleVoidInvoices();">Show void invoices</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% available_credit as credit %}
|
||||
{% if credit %}
|
||||
<div class="col-xs-12 col-sm-12 col-lg-12">
|
||||
<div class="panel panel-danger">
|
||||
<div class="panel-heading">
|
||||
<h5>Credit</h5>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p>You have ${{ credit }} leftover from refunded invoices. This credit will be automatically applied to new invoices. Contact the conference organisers to for a refund to your original payment source.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h2 class="text-primary mb-5">{% trans "Speaking and Miniconfs" %}</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6 text-primary d-flex flex-column">
|
||||
<h3 class="text-upper">Speaker Profile</h3>
|
||||
{% if not user.speaker_profile %}
|
||||
<p>
|
||||
To create a speaking or miniconf proposal you must first create a speaker
|
||||
profile.
|
||||
</p>
|
||||
{% endif %}
|
||||
<p>
|
||||
Your speaker profile is independent of your attendee profile and the
|
||||
details you provide here will be used during selection and to populate
|
||||
your speaker bio on the conference website.
|
||||
</p>
|
||||
<div class="mt-auto">
|
||||
{% if not user.speaker_profile %}
|
||||
<a href="{% url "speaker_create" %}" class="btn btn-primary btn-lg" role="button">Create Profile</a>
|
||||
{% else %}
|
||||
<a href="{% url "speaker_edit" %}" class="btn btn-primary btn-lg" role="button">Edit Profile</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if user.speaker_profile %}
|
||||
<div class="col-md-6 text-primary d-flex flex-column">
|
||||
<h3 class="text-upper">New Proposal</h3>
|
||||
<p>You may use the following form to create a speaking or miniconf proposal.</p>
|
||||
<p>Once submitted you will be able to see the status of your proposals, as well manage the submission and co-speakers from this page</p>
|
||||
<div class="mt-auto">
|
||||
<a class="btn btn-lg btn-primary" role="button" href="{% url "proposal_submit" %}">New Proposal</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="container mb-5">
|
||||
{% include "symposion/dashboard/speaking.html" %}
|
||||
</div>
|
||||
|
||||
|
||||
{% if user.speaker_profile %}
|
||||
{% if user.speaker_profile.proposals.exists %}
|
||||
<div class="container">
|
||||
<div class="page-header">
|
||||
<h2>Your Proposals</h2>
|
||||
<div class="container mb-5">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h2 class="text-primary my-5">Your Proposals</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page-row">
|
||||
{% if user.speaker_profile.proposals.exists %}
|
||||
{% for proposal in user.speaker_profile.proposals.all %}
|
||||
{% include "symposion/proposals/_proposal_row.html" %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="card-deck">
|
||||
{% for proposal in user.speaker_profile.proposals.all %}
|
||||
{% include "symposion/proposals/_proposal_row.html" %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
@ -237,7 +56,7 @@
|
|||
{% associated_proposals as associated_proposals %}
|
||||
{% pending_proposals as pending_proposals %}
|
||||
{% if associated_proposals or pending_proposals %}
|
||||
<div class="container">
|
||||
<div class="container mb-5">
|
||||
<div class="page-header">
|
||||
<h2>Copresenter Proposals</h2>
|
||||
</div>
|
||||
|
@ -254,8 +73,7 @@
|
|||
{% endif %}
|
||||
|
||||
{% if review_sections %}
|
||||
<div class="bg-primary text-secondary mt-5 pb-5">
|
||||
<div class="container">
|
||||
<div class="container text-primary mb-5">
|
||||
<div class="row">
|
||||
<h2 class="col-12 my-5">{% trans "Reviews" %}</h2>
|
||||
{% for section in review_sections %}
|
||||
|
@ -276,13 +94,12 @@
|
|||
{% endif %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% available_teams as available_teams %}
|
||||
{% if user.memberships.exists or available_teams %}
|
||||
<div class="container">
|
||||
<div class="container mb-t text-primary">
|
||||
<div class="page-header">
|
||||
<h2>{% trans "Teams" %}</h2>
|
||||
</div>
|
||||
|
@ -296,11 +113,11 @@
|
|||
<div clas="page-row">
|
||||
{% for membership in user.memberships.all %}
|
||||
<div class="col-xs-12 col-sm-6 col-lg-6">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<div class="card card-primary">
|
||||
<div class="card-header">
|
||||
<h5>{{ membership.team.name }}</h5>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="card-body">
|
||||
{% if membership.team.description %}<p>{{ membership.team.description }}</p>{% endif %}
|
||||
<a class="btn btn-lg btn-primary" role="button" href="{% url "team_detail" membership.team.slug %}">Details</a>
|
||||
<span class="{% if membership.state == 'invited' %} label-info{% endif %}">{{ membership.get_state_display }}</span>
|
||||
|
@ -324,11 +141,11 @@
|
|||
<div class="page-row">
|
||||
{% for team in available_teams %}
|
||||
<div class="col-xs-12 col-sm-6 col-lg-6">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<div class="card card-primary">
|
||||
<div class="card-header">
|
||||
<h5>{{ team }}</h5>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="card-body">
|
||||
{% if team.description %}<p>{{ team.description }}</p>{% endif %}
|
||||
<span class="label label-default">{{ team.get_access_display }}</span>
|
||||
<a class="btn btn-lg btn-primary" role="button" href="{% url "team_detail" team.slug %}">Details</a>
|
||||
|
|
146
pinaxcon/templates/symposion/dashboard/_categories.html
Normal file
146
pinaxcon/templates/symposion/dashboard/_categories.html
Normal file
|
@ -0,0 +1,146 @@
|
|||
{% if user.is_staff %}
|
||||
<div class="container">
|
||||
<h2>Administration</h2>
|
||||
<div class="page-row">
|
||||
<div class="col-xs-12">
|
||||
<a class="btn btn-lg btn-info" role="button" href="{% url "reports_list" %}">Reports</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="container">
|
||||
<div class="col-12">
|
||||
<h2>{% trans "Attend" %} {% conference_name %}</h2>
|
||||
</div>
|
||||
<div class="page-row">
|
||||
{% if not user.attendee.completed_registration %}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4>Register</h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p>To attend the conference, you must create an attendee profile and purchase your ticket</p>
|
||||
<a class="btn btn-lg btn-success" role="button" href="{% url "guided_registration" %}">Get your ticket</a>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="col-xs-12 col-sm-6 col-lg-6">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4>Attendee Profile</h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p>If you would like to change the details on your badge or your attendee statistics, you may edit your attendee profile up until the 15th January 2018</p>
|
||||
<a class="btn btn-lg btn-primary pull-left" role="button" href="{% url "user_badge" %}">Preview my badge</a>
|
||||
<a class="btn btn-lg btn-primary pull-right" role="button" href="{% url "attendee_edit" %}">Edit attendee profile</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6 col-lg-6">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4>Account Management</h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p>If you would like to change your registered email address or password, you can use our self-service account management portal</p>
|
||||
<a class="btn btn-lg btn-primary pull-right" role="button" href="https://login.linux.conf.au/manage/">Account Management</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% items_pending as pending %}
|
||||
<div class="col-xs-12 col-sm-12 col-lg-12">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4>Account</h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
|
||||
{% if pending %}
|
||||
<div class="col-xs-12 col-sm-6 col-lg-6">
|
||||
<div class="panel panel-warning">
|
||||
<div class="panel-heading">
|
||||
<h5>Items pending payment</h5>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{% include "registrasion/_items_list.html" with items=pending %}
|
||||
<div class="right">
|
||||
<a class="btn btn-lg btn-success pull-right" role="button" href="{% url "checkout" %}">Check out and pay</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% items_purchased as purchased %}
|
||||
{% if purchased %}
|
||||
<div class="col-xs-12 col-sm-6 col-lg-6">
|
||||
<div class="panel panel-success">
|
||||
<div class="panel-heading">
|
||||
<h5>Paid Items</h5>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{% include "registrasion/_items_list.html" with items=purchased %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="col-xs-12 col-sm-6 col-lg-6">
|
||||
<div class="panel panel-success">
|
||||
<div class="panel-heading">
|
||||
<h5>Add/Update Items</h5>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{% include "registrasion/_category_list.html" with categories=categories %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% invoices as invoices %}
|
||||
{% if invoices %}
|
||||
<div class="col-xs-12 col-sm-12 col-lg-12">
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading">
|
||||
<h5>Invoices</h5>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<ul>
|
||||
{% for invoice in invoices %}
|
||||
{% if invoice.is_void %}
|
||||
<li class="void-invoice" style="display: none;">
|
||||
{% else %}
|
||||
<li>
|
||||
{% endif %}
|
||||
<a href="{% url "invoice" invoice.id %}" >Invoice {{ invoice.id }}</a>
|
||||
- ${{ invoice.value }} ({{ invoice.get_status_display }})
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<button id="toggle-void-invoices" onclick="toggleVoidInvoices();">Show void invoices</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% available_credit as credit %}
|
||||
{% if credit %}
|
||||
<div class="col-xs-12 col-sm-12 col-lg-12">
|
||||
<div class="panel panel-danger">
|
||||
<div class="panel-heading">
|
||||
<h5>Credit</h5>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p>You have ${{ credit }} leftover from refunded invoices. This credit will be automatically applied to new invoices. Contact the conference organisers to for a refund to your original payment source.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,8 @@
|
|||
<h3 class="text-upper">New Proposal</h3>
|
||||
<p>Click one of the following links to create a speaking or miniconf proposal.</p>
|
||||
<p>Once submitted you will be able to see the status of your proposals, as well manage the submission and co-speakers from this page</p>
|
||||
<div class="mt-auto">
|
||||
{% for kind in proposal_kinds %}
|
||||
<a class="btn btn-lg btn-primary" role="button" href="{% url "proposal_submit_kind" kind.slug %}">{{ kind }}</a>
|
||||
{% endfor %}
|
||||
</div>
|
19
pinaxcon/templates/symposion/dashboard/_profile.html
Normal file
19
pinaxcon/templates/symposion/dashboard/_profile.html
Normal file
|
@ -0,0 +1,19 @@
|
|||
<h3 class="text-upper">Speaker Profile</h3>
|
||||
{% if not user.speaker_profile %}
|
||||
<p>
|
||||
To create a speaking or miniconf proposal you must first create a speaker
|
||||
profile.
|
||||
</p>
|
||||
{% endif %}
|
||||
<p>
|
||||
Your speaker profile is independent of your attendee profile and the
|
||||
details you provide here will be used during selection and to populate
|
||||
your speaker bio on the conference website.
|
||||
</p>
|
||||
<div class="mt-auto">
|
||||
{% if not user.speaker_profile %}
|
||||
<a href="{% url "speaker_create" %}" class="btn btn-primary btn-lg" role="button">Create Profile</a>
|
||||
{% else %}
|
||||
<a href="{% url "speaker_edit" %}" class="btn btn-primary btn-lg" role="button">Edit Profile</a>
|
||||
{% endif %}
|
||||
</div>
|
18
pinaxcon/templates/symposion/dashboard/speaking.html
Normal file
18
pinaxcon/templates/symposion/dashboard/speaking.html
Normal file
|
@ -0,0 +1,18 @@
|
|||
{% load i18n %}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h2 class="text-primary mb-5">{% trans "Speaking and Miniconfs" %}</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
{% if user.speaker_profile %}
|
||||
<div class="col-md-6 text-primary d-flex flex-column">
|
||||
{% include "symposion/dashboard/_new_proposal.html" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="col-md-6 text-primary d-flex flex-column">
|
||||
{% include "symposion/dashboard/_profile.html" %}
|
||||
</div>
|
||||
</div>
|
|
@ -1,49 +1,47 @@
|
|||
<div class="col-xs-12 col-sm-6 col-lg-6">
|
||||
{% if proposal.result.status == "accepted" %}
|
||||
<div class="panel panel-success">
|
||||
<!-- {% if proposal.result.status == "accepted" %}
|
||||
<div class="card card-success mx-4">
|
||||
{% elif proposal.result.status == "rejected" %}
|
||||
<div class="panel panel-danger">
|
||||
<div class="card card-danger mx-4">
|
||||
{% elif proposal.result.status == "standby" %}
|
||||
<div class="panel panel-warning">
|
||||
<div class="card card-warning mx-4">
|
||||
{% else %}
|
||||
<div class="panel panel-primary">
|
||||
{% endif %}
|
||||
<div class="panel-heading">
|
||||
<h5>{{ proposal.title }}</h5>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<ul>
|
||||
<li><strong>Type:</strong> {{ proposal.kind.name }}</li>
|
||||
<li>
|
||||
<strong>Status:</strong>
|
||||
{% if proposal.cancelled %}
|
||||
<span class="label label-danger">Cancelled</span>
|
||||
{% else %}
|
||||
{% if request.user == proposal.speaker.user %}
|
||||
{% if proposal.result.status == "accepted" %}
|
||||
<span class="label label-success">Accepted</span>
|
||||
{% elif proposal.result.status == "rejected" %}
|
||||
<span class="label label-danger">Rejected</span>
|
||||
{% elif proposal.result.status == "standby" %}
|
||||
<span class="label label-warning">Standby</span>
|
||||
{% else %}
|
||||
<span class="label label-default">Submitted</span>
|
||||
{% endif %}
|
||||
<div class="card card-primary mx-4">
|
||||
{% endif %} -->
|
||||
<div class="card border-primary">
|
||||
<div class="card-body">
|
||||
<h4 class="card-title text-primary">
|
||||
{{ proposal.title }}
|
||||
</h4>
|
||||
<div class="card-text">
|
||||
<p>
|
||||
<small class="text-muted">{{ proposal.kind.name }}</small>
|
||||
{% if proposal.cancelled %}
|
||||
<small class="badge badge-pill float-right badge-danger">Cancelled</small>
|
||||
{% else %}
|
||||
<span class="label label-default">Associated</span>
|
||||
{% if request.user == proposal.speaker.user %}
|
||||
{% if proposal.result.status == "accepted" %}
|
||||
<small class="badge badge-pill float-right badge-success">Accepted</small>
|
||||
{% elif proposal.result.status == "rejected" %}
|
||||
<small class="badge badge-pill float-right badge-danger">Rejected</small>
|
||||
{% elif proposal.result.status == "standby" %}
|
||||
<small class="badge badge-pill float-right badge-warning">Standby</small>
|
||||
{% else %}
|
||||
<small class="badge badge-pill float-right badge-default">Submitted</small>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<small class="badge badge-pill float-right badge-default">Associated</small>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</li>
|
||||
</ul>
|
||||
<div>
|
||||
<a class="btn btn-lg btn-success" role="button" href="{% url "proposal_detail" proposal.pk %}">View Details</a>
|
||||
</p>
|
||||
<p>{{ proposal.abstract|truncatewords:40 }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer bg-primary">
|
||||
<a href="{% url "proposal_detail" proposal.pk %}">View Details</a>
|
||||
{% if not proposal.cancelled %}
|
||||
{% if request.user == proposal.speaker.user and proposal.can_edit %}
|
||||
<a class="btn btn-lg btn-success" role="button" href="{% url "proposal_edit" proposal.pk %}">Edit</a>
|
||||
<a class="btn btn-lg btn-success" role="button" href="{% url "proposal_speaker_manage" proposal.id %}">Manage Additional Speakers</a>
|
||||
{% endif %}
|
||||
{% if request.user == proposal.speaker.user and proposal.can_edit %}
|
||||
<br/><a href="{% url "proposal_edit" proposal.pk %}">Edit</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% extends "symposion/proposals/base.html" %}
|
||||
{% extends "site_dark.html" %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block head_title %}{% trans "Submit A Proposal" %}{% endblock %}
|
||||
{% block header_title %}Submit A Proposal{% endblock %}
|
||||
|
||||
{% block proposals_body %}
|
||||
|
||||
{% block content %}
|
||||
{% if kinds %}
|
||||
<h1>Select what kind of proposal you'd like to submit:</h1>
|
||||
<h1>New Proposal</h1>
|
||||
<p>Select what kind of proposal you'd like to submit:</p>
|
||||
{% for kind in kinds %}
|
||||
<a class="btn btn-lg btn-primary" role="button" href="{% url "proposal_submit_kind" kind.slug %}">{{ kind }}</a>
|
||||
<h2>{{ kind }}</h2>
|
||||
<a class="btn btn-lg btn-secondary" role="button" href="{% url "proposal_submit_kind" kind.slug %}">{{ kind }}</a>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<h1>Proposals are not currently open for submission.</h1>
|
||||
|
|
21
pinaxcon/views.py
Normal file
21
pinaxcon/views.py
Normal file
|
@ -0,0 +1,21 @@
|
|||
from django.shortcuts import render, redirect
|
||||
|
||||
from account.decorators import login_required
|
||||
from symposion.proposals.models import ProposalSection
|
||||
|
||||
|
||||
@login_required
|
||||
def dashboard(request):
|
||||
"""
|
||||
Copy of symposion.views.dashboard modified to inject available proposal
|
||||
kinds into the request context.
|
||||
"""
|
||||
|
||||
if request.session.get("pending-token"):
|
||||
return redirect("speaker_create_token", request.session["pending-token"])
|
||||
|
||||
|
||||
sections = ProposalSection.available().prefetch_related('section__proposal_kinds')
|
||||
kinds = [k for kind in section for k in section.proposal_kinds]
|
||||
return render(request, "dashboard.html", {'kinds': kinds})
|
||||
|
|
@ -250,3 +250,7 @@ main {
|
|||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
.card {
|
||||
min-width: 20rem;
|
||||
}
|
12
vendor/symposion/views.py
vendored
12
vendor/symposion/views.py
vendored
|
@ -1,10 +1,16 @@
|
|||
from django.contrib.auth.decorators import login_required
|
||||
from django.shortcuts import render, redirect
|
||||
from symposion.proposals.models import ProposalSection
|
||||
|
||||
|
||||
@login_required
|
||||
def dashboard(request):
|
||||
if request.session.get("pending-token"):
|
||||
return redirect("speaker_create_token",
|
||||
request.session["pending-token"])
|
||||
return render(request, "dashboard.html")
|
||||
return redirect("speaker_create_token", request.session["pending-token"])
|
||||
|
||||
# Patching available proposal kinds into the dashboard to enable creating
|
||||
# proposals from the dashboard directly.
|
||||
sections = ProposalSection.available().prefetch_related('section__proposal_kinds')
|
||||
kinds = [kind for section in sections for kind in section.section.proposal_kinds.all()]
|
||||
|
||||
return render(request, "dashboard.html", {'proposal_kinds': kinds})
|
||||
|
|
Loading…
Reference in a new issue