Changeset - 607e2ed48e07
[Not reviewed]
pinaxcon/templates/site_base.html
Show inline comments
 
{% extends "override_bootstrap_theme_base.html" %}
 

	
 
{% load staticfiles %}
 
{% load metron_tags %}
 
{% load i18n %}
 
{% load sitetree %}
 

	
 
{% block styles %}
 
    {% include "_styles.html" %}
 
{% endblock %}
 

	
 
{% block extra_head_base %}
 
    {% block extra_head %}
 
      <meta property="twitter:card" content="summary">
 
      <meta property="og:type" content="website">
 
      <meta property="og:title" content="{% block head_title %}{% endblock %} | {{ SITE_NAME }}">
 
      <meta property="twitter:title" content="{{ SITE_NAME }}">
 
      <meta property="og:site_name" content="North Bay Python">
 
      <meta property="og:image" content="http://{{ request.META.HTTP_HOST }}{% static "images/square_icon.png" %}">
 
      <meta property="og:url" content="{{ request.build_absolute_uri }}">
 
      <meta property="og:description" content="North Bay Python, a community-organized conference, comes to Petaluma, California on December 2 and 3, 2017.">
 
      <meta property="twitter:description" content="North Bay Python, a community-organized conference, comes to Petaluma, California on December 2 and 3, 2017.">
 
      <meta name="description" content="North Bay Python, a community-organized conference, comes to Petaluma, California on December 2 and 3, 2017.">
 
      <meta name="google-site-verification" content="sTU0G4IghY_jV9iPgCVD1WZuk4C_MSWY2QzxQUjDcC4">
 
    {% endblock %}
 
{% endblock %}
 

	
 
{% block nav %}
 
    {% sitetree_menu from "main" include "trunk" template "sitetree/menu_bootstrap3.html" %}
 
{% endblock %}
 

	
 
{% block body_base %}
 

	
 
  <div class="homepage-block-bg website-background"></div>
 

	
 
  <div id="background-filter">
 
    <section id="content_body">
 
        <div class="container">
 
            {% include "_messages.html" %}
 
            <div class="row">
 
                <div class="col-md-9">
 
                    {% block body %}
 
                    {% endblock %}
 
                </div>
 
                <div class="col-md-3">
 
                    {% block sidebar %}
 
                        {% include "_default_sidebar.html" %}
 
                    {% endblock %}
 
                </div>
 
            </div>
 
        </div>
 
    </section>
 
{% endblock %}
 

	
 

	
 
{% block footer_base %}
 
  <div class="container">
 
    <footer>
 
      {% block footer %}
 
          {% include "_footer.html" %}
 
      {% endblock %}
 
    </footer>
 
  </div>
 
{% endblock %}
 

	
 

	
 
{% block scripts %}
 
    {% include "_scripts.html" %}
 

	
 
    {% block extra_script %}
 
    {% endblock %}
 

	
 
{% endblock %}
 

	
 
{% block extra_body_base %}
 
    {% analytics %}
 
    {% block extra_body %}{% endblock %}
 
{% endblock %}
pinaxcon/templates/static_pages/about/colophon.html
Show inline comments
 
{% extends "page_with_title_and_lede.html" %}
 

	
 
{% load i18n %}
 

	
 
{% block head_title %}Colophon{% endblock %}
 

	
 
{% block heading %}Colophon{% endblock %}
 

	
 
{% block body_class %}about{% endblock %}
 

	
 
{% block content %}
 

	
 
<h2>Call for Proposals</h2>
 

	
 
<p>Portions of our <a href="/program/call-for-proposals">Call for Proposals</a> page were drawn from ideas seen on <a href="https://djangocon.eu" title="DjangoCon Europe">DjangoCon EU</a>, <a href="https://seagl.org" title="Seattle GNU Linux">SeaGL</a>, <a href="http://www.fogcityruby.com/speak/" title="Fog City Ruby">Fog City Ruby</a>, and others. Thanks to all for their inspiration and permission to borrow!</p>
 

	
 
<h2>Code of Conduct</h2>
 

	
 
<p>Our <a href="/code-of-conduct">Code of Conduct</a> was forked from the <a href="https://github.com/python/pycon-code-of-conduct">PyCon US Code of Conduct</a>, including the staff and attendee guides, under a <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0 Unported</a> license, itself originally forked from the example policy from the <a href="http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy">Geek Feminism wiki</a>, created by the <a href="https://adainitiative.org/">Ada Initiative</a> and other volunteers, which is under a <a href="https://creativecommons.org/publicdomain/zero/1.0/">Creative Commons Zero</a> license.</p>
 

	
 
<h2>Fiscal Sponsor</h2>
 

	
 
<p>Our fiscal sponsor is <a href="https://sfconservancy.org">Software Freedom Conservancy</a>, a 501(c)(3) charity dedicated to the promotion and development of free and open source software. Conservancy allows us to work without managing our own corporate structure and administrative services. Our relationship with Conservancy goes beyond logistics, though, as we are also philosophically aligned as we work to advance software freedom and expand the Python developer community.</p>
 

	
 
<h2>Photography</h2>
 

	
 
<ul>
 
  <li>Photo of <a href="https://www.instagram.com/p/BU-G5dGAkHt">Mystic Theatre</a> used on the home page by Christopher Neugebauer under the <a href="https://creativecommons.org/licenses/by-sa/2.0/" >Creative Commons Attribute Share Alike 2.0 Generic</a> license.</li>
 
  <li>Photo of <a href="https://www.flickr.com/photos/richard_jones/14638274749">DjangoGirls Brisbane 2014</a> used on the home page by Richard Jones under the <a href="https://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution 2.0 Generic</a> license.</li>
 
</ul>
 

	
 
<h2>Python</h2>
 

	
 
<p>"Python" and the Python logos are trademarks or registered trademarks of the <a href="https://python.org">Python Software Foundation</a>, used by North Bay Python with permission from the Foundation.</p>
 

	
 
<h2>Our Logo</h2>
 

	
 
<p>Our logo is a pythonic tribute to the rolling green hills of Sonoma County. It is inspired by <em><a href="https://en.wikipedia.org/wiki/Bliss_(image)">Bliss</a></em>, a photo made famous as the default background from Windows XP. <a href="https://goo.gl/maps/AikLRGTuWZr">Bliss was photographed 16 miles from Downtown Petaluma</a>.
 

	
 
<h2>Terms and Conditions</h2>
 

	
 
<p>
 
  Our <a href="/terms-and-conditions">Terms and Conditions</a> were forked from the <a href="https://github.com/linuxaustralia/constitution_and_policies/blob/master/terms_and_conditions.md">Linux Australia Event Terms and Conditions</a> under the <a href="https://creativecommons.org/licenses/by-sa/3.0/au/">Creative Commons Attribution Share Alike 3.0 Australia</a> license. Our Photography and Audio Video Recording policy is adapted from the <a href="https://evergreen-ils.org/conference/photography-policy/">Evergreen policy</a>, itself adapted from the <a href="https://adacamp.org/adacamp-toolkit/policies/#photo">AdaCamp policy</a> under a <a href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution Share Alike 4.0 International</a> license.</p>
 

	
 
<h2>Web Application</h2>
 

	
 
<p>Our website is powered by a heap of free and open source software, most notably:</p>
 

	
 
<ul>
 
  <li><a href="https://www.djangoproject.com/">Django</a> is the web framework that underpins everything else.</li>
 
  <li><a href="https://github.com/chrisjrn/symposion/">Symposion</a> is used for the call for proposals and session scheduling.</li>
 
  <li><a href="http://github.com/chrisjrn/registrasion/">Registrasion</a> is used for ticket sales.</li>
 
  <li><a href="https://inkscape.org/">Inkscape</a> is used to create most of our graphics.</li>
 
</ul>
 

	
 
{% endblock %}
...
 
\ No newline at end of file
 
{% endblock %}
pinaxcon/templates/static_pages/attend/attend.html
Show inline comments
 
{% extends "page_with_title_and_lede.html" %}
 

	
 
{% load i18n %}
 
{% load markdown_deux_tags %}
 

	
 
{% block head_title %}Attend{% endblock %}
 

	
 
{% block heading %}Come to North Bay Python!{% endblock %}
 

	
 
{% block body_class %}attend{% endblock %}
 

	
 
{% block lede %}
 
  P-Town. Rivertown. That place where the cows are. No matter what you call Petaluma, we want you to join us here for a great weekend of Python talks and networking. North Bay Python tickets start at $25 for unaffiliated individuals, and $180 for corporate attendees.
 
{% endblock %}
 

	
 

	
 
{% block content %}
 

	
 
<p>To buy a ticket, <a href="/dashboard">create an account, and go to the dashboard</a>. If you've already bought a ticket, you can check out our information on <a href="/attend/hotels">where to stay</a> if you want to come up for the weekend, and <a href="/attend/travel">how to get here</a>.</p>
 

	
 
<p><strong>Attendees should fill out their own registration form</strong>. When you complete the form, you'll receive a link that you can pass on to accounts staff if you need someone to pay on your behalf.</p>
 

	
 
<br />
 

	
 
<div class="pull-right"><a class="btn btn-lg btn-primary" href="/tickets/buy">Buy a Ticket</a></div>
 
<h2>Which Ticket?</h2>
 

	
 
<p><em>Early Bird discounts are available for the first 100 tickets sold, or until October 20, whichever comes first. T-shirts are only available for tickets bought before November 7.</em></p>
 
<p><em>T-shirts are only available for tickets bought before November 7.</em></p>
 

	
 
<h3>Corporate <small>$200 ($180 Early Bird)</small></h3>
 
<h3>Corporate <small>$200</small></h3>
 

	
 
<p><strong>For company employees, and individuals who can claim the cost of attending the conference as a business expense or other tax deduction</strong>.</p>
 

	
 
<p>Includes a free t-shirt, and recognition of your affiliation on your conference badge and on the conference supporters list. Group discounts are available for organizations that buy 5 or more tickets.</p>
 

	
 
<h3>Individual Supporter <small>$100 ($80 Early Bird)</small></h3>
 
<h3>Individual Supporter <small>$100</small></h3>
 

	
 
<p><strong>For individuals who want to financially contribute to the success of the conference.</strong></p>
 

	
 
