Changeset - 0b0b679d1855
[Not reviewed]
3 3 1
Brett Smith - 5 years ago 2019-09-30 15:21:51
brettcsmith@brettcsmith.org
Remove unwanted dependencies.

This doesn't remove all trace of them but it's enough to avoid installing
them and still be able to see the front page.
7 files changed with 26 insertions and 92 deletions:
0 comments (0 inline, 0 general)
pinaxcon/settings.py
Show inline comments
...
 
@@ -3,283 +3,251 @@ import dj_database_url
 

	
 

	
 
PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))
 
PACKAGE_ROOT = os.path.abspath(os.path.dirname(__file__))
 
BASE_DIR = PACKAGE_ROOT
 

	
 
DEBUG = bool(int(os.environ.get("DJANGO_DEBUG", "1")))
 

	
 
UNPREPEND_WWW = bool(int(os.environ.get("DJANGO_UNPREPEND_WWW", "0")))
 

	
 
APPEND_SLASH = True
 

	
 
# HEROKU: Update database configuration with $DATABASE_URL.
 
DATABASES = {"default": {}}
 
import dj_database_url
 
db_from_env = dj_database_url.config()
 
DATABASES['default'].update(db_from_env)
 
if DEBUG and not DATABASES['default']:
 
    DATABASES['default'] = {
 
        "ENGINE": "django.db.backends.sqlite3",
 
        "NAME": os.path.join(PROJECT_ROOT, "dev.db"),
 
    }
 

	
 
ALLOWED_HOSTS = os.environ.get("DJANGO_ALLOWED_HOSTS", "localhost").split()
 
CANONICAL_HOST = os.environ.get("DJANGO_CANONICAL_HOST", None)
 

	
 
# If DEFAULT_FROM_EMAIL is not set, email will most likely break in prod.
 
from_email = os.environ.get("DJANGO_DEFAULT_FROM_EMAIL", None)
 
if from_email is not None:
 
    DEFAULT_FROM_EMAIL = from_email
 
    SERVER_EMAIL = DEFAULT_FROM_EMAIL
 

	
 
THEME_CONTACT_EMAIL = os.environ.get("THEME_CONTACT_EMAIL", from_email)
 

	
 
# Local time zone for this installation. Choices can be found here:
 
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
 
# although not all choices may be available on all operating systems.
 
# On Unix systems, a value of None will cause Django to use the same
 
# timezone as the operating system.
 
# If running in a Windows environment this must be set to the same as your
 
# system time zone.
 
TIME_ZONE = os.environ.get("TZ")
 

	
 
# Set the email address that will receive errors.
 
admin_email = os.environ.get("DJANGO_ADMIN_EMAIL", None)
 
if admin_email is not None:
 
    ADMINS = [("Webmaster", admin_email)]
 

	
 

	
 
# Use SSLRedirectMiddleware
 
SSL_ON = os.environ.get("DJANGO_SSL_ON", True)
 
SSL_ALWAYS = os.environ.get("DJANGO_SSL_ALWAYS", False)
 

	
 
# Language code for this installation. All choices can be found here:
 
# http://www.i18nguy.com/unicode/language-identifiers.html
 
LANGUAGE_CODE = "en-us"
 

	
 
SITE_ID = int(os.environ.get("SITE_ID", 1))
 

	
 
# If you set this to False, Django will make some optimizations so as not
 
# to load the internationalization machinery.
 
USE_I18N = True
 

	
 
# If you set this to False, Django will not format dates, numbers and
 
# calendars according to the current locale.
 
USE_L10N = True
 

	
 
# If you set this to False, Django will not use timezone-aware datetimes.
 
USE_TZ = True
 

	
 
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
 
# trailing slash.
 
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
 
MEDIA_URL = "/site_media/media/"
 

	
 
# Absolute path to the directory static files should be collected to.
 
# Don"t put anything in this directory yourself; store your static files
 
# in apps" "static/" subdirectories and in STATICFILES_DIRS.
 
# Example: "/home/media/media.lawrence.com/static/"
 
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles')
 

	
 
