def about(): """ About page. """ content, meta = get_markdown_file('about', g.lang_code) team = get_data_file('team.json') sponsors = get_data_file('sponsors.yml') content, meta = get_markdown_file('about', g.lang_code) return render_template('pages/about.html', content=content, meta=meta, team=team, sponsors=sponsors)
def venue(): content = { 'location': get_markdown_file('venue-location', g.lang_code), 'travel': get_markdown_file('venue-travel', g.lang_code), 'hotel': get_markdown_file('venue-hotel', g.lang_code), 'public_transit': get_markdown_file('venue-public-transit', g.lang_code), 'toronto': get_markdown_file('venue-toronto', g.lang_code) } return render_template('pages/venue.html', content=content)
def about(): """ About page. """ content, meta = get_markdown_file('about', g.lang_code) team = get_data_file('team.json') sponsors = get_data_file('sponsors.yml') content, meta = get_markdown_file('about', g.lang_code) return render_template('pages/about.html', content=content, meta=meta, team=team, sponsors=sponsors)
def venue(): """ Venue page. """ content = { 'location': get_markdown_file('venue-location', g.lang_code)[0], 'travel': get_markdown_file('venue-travel', g.lang_code)[0], 'hotel': get_markdown_file('venue-hotel', g.lang_code)[0], 'public_transit': get_markdown_file('venue-public-transit', g.lang_code)[0], 'toronto': get_markdown_file('venue-toronto', g.lang_code)[0] } return render_template('pages/venue.html', content=content)
def sponsors(): data = get_json_file('sponsors.json') content = get_markdown_file('sponsors', g.lang_code) return render_template('pages/sponsors.html', content=content, sponsors=data)
def about(): content = get_markdown_file('about', g.lang_code) team = get_json_file('team.json') sponsors = get_json_file('sponsors.json') return render_template('pages/about.html', content=content, team=team, sponsors=sponsors)
def volunteer(): """ Volunteer at PyCon Canada page. """ content, meta = get_markdown_file('volunteer', g.lang_code) return render_template('pages/volunteer.html', content=content, meta=meta)
def event_ics(slug): description, content = get_markdown_file('talks/{}'.format(slug), 'en') if not content: return None tz = pytz.timezone('Canada/Eastern') start_time = datetime.strptime('{0} {1}'.format(content['date'][0], content['start_time'][0]), '%Y-%m-%d %H:%M:%S') end_time = datetime.strptime('{0} {1}'.format(content['date'][0], content['end_time'][0]), '%Y-%m-%d %H:%M:%S') event = Event() event.add('summary', u"{0} with {1}".format(content['title'][0], content['speakers'][0])) event.add('dtstart', tz.localize(start_time)) event.add('dtend', tz.localize(end_time)) event.add('dtstamp', tz.localize(start_time)) event.add('uid', slug) tpl_url = 'https://2016.pycon.ca{0}' event.add('url', tpl_url.format(url_for('schedule.talk', slug=slug))) return event
def volunteer(): """ Volunteer at PyCon Canada page. """ content, meta = get_markdown_file('volunteer', g.lang_code) return render_template('pages/volunteer.html', content=content, meta=meta)
def code_of_conduct(): """ Code of Conduct page. """ content, meta = get_markdown_file('code-of-conduct', g.lang_code) return render_template('pages/code-of-conduct.html', content=content, meta=meta)
def talk(slug): """ Talk details page. """ content, meta = get_markdown_file('talks/{}'.format(slug), 'en') return render_template('pages/schedule/talk.html', content=content, meta=meta, slug=slug)
def code_of_conduct(): """ Code of Conduct page. """ content, meta = get_markdown_file('code-of-conduct', g.lang_code) return render_template('pages/code-of-conduct.html', content=content, meta=meta)
def talk_json(slug): if slug == 'schedule': content = get_data_file('schedule.json') else: description, content = get_markdown_file('talks/{}'.format(slug), 'en') content['description'] = description return jsonify(content)
def get_talk(slug): content, meta = get_markdown_file('talks/{}'.format(slug), g.lang_code) if slug: meta['link'] = url_for('schedule.talk', slug=slug) else: meta['link'] = None return meta
def sponsors(): """ Sponsors page. """ data = get_data_file('sponsors.yml') content, meta = get_markdown_file('sponsors', g.lang_code) return render_template('pages/sponsors.html', content=content, meta=meta, sponsors=data)
def generate_svg(self, slug): content, meta = get_markdown_file('talks/{}'.format(slug), lang='en') svg = render_template('cards/talk.svg', meta=meta, content=content) filename = join(current_app.config['STATIC_PATH'], 'images', 'cards', '{}.svg') with open(filename.format(slug), 'wb') as fobj: fobj.write(svg.encode('utf8'))
def generate_svg(self, slug): content, meta = get_markdown_file('talks/{}'.format(slug), lang='en') svg = render_template('cards/talk.svg', meta=meta, content=content) filename = join(current_app.config['STATIC_PATH'], 'images', 'cards', '{}.svg') with open(filename.format(slug), 'wb') as fobj: fobj.write(svg.encode('utf8'))
def sponsors(): """ Sponsors page. """ data = get_data_file('sponsors.yml') content, meta = get_markdown_file('sponsors', g.lang_code) return render_template('pages/sponsors.html', content=content, meta=meta, sponsors=data)
def talk_json(slug): if slug == 'schedule': content = get_data_file('schedule.json') else: description, content = get_markdown_file('talks/{}'.format(slug), 'en') # The Markdown Meta extension gives us everything in lists. # So this is a simple converter. for k, v in content.items(): content[k] = v[0] content['description'] = description return jsonify(content)
def talk_ics(slug): description, content = get_markdown_file('talks/{}'.format(slug), 'en') tz = pytz.timezone('Canada/Eastern') start_time = datetime.strptime( '{0} {1}'.format(content['date'][0], content['start_time'][0]), '%Y-%m-%d %H:%M:%S') end_time = datetime.strptime( '{0} {1}'.format(content['date'][0], content['end_time'][0]), '%Y-%m-%d %H:%M:%S') cal = Calendar() cal.add('prodid', '-//PyCon Canada 2016//2016.pycon.ca') cal.add('version', '2.0') event = Event() event.add( 'summary', u"{0} with {1}".format(content['title'][0], content['speakers'][0])) event.add('dtstart', tz.localize(start_time)) event.add('dtend', tz.localize(end_time)) event.add('dtstamp', tz.localize(start_time)) event.add('uid', slug) tpl_url = 'https://2016.pycon.ca{0}' event.add('url', tpl_url.format(url_for('schedule.talk', slug=slug))) cal.add_component(event) headers = { 'Content-Disposition': 'attachment;filename={0}.ics'.format(slug) } return Response(response=cal.to_ical(), status=200, mimetype='text/x-calendar', headers=headers)
def event_ics(slug): description, content = get_markdown_file('talks/{}'.format(slug), 'en') if not content: abort(404) for k, v in content.items(): content[k] = v[0] start_time = datetime.strptime('{0} {1}'.format(content['date'], content['start_time']), '%Y-%m-%d %H:%M:%S') end_time = datetime.strptime('{0} {1}'.format(content['date'], content['end_time']), '%Y-%m-%d %H:%M:%S') event = Event() if content.get('speakers'): event.add('summary', u"{0} with {1}".format(content['title'], content['speakers'])) else: event.add('summary', u"{}".format(content['title'])) event.add('dtstart', tz.localize(start_time)) event.add('dtend', tz.localize(end_time)) event.add('dtstamp', tz.localize(start_time)) event.add('location', 'Room {}'.format(content['rooms'])) event.add('uid', slug) tpl_url = 'https://2016.pycon.ca{0}' event.add('url', tpl_url.format(url_for('schedule.talk', slug=slug))) return event
def talk_json(slug): description, content = get_markdown_file('talks/{}'.format(slug), 'en') content['description'] = description return jsonify(content)
def code_of_conduct(): content = get_markdown_file('code-of-conduct', g.lang_code) return render_template('pages/code-of-conduct.html', content=content)
def volunteer(): content = get_markdown_file('volunteer', g.lang_code) return render_template('pages/volunteer.html', content=content)