From c4dc313a3645cb55cc7daa02f3ba6154ac29bb10 Mon Sep 17 00:00:00 2001 From: Andreas <andreasv@fsmpi.rwth-aachen.de> Date: Sun, 16 Oct 2016 00:43:57 +0200 Subject: [PATCH] made campus import less painfull and faster. closes #123 --- importer.py | 17 +++++++++++++---- server.py | 2 -- templates/course.html | 2 +- templates/import_campus.html | 14 ++++++++++---- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/importer.py b/importer.py index e7d599e..ded1e96 100644 --- a/importer.py +++ b/importer.py @@ -2,11 +2,9 @@ from server import * @app.route('/import/<int:id>', methods=['GET', 'POST']) @mod_required -def import_from(id): - +def list_import_sources(id): courses = query('SELECT * FROM courses WHERE id = ?', id)[0] - lectures = query('SELECT * FROM lectures WHERE course_id = ?', courses['id']) - + campus={} for i in request.values: group, importid, field = i.split('.', 2) @@ -23,6 +21,17 @@ def import_from(id): query('UPDATE import_campus SET url = ?, `type` = ? WHERE (course_id = ?) AND (id = ?)', campus[i]['url'],campus[i]['type'],id,int(i)) else: query('DELETE FROM import_campus WHERE (id = ?) AND (course_id = ?)',int(i),id) + import_campus = query('SELECT * FROM import_campus WHERE course_id = ?',id) + + return render_template('import_campus.html', course=courses, import_campus=import_campus, events=[]) + +@app.route('/import/<int:id>/now', methods=['GET', 'POST']) +@mod_required +def import_from(id): + + courses = query('SELECT * FROM courses WHERE id = ?', id)[0] + lectures = query('SELECT * FROM lectures WHERE course_id = ?', courses['id']) + import_campus = query('SELECT * FROM import_campus WHERE course_id = ?',id) events = [] diff --git a/server.py b/server.py index d972654..d9efcca 100644 --- a/server.py +++ b/server.py @@ -482,9 +482,7 @@ def create(table): args = request.values.items() if (request.method == 'POST') and (request.get_json()): args = request.get_json().items() - print(args) for column, val in args: - print(column,val) if (column == 'ref') or (column == '_csrf_token'): continue assert column in tabs[table][2]+tabs[table][3] diff --git a/templates/course.html b/templates/course.html index 3c114e1..27373d2 100644 --- a/templates/course.html +++ b/templates/course.html @@ -51,7 +51,7 @@ </div> <div class="panel panel-default"> <div class="panel-heading"> - <h1 class="panel-title">Videos{% if ismod() %} <a class="btn btn-default" style="margin-right: 5px;" href="{{ url_for('create', table='lectures', time=datetime.now(), title='Noch kein Titel', visible='0', course_id=course.id, ref=request.url) }}">Neuer Termin</a><a class="btn btn-default" style="margin-right: 5px;" href="{{url_for('import_from', id=course['id'])}}">Campus Import</a>{% endif %} <a class="fa fa-rss-square pull-right" aria-hidden="true" href="{{url_for('feed', handle=course.handle)}}" style="text-decoration: none"></a> </h1> + <h1 class="panel-title">Videos{% if ismod() %} <a class="btn btn-default" style="margin-right: 5px;" href="{{ url_for('create', table='lectures', time=datetime.now(), title='Noch kein Titel', visible='0', course_id=course.id, ref=request.url) }}">Neuer Termin</a><a class="btn btn-default" style="margin-right: 5px;" href="{{url_for('list_import_sources', id=course['id'])}}">Campus Import</a>{% endif %} <a class="fa fa-rss-square pull-right" aria-hidden="true" href="{{url_for('feed', handle=course.handle)}}" style="text-decoration: none"></a> </h1> </div> <ul class="list-group lectureslist"> {% for l in lectures %} diff --git a/templates/import_campus.html b/templates/import_campus.html index 74de6f0..7e70e99 100644 --- a/templates/import_campus.html +++ b/templates/import_campus.html @@ -10,7 +10,7 @@ <div> <p>Es folgen viele Pärchen an Campus-URL und Veranstaltungstyp Pärchen. Die Campus URL bekommt man aus dem Campus-System (<a href="https://www.campus.rwth-aachen.de/rwth/all/groups.asp" target="_blank">hier</a>). Der Veranstaltungstyp ist z.B. "Vorlesung" oder "Übung" oder "Praktikum". </p> - <form method="post"> + <form method="post" action="{{url_for('list_import_sources', id=course['id'])}}"> <ul class="list-group row" style="margin-left: 0px; margin-right: 0px;"> {%for i in import_campus %} <li class="list-group-item form-inline row"> @@ -41,14 +41,20 @@ </span> </li> </ul> - <button class="btn btn-default pull-right" type="submit">speichern und neu Laden</button> + <button class="btn btn-default pull-right" type="submit">Speichern</button> </form> </div> </div> </div> <div class="panel panel-default"> - <div class="panel-heading"> - <h1 class="panel-title">Fehlende Termine: <button class="pull-right btn btn-default" onclick="$('.newlecture').click()">alle anlagen</button></h1> + <div class="panel-heading" style="height:50px"> + <h1 class="panel-title"> + Fehlende Termine: + <ul class="list-inline pull-right"> + <li><a class="btn btn-default" href="{{url_for('import_from', id=course['id'])}}">Campus überprüfen (Warnung: dauert lange)</button></a> + <li><button class="btn btn-default" onclick="$('.newlecture').click(); alert(\"done\");">alle anlagen</button></li> + </ul> + </h1> </div> <ul class="list-group-item"> {% for i in events|sort(attribute='time') %} -- GitLab