# URL prefix for static files.
 
# Example: "http://media.lawrence.com/static/"
 
STATIC_URL = '/static/'
 

	
 
# Additional locations of static files
 
STATICFILES_DIRS = (
 
    os.path.join(PROJECT_ROOT, 'static'),
 
)
 

	
 
# List of finder classes that know how to find static files in
 
# various locations.
 
STATICFILES_FINDERS = [
 
    "django.contrib.staticfiles.finders.FileSystemFinder",
 
    "django.contrib.staticfiles.finders.AppDirectoriesFinder",
 
    "compressor.finders.CompressorFinder",
 
]
 

	
 

	
 
# Amazon S3 setup
 
DEFAULT_FILE_STORAGE = os.environ.get("DJANGO_DEFAULT_FILE_STORAGE", 'django.core.files.storage.FileSystemStorage') # noqa
 
AWS_ACCESS_KEY_ID = os.environ.get("DJANGO_AWS_ACCESS_KEY_ID", None)
 
AWS_SECRET_ACCESS_KEY = os.environ.get("DJANGO_AWS_SECRET_ACCESS_KEY", None)
 
AWS_STORAGE_BUCKET_NAME = os.environ.get("DJANGO_AWS_STORAGE_BUCKET_NAME", None)
 

	
 
try:
 
    _dynamic_storage_root = os.environ['DJANGO_DYNAMIC_STORAGE_ROOT']
 
except KeyError:
 
    # Absolute filesystem path to the directory that will hold user-uploaded files.
 
    MEDIA_ROOT = os.path.join(PACKAGE_ROOT, "site_media", "media")
 
else:
 
    MEDIA_ROOT = os.path.join(_dynamic_storage_root, "user_upload")
 
    COMPRESS_ROOT = _dynamic_storage_root
 

	
 
# Make this unique, and don't share it with anybody.
 
SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', '').strip()
 
if (not SECRET_KEY) and DEBUG:
 
    SECRET_KEY = 'Ae=)D4\V=OFh~C63MJHgpc&6~"p-7>^2ux3#Cr;p^!RGw9.BT}U`pi|b04TDv_NB'
 

	
 
TEMPLATES = [
 
    {
 
        "BACKEND": "django.template.backends.django.DjangoTemplates",
 
        "DIRS": [
 
            os.path.join(PACKAGE_ROOT, "templates"),
 
        ],
 
        "APP_DIRS": True,
 
        "OPTIONS": {
 
            "debug": DEBUG,
 
            "context_processors": [
 
                "django.contrib.auth.context_processors.auth",
 
                "django.template.context_processors.debug",
 
                "django.template.context_processors.i18n",
 
                "django.template.context_processors.media",
 
                "django.template.context_processors.static",
 
                "django.template.context_processors.tz",
 
                "django.template.context_processors.request",
 
                "django.contrib.messages.context_processors.messages",
 
                "account.context_processors.account",
 
                "pinax_theme_bootstrap.context_processors.theme",
 
                "symposion.reviews.context_processors.reviews",
 
                "sekizai.context_processors.sekizai",
 
            ],
 
        },
 
    },
 
]
 

	
 
TEMPLATE_DEBUG = False
 

	
 
MIDDLEWARE_CLASSES = [
 
    "django.contrib.sessions.middleware.SessionMiddleware",
 
    "django.middleware.common.CommonMiddleware",
 
    "django.middleware.csrf.CsrfViewMiddleware",
 
    "django.contrib.auth.middleware.AuthenticationMiddleware",
 
    "django.contrib.auth.middleware.SessionAuthenticationMiddleware",
 
    "django.contrib.messages.middleware.MessageMiddleware",
 
    "reversion.middleware.RevisionMiddleware",
 
    "django.middleware.clickjacking.XFrameOptionsMiddleware",
 
    "ssl_redirect.middleware.SSLRedirectMiddleware",
 
    "pinaxcon.middleware.CanonicalHostMiddleware",
 
    "pinaxcon.middleware.UnprependWWWMiddleware",
 
    "pinaxcon.monkey_patch.MonkeyPatchMiddleware",
 
]
 

	
 
