Changeset - ecabf31e54b9
[Not reviewed]
0 6 0
Christopher Neugebauer - 8 years ago 2016-07-09 13:14:31
_@chrisjrn.com
Assorted fixes (#47)

* Invokes the site tree fix from previous fixes.

* Adds a disclaimer noting that previous years’ accounts have not been carried over.

Fixes #43

* Adds proposal type to the proposal summary page.

Fixes #40

* Adds travel/accommodation assistance to the proposals page, but makes it only visible to speakers in the proposal, or review managers.

Fixes #41.
Fixes #42.

* Reduces a lot of the whitespace in the header and footer.

Fixes #44

* Proposals review page now shows information for every speaker on a proposal.

Fixes #45

* Makes sure that non_field_errors are displayed by forms.

Fixes #37
6 files changed with 77 insertions and 12 deletions:
0 comments (0 inline, 0 general)
pinaxcon/monkey_patch.py
Show inline comments
...
 
@@ -10,12 +10,13 @@ class MonkeyPatchMiddleware(object):
 
        do_monkey_patch()
 

	
 

	
 
def do_monkey_patch():
 
    patch_speaker_profile_form()
 
    patch_accounts_to_send_bcc()
 
    fix_sitetree_check_access_500s()
 

	
 
    # Remove this function from existence
 
    global do_monkey_patch
 
    do_monkey_patch = lambda: None
 

	
 

	
pinaxcon/templates/_form_snippet.html
Show inline comments
 
{% load lca2017_tags %}
 

	
 
{% if form.non_field_errors %}
 
  {{ form.non_field_errors }}
 
  <br/>
 
{% endif %}
 

	
 
{% for field in form %}
 
  {% if not field.is_hidden %}
 
    <div class="fieldWrapper">
 
      <div>
 
        {% classname field.field.widget as widget %}
 
        {% if widget != "CheckboxInput" %}
pinaxcon/templates/account/login.html
Show inline comments
...
 
@@ -11,12 +11,16 @@
 

	
 
  {% if ACCOUNT_OPEN_SIGNUP %}
 
      <p class="login-signup">
 
              {% trans "Don't have an account?" %}  <strong><a href="{% urlnext 'account_signup' %}">{% trans "Sign up" %}</a></strong>
 
      </p>
 
  {% endif %}
 
      <p>
 
        {% trans "Accounts from previous years have not been carried over to this site." %}
 
        {% trans "You will need to create a new account for this year's site." %}
 
      </p>
 

	
 
            <form method="POST" action="{% url "account_login" %}" autocapitalize="off" {% if form.is_multipart %} enctype="multipart/form-data"{% endif %}>
 
                {% csrf_token %}
 
                <fieldset>
 
                  {% include "_form_snippet.html" with form=form %}
 

	
pinaxcon/templates/symposion/proposals/_proposal_fields.html
Show inline comments
 
{% load i18n %}
 
{% load lca2017_tags %}
 

	
 
    <h4>{% trans "Submitted by" %}</h4>
 
    <p>{{ proposal.speaker }}</p>
 

	
 
    <h4>{% trans "Proposal Type" %}</h4>
 
    <p>{{ proposal.kind.name|capfirst }}</p>
 

	
 
    <h4>{% trans "Target Audience" %}</h4>
 
    <p>{{ proposal.get_target_audience_display }}&nbsp;</p>
 

	
 
    {% if proposal.additional_speakers.all %}
 
        <h4>{% trans "Additional Speakers" %}</h4>
 
        <ul>
...
 
@@ -37,20 +41,54 @@
 
    <h4>{% trans "Video URL" %}</h4>
 
    <p><a href="{{ proposal.video_url|safe }}">{{ proposal.video_url|safe }}</a>&nbsp;</p>
 

	
 
    <h4>{% trans "Special Requirements" %}</h4>
 
    <div class="special_requirements">{{ proposal.technical_requirements_html|safe }}</div>
 

	
 
    <h4>{% trans "Speaker Bio" %}</h4>
 
    <div class="biography">{{ proposal.speaker.biography_html|safe }}&nbsp;</div>
 
    {% for speaker in proposal.speakers %}
 
      <h4>{% trans "Speaker:" %} {{ speaker.name }}</h4>
 
      <h5>{% trans "Biography" %}</h5>
 

	
 
      <div class="biography">{{ proposal.speaker.biography_html|safe }}&nbsp;</div>
 

	
 
      <h5>{% trans "Experience" %}</h5>
 
      <div class="biography">{{ proposal.speaker.experience_html|safe }}&nbsp;</div>
 
    {% endfor %}
 

	
 
    {% if can_manage_proposal or request.user.speaker_profile in proposal.speakers %}
 

	
 
    <h4>{% trans "Speaker Experience" %}</h4>
 
    <div class="biography">{{ proposal.speaker.experience_html|safe }}&nbsp;</div>
 
      <h4>{% trans "Assistance required?" %}</h4>
 
      <br />
 
      <table>
 
        <tr>
 
          <th></th>
 
          <th>{% trans "Travel" %}</th>
 
          <th>{% trans "Accommodation" %}</th>
 
        </tr>
 
        {% for speaker in proposal.speakers %}
 
          <tr>
 
            <td>{{ speaker.name }}</td>
 
            <td>{{ speaker.travel_assistance }}</td>
 
            <td>{{ speaker.accommodation_assistance }}</td>
 
          </tr>
 
        {% endfor %}
 
      </table>
 
      <br />
 

	
 
      {% if proposal.speaker.accessibility_html %}
 
        <h4>{% trans "Speaker Accessibility Requirements" %}</h4>
 
        {% for speaker in proposal.speakers %}
 
          {% if speaker.accessibility_html %}
 
            <h5>{{ speaker.name }}</h5>
 
            <div class="biography">{{ speaker.accessibility_html|safe }}&nbsp;</div>
 
          {% endif %}
 
        {% endfor %}
 
      {% endif %}
 

	
 
    {% endif %}
 

	
 
    <h4>{% trans "Speaker Accessibility Requirements" %}</h4>
 
    <div class="biography">{{ proposal.speaker.accessibility_html|safe }}&nbsp;</div>
 

	
 
    <h4>{% trans "Documents" %}</h4>
 
    <div>
 
        {% if proposal.supporting_documents.exists %}
 
            <table class="table table-striped">
 
                {% for document in proposal.supporting_documents.all %}
pinaxcon/templatetags/lca2017_tags.py
Show inline comments
 
from django import template
 
register = template.Library()
 

	
 
@register.assignment_tag()
 
def classname(ob):
 
    return ob.__class__.__name__
 

	
 
@register.simple_tag(takes_context=True)
 
def can_manage(context, proposal):
 
    return proposal_permission(context, "manage", proposal)
 

	
 
@register.simple_tag(takes_context=True)
 
def can_review(context, proposal):
 
    return proposal_permission(context, "review", proposal)
 

	
 
def proposal_permission(context, permname, proposal):
 
    slug = proposal.kind.section.slug
 
    perm = "reviews.can_%s_%s" % (permname, slug)
 
    return context.request.user.has_perm(perm)
static/src/lca2017/css/app.css
Show inline comments
...
 
@@ -1372,13 +1372,13 @@ table.alt tr:not(:last-of-type) {
 
    margin-right: 2.5rem;
 
  }
 
}
 

	
 