<p>This ticket includes a free t-shirt, and recognition of your Free and Open Source Software, hobby, or nonprofit project on your conference badge.</p>
 

	
 
<h3>Unaffiliated Individual <small>$50 ($25 Early Bird)</small></h3>
 
<h3>Unaffiliated Individual <small>$50</small></h3>
 

	
 
<p><strong>For students, hobbyists, and unemployed/underemployed people who are coming to North Bay Python at their own expense.</strong></p>
 

	
 
<p>The cheapest ticket we can offer. You can add a t-shirt for $30.</p>
 

	
 

	
 
<h3>Special Tickets</h3>
 

	
 
<h4>Individual Sponsor <small>$500 ($450 Early Bird)</small></h4>
 
<h4>Individual Sponsor <small>$500</small></h4>
 

	
 
<p>This ticket includes all of the benefits of a Corporate ticket, but we’ll also give the ticket holder special thanks during our conference plenary sessions. You can also provide us with a promotional item to put in each attendee’s swag bag.</p>
 

	
 
<p>This ticket is for individuals who want to sponsor the conference. For company-level sponsorships, please see our <a href="/sponsors/become-a-sponsor">sponsorships page</a>.</p>
 

	
 

	
 
<h4>Group Discount Corporate <small>$180 for 5+ tickets</small></h4>
 

	
 
<p>For companies sending multiple attendees, you can get a 10% discount off the regular price on purchases of 5 tickets or more.</p>
 

	
 
<p>To claim, buy your first four tickets, and send us an email with the names and receipt numbers for those attendees. We’ll send you vouchers for a discount on further tickets.</p>
 

	
 

	
 
<h2>Ticket Types and Inclusions</h2>
 

	
 
<table class="table table-striped">
 
<tr>
 
  <th></th>
 
  <th>Unaffiliated Individual</th><th>Individual Supporter</th><th>  Corporate  </th><th> Individual Sponsor </th></tr>
 
<tr>
 
  <th>Regular Price</th>
 
  <td> $50 </td><td>$100</td><td> $200</td><td> $500
 
<tr>
 
  <th>Early Bird</th>
 
  <td> $25</td><td> $80 </td><td>$180</td><td> $450</td></tr>
 
  <th><strike>Early Bird</th>
 
  <td><strike> $25</td><td><strike> $80 </td><td><strike>$180</td><td><strike> $450</td></tr>
 
<tr>
 
  <th>Group Discount</th>
 
  <td> - </td><td>- </td><td>$180/ticket for 5+ tickets</td><td> -</td></tr>
 
<tr>
 
  <th>Conference access</th>
 
  <td>  Yes </td><td>  Yes </td><td>  Yes </td><td>  Yes </td></tr>
 
<tr>
 
  <th>Morning refreshments</th>
 
  <td> TBA </td><td> TBA </td><td> TBA </td><td> TBA </td></tr>
 
<tr>
 
  <th>Free Lunch</th>
 
  <td> No </td><td> No </td><td> No </td><td> No </td></tr>
 
<tr>
 
  <th>T-Shirt</th>
 
  <td>$30 each</td><td>1 free</br>Extras $30 each</td><td>1 free</br>Extras $30 each</td><td>1 free</br>Extras $30 each</td></tr>
 
<tr>
 
  <th>Affiliation on your badge</th>
 
  <td> No </td><td>Personal projects only</td><td> Yes </td><td>Yes</td></tr>
 
<tr>
 
  <th>Supporter recognition</th>
 
  <td> None </td><td>For you </td><td>For you and your company </td><td>Top billing for you and your company or project</td></tr>
 
<tr>
 
  <th>Sponsor benefits</th>
 
  <td> No </td><td>No</td><td> No </td><td>Yes</td></tr>
 
</table>
 

	
 
<p>If you can’t afford to attend on these prices, please email <a href="mailto:spam@northbaypthon.org">spam@northbaypython.org</a> – we’ll enthusiastically waive ticket fees for people who need it.</em></p>
 

	
 
<div class="btn-group">
 
  <a class="btn btn-lg btn-primary" href="/tickets/buy">Buy a Ticket</a>
 
</div>
 

	
 

	
 
<h2>Benefits</h2>
 

	
 
<h3>Conference access</h3>
 
<p>Two days of high-caliber talks about Python, and meeting new Pythonistas at North Bay Python.</p>
 

	
 
<h3>Lunch</h3>
 
<p>In order to keep ticket costs as low as possible, we won’t be catering lunch this year.</p>
 

	
 
<p>To make up for it, we’ve located our conference right in the middle of Historic Downtown Petaluma’s restaurant district. You can find everything from market delis and barbecue, through to Michelin-rated restaurants, all within 5 minutes walk. You’ll get a better lunch than we’d ever be able to cater, for much less. We'll have a locals' guide to Petaluma to help you find places to eat.</p>
 

	
 
<h3>Morning Refreshments (TBA)</h3>
 
<p>If budget permits, or if we find a sponsor, we’ll provide coffee, tea, hot chocolate, and some light snacks in the morning before proceedings kick off on both days.</p>
 

	
 
<h3>T-Shirt</h3>
 
<p>We’ll be designing a collectible North Bay Python t-shirt for you to pick up at the conference, and they’ll be <a href="/attend/tshirt">available in a variety of sizes, cuts and colors</a>. Each t-shirt costs $30, and for supporter, corporate, and sponsor ticket holders, you’ll get your first t-shirt free!</p>
 

	
 
<p>T-shirts are available only for tickets purchased by Tuesday 7 November.</p>
 

	
 

	
 
<h3>Affiliation</h3>
 
<p>Every attendee gets their very own lanyard and a badge with their name on it. For higher-paying ticket holders, you’ll get your project’s name (supporter and above) or company name (corporate or sponsor levels only) on your badge, just below your name.</p>
 

	
 
<h3>Supporter Recognition</h3>
 
<p>On our website, we’ll have a list of our conference supporters. You can choose to have your name on that list.</p>
 

	
 
<p>For our corporate and sponsor ticket holders, we’ll also include your company name as part of those thanks.</p>
 

	
 
<h3>Sponsor Benefits</h3>
 
<p>Sponsor tickets come with sponsor benefits. To find out more, see our <a href="/sponsors/become-a-sponsor">Sponsors page</a>.</p>
 

	
 
{% endblock %}
pinaxcon/templates/static_pages/attend/finaid.html
Show inline comments
 
new file 100644
 
{% extends "page_with_title_and_lede.html" %}
 

	
 
{% load i18n %}
 

	
 
{% block head_title %}Financial Aid{% endblock %}
 

	
 
{% block heading %}Financial Aid{% endblock %}
 

	
 
{% block body_class %}attend{% endblock %}
 

	
 
{% block lede %}
 
Part of the Python community spirit is making knowledge &ndash; and access to the community &ndash; available to everyone who needs it. If don't live near Petaluma and need help getting here, we want to help out.
 
{% endblock %}
 

	
 
{% block content %}
 

	
 
<h2>What We'll Cover</h2>
 

	
 
<p>Our mission is to provide an accessible Python conference to everyone in Northern California. We understand that some people will need to travel for 2 or more hours to get to Petaluma, and that the costs of transport and lodging can add up. Our grants are intended to make your weekend at North Bay Python cost about as much as a weekend at home would cost.</p>
 

	
 
<p>If you're selected to receive financial aid, we'll cover the following for you:</p>
 

	
 
<ul>
 
  <li><strong>Ground transportation</strong>, up to $70 return: including public transit, including reasonable cab/rideshare fares between the venue and accommodation in Petaluma.</li>
 
  <li><strong>Accommodation subsidy</strong>, up to $80 per night, for up to 3 nights.</li>
 
  <li><strong>Free ticket</strong> to the conference.</li>
 
</ul>
 

	
 
<p>These subsidies are designed to make the conference affordable, no matter where you live in Northern California. You are still eligible even if you don't live close to Petaluma, however, we will not subsidise the cost of flights.</p>
 

	
 
<h2>Apply</h2>
 

	
 
 <p>To apply, please <a href="https://docs.google.com/forms/d/1SSzTFHWCpb_PcEyOTwZ9JhDyJxS8CH8-aiCO3DUQCiU/viewform">fill out the application form</a>.</p>
 

	
 
 <p><strong>Applications will be assessed every Friday, starting November 10th</strong> until November 24th, or our budget is exhausted, whichever comes first. To increase your chances of getting accepted, <strong>please apply as soon as possible.</strong></p>
 

	
 
 <h3>Application Information</h3>
 

	
 
 <p>In the application, you'll need to tell us the following:</p>
 

	
 
 <ul>
 
   <li>Your name</li>
 
   <li>Your company/organization</li>
 
   <li>Why you want to come to North Bay Python</li>
 
   <li>Where you're traveling from</li>
 
 </ul>
 

	
 
<p>The form shouldn't take more than 10 minutes for you to fill out.</p>
 

	
 

	
 
{% endblock %}
pinaxcon/templates/static_pages/attend/hotels.html
Show inline comments
 
{% extends "page_with_title_and_lede.html" %}
 

	
 
{% load i18n %}
 

	
 
{% block head_title %}Where to Stay{% endblock %}
 

	
 
{% block heading %}Where to Stay{% endblock %}
 

	
 
{% block body_class %}attend{% endblock %}
 

	
 
{% block lede %}
 
  If you're coming from out of town, we'd love you to stay the night! We've made arrangements with the best hotels in Petaluma, with exclusive rates for North Bay Python attendees.
 
{% endblock %}
 

	
 

	
 
{% block content %}
 

	
 
<h2>Official Hotels</h2>
 

	
 
<p>We've made arrangements with three local accommodation providers to suit different budget options.</p>
 

	
 
<h3>Hotel Petaluma</h3>
 

	
 
