From a7608db6e4faa200413931d86251928883c14f90 Mon Sep 17 00:00:00 2001 From: Julian Rother <julianr@fsmpi.rwth-aachen.de> Date: Tue, 2 Jan 2018 20:18:53 +0100 Subject: [PATCH] Added notifications for edits, closes #116 --- edit.py | 16 ++++++++++++++-- encoding.py | 6 +++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/edit.py b/edit.py index 7194a2b..7e64b1e 100644 --- a/edit.py +++ b/edit.py @@ -144,9 +144,9 @@ def edit(prefix='', ignore=[]): path['table'], path['id'], path['tableinfo']['idcolumn'], path['column'], val, path['id'], datetime.now(), session['user']['dbid']) modify('UPDATE %s SET `%s` = ?, time_updated = ? WHERE `%s` = ?'%(path['tableinfo']['table'], path['column'], path['tableinfo']['idcolumn']), val, datetime.now(),path['id']) for func in edit_handlers.get(path['table'], {}).get(None, []): - func(path['table'], path['column'], val, path['id']) + func(path['table'], path['column'], val, path['id'], session['user']['dbid']) for func in edit_handlers.get(path['table'], {}).get(path['column'], []): - func(path['table'], path['column'], val, path['id']) + func(path['table'], path['column'], val, path['id'], session['user']['dbid']) if 'ref' in request.values: return redirect(request.values['ref']) return "OK", 200 @@ -222,3 +222,15 @@ def edit_handler(*tables, field=None): return func return wrapper +@edit_handler('courses') +@edit_handler('lectures') +def notify_edit(table, column, value, id, user_id): + lecture = None + if table == 'lectures': + lecture = query('SELECT * FROM lectures_data WHERE id = ?', id)[0] + course_id = lecture['course_id'] + elif table == 'courses': + course_id = id + course = query('SELECT * FROM courses_data WHERE id = ?', course_id)[0] + user = query('SELECT * FROM users WHERE id = ?', user_id)[0] + notify_mods('edit', course_id, exclude_uids=[user_id], course=course, lecture=lecture, table=table, column=column, value=value, user=user) diff --git a/encoding.py b/encoding.py index 83d5e93..0b66e7f 100644 --- a/encoding.py +++ b/encoding.py @@ -113,7 +113,7 @@ def update_lecture_videos(jobid, jobtype, data, state, status): schedule_transcode(latest, video=video) @edit_handler('chapters') -def chapter_changed(table, column, value, id): +def chapter_changed(table, column, value, id, user): print('chapter_changed') chapters = query('SELECT * FROM chapters WHERE id = ?', id) if not chapters: @@ -123,7 +123,7 @@ def chapter_changed(table, column, value, id): schedule_remux(chapter['lecture_id']) @edit_handler('courses') -def course_changed(table, column, value, id): +def course_changed(table, column, value, id, user): if column not in ['title', 'organizer']: return lectures = query('SELECT * FROM lectures WHERE course_id = ?', id) @@ -131,7 +131,7 @@ def course_changed(table, column, value, id): schedule_remux(lecture['id']) @edit_handler('lectures') -def lecture_changed(table, column, value, id): +def lecture_changed(table, column, value, id, user): if column in ['title', 'comment', 'time', 'speaker']: schedule_remux(id) -- GitLab