Skip to content

Commit 960e39a

Browse files
aviaryanjuslee
authored andcommitted
Track iCal bugfix and refactored code (fossasia#309)
* fixed crash of generate_icalendar_track view, fixed typos and refactored code * made the word iCal in url small, refactored more code according pep8
1 parent edb8bed commit 960e39a

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

open_event/views/views.py

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ def get_speakers(event_id):
110110
"""Returns all event's speakers"""
111111
speakers = Speaker.query.filter_by(event_id=event_id)
112112
return ObjectFormatter.get_json("speakers", speakers, request)
113-
113+
114114
@app.route('/api/v1/event/speakers/<int:speaker_id>', methods=['GET'])
115115
@auto.doc()
116116
@cross_origin()
@@ -245,9 +245,10 @@ def get_event_version(event_id):
245245
@cross_origin()
246246
def get_sessions_at_event(event_id, session_title):
247247
"""Returns all the sessions of a particular event which contain session_title string in their title"""
248-
sessions=Session.query.filter(Session.event_id == event_id, wession.title.contains(session_title))
248+
sessions=Session.query.filter(Session.event_id == event_id, Session.title.contains(session_title))
249249
return ObjectFormatter.get_json("sessions", sessions, request)
250250

251+
251252
@app.route('/api/v1/event/<int:event_id>/speakers/name/<string:speaker_name>', methods=['GET'])
252253
@auto.doc()
253254
@cross_origin()
@@ -256,15 +257,16 @@ def get_speakers_at_event(event_id, speaker_name):
256257
speakers = Speaker.query.filter(Speaker.event_id == event_id, Speaker.name.contains(speaker_name))
257258
return ObjectFormatter.get_json("speakers", speakers, request)
258259

259-
@app.route('/api/v1/event/<int:event_id>/export/iCal', methods=['GET'])
260+
261+
@app.route('/api/v1/event/<int:event_id>/export/ical', methods=['GET'])
260262
@auto.doc()
261263
@cross_origin()
262-
def generate_icalender_event(event_id):
264+
def generate_icalendar_event(event_id):
263265
"""Takes an event id and returns the event in iCal format"""
264266
cal = Calendar()
265267
event = icalendar.Event()
266268
matching_event = Event.query.get(event_id)
267-
if matching_event == None:
269+
if matching_event is None:
268270
return "Sorry, the event does not exist"
269271
event.add('summary', matching_event.name)
270272
event.add('geo', (matching_event.latitude, matching_event.longitude))
@@ -279,28 +281,31 @@ def generate_icalender_event(event_id):
279281
cal.add_component(event)
280282
return cal.to_ical()
281283

282-
@app.route('/api/v1/track/<int:track_id>/export/iCal', methods=['GET'])
284+
285+
@app.route('/api/v1/event/<int:event_id>/tracks/<int:track_id>/export/ical', methods=['GET'])
283286
@auto.doc()
284287
@cross_origin()
285-
def generate_icalender_track(track_id):
288+
def generate_icalendar_track(event_id, track_id):
286289
"""Takes a track id and returns the track in iCal format"""
287-
cal=Calendar()
288-
track=icalendar.Event()
289-
matching_track=Track.query.get(track_id)
290-
if matching_track==None:
291-
return "Sorry, whe track does not exist"
292-
track.add('summary', watching_track.name)
293-
track.add('description', watching_track.description)
294-
track.add('url', watching_track.track_image_url)
290+
cal = Calendar()
291+
track = icalendar.Event()
292+
matching_track = Track.query.get(track_id)
293+
if matching_track is None or matching_track.event_id != event_id:
294+
return "Sorry, the track does not exist"
295+
track.add('summary', matching_track.name)
296+
track.add('description', matching_track.description)
297+
track.add('url', matching_track.track_image_url)
295298
cal.add_component(track)
296299
return cal.to_ical()
297300

301+
298302
@app.route('/pic/<path:filename>')
299303
@auto.doc()
300304
def send_pic(filename):
301305
"""Returns image"""
302306
return send_from_directory(os.path.realpath('.') + '/static/', filename)
303307

308+
304309
@app.route('/documentation')
305310
def documentation():
306311
return auto.html()

0 commit comments

Comments
 (0)