<div class="row">
 
  <div class="col-md-7">
 
    <dl class="dl-horizontal">
 
      <dt>Where</dt><dd><a href="https://www.google.com/maps/dir/Mystic+Theatre,+Petaluma+Boulevard+North,+Petaluma,+CA/Hotel+Petaluma,+205+Kentucky+St,+Petaluma,+CA+94952">205 Kentucky St (0.2mi from venue)</a></dd>
 
      <dt>Price</dt><dd>$117-$153/night + tax</dd>
 
      <dt>Style</dt><dd>Limited-Service Hotel</dd>
 
      <dt>Book by</dt><dd>November 1st</dd>
 
      <dt>Book by</dt><dd>November 9th</dd>
 
    </dl>
 
  </div>
 
  <div class="col-md-2">
 
    <a class="btn btn-lg btn-primary" href="https://www.choicehotels.com/reservations/groups/GH6NY6">Book Hotel Petaluma</a>
 
  </div>
 
</div>
 

	
 
<p>The only hotel in Downtown Petaluma is a recently renovated boutique hotel in a 1920s-era building. It's a short walk from North Bay Python's venue, and is close to Petaluma's best places to eat and drink.</p>
 

	
 
<p>Hotel Petaluma has offered all of their available rooms to North Bay Python attendees, so if you want to stay as close as possible to the venue, book through our exclusive link by November 1st.</p>
 

	
 
<h3>Sheraton Petaluma</h3>
 

	
 
<div class="row">
 
  <div class="col-md-7">
 
    <dl class="dl-horizontal">
 
      <dt>Where</dt><dd>Petaluma Marina, <a href="https://www.google.com/maps/dir/Mystic+Theatre,+23+Petaluma+Blvd+N,+Petaluma,+CA+94952/Sheraton+Sonoma+County+-+Petaluma,+Baywood+Drive,+Petaluma,+CA">745 Baywood Dr (1.7mi from venue)</a></dd>
 
      <dt>Price</dt><dd>$129/night + tax</dd>
 
      <dt>Style</dt><dd>Full-Service Hotel</dd>
 
      <dt>Book by</dt><dd>November 17th</dd>
 
    </dl>
 
  </div>
 
  <div class="col-md-2">
 
    <a class="btn btn-lg btn-primary" href="https://www.starwoodmeeting.com/Book/NorthBayPython">Book Sheraton Petaluma</a>
 
  </div>
 
</div>
 

	
 
<p>The only full-service hotel in Petaluma operated by a major chain. The Sheraton sits on the riverfront at the Petaluma Marina, and is a short drive from the venue. Our exclusive rate of $129/night is available until November 17th.</p>
 

	
 

	
 

	
 
<h3>Quality Inn Petaluma</h3>
 

	
 
<div class="row">
 
  <div class="col-md-7">
 
    <dl class="dl-horizontal">
 
      <dt>Where</dt><dd><a href="https://www.google.com/maps/dir/Mystic+Theatre,+23+Petaluma+Blvd+N,+Petaluma,+CA+94952/Quality+Inn+Petaluma+-+Sonoma,+Montero+Way,+Petaluma,+CA">5100 Montero Way (3.7mi from venue)</a></dd>
 
      <dt>Price</dt><dd>from $81/night + tax</dd>
 
      <dt>Style</dt><dd>Motor Inn</dd>
 
      <dt>Book</dt><dd>while rooms last</dd>
 
    </dl>
 
  </div>
 
  <div class="col-md-2">
 
    <a class="btn btn-lg btn-primary" href="https://www.choicehotels.com/california/petaluma/quality-inn-hotels/ca056/rates?adults=2&checkInDate=2017-12-01&checkOutDate=2017-12-04&ratePlanCode=LEVNT">Book Quality Inn Petaluma</a>
 
  </div>
 
</div>
 

	
 
<p>A modern, comfortable motel at the northern end of the city is a great option for attendees looking to save money. North Bay Python attendees get 15% off the best published rate at the time of booking by using our exclusive booking link.</p>
 

	
 

	
 
<h2>Other options</h2>
 

	
 
<h3>In Petaluma</h3>
 

	
 
<p>There are other options for staying in Petaluma, that cater to a variety of budgets. We don't have an official relationship with these vendors, and provide these links for informational purposes only.</p>
 

	
 
<ul>
 
  <li>
 
    <strong><a href="http://www.metrolodging.com/">Metro Hotel</a></strong>. Boutique Hotel,
 
    <a href="https://www.google.com/maps/dir/Mystic+Theatre,+Petaluma+Boulevard+North,+Petaluma,+CA/Metro+Hotel+%26+Cafe,+508+Petaluma+Blvd+S,+Petaluma,+CA+94952">508 Petaluma Blvd S (0.4mi from venue)</a>
 
  </li>
 
  <li>
 
    <strong><a href="http://bestwesterncalifornia.com/hotels/best-western-petaluma-inn">Best Western Petaluma Inn</a></strong>. Motor Inn,
 
    <a href="https://www.google.com/maps/dir/Mystic+Theatre,+23+Petaluma+Blvd+N,+Petaluma,+CA+94952/Best+Western+Petaluma+Inn,+South+McDowell+Boulevard,+Petaluma,+CA">200 S McDowell Blvd (1.5mi from venue)</a>
 
  </li>
 
  <li>
 
    <strong><a href="http://www.petalumavalleyinn.com/">America's Best Value Inn &amp; Suites</a></strong>. Motor Inn,
 
    <a href="https://www.google.com/maps/dir/Americas+Best+Value+Inn+%26+Suites+Petaluma,+Montero+Way,+Petaluma,+CA/Mystic+Theatre,+23+Petaluma+Blvd+N,+Petaluma,+CA+94952">5135 Montero Way (3.7mi from venue)</a>
 
  </li>
 
  <li>
 
    <strong><a href="https://www.motel6.com/en/motels.ca.petaluma.1369.html">Motel 6</a></strong>. Motel,
 
    <a href="https://www.google.com/maps/dir/Motel+6+Petaluma,+North+McDowell+Boulevard,+Petaluma,+CA/Mystic+Theatre,+23+Petaluma+Blvd+N,+Petaluma,+CA+94952">1368 N McDowell Blvd (3.8mi from venue)</a>
 
  </li>
 
  <li>
 
    <strong><a href="https://koa.com/campgrounds/san-francisco/">KOA San Francisco North/Petaluma</a></strong>. Campground with self-contained cabins,
 
    <a href="https://www.google.com/maps/dir/San+Francisco+North+%2F+Petaluma+KOA,+Rainsville+Road,+Petaluma,+CA/Mystic+Theatre,+23+Petaluma+Blvd+N,+Petaluma,+CA+94952">20 Rainsville Rd (3.8mi from venue)</a>
 
  </li>
 
</ul>
 

	
 

	
 
<h3>Further Afield</h3>
 

	
 
<p>If you can't find something you're looking for in Petaluma, the nearby freeway town of Rohnert Park is 15 minutes drive away and has plenty of accommodation next to the freeway. People looking to spend obscene amounts of money may also be interested in the resort town of Sonoma, which is 20 minutes drive away.</p>
 

	
 
<p>Reasonable chain hotel and motel options also exist in Novato, however, we don't recommend staying there as traffic between there and Petaluma can be unpredictable.</p>
 

	
 

	
 
{% endblock %}
pinaxcon/templates/static_pages/homepage.html
Show inline comments
 
{% extends "site_base_home.html" %}
 

	
 
{% load i18n %}
 
{% load staticfiles %}
 
{% load thumbnail %}
 
{% load sponsorship_tags %}
 
{% load schedule_tags %}
 

	
 
{% block head_title %}Welcome{% endblock %}
 

	
 
{% block body_class %}home{% endblock %}
 

	
 