ROOT_URLCONF = "pinaxcon.urls"
 

	
 
# Python dotted path to the WSGI application used by Django's runserver.
 
WSGI_APPLICATION = "pinaxcon.wsgi.application"
 

	
 
INSTALLED_APPS = [
 
    "django.contrib.admin",
 
    "django.contrib.auth",
 
    "django.contrib.contenttypes",
 
    "django.contrib.messages",
 
    "django.contrib.sessions",
 
    "django.contrib.sites",
 
    "django.contrib.staticfiles",
 

	
 
    # theme
 
    "bootstrapform",
 
    "pinax_theme_bootstrap",
 

	
 
    # external
 
    "account",
 
    "easy_thumbnails",
 
    "taggit",
 
    "reversion",
 
    "metron",
 
    "sitetree",
 
    "pinax.boxes",
 
    "pinax.eventlog",
 
    "pinax.pages",
 
    "markdown_deux",
 

	
 
    # symposion
 
    "symposion",
 
    "symposion.conference",
 
    "symposion.proposals",
 
    "symposion.reviews",
 
    "symposion.schedule",
 
    "symposion.speakers",
 
    "symposion.sponsorship",
 
    "symposion.teams",
 

	
 
    # Registrasion
 
    "registrasion",
 
    "symposion_templates",
 

	
 
    # Registrasion-stipe
 
    "pinax.stripe",
 
    "django_countries",
 
    "registripe",
 

	
 
    #admin - required by registrasion ??
 
    "nested_admin",
 

	
 
    # project
 
    "pinaxcon",
 
    "pinaxcon.proposals",
 
    "pinaxcon.registrasion",
 

	
 
    #testing
 
    "django_nose",
 

	
 
    # wiki
 
    'django.contrib.humanize',
 
    'django_nyt',
 
    'mptt',
 
    'sekizai',
 
    #'sorl.thumbnail',
 
    'wiki',
 
    'wiki.plugins.attachments',
 
    'wiki.plugins.notifications',
 
    #'wiki.plugins.images',
 
    'wiki.plugins.macros',
 

	
 
    # stylesheets and js
 
    'compressor',
 

	
 
    'email_log',
 
]
 

	
 
# A sample logging configuration.
 
# See http://docs.djangoproject.com/en/dev/topics/logging for
 
# more details on how to customize your logging configuration.
 
LOGGING = {
 
    "version": 1,
 
    "disable_existing_loggers": False,
 
    "filters": {
 
        "require_debug_false": {
 
            "()": "django.utils.log.RequireDebugFalse"
 
        }
 
    },
 
    "handlers": {
 
        'console': {
 
            'level': os.environ.get('DJANGO_LOG_LEVEL', 'WARNING'),
 
            'class': 'logging.StreamHandler',
 
        },
 
        "mail_admins": {
 
            "level": "ERROR",
 
            "filters": ["require_debug_false"],
 
            "class": "django.utils.log.AdminEmailHandler"
 
        }
 
    },
 
    "loggers": {
 
        'django': {
 
            'handlers': ['console'],
 
            'propagate': True,
 
        },
 
        "django.request": {
 
            "handlers": ["mail_admins"],
 
            "level": "ERROR",
 
            "propagate": True,
 
        },
 
    }
 
}
 

	
 
COMPRESS_PRECOMPILERS = (
 
    ('text/x-scss', 'django_libsass.SassCompiler'),
 
)
 

	
 
FIXTURE_DIRS = [
 
    os.path.join(PROJECT_ROOT, "fixtures"),
 
]
...
 
@@ -299,76 +267,58 @@ EMAIL_USE_TLS = bool(int(os.environ.get("DJANGO_EMAIL_USE_TLS", "0")))
 
EMAIL_USE_SSL = bool(int(os.environ.get("DJANGO_EMAIL_USE_SSL", "0")))
 

	
 
ACCOUNT_LOGIN_URL = "nbpy_login"
 