@media (min-width: 48em) {
 
  .l-header {
 
    margin-top: 6.25rem;
 
    /*margin-top: 6.25rem;  /* issue #44. We don't like this. */
 
  }
 
  .l-header--menu-opener {
 
    display: none !important;
 
  }
 
  .l-header--links {
 
    display: inline-block;
...
 
@@ -1427,13 +1427,13 @@ table.alt tr:not(:last-of-type) {
 
  align-items: center;
 
  -ms-flex-wrap: wrap;
 
  flex-wrap: wrap;
 
  -ms-flex-direction: column;
 
  flex-direction: column;
 
  margin-top: 100px;
 
  margin-top: 6.25rem;
 
  margin-top: 3.25rem;
 
  padding: 50px 40px;
 
  padding: 3.125rem 40px;
 
  width: 100%;
 
}
 

	
 
.l-footer--logos {
...
 
@@ -1463,43 +1463,47 @@ table.alt tr:not(:last-of-type) {
 
  background-color: #0c486c;
 
  color: white;
 
}
 

	
 
@media (min-width: 48em) {
 
  .l-footer {
 
    padding: 6.25rem 70px;
 
    /*padding: 6.25rem 70px; /* issue #44 too much padding */
 
    padding: 3.25rem 70px;
 
    -ms-flex-direction: row;
 
    flex-direction: row;
 
    -ms-flex-pack: justify;
 
    justify-content: space-between;
 
  }
 
  .l-footer--logos {
 
    margin-top: 0;
 
  }
 
}
 

	
 
@media (min-width: 64em) {
 
  .l-footer {
 
    padding: 6.25rem 160px;
 
    /*padding: 6.25rem 160px; */
 
    padding: 3.25rem 160px;
 
  }
 
}
 

	
 
@media (min-width: 80em) {
 
  .l-footer {
 
    padding: 6.25rem 200px;
 
    /*padding: 6.25rem 200px;*/
 
    padding: 3.25rem 200px;
 
  }
 
  .l-footer--logo {
 
    margin-bottom: 0;
 
    -ms-flex-preferred-size: auto;
 
    flex-basis: auto;
 
  }
 
}
 

	
 
@media (min-width: 1946px) {
 
  .l-footer {
 
    padding: 6.25rem auto;
 
    padding: 3.25rem auto;
 
    /*padding: 6.25rem auto;*/
 
  }
 
}
 

	
 
.l-content-page {
 
  margin-top: 80px;
 
  margin-top: 5rem;
0 comments (0 inline, 0 general)