{% block body %}
 

	
 
  <div class="homepage-block-bg website-background"></div>
 
  <div class="jumbotron homepage-block light">
 
    <div class="homepage-block-bg website-background"></div>
 
    <div class="hills main"></div>
 
    <div class="container homepage-block-content">
 
      <div class="tight-headings">
 
        <h1>North Bay Python</h1>
 
        <h2 class="homepage-subtitle">A Python conference north of the Golden Gate</h2>
 
      </div>
 

	
 
      <div class="row">
 
        <div class="col-md-6">
 
          <h3>
 
            The Mystic Theatre</br>
 
            Petaluma, California
 
          </h3>
 

	
 
          <h4>
 
            December 2 &amp; 3, 2017<br/>
 
            Tickets on sale from $50
 
          </h4>
 
        </div>
 
        <div class="col-md-4 col-md-offset-2 email-signup-panel">
 
          <div class="panel panel-default">
 
            <div class="panel-heading">
 
              <h2 class="panel-title">Sign up for our low-volume announcements newsletter!</h4>
 
            </div>
 
            <div class="panel-body">
 
              <form
 
                class="form-inline"
 
                action="https://tinyletter.com/northbaypython" method="post" target="popupwindow" onsubmit="window.open('https://tinyletter.com/northbaypython', 'popupwindow', 'scrollbars=yes,width=800,height=600');return true">
 
                <div class="form-group">
 
                  <span>
 
                    <label class="hidden-accessible" for="tlemail">Email address:</label>
 
                  </span>
 
                  <span>
 
                    <input class="form-control" type="email" name="email" id="tlemail" placeholder="E-mail address"/>
 
                  </span>
 
                </div>
 
                <span>
 
                  <input class="btn btn-primary" type="submit" value="Subscribe" />
 
                </span>
 

	
 
                <input type="hidden" value="1" name="embed"/>
 
              </form>
 
            </div>
 
          </div>
 
        </div>
 

	
 
      </div>
 

	
 
    </div>
 

	
 
    <div class="container homepage-block-footer">
 
      <div>
 
        <a class="btn btn-primary btn-lg" href="/attend">Buy a Ticket!</a>
 
        <a class="btn btn-default btn-lg " href="https://twitter.com/northbaypython">Twitter</a>
 
        <a class="btn btn-default btn-lg" href="https://facebook.com/northbaypython">Facebook</a>
 
      </div>
 
    </div>
 
  </div>
 

	
 
  <div class="jumbotron homepage-block white">
 
    <div class="container homepage-block-content">
 
      <h1>Speakers</h1>
 

	
 
      <div class="row speaker-list">
 

	
 
        <div class="speaker" >
 
          <div class="image-alignment">
 
            <div class="circle" style="border: 0;">
 
                <div class="fill" style="background-image: url('{% static "images/cczona.jpg" %}');"></div>
 
                <div class="fill" style="background-image: url('{% static "images/brandon.jpg" %}');"></div>
 
            </div>
 
          </div>
 
          <h4>Brandon Rhodes</h4>
 
          <span class="presentation-title">Keynote Speaker</span>
 
        </div>
 

	
 
        <div class="speaker" >
 
          <div class="image-alignment">
 
            <div class="circle" style="border: 0;">
 
                <div class="fill" style="background-image: url('{% static "images/cczona.jpg" %}');"></div>
 
            </div>
 
          </div>
 
          <h4>Carina C. Zona</h4>
 
          <span class="presentation-title">Keynote Speaker</span>
 
        </div>
 

	
 
        {% speakers as speakers %}
 
        {% for speaker in speakers %}
 
          <div class="speaker" >
 
            <div class="image-alignment">
 
              <div class="circle" style="border: 0;">
 
                {% if speaker.photo %}
 
                  <div class="fill" style="background-image: url('{% thumbnail speaker.photo '600x600' %}');"></div>
 
                {% else %}
 
                  <div class="fill" style="background-image: url('{% static "images/website-background.svg" %}');"></div>
 
                {% endif %}
 
              </div>
 
            </div>
 
            {% for presentation in speaker.presentations.all %}
 
              <a href="{% url "schedule_presentation_detail" presentation.id %}">
 
              <h4>{{ speaker.conferencespeaker.name }}</h4>
 
                <span class="presentation-title">{{ presentation.title }}</span>
 
              </a>
 
            {% endfor %}
 
          </div>
 
        {% endfor %}
 

	
 
        <div class="speaker" >
 
          <div class="image-alignment">
 
            <div class="circle" style="border: 0;">
 
                <div class="fill" style="background-image: url('{% static "images/vmbrasseur.jpg" %}');"></div>
 
            </div>
 
          </div>
 
          <h4>VM Brasseur</h4>
 
          <span class="presentation-title">Speaker Training</span>
 
        </div>
 

	
 
      </div>
 
    </div>
 

	
 
    <div class="homepage-block-footer full-width">
 
      <div class="container">
 
        <div class="row">
 
          <div class="col-md-4">
 
            <a class="btn btn-lg btn-primary btn-shadow" href="/schedule/general-sessions/list">See the Full Program</a>
 
          </div>
 
        </div>
 
      </div>
 
    </div>
 
  </div>
 

	
 

	
 
  <div class="jumbotron homepage-block dark">
 
    <div class="homepage-block-bg mystic-background"></div>
 
    <div class="container homepage-block-content">
 
      <h1>Downtown Petaluma</h1>
 

	
 
      <p>North Bay Python's home is Petaluma, a delightfully quaint dairy town, nestled on a river at the edge of California's Wine Country. Here's what you can look forward to:</p>
 

	
 
      <ul>
 
        <li>An historic venue with countless restaurants and coffee shops in walking distance</li>
 
        <li>World-famous craft food and drink producers on your doorstep</li>
 
        <li>Charming <a href="/attend/hotels">small-town hotels</a>, as close as one block away</li>
 
      </ul>
 

	
 
      <p>&hellip; and it's <a href="/attend/travel">only an hour away from San Francisco</a> (on a good day).</p>
 
    </div>
 

	
 
    <div class="homepage-block-footer full-width">
 
      <div class="container">
 
        <div class="row">
 
          <div class="col-md-4">
 
            <a class="btn btn-lg btn-primary btn-shadow" href="/about/petaluma">Learn More</a>
 
            <a class="btn btn-lg btn-info" href="/attend/hotels">Hotels</a>
 
            <a class="btn btn-lg btn-info" href="/attend/travel">Travel</a>
 
          </div>
 

	
 
          <div class="col-md-8 text-right photo-attribution">
 
            Image credit: <a href="https://www.instagram.com/p/BU-G5dGAkHt">Mystic Theatre</a>, &copy; 2017 Christopher Neugebauer (<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC BY-SA 2.0</a>)
 
          </div>
 
        </div>
 
      </div>
 
    </div>
 
  </div>
 

	
 
  <div class="jumbotron homepage-block white">
 
    <div class="container homepage-block-content">
 
      <h1>Sponsors</h1>
 

	
 
      {% sponsor_levels as levels %}
 

	
 
      <div class="row sponsor-list">
 
      {% for level in levels %}
 
          {% if level.sponsors %}
 
              {% for sponsor in level.sponsors %}
 
                  <div class="sponsor">
 
                    <div class="logo-alignment">
 
                      {% if sponsor.website_logo %}
 
                          <a href="{{ sponsor.external_url }}">
 
                              <img src="{% thumbnail sponsor.website_logo '600x360' %}" alt="{{ sponsor.name }}">
 
                          </a>
 
                      {% else %}
 
                          <a href="{{ sponsor.external_url }}">{{ sponsor.name }}</a>
 
                      {% endif %}
 
                    </div>
 
                  </div>
 
              {% endfor %}
 
          {% endif %}
 
      {% endfor %}
 
      </div>
 
    </div>
 

	
 
    <div class="container homepage-block-footer">
 
      <div class="btn-group">
 
        <a class="btn btn-lg btn-primary btn-shadow" href="/sponsors/become-a-sponsor">Become a Sponsor</a>
 
      </div>
 
    </div>
 
  </div>
 

	
 
  <div class="jumbotron homepage-block dark">
 
    <div class="homepage-block-bg djangogirls-background"></div>
 
    <div class="container homepage-block-content">
 
      <h1>Inclusion and Diversity</h1>
 

	
 
      <p>North Bay Python is proud to be founded on a commitment to inclusion and diversity. Here's what we commit to:</p>
 

	
 
      <ul>
 
        <li>A strong Code of Conduct and enforcement policy built on the Python Software Foundation's PyCon US policy.</li>
 
        <li>Diversity targets for speakers and attendees.</li>
 
        <li>Financial assistance for speakers who need it.</li>
 
        <li>Low-cost tickets, with fees enthusiastically waived on request.</li>
 
      </ul>
 
    </div>
 

	
 
    <div class="homepage-block-footer full-width">
 
      <div class="container">
 
        <div class="row">
 
          <div class="btn-group col-md-4">
 
            <a class="btn btn-lg btn-primary btn-shadow" href="/code-of-conduct" title"North Bay Python Code of Conduct">Read the Code of Conduct</a>
 
          </div>
 

	
 
          <div class="col-md-8 text-right photo-attribution">
 
            Image credit: <a href="https://www.flickr.com/photos/richard_jones/14638274749">DjangoGirls Brisbane</a>, &copy; 2014 Richard Jones (<a href="https://creativecommons.org/licenses/by/2.0/">CC BY 2.0</a>)
 
          </div>
 
        </div>
 
      </div>
 
    </div>
 
  </div>
 

	
 
{% endblock %}
pinaxcon/templates/symposion/schedule/presentation_detail.html
Show inline comments
 
new file 100644
 
{% extends "symposion/schedule/presentation_detail_.html" %}
 

	
 
{% load thumbnail %}
 
{% load staticfiles %}
 

	
 
{% comment %}
 
  Blocks you can override:
 

	
 
  - description (appears in lede)
 
  - abstract
 
  - speaker
 
{% endcomment %}
 

	
 
{% block speaker %}
 
  <h2>{{ speaker.name }}</h2>
 

	
 
  <div class="row">
 
    <div class="col-sm-4 col-xs-6">
 
      <div class="circle" style="border: 0;">
 
        {% if speaker.photo %}
 
          <div class="fill" style="background-image: url('{% thumbnail speaker.photo '600x600' %}');"></div>
 
        {% else %}
 
          <div class="fill" style="background-image: url('{% static "images/website-background.svg" %}');"></div>
 
        {% endif %}
 
      </div>
 
    </div>
 
    <div class="col-sm-8">
 
      <div class="bio">
 
        {{ speaker.biography_html|safe }}
 
      </div>
 

	
 
      {% if speaker.conferencespeaker.twitter_username %}
 
        <a class="btn btn-primary" href="https://twitter.com/{{ speaker.conferencespeaker.twitter_username }}">Twitter</a>
 
      {% endif %}
 
    </div>
 
  </div>
 
{% endblock %}
pinaxcon/templatetags/nbpy_tags.py
Show inline comments
 
from registrasion.models import commerce
 
from registrasion.controllers.category import CategoryController
 
from registrasion.controllers.item import ItemController
 

	
 
from decimal import Decimal
 
from django import template
 
from django.conf import settings
 
from django.db.models import Sum
 
from urllib import urlencode  # TODO: s/urllib/six.moves.urllib/
 

	
 
register = template.Library()
 

	
 

	
 
@register.simple_tag(takes_context=True)
 
def donation_income(context, invoice):
 
    ''' Calculates the donation income for a given invoice.
 

	
 
    Returns:
 
        the donation income.
 

	
 
    '''
 

	
 
    # 15% (FSA) goes to Conservancy; 85% is real goods
 

	
 
    fsa_rate = Decimal("0.85")
 
    rbi_full_ticket = Decimal("68.00")
 
    rbi_early_bird_discount = Decimal("-21.35")
 
    rbi = []
 

	
 
    for line in invoice.lineitem_set.all():
 
        if line.product.category.name == "Ticket":
 
            if line.product.name.startswith("Unaffiliated Individual"):
 
                # Includes full price & discounts
 
                rbi.append(line.total_price * fsa_rate)
 
            else:
 
                if line.total_price > 0:
 
                    rbi.append(rbi_full_ticket)
 
                elif line.total_price < 0:
 
                    rbi.append(rbi_early_bird_discount)
 
        elif line.product.category.name == "T-Shirt":
 
            rbi.append(line.total_price * fsa_rate)
 

	
 
    donation = (invoice.value - sum(rbi))
 
    donation = max(Decimal('0'), (invoice.value - sum(rbi)))
 
    return donation.quantize(Decimal('.01'))
pinaxcon/urls.py
Show inline comments
 
from django.conf import settings
 
from django.conf.urls import include, url
 
from django.conf.urls.static import static
 
from django.contrib.staticfiles.templatetags.staticfiles import static as _static
 
from django.views.generic import TemplateView
 
from django.views.generic import RedirectView
 

	
 
from django.contrib import admin
 

	
 
from pinaxcon import views
 

	
 
