Files @ 1bdb037f4740
Branch filter:

Location: CopyleftConf/copyleftconf-website/pinaxcon/

Brett Smith
Remove URLs and pages we know we don't need.

This includes some pages that need to be completely revised.
from django.conf import settings
from django.contrib.auth.models import User
from django.core.mail import EmailMultiAlternatives
from functools import wraps

class MonkeyPatchMiddleware(object):
    ''' Ensures that our monkey patching only gets called after it is safe to do so.'''

    def process_request(self, request):

def do_monkey_patch():

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

def patch_stripe_card_defaults():
    from pinax.stripe.actions import sources
    from collections import defaultdict

    old_sync_card = sources.sync_card

    def sync_card(customer, source):
        d = defaultdict(str)
        return old_sync_card(customer, d)

    sources.sync_card = sync_card

def patch_conference_schedule():
    from symposion.schedule import views as sv
    from symposion.schedule import models as sm

    old_schedule_json = sv._schedule_json

    def schedule_json(request):
        schedule = old_schedule_json(request)

        for slot_data in schedule:
            slot = sm.Slot.objects.get(id=slot_data["conf_key"])
            presentation = slot.content
            if presentation is not None:
                update_presentation(request, slot_data, presentation)
            elif slot.kind.label.lower() == "keynote":
                update_keynote(request, slot_data)
            elif slot.kind.label.lower() == "housekeeping":
                update_housekeeping(request, slot_data)

        return schedule

    def update_presentation(request, slot_data, presentation):
            slot_data["reviewers"] = (
                if request.user.is_staff else ["redacted"]
            slot_data["license"] = "CC BY-SA"
            slot_data["released"] = presentation.proposal_base.talkproposal.recording_release
            slot_data["twitter_id"] = presentation.speaker.conferencespeaker.twitter_username
        except Exception as e:
            print e

    def update_keynote(request, slot_data):
        keynotes = {
            "Brandon Rhodes": (User.objects.get(username="brandon").email, "brandon_rhodes"),
            "Carina C. Zona": (User.objects.get(username="cczona").email, "cczona"),
        for speaker, values in keynotes.items():
            print speaker
            if speaker in slot_data["name"]:
                author_name = speaker
                author_email, author_twitter_id = values

        slot_data["name"] = "Keynote"
        slot_data["authors"] = [author_name]
        slot_data["contact"] = [
        ] if request.user.is_staff else ["redacted"]
        slot_data["abstract"] = "Keynote presentation from North Bay Python 2017 by " + author_name
        slot_data["description"] = "Keynote presentation from North Bay Python 2017 by " + author_name
        slot_data["conf_url"] = ""
        slot_data["cancelled"] = False
        slot_data["reviewers"] = ""
        slot_data["license"] = "CC BY-SA"
        slot_data["twitter_id"] = author_twitter_id
        slot_data["released"] = True

    def update_housekeeping(request, slot_data):
        slot_data["contact"] = [
        ] if request.user.is_staff else ["redacted"]

    sv._schedule_json = schedule_json