diff --git a/server.py b/server.py index c8ccaef1967493194342a9232c6ebae70fd0cd37..2f64357151377d20883f9bfb4cd23813113e9c30 100755 --- a/server.py +++ b/server.py @@ -238,7 +238,8 @@ def edit(prefix="", ignore=[]): 'lectures': ('lectures_data', 'id', ['visible', 'title', 'comment', 'internal', 'speaker', 'place', 'time', 'duration', 'jumplist','deleted']), 'videos': ('videos_data', 'id', ['visible','deleted']), - 'chapters': ('chapters', 'id', ['time', 'text', 'visible', 'deleted']) + 'chapters': ('chapters', 'id', ['time', 'text', 'visible', 'deleted']), + 'announcements': ('announcements', 'id', ['text', 'internal', 'level', 'visible', 'deleted']) } query('BEGIN') if request.is_json: @@ -248,6 +249,7 @@ def edit(prefix="", ignore=[]): for key, val in changes: if key in ignore: continue + print('edit:', key, val) key = prefix+key table, id, column = key.split('.', 2) assert table in tabs @@ -416,5 +418,14 @@ def suggest_chapter(lectureid): return redirect(request.values['ref']) return 'OK', 200 +@app.route('/newpsa', methods=['POST', 'GET']) +@mod_required +def new_announcement(): + id = query('INSERT INTO announcements (text, internal, time_created, time_updated, created_by) VALUES ("Neue Ankündigung", "", ?, ?, ?)', + datetime.now(), datetime.now(), session.get('user', {'dbid':None})['dbid']) + if 'ref' in request.values: + return redirect(request.values['ref']) + return id, 200 + import feeds import importer diff --git a/templates/base.html b/templates/base.html index 7ebceab9cd377cd2c075a3d5908686fad5d2e3d0..004ec40b82db6367ab0ca73c264ab60bce3c7f1f 100644 --- a/templates/base.html +++ b/templates/base.html @@ -1,6 +1,7 @@ {% set page_border = page_border|default(1) %} {% set min_announcement_level = min_announcement_level|default(1) %} {% set announcement_levels = {0: 'info', 1: 'info', 2: 'warning', 3: 'danger'} %} +{% from 'macros.html' import valueeditor, valuecheckbox, valuedeletebtn %} <!DOCTYPE html> <html> @@ -105,7 +106,20 @@ <div class="alert alert-danger" role="alert">{{ msg }}</div> {% endfor %} {% for msg in get_announcements(min_announcement_level) %} - <div class="alert alert-{{announcement_levels.get(msg.level, 'info')}}" role="alert">{{ msg.text|safe }}</div> + <div class="alert alert-{{announcement_levels.get(msg.level, 'info')}}" role="alert"> + {{ valueeditor(('announcements',msg.id,'text'), msg.text|safe) }} + {% if ismod() %} + <div class="pull-right"> + {{ valuecheckbox(('announcements',msg.id,'visible'),msg.visible) }} + {{ valuedeletebtn(('announcements',msg.id,'deleted')) }} + </div> + <br> + {{ valueeditor(('announcements',msg.id,'internal'), msg.internal) }} + <div class="pull-right"> + Level: {{ valueeditor(('announcements',msg.id,'level'), msg.level) }} + </div> + {% endif %} + </div> {% endfor %} {% block content %} <h1>This is a Heading</h1>