import symposion.views
 

	
 

	
 
urlpatterns = [
 
    url(r"^$", TemplateView.as_view(template_name="static_pages/homepage.html"), name="home"),
 

	
 
    # about
 
    url(r"^about/north-bay-python$", TemplateView.as_view(template_name="static_pages/about/north_bay_python.html"), name="about/north-bay-python"),
 
    url(r"^about/petaluma$", TemplateView.as_view(template_name="static_pages/about/petaluma.html"), name="about/petaluma"),
 
    url(r"^about/team$", TemplateView.as_view(template_name="static_pages/about/team.html"), name="about/team"),
 
    url(r"^about/transparency$", TemplateView.as_view(template_name="static_pages/about/transparency/transparency.html"), name="about/transparency"),
 
    url(r"^about/program-transparency$", TemplateView.as_view(template_name="static_pages/about/transparency/program.html"), name="about/program-transparency"),
 
    url(r"^about/colophon$", TemplateView.as_view(template_name="static_pages/about/colophon.html"), name="about/colophon"),
 

	
 
    # program
 
    url(r"^program/events$", TemplateView.as_view(template_name="static_pages/program/events.html"), name="program/events"),
 
    url(r"^program/call-for-proposals$", TemplateView.as_view(template_name="static_pages/program/call_for_proposals.html"), name="program/call-for-proposals"),
 
    url(r"^program/selection-process$", TemplateView.as_view(template_name="static_pages/program/selection_process.html"), name="program/selection-process"),
 
    url(r"^proposals$", RedirectView.as_view(url="program/call-for-proposals")),
 
    url(r"^cfp$", RedirectView.as_view(url="program/call-for-proposals")),
 

	
 
    # attend
 
    url(r"^attend$", TemplateView.as_view(template_name="static_pages/attend/attend.html"), name="attend/attend"),
 
    url(r"^tickets$", RedirectView.as_view(url="attend")),
 
    url(r"^tickets/buy$", views.buy_ticket, name="buy_ticket"),
 
    url(r"^attend/business-case$", TemplateView.as_view(template_name="static_pages/attend/business-case.html"), name="attend/business-case"),
 
    url(r"^attend/finaid$", TemplateView.as_view(template_name="static_pages/attend/finaid.html"), name="attend/finaid"),
 
    url(r"^attend/travel$", TemplateView.as_view(template_name="static_pages/attend/travel.html"), name="attend/travel"),
 
    url(r"^attend/hotels$", TemplateView.as_view(template_name="static_pages/attend/hotels.html"), name="attend/hotels"),
 
    url(r"^attend/tshirt$", TemplateView.as_view(template_name="static_pages/attend/tshirt.html"), name="attend/tshirt"),
 

	
 
    url(r"^code-of-conduct$", TemplateView.as_view(template_name="static_pages/code_of_conduct/code_of_conduct.html"), name="code-of-conduct"),
 
    url(r"^code-of-conduct/harassment-incidents$", TemplateView.as_view(template_name="static_pages/code_of_conduct/harassment_procedure_attendee.html"), name="code-of-conduct/harassment-incidents"),
 
    url(r"^code-of-conduct/harassment-staff-procedures$", TemplateView.as_view(template_name="static_pages/code_of_conduct/harassment_procedure_staff.html"), name="code-of-conduct/harassment-staff-procedures"),
 
    url(r"^terms-and-conditions$", TemplateView.as_view(template_name="static_pages/terms_and_conditions.html"), name="terms-and-conditions"),
 
    url(r"^terms$", RedirectView.as_view(url="terms-and-conditions")),
 

	
 
    # sponsor
 
    url(r"^sponsors/prospectus$", RedirectView.as_view(url=_static("assets/northbaypython_prospectus.pdf")), name="sponsors/prospectus"),
 
    url(r"^northbaypython_prospectus.pdf$", RedirectView.as_view(url=_static("assets/northbaypython_prospectus.pdf")), name="northbaypython_prospectus.pdf"),
 
    url(r"^sponsors/become-a-sponsor$", TemplateView.as_view(template_name="static_pages/sponsors/become_a_sponsor.html"), name="sponsors/become-a-sponsor"),
 
    url(r"^sponsors/donate$", TemplateView.as_view(template_name="static_pages/sponsors/donate.html"), name="sponsors/donate"),
 
    url(r"^donate$", RedirectView.as_view(url="sponsors/donate")),
 
    url(r"^about/donate$", RedirectView.as_view(url="sponsors/donate")),
 

	
 
    # news
 
    url(r"^news$", TemplateView.as_view(template_name="static_pages/news.html"), name="news"),
 

	
 
    # Django, Symposion, and Registrasion URLs
 

	
 
    url(r"^admin/", include(admin.site.urls)),
 

	
 
    url(r"^login$", views.account_login, name="nbpy_login"),
 
    # Override the default account_login view with one that takes email addys
 
    url(r"^account/login/$", views.EmailLoginView.as_view(), name="account_login"),
 
    url(r"^account/", include("account.urls")),
 

	
 
    url(r"^dashboard/", symposion.views.dashboard, name="dashboard"),
 

	
 
    url(r"^speaker/", include("symposion.speakers.urls")),
 
    url(r"^proposals/", include("symposion.proposals.urls")),
 
    url(r"^sponsors/", include("symposion.sponsorship.urls")),
 
    url(r"^reviews/", include("symposion.reviews.urls")),
 
    url(r"^schedule/", include("symposion.schedule.urls")),
 

	
 
    url(r"^teams/", include("symposion.teams.urls")),
 

	
 
    # Demo payment gateway and related features
 
    url(r"^tickets/payments/", include("registripe.urls")),
 

	
 
    # Required by registrasion
 
    url(r'^tickets/', include('registrasion.urls')),
 
    url(r'^nested_admin/', include('nested_admin.urls')),
 

	
 
    # Catch-all MUST go last.
 
    #url(r"^", include("pinax.pages.urls")),
 
]
 

	
 
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
 

	
 
handler500 = views.server_error
static/chosen/chosen.css
Show inline comments
 
new file 100755
 
/*!
 
Chosen, a Select Box Enhancer for jQuery and Prototype
 
by Patrick Filler for Harvest, http://getharvest.com
 

	
 
Version 1.8.2
 
Full source at https://github.com/harvesthq/chosen
 
Copyright (c) 2011-2017 Harvest http://getharvest.com
 

	
 
MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
 
This file is generated by `grunt build`, do not edit it by hand.
 
*/
 

	
 
/* @group Base */
 
.chosen-container {
 
  position: relative;
 
  display: inline-block;
 
  vertical-align: middle;
 
  font-size: 13px;
 
  -webkit-user-select: none;
 
     -moz-user-select: none;
 
      -ms-user-select: none;
 
          user-select: none;
 
}
 

	
 
.chosen-container * {
 
  -webkit-box-sizing: border-box;
 
          box-sizing: border-box;
 
}
 

	
 
.chosen-container .chosen-drop {
 
  position: absolute;
 
  top: 100%;
 
  z-index: 1010;
 
  width: 100%;
 
  border: 1px solid #aaa;
 
  border-top: 0;
 
  background: #fff;
 
  -webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
 
          box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
 
  clip: rect(0, 0, 0, 0);
 
}
 

	
 
.chosen-container.chosen-with-drop .chosen-drop {
 
  clip: auto;
 
}
 

	
 
.chosen-container a {
 
  cursor: pointer;
 
}
 

	
 
.chosen-container .search-choice .group-name, .chosen-container .chosen-single .group-name {
 
  margin-right: 4px;
 
  overflow: hidden;
 
  white-space: nowrap;
 
  text-overflow: ellipsis;
 
  font-weight: normal;
 
  color: #999999;
 
}
 

	
 
.chosen-container .search-choice .group-name:after, .chosen-container .chosen-single .group-name:after {
 
  content: ":";
 
  padding-left: 2px;
 
  vertical-align: top;
 
}
 

	
 
/* @end */
 
/* @group Single Chosen */
 
.chosen-container-single .chosen-single {
 
  position: relative;
 
  display: block;
 
  overflow: hidden;
 
  padding: 0 0 0 8px;
 
  height: 25px;
 
  border: 1px solid #aaa;
 
  border-radius: 5px;
 
  background-color: #fff;
 
  background: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #fff), color-stop(50%, #f6f6f6), color-stop(52%, #eee), to(#f4f4f4));
 
  background: linear-gradient(#fff 20%, #f6f6f6 50%, #eee 52%, #f4f4f4 100%);
 
  background-clip: padding-box;
 
  -webkit-box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1);
 
          box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1);
 
  color: #444;
 
  text-decoration: none;
 
  white-space: nowrap;
 
  line-height: 24px;
 
}
 

	
 
.chosen-container-single .chosen-default {
 
  color: #999;
 
}
 

	
 
.chosen-container-single .chosen-single span {
 
  display: block;
 
  overflow: hidden;
 
  margin-right: 26px;
 
  text-overflow: ellipsis;
 
  white-space: nowrap;
 
}
 

	
 
.chosen-container-single .chosen-single-with-deselect span {
 
  margin-right: 38px;
 
}
 

	
 
.chosen-container-single .chosen-single abbr {
 
  position: absolute;
 
  top: 6px;
 
  right: 26px;
 
  display: block;
 
  width: 12px;
 
  height: 12px;
 
  background: url("chosen-sprite.png") -42px 1px no-repeat;
 
  font-size: 1px;
 
}
 

	
 
.chosen-container-single .chosen-single abbr:hover {
 
  background-position: -42px -10px;
 
}
 

	
 
.chosen-container-single.chosen-disabled .chosen-single abbr:hover {
 
  background-position: -42px -10px;
 
}
 

	
 
.chosen-container-single .chosen-single div {
 
  position: absolute;
 
  top: 0;
 
  right: 0;
 
  display: block;
 
  width: 18px;
 
  height: 100%;
 
}
 

	
 
.chosen-container-single .chosen-single div b {
 
  display: block;
 
  width: 100%;
 
  height: 100%;
 
  background: url("chosen-sprite.png") no-repeat 0px 2px;
 
}
 

	
 