LOGIN_URL = "nbpy_login"
 

	
 
# We need to explicitly switch on signups.
 
ACCOUNT_OPEN_SIGNUP = bool(int(os.environ.get("DJANGO_ACCOUNT_OPEN_SIGNUP", "0")))
 
ACCOUNT_EMAIL_UNIQUE = True
 
ACCOUNT_EMAIL_CONFIRMATION_REQUIRED = bool(int(os.environ.get(
 
    'DJANGO_ACCOUNT_CONFIRM_EMAIL',
 
    False if DEBUG else True,
 
)))
 
ACCOUNT_LOGIN_REDIRECT_URL = "dashboard"
 
ACCOUNT_LOGOUT_REDIRECT_URL = "home"
 
ACCOUNT_EMAIL_CONFIRMATION_EXPIRE_DAYS = 2
 
ACCOUNT_USE_AUTH_AUTHENTICATE = True
 
ACCOUNT_HOOKSET =  "pinaxcon.account_hooks.BetterAccountHookSet"
 

	
 
AUTHENTICATION_BACKENDS = [
 
    "symposion.teams.backends.TeamPermissionsBackend",
 
    "account.auth_backends.UsernameAuthenticationBackend",
 
]
 

	
 
CONFERENCE_ID = 1
 
PROPOSAL_FORMS = {
 
    "talk": "pinaxcon.proposals.forms.TalkProposalForm",
 
}
 
PINAX_PAGES_HOOKSET = "pinaxcon.hooks.PinaxPagesHookSet"
 
PINAX_BOXES_HOOKSET = "pinaxcon.hooks.PinaxBoxesHookSet"
 

	
 
PINAX_STRIPE_PUBLIC_KEY = os.environ.get("STRIPE_PUBLIC_KEY", "your test public key")
 
PINAX_STRIPE_SECRET_KEY = os.environ.get("STRIPE_SECRET_KEY", "your test secret key")
 
TUOKCEHC_BASE_URL = os.environ.get("TUOKCEHC_BASE_URL", None)
 
PINAX_STRIPE_SEND_EMAIL_RECEIPTS = False
 

	
 
SYMPOSION_SPEAKER_MODEL = "pinaxcon.proposals.models.ConferenceSpeaker"
 
SYMPOSION_SPEAKER_FORM = "pinaxcon.proposals.forms.ConferenceSpeakerForm"
 

	
 
# Registrasion Attendee profile model
 
ATTENDEE_PROFILE_MODEL = "pinaxcon.registrasion.models.AttendeeProfile"
 
# Registrasion attendee profile form -- must act on ATTENDEE_PROFILE_FORM
 
# You only need to provide this if you're customising the form from the default
 
# ATTENDEE_PROFILE_FORM = "pinaxcon.registrasion.forms.ProfileForm"
 

	
 
# Ticket product category -- used to identify which products must be available
 
# in order to register.
 
TICKET_PRODUCT_CATEGORY = 1
 

	
 

	
 
INVOICE_CURRENCY = "USD"
 

	
 
WIKI_ACCOUNT_HANDLING = False
 
WIKI_ACCOUNT_SIGNUP_ALLOWED = False
 

	
 
WIKI_ANONYMOUS_WRITE = False
 
WIKI_ANONYMOUS_UPLOAD = False
 

	
 

	
 
# Use nose to run all tests
 
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
 

	
 

	
 
# Tell nose to measure coverage on the 'foo' and 'bar' apps
 
NOSE_ARGS = [
 
    '--with-coverage',
 
    '--cover-package=registrasion.controllers,registrasion.models',
 
]
 

	
 
MARKDOWN_DEUX_STYLES = {
 
    "default": {
 
        "safe_mode": False,
 
        "extras": {
 
            "tables": 1,
 
        }
 
    },
 
}
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, returns to Petaluma, California on November 2 and 3, 2019.">
 
      <meta property="twitter:description" content="North Bay Python, a community-organized conference, returns to Petaluma, California on November 2 and 3, 2019.">
 
      <meta name="description" content="North Bay Python, a community-organized conference, returns to Petaluma, California on November 2 and 3, 2019.">
 
      <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-background-opacity website-background"></div>
 
  <div class="clouds hdr"></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="clouds ftr"></div>
 

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

	
 

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

	
 
    {% block extra_script %}
 
    {% endblock %}
 

	
 
