Adds monkey patch of schedule
This commit is contained in:
parent
40c42af2d6
commit
895b8cc9c4
1 changed files with 64 additions and 0 deletions
|
@ -1,4 +1,5 @@
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django.contrib.auth.models import User
|
||||||
from django.core.mail import EmailMultiAlternatives
|
from django.core.mail import EmailMultiAlternatives
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
|
@ -12,6 +13,7 @@ class MonkeyPatchMiddleware(object):
|
||||||
|
|
||||||
def do_monkey_patch():
|
def do_monkey_patch():
|
||||||
patch_stripe_card_defaults()
|
patch_stripe_card_defaults()
|
||||||
|
patch_conference_schedule()
|
||||||
|
|
||||||
# Remove this function from existence
|
# Remove this function from existence
|
||||||
global do_monkey_patch
|
global do_monkey_patch
|
||||||
|
@ -24,9 +26,71 @@ def patch_stripe_card_defaults():
|
||||||
|
|
||||||
old_sync_card = sources.sync_card
|
old_sync_card = sources.sync_card
|
||||||
|
|
||||||
|
@wraps(old_sync_card)
|
||||||
def sync_card(customer, source):
|
def sync_card(customer, source):
|
||||||
d = defaultdict(str)
|
d = defaultdict(str)
|
||||||
d.update(source)
|
d.update(source)
|
||||||
return old_sync_card(customer, d)
|
return old_sync_card(customer, d)
|
||||||
|
|
||||||
sources.sync_card = sync_card
|
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
|
||||||
|
|
||||||
|
@wraps(old_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 == "keynote":
|
||||||
|
update_keynote(request, slot_data)
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
|
||||||
|
return schedule
|
||||||
|
|
||||||
|
def update_presentation(request, slot_data, presentation):
|
||||||
|
try:
|
||||||
|
slot_data["reviewer"] = (
|
||||||
|
presentation.speaker.conferencespeaker.reviewer
|
||||||
|
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["authors"] = [author_name]
|
||||||
|
slot_data["contact"] = [
|
||||||
|
author_email
|
||||||
|
] if request.user.is_staff else ["redacted"]
|
||||||
|
slot_data["abstract"] = "Keynote presentation from North Bay Python 2017",
|
||||||
|
slot_data["description"] = "Keynote presentation from North Bay Python 2017"
|
||||||
|
slot_data["conf_url"] = "https://2017.northbaypython.org"
|
||||||
|
slot_data["cancelled"] = False,
|
||||||
|
slot_data["reviewer"] = ""
|
||||||
|
slot_data["licence"] = "CC BY-SA"
|
||||||
|
slot_data["twitter_id"] = author_twitter_id
|
||||||
|
slot_data["released"] = True
|
||||||
|
|
||||||
|
sv._schedule_json = schedule_json
|
||||||
|
|
Loading…
Reference in a new issue