.chosen-container-single .chosen-search {
 
  position: relative;
 
  z-index: 1010;
 
  margin: 0;
 
  padding: 3px 4px;
 
  white-space: nowrap;
 
}
 

	
 
.chosen-container-single .chosen-search input[type="text"] {
 
  margin: 1px 0;
 
  padding: 4px 20px 4px 5px;
 
  width: 100%;
 
  height: auto;
 
  outline: 0;
 
  border: 1px solid #aaa;
 
  background: url("chosen-sprite.png") no-repeat 100% -20px;
 
  font-size: 1em;
 
  font-family: sans-serif;
 
  line-height: normal;
 
  border-radius: 0;
 
}
 

	
 
.chosen-container-single .chosen-drop {
 
  margin-top: -1px;
 
  border-radius: 0 0 4px 4px;
 
  background-clip: padding-box;
 
}
 

	
 
.chosen-container-single.chosen-container-single-nosearch .chosen-search {
 
  position: absolute;
 
  clip: rect(0, 0, 0, 0);
 
}
 

	
 
/* @end */
 
/* @group Results */
 
.chosen-container .chosen-results {
 
  color: #444;
 
  position: relative;
 
  overflow-x: hidden;
 
  overflow-y: auto;
 
  margin: 0 4px 4px 0;
 
  padding: 0 0 0 4px;
 
  max-height: 240px;
 
  -webkit-overflow-scrolling: touch;
 
}
 

	
 
.chosen-container .chosen-results li {
 
  display: none;
 
  margin: 0;
 
  padding: 5px 6px;
 
  list-style: none;
 
  line-height: 15px;
 
  word-wrap: break-word;
 
  -webkit-touch-callout: none;
 
}
 

	
 
.chosen-container .chosen-results li.active-result {
 
  display: list-item;
 
  cursor: pointer;
 
}
 

	
 
.chosen-container .chosen-results li.disabled-result {
 
  display: list-item;
 
  color: #ccc;
 
  cursor: default;
 
}
 

	
 
.chosen-container .chosen-results li.highlighted {
 
  background-color: #3875d7;
 
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
 
  background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
 
  color: #fff;
 
}
 

	
 
.chosen-container .chosen-results li.no-results {
 
  color: #777;
 
  display: list-item;
 
  background: #f4f4f4;
 
}
 

	
 
.chosen-container .chosen-results li.group-result {
 
  display: list-item;
 
  font-weight: bold;
 
  cursor: default;
 
}
 

	
 
.chosen-container .chosen-results li.group-option {
 
  padding-left: 15px;
 
}
 

	
 
.chosen-container .chosen-results li em {
 
  font-style: normal;
 
  text-decoration: underline;
 
}
 

	
 
/* @end */
 
/* @group Multi Chosen */
 
.chosen-container-multi .chosen-choices {
 
  position: relative;
 
  overflow: hidden;
 
  margin: 0;
 
  padding: 0 5px;
 
  width: 100%;
 
  height: auto;
 
  border: 1px solid #aaa;
 
  background-color: #fff;
 
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(1%, #eee), color-stop(15%, #fff));
 
  background-image: linear-gradient(#eee 1%, #fff 15%);
 
  cursor: text;
 
}
 

	
 
.chosen-container-multi .chosen-choices li {
 
  float: left;
 
  list-style: none;
 
}
 

	
 
.chosen-container-multi .chosen-choices li.search-field {
 
  margin: 0;
 
  padding: 0;
 
  white-space: nowrap;
 
}
 

	
 
.chosen-container-multi .chosen-choices li.search-field input[type="text"] {
 
  margin: 1px 0;
 
  padding: 0;
 
  height: 25px;
 
  outline: 0;
 
  border: 0 !important;
 
  background: transparent !important;
 
  -webkit-box-shadow: none;
 
          box-shadow: none;
 
  color: #999;
 
  font-size: 100%;
 
  font-family: sans-serif;
 
  line-height: normal;
 
  border-radius: 0;
 
  width: 25px;
 
}
 

	
 
.chosen-container-multi .chosen-choices li.search-choice {
 
  position: relative;
 
  margin: 3px 5px 3px 0;
 
  padding: 3px 20px 3px 5px;
 
  border: 1px solid #aaa;
 
  max-width: 100%;
 
  border-radius: 3px;
 
  background-color: #eeeeee;
 
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eee));
 
  background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
 
  background-size: 100% 19px;
 
  background-repeat: repeat-x;
 
  background-clip: padding-box;
 
  -webkit-box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
 
          box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
 
  color: #333;
 
  line-height: 13px;
 
  cursor: default;
 
}
 

	
 
.chosen-container-multi .chosen-choices li.search-choice span {
 
  word-wrap: break-word;
 
}
 

	
 
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
 
  position: absolute;
 
  top: 4px;
 
  right: 3px;
 
  display: block;
 
  width: 12px;
 
  height: 12px;
 
  background: url("chosen-sprite.png") -42px 1px no-repeat;
 
  font-size: 1px;
 
}
 

	
 
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
 
  background-position: -42px -10px;
 
}
 

	
 
.chosen-container-multi .chosen-choices li.search-choice-disabled {
 
  padding-right: 5px;
 
  border: 1px solid #ccc;
 
  background-color: #e4e4e4;
 
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eee));
 
  background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
 
  color: #666;
 
}
 

	
 
.chosen-container-multi .chosen-choices li.search-choice-focus {
 
  background: #d4d4d4;
 
}
 

	
 
.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
 
  background-position: -42px -10px;
 
}
 

	
 
.chosen-container-multi .chosen-results {
 
  margin: 0;
 
  padding: 0;
 
}
 

	
 
.chosen-container-multi .chosen-drop .result-selected {
 
  display: list-item;
 
  color: #ccc;
 
  cursor: default;
 
}
 

	
 
/* @end */
 
/* @group Active  */
 
.chosen-container-active .chosen-single {
 
  border: 1px solid #5897fb;
 
  -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
 
          box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
 
}
 

	
 
.chosen-container-active.chosen-with-drop .chosen-single {
 
  border: 1px solid #aaa;
 
  border-bottom-right-radius: 0;
 
  border-bottom-left-radius: 0;
 
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #eee), color-stop(80%, #fff));
 
  background-image: linear-gradient(#eee 20%, #fff 80%);
 
  -webkit-box-shadow: 0 1px 0 #fff inset;
 
          box-shadow: 0 1px 0 #fff inset;
 
}
 

	
 
.chosen-container-active.chosen-with-drop .chosen-single div {
 
  border-left: none;
 
  background: transparent;
 
}
 

	
 
.chosen-container-active.chosen-with-drop .chosen-single div b {
 
  background-position: -18px 2px;
 
}
 

	
 
.chosen-container-active .chosen-choices {
 
  border: 1px solid #5897fb;
 
  -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
 
          box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
 
}
 

	
 
.chosen-container-active .chosen-choices li.search-field input[type="text"] {
 
  color: #222 !important;
 
}
 

	
 
/* @end */
 
/* @group Disabled Support */
 
.chosen-disabled {
 
  opacity: 0.5 !important;
 
  cursor: default;
 
}
 

	
 
.chosen-disabled .chosen-single {
 
  cursor: default;
 
}
 

	
 
.chosen-disabled .chosen-choices .search-choice .search-choice-close {
 
  cursor: default;
 
}
 

	
 
/* @end */
 
/* @group Right to Left */
 
.chosen-rtl {
 
  text-align: right;
 
}
 

	
 
.chosen-rtl .chosen-single {
 
  overflow: visible;
 
  padding: 0 8px 0 0;
 
}
 

	
 
.chosen-rtl .chosen-single span {
 
  margin-right: 0;
 
  margin-left: 26px;
 
  direction: rtl;
 
}
 

	
 
.chosen-rtl .chosen-single-with-deselect span {
 
  margin-left: 38px;
 
}
 

	
 
.chosen-rtl .chosen-single div {
 
  right: auto;
 
  left: 3px;
 
}
 

	
 
.chosen-rtl .chosen-single abbr {
 
  right: auto;
 
  left: 26px;
 
}
 

	
 
.chosen-rtl .chosen-choices li {
 
  float: right;
 
}
 

	
 
.chosen-rtl .chosen-choices li.search-field input[type="text"] {
 
  direction: rtl;
 
}
 

	
 
.chosen-rtl .chosen-choices li.search-choice {
 
  margin: 3px 5px 3px 0;
 
  padding: 3px 5px 3px 19px;
 
}
 

	
 
.chosen-rtl .chosen-choices li.search-choice .search-choice-close {
 
  right: auto;
 
  left: 4px;
 
}
 

	
 
.chosen-rtl.chosen-container-single .chosen-results {
 
  margin: 0 0 4px 4px;
 
  padding: 0 4px 0 0;
 
}
 

	
 
.chosen-rtl .chosen-results li.group-option {
 
  padding-right: 15px;
 
  padding-left: 0;
 
}
 

	
 
.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
 
  border-right: none;
 
}
 

	
 
.chosen-rtl .chosen-search input[type="text"] {
 
  padding: 4px 5px 4px 20px;
 
  background: url("chosen-sprite.png") no-repeat -30px -20px;
 
  direction: rtl;
 
}
 

	
 
.chosen-rtl.chosen-container-single .chosen-single div b {
 
  background-position: 6px 2px;
 
}
 

	
 
.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
 
  background-position: -12px 2px;
 
}
 

	
 
/* @end */
 
/* @group Retina compatibility */
 
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi), only screen and (min-resolution: 1.5dppx) {
 
  .chosen-rtl .chosen-search input[type="text"],
 
  .chosen-container-single .chosen-single abbr,
 
  .chosen-container-single .chosen-single div b,
 
  .chosen-container-single .chosen-search input[type="text"],
 
  .chosen-container-multi .chosen-choices .search-choice .search-choice-close,
 
  .chosen-container .chosen-results-scroll-down span,
 
  .chosen-container .chosen-results-scroll-up span {
 
    background-image: url("chosen-sprite@2x.png") !important;
 
    background-size: 52px 37px !important;
 
    background-repeat: no-repeat !important;
 
  }
 
}
 

	
 
/* @end */
static/chosen/chosen.jquery.min.js
Show inline comments
 
new file 100755
 