{% endblock %}
 

	
 
{% block extra_body_base %}
 
    {% analytics %}
 
    {% block extra_body %}{% endblock %}
 
{% endblock %}
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_nyt.urls import get_pattern as get_nyt_pattern
 
from wiki.urls import get_pattern as get_wiki_pattern
 

	
 
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/featured-speakers/$", TemplateView.as_view(template_name="static_pages/program/featured_speakers.html"), name="program/featured-speakers"),
 
    url(r"^events/$", RedirectView.as_view(url="/program/events")),
 
    url(r"^program/call-for-proposals/$", RedirectView.as_view(url="/speak")),
 
    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="/speak")),
 
    url(r"^cfp/$", RedirectView.as_view(url="/speak")),
 
    url(r"^speak/$", TemplateView.as_view(template_name="static_pages/speak.html"), name="speak"),
 

	
 
    # 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"^opportunity-grant/$", TemplateView.as_view(template_name="static_pages/opportunity-grant.html"), name="opportunity-grant"),
 
    url(r"^attend/finaid/$", RedirectView.as_view(url="/opportunity-grant")),
 
    url(r"^attend/finaid/$", RedirectView.as_view(url="/opportunity-grant")),
 
    url(r"^attend/financial-aid/$", RedirectView.as_view(url="/opportunity-grant")),
 

	
 
    url(r"^attend/stay/$", TemplateView.as_view(template_name="static_pages/attend/travel.html"), name="attend/travel"),
 
    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"^attend/accessibility-and-accommodations/$",TemplateView.as_view(template_name="static_pages/attend/accommodations.html"), name="attend/accessibility-and-accommodations"),
 
    url(r"^accessibility/$", RedirectView.as_view(url="/attend/accessibility-and-accommodations")),
 
    url(r"^accommodations/$", RedirectView.as_view(url="/attend/accessibility-and-accommodations")),
 
    url(r"^a11y/$", RedirectView.as_view(url="/attend/accessibility-and-accommodations")),
...
 
@@ -71,59 +69,56 @@ urlpatterns = [
 
    url(r"^food/$", RedirectView.as_view(url="/attend/food")),
 
    url(r"^attend/transit/$", TemplateView.as_view(template_name="static_pages/attend/transit.html"), name="attend/transit"),
 
    url(r"^transit/$", RedirectView.as_view(url="/attend/transit")),
 

	
 
    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"^coc/$", RedirectView.as_view(url="/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')),
 

	
 
    url(r'^wiki/notifications/', get_nyt_pattern()),
 
    url(r'^wiki/', get_wiki_pattern())
 

	
 
    # 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
requirements.txt
Show inline comments
 
deleted file
requirements/base.txt
Show inline comments
 
deleted file
requirements/heroku.txt
Show inline comments
 
deleted file
setup.txt
Show inline comments
 
new file 100644
 
Django>=1.11,<1.12
 

	
 
# Pinned for Python 2 support.
 
django-sitetree<1.13
 

	
 
# Registrasion
 
https://github.com/chrisjrn/registrasion/tarball/master
 
https://github.com/chrisjrn/symposion/tarball/northbaypython
 
https://github.com/chrisjrn/registrasion-stripe/tarball/master
 
https://github.com/chrisjrn/symposion-bootstrap-templates/tarball/master
 

	
 
pinax-theme-bootstrap
 
django-user-accounts
 
dj-static
 
dj-database-url
 
pinax-pages
 
pinax-boxes
 
django-libsass
 
django-markdown-deux
 
django-countries
 
easy-thumbnails
 
django-model-utils
 
django-email-log
 
django-storages
 
django-timezone-field
 
pinax-eventlog
0 comments (0 inline, 0 general)