/* Chosen v1.8.2 | (c) 2011-2017 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
 

	
 
(function(){var t,e,s,i,n=function(t,e){return function(){return t.apply(e,arguments)}},r=function(t,e){function s(){this.constructor=t}for(var i in e)o.call(e,i)&&(t[i]=e[i]);return s.prototype=e.prototype,t.prototype=new s,t.__super__=e.prototype,t},o={}.hasOwnProperty;(i=function(){function t(){this.options_index=0,this.parsed=[]}return t.prototype.add_node=function(t){return"OPTGROUP"===t.nodeName.toUpperCase()?this.add_group(t):this.add_option(t)},t.prototype.add_group=function(t){var e,s,i,n,r,o;for(e=this.parsed.length,this.parsed.push({array_index:e,group:!0,label:t.label,title:t.title?t.title:void 0,children:0,disabled:t.disabled,classes:t.className}),o=[],s=0,i=(r=t.childNodes).length;s<i;s++)n=r[s],o.push(this.add_option(n,e,t.disabled));return o},t.prototype.add_option=function(t,e,s){if("OPTION"===t.nodeName.toUpperCase())return""!==t.text?(null!=e&&(this.parsed[e].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:t.value,text:t.text,html:t.innerHTML,title:t.title?t.title:void 0,selected:t.selected,disabled:!0===s?s:t.disabled,group_array_index:e,group_label:null!=e?this.parsed[e].label:null,classes:t.className,style:t.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},t}()).select_to_array=function(t){var e,s,n,r,o;for(r=new i,s=0,n=(o=t.childNodes).length;s<n;s++)e=o[s],r.add_node(e);return r.parsed},e=function(){function t(e,s){this.form_field=e,this.options=null!=s?s:{},this.label_click_handler=n(this.label_click_handler,this),t.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return t.prototype.set_default_values=function(){return this.click_test_action=function(t){return function(e){return t.test_active_click(e)}}(this),this.activate_action=function(t){return function(e){return t.activate_field(e)}}(this),this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.is_rtl=this.options.rtl||/\bchosen-rtl\b/.test(this.form_field.className),this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text&&this.options.allow_single_deselect,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null==this.options.enable_split_word_search||this.options.enable_split_word_search,this.group_search=null==this.options.group_search||this.options.group_search,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null==this.options.single_backstroke_delete||this.options.single_backstroke_delete,this.max_selected_options=this.options.max_selected_options||Infinity,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null==this.options.display_selected_options||this.options.display_selected_options,this.display_disabled_options=null==this.options.display_disabled_options||this.options.display_disabled_options,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY,this.case_sensitive_search=this.options.case_sensitive_search||!1,this.hide_results_on_select=null==this.options.hide_results_on_select||this.options.hide_results_on_select},t.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||t.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||t.default_single_text,this.default_text=this.escape_html(this.default_text),this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||t.default_no_result_text},t.prototype.choice_label=function(t){return this.include_group_label_in_selected&&null!=t.group_label?"<b class='group-name'>"+t.group_label+"</b>"+t.html:t.html},t.prototype.mouse_enter=function(){return this.mouse_on_container=!0},t.prototype.mouse_leave=function(){return this.mouse_on_container=!1},t.prototype.input_focus=function(t){if(this.is_multiple){if(!this.active_field)return setTimeout(function(t){return function(){return t.container_mousedown()}}(this),50)}else if(!this.active_field)return this.activate_field()},t.prototype.input_blur=function(t){if(!this.mouse_on_container)return this.active_field=!1,setTimeout(function(t){return function(){return t.blur_test()}}(this),100)},t.prototype.label_click_handler=function(t){return this.is_multiple?this.container_mousedown(t):this.activate_field()},t.prototype.results_option_build=function(t){var e,s,i,n,r,o,h;for(e="",h=0,n=0,r=(o=this.results_data).length;n<r&&(s=o[n],i="",""!==(i=s.group?this.result_add_group(s):this.result_add_option(s))&&(h++,e+=i),(null!=t?t.first:void 0)&&(s.selected&&this.is_multiple?this.choice_build(s):s.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(s))),!(h>=this.max_shown_results));n++);return e},t.prototype.result_add_option=function(t){var e,s;return t.search_match&&this.include_option_in_results(t)?(e=[],t.disabled||t.selected&&this.is_multiple||e.push("active-result"),!t.disabled||t.selected&&this.is_multiple||e.push("disabled-result"),t.selected&&e.push("result-selected"),null!=t.group_array_index&&e.push("group-option"),""!==t.classes&&e.push(t.classes),s=document.createElement("li"),s.className=e.join(" "),s.style.cssText=t.style,s.setAttribute("data-option-array-index",t.array_index),s.innerHTML=t.highlighted_html||t.html,t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.result_add_group=function(t){var e,s;return(t.search_match||t.group_match)&&t.active_options>0?((e=[]).push("group-result"),t.classes&&e.push(t.classes),s=document.createElement("li"),s.className=e.join(" "),s.innerHTML=t.highlighted_html||this.escape_html(t.label),t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},t.prototype.reset_single_select_options=function(){var t,e,s,i,n;for(n=[],t=0,e=(s=this.results_data).length;t<e;t++)(i=s[t]).selected?n.push(i.selected=!1):n.push(void 0);return n},t.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},t.prototype.results_search=function(t){return this.results_showing?this.winnow_results():this.results_show()},t.prototype.winnow_results=function(){var t,e,s,i,n,r,o,h,l,c,_,a,u,d,p;for(this.no_results_clear(),c=0,t=(o=this.get_search_text()).replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),l=this.get_search_regex(t),s=0,i=(h=this.results_data).length;s<i;s++)(n=h[s]).search_match=!1,_=null,a=null,n.highlighted_html="",this.include_option_in_results(n)&&(n.group&&(n.group_match=!1,n.active_options=0),null!=n.group_array_index&&this.results_data[n.group_array_index]&&(0===(_=this.results_data[n.group_array_index]).active_options&&_.search_match&&(c+=1),_.active_options+=1),p=n.group?n.label:n.text,n.group&&!this.group_search||(a=this.search_string_match(p,l),n.search_match=null!=a,n.search_match&&!n.group&&(c+=1),n.search_match?(o.length&&(u=a.index,r=p.slice(0,u),e=p.slice(u,u+o.length),d=p.slice(u+o.length),n.highlighted_html=this.escape_html(r)+"<em>"+this.escape_html(e)+"</em>"+this.escape_html(d)),null!=_&&(_.group_match=!0)):null!=n.group_array_index&&this.results_data[n.group_array_index].search_match&&(n.search_match=!0)));return this.result_clear_highlight(),c<1&&o.length?(this.update_results_content(""),this.no_results(o)):(this.update_results_content(this.results_option_build()),this.winnow_results_set_highlight())},t.prototype.get_search_regex=function(t){var e,s;return s=this.search_contains?t:"(^|\\s|\\b)"+t+"[^\\s]*",this.enable_split_word_search||this.search_contains||(s="^"+s),e=this.case_sensitive_search?"":"i",new RegExp(s,e)},t.prototype.search_string_match=function(t,e){var s;return s=e.exec(t),!this.search_contains&&(null!=s?s[1]:void 0)&&(s.index+=1),s},t.prototype.choices_count=function(){var t,e,s;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,t=0,e=(s=this.form_field.options).length;t<e;t++)s[t].selected&&(this.selected_option_count+=1);return this.selected_option_count},t.prototype.choices_click=function(t){if(t.preventDefault(),this.activate_field(),!this.results_showing&&!this.is_disabled)return this.results_show()},t.prototype.keydown_checker=function(t){var e,s;switch(s=null!=(e=t.which)?e:t.keyCode,this.search_field_scale(),8!==s&&this.pending_backstroke&&this.clear_backstroke(),s){case 8:this.backstroke_length=this.get_search_field_value().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(t),this.mouse_on_container=!1;break;case 13:case 27:this.results_showing&&t.preventDefault();break;case 32:this.disable_search&&t.preventDefault();break;case 38:t.preventDefault(),this.keyup_arrow();break;case 40:t.preventDefault(),this.keydown_arrow()}},t.prototype.keyup_checker=function(t){var e,s;switch(s=null!=(e=t.which)?e:t.keyCode,this.search_field_scale(),s){case 8:this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:t.preventDefault(),this.results_showing&&this.result_select(t);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},t.prototype.clipboard_event_checker=function(t){if(!this.is_disabled)return setTimeout(function(t){return function(){return t.results_search()}}(this),50)},t.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.offsetWidth+"px"},t.prototype.include_option_in_results=function(t){return!(this.is_multiple&&!this.display_selected_options&&t.selected)&&(!(!this.display_disabled_options&&t.disabled)&&!t.empty)},t.prototype.search_results_touchstart=function(t){return this.touch_started=!0,this.search_results_mouseover(t)},t.prototype.search_results_touchmove=function(t){return this.touch_started=!1,this.search_results_mouseout(t)},t.prototype.search_results_touchend=function(t){if(this.touch_started)return this.search_results_mouseup(t)},t.prototype.outerHTML=function(t){var e;return t.outerHTML?t.outerHTML:((e=document.createElement("div")).appendChild(t),e.innerHTML)},t.prototype.get_single_html=function(){return'<a class="chosen-single chosen-default">\n  <span>'+this.default_text+'</span>\n  <div><b></b></div>\n</a>\n<div class="chosen-drop">\n  <div class="chosen-search">\n    <input class="chosen-search-input" type="text" autocomplete="off" />\n  </div>\n  <ul class="chosen-results"></ul>\n</div>'},t.prototype.get_multi_html=function(){return'<ul class="chosen-choices">\n  <li class="search-field">\n    <input class="chosen-search-input" type="text" autocomplete="off" value="'+this.default_text+'" />\n  </li>\n</ul>\n<div class="chosen-drop">\n  <ul class="chosen-results"></ul>\n</div>'},t.prototype.get_no_results_html=function(t){return'<li class="no-results">\n  '+this.results_none_found+" <span>"+this.escape_html(t)+"</span>\n</li>"},t.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},t.default_multiple_text="Select Some Options",t.default_single_text="Select an Option",t.default_no_result_text="No results match",t}(),(t=jQuery).fn.extend({chosen:function(i){return e.browser_is_supported()?this.each(function(e){var n,r;r=(n=t(this)).data("chosen"),"destroy"!==i?r instanceof s||n.data("chosen",new s(this,i)):r instanceof s&&r.destroy()}):this}}),s=function(s){function n(){return n.__super__.constructor.apply(this,arguments)}return r(n,e),n.prototype.setup=function(){return this.form_field_jq=t(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},n.prototype.set_up_html=function(){var e,s;return(e=["chosen-container"]).push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&e.push(this.form_field.className),this.is_rtl&&e.push("chosen-rtl"),s={"class":e.join(" "),title:this.form_field.title},this.form_field.id.length&&(s.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=t("<div />",s),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},n.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},n.prototype.register_observers=function(){return this.container.on("touchstart.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.container.on("touchend.chosen",function(t){return function(e){t.container_mouseup(e)}}(this)),this.container.on("mousedown.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.container.on("mouseup.chosen",function(t){return function(e){t.container_mouseup(e)}}(this)),this.container.on("mouseenter.chosen",function(t){return function(e){t.mouse_enter(e)}}(this)),this.container.on("mouseleave.chosen",function(t){return function(e){t.mouse_leave(e)}}(this)),this.search_results.on("mouseup.chosen",function(t){return function(e){t.search_results_mouseup(e)}}(this)),this.search_results.on("mouseover.chosen",function(t){return function(e){t.search_results_mouseover(e)}}(this)),this.search_results.on("mouseout.chosen",function(t){return function(e){t.search_results_mouseout(e)}}(this)),this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen",function(t){return function(e){t.search_results_mousewheel(e)}}(this)),this.search_results.on("touchstart.chosen",function(t){return function(e){t.search_results_touchstart(e)}}(this)),this.search_results.on("touchmove.chosen",function(t){return function(e){t.search_results_touchmove(e)}}(this)),this.search_results.on("touchend.chosen",function(t){return function(e){t.search_results_touchend(e)}}(this)),this.form_field_jq.on("chosen:updated.chosen",function(t){return function(e){t.results_update_field(e)}}(this)),this.form_field_jq.on("chosen:activate.chosen",function(t){return function(e){t.activate_field(e)}}(this)),this.form_field_jq.on("chosen:open.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.form_field_jq.on("chosen:close.chosen",function(t){return function(e){t.close_field(e)}}(this)),this.search_field.on("blur.chosen",function(t){return function(e){t.input_blur(e)}}(this)),this.search_field.on("keyup.chosen",function(t){return function(e){t.keyup_checker(e)}}(this)),this.search_field.on("keydown.chosen",function(t){return function(e){t.keydown_checker(e)}}(this)),this.search_field.on("focus.chosen",function(t){return function(e){t.input_focus(e)}}(this)),this.search_field.on("cut.chosen",function(t){return function(e){t.clipboard_event_checker(e)}}(this)),this.search_field.on("paste.chosen",function(t){return function(e){t.clipboard_event_checker(e)}}(this)),this.is_multiple?this.search_choices.on("click.chosen",function(t){return function(e){t.choices_click(e)}}(this)):this.container.on("click.chosen",function(t){t.preventDefault()})},n.prototype.destroy=function(){return t(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.form_field_label.length>0&&this.form_field_label.off("click.chosen"),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},n.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled||this.form_field_jq.parents("fieldset").is(":disabled"),this.container.toggleClass("chosen-disabled",this.is_disabled),this.search_field[0].disabled=this.is_disabled,this.is_multiple||this.selected_item.off("focus.chosen",this.activate_field),this.is_disabled?this.close_field():this.is_multiple?void 0:this.selected_item.on("focus.chosen",this.activate_field)},n.prototype.container_mousedown=function(e){var s;if(!this.is_disabled)return!e||"mousedown"!==(s=e.type)&&"touchstart"!==s||this.results_showing||e.preventDefault(),null!=e&&t(e.target).hasClass("search-choice-close")?void 0:(this.active_field?this.is_multiple||!e||t(e.target)[0]!==this.selected_item[0]&&!t(e.target).parents("a.chosen-single").length||(e.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),t(this.container[0].ownerDocument).on("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},n.prototype.container_mouseup=function(t){if("ABBR"===t.target.nodeName&&!this.is_disabled)return this.results_reset(t)},n.prototype.search_results_mousewheel=function(t){var e;if(t.originalEvent&&(e=t.originalEvent.deltaY||-t.originalEvent.wheelDelta||t.originalEvent.detail),null!=e)return t.preventDefault(),"DOMMouseScroll"===t.type&&(e*=40),this.search_results.scrollTop(e+this.search_results.scrollTop())},n.prototype.blur_test=function(t){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},n.prototype.close_field=function(){return t(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale(),this.search_field.blur()},n.prototype.activate_field=function(){if(!this.is_disabled)return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},n.prototype.test_active_click=function(e){var s;return(s=t(e.target).closest(".chosen-container")).length&&this.container[0]===s[0]?this.active_field=!0:this.close_field()},n.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=i.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():this.is_multiple||(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},n.prototype.result_do_highlight=function(t){var e,s,i,n,r;if(t.length){if(this.result_clear_highlight(),this.result_highlight=t,this.result_highlight.addClass("highlighted"),i=parseInt(this.search_results.css("maxHeight"),10),r=this.search_results.scrollTop(),n=i+r,s=this.result_highlight.position().top+this.search_results.scrollTop(),(e=s+this.result_highlight.outerHeight())>=n)return this.search_results.scrollTop(e-i>0?e-i:0);if(s<r)return this.search_results.scrollTop(s)}},n.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},n.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.get_search_field_value()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},n.prototype.update_results_content=function(t){return this.search_results.html(t)},n.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},n.prototype.set_tab_index=function(t){var e;if(this.form_field.tabIndex)return e=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=e},n.prototype.set_label_behavior=function(){if(this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=t("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0)return this.form_field_label.on("click.chosen",this.label_click_handler)},n.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},n.prototype.search_results_mouseup=function(e){var s;if((s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first()).length)return this.result_highlight=s,this.result_select(e),this.search_field.focus()},n.prototype.search_results_mouseover=function(e){var s;if(s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first())return this.result_do_highlight(s)},n.prototype.search_results_mouseout=function(e){if(t(e.target).hasClass("active-result")||t(e.target).parents(".active-result").first())return this.result_clear_highlight()},n.prototype.choice_build=function(e){var s,i;return s=t("<li />",{"class":"search-choice"}).html("<span>"+this.choice_label(e)+"</span>"),e.disabled?s.addClass("search-choice-disabled"):((i=t("<a />",{"class":"search-choice-close","data-option-array-index":e.array_index})).on("click.chosen",function(t){return function(e){return t.choice_destroy_link_click(e)}}(this)),s.append(i)),this.search_container.before(s)},n.prototype.choice_destroy_link_click=function(e){if(e.preventDefault(),e.stopPropagation(),!this.is_disabled)return this.choice_destroy(t(e.target))},n.prototype.choice_destroy=function(t){if(this.result_deselect(t[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.get_search_field_value().length<1&&this.results_hide(),t.parents("li").first().remove(),this.search_field_scale()},n.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},n.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},n.prototype.result_select=function(t){var e,s;if(this.result_highlight)return e=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?e.removeClass("active-result"):this.reset_single_select_options(),e.addClass("result-selected"),s=this.results_data[e[0].getAttribute("data-option-array-index")],s.selected=!0,this.form_field.options[s.options_index].selected=!0,this.selected_option_count=null,this.search_field.val(""),this.is_multiple?this.choice_build(s):this.single_set_selected_text(this.choice_label(s)),this.is_multiple&&(!this.hide_results_on_select||t.metaKey||t.ctrlKey)?this.winnow_results():(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change({selected:this.form_field.options[s.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,t.preventDefault(),this.search_field_scale())},n.prototype.single_set_selected_text=function(t){return null==t&&(t=this.default_text),t===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(t)},n.prototype.result_deselect=function(t){var e;return e=this.results_data[t],!this.form_field.options[e.options_index].disabled&&(e.selected=!1,this.form_field.options[e.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change({deselected:this.form_field.options[e.options_index].value}),this.search_field_scale(),!0)},n.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")},n.prototype.get_search_field_value=function(){return this.search_field.val()},n.prototype.get_search_text=function(){return t.trim(this.get_search_field_value())},n.prototype.escape_html=function(e){return t("<div/>").text(e).html()},n.prototype.winnow_results_set_highlight=function(){var t,e;if(e=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),null!=(t=e.length?e.first():this.search_results.find(".active-result").first()))return this.result_do_highlight(t)},n.prototype.no_results=function(t){var e;return e=this.get_no_results_html(t),this.search_results.append(e),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},n.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},n.prototype.keydown_arrow=function(){var t;return this.results_showing&&this.result_highlight?(t=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(t):void 0:this.results_show()},n.prototype.keyup_arrow=function(){var t;return this.results_showing||this.is_multiple?this.result_highlight?(t=this.result_highlight.prevAll("li.active-result")).length?this.result_do_highlight(t.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight()):void 0:this.results_show()},n.prototype.keydown_backstroke=function(){var t;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(t=this.search_container.siblings("li.search-choice").last()).length&&!t.hasClass("search-choice-disabled")?(this.pending_backstroke=t,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0},n.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},n.prototype.search_field_scale=function(){var e,s,i,n,r,o,h;if(this.is_multiple){for(r={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},s=0,i=(o=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"]).length;s<i;s++)r[n=o[s]]=this.search_field.css(n);return(e=t("<div />").css(r)).text(this.get_search_field_value()),t("body").append(e),h=e.width()+25,e.remove(),this.container.is(":visible")&&(h=Math.min(this.container.outerWidth()-10,h)),this.search_field.width(h)}},n.prototype.trigger_form_field_change=function(t){return this.form_field_jq.trigger("input",t),this.form_field_jq.trigger("change",t)},n}()}).call(this);
...
 
\ No newline at end of file
static/images/brandon.jpg
Show inline comments
 
new file 100644
 
binary diff not shown
Show images
static/images/vmbrasseur.jpg
Show inline comments
 
new file 100644
 
binary diff not shown
Show images
0 comments (0 inline, 0 general)