diff --git a/db_schema.sql b/db_schema.sql index e48bd14cce69d37acecd4b4f4f8af42061395f66..58cef7e751703571adcf6256fe601f9bb7aa57d0 100644 --- a/db_schema.sql +++ b/db_schema.sql @@ -135,6 +135,14 @@ CREATE TABLE IF NOT EXISTS `stream_stats` ( `hls_720p` INTEGER NOT NULL DEFAULT '0', `hls_360p` INTEGER NOT NULL DEFAULT '0' ); +CREATE TABLE IF NOT EXISTS `import_campus` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + `course_id` INTEGER NOT NULL, + `last_checked` datetime NOT NULL, + `type` varchar(255), + `url` varchar(2084), + `changed` INTEGER NOT NULL DEFAULT '0' +); CREATE TABLE IF NOT EXISTS `users` ( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, `name` varchar(32) NOT NULL, diff --git a/server.py b/server.py index 7fa2ced0e5c7af7fd221c8408eaf845351756561..8a5f92aced2c51020baa99e66bc61304e938fd9d 100755 --- a/server.py +++ b/server.py @@ -33,6 +33,8 @@ if __name__ == '__main__': config['SQLITE_INIT_DATA'] = True config['DEBUG'] = True config.from_pyfile('config.py', silent=True) +if config['DEBUG']: + app.jinja_env.auto_reload = True from db import query, searchquery, ldapauth, ldapget @@ -322,16 +324,25 @@ def log(): changelog = query('SELECT *, ( "table" || "." || id_value || "." ||field) as path FROM changelog LEFT JOIN users ON (changelog.who = users.id) ORDER BY "when" DESC LIMIT 50') return render_template('log.html', changelog=changelog) -@app.route('/import/<source>/<id>') -@app.route('/import/<source>/<int:numid>') +@app.route('/import/<source>/<id>', methods=['GET', 'POST']) +@app.route('/import/<source>/<int:numid>', methods=['GET', 'POST']) @handle_errors('course', 'Diese Veranstaltung existiert nicht!', 404, IndexError) @mod_required def import_from(numid=None, source=None, id=None): if source != "campus": return "Unknown source", 404 + + campus={} + for i in request.values: + group, id, field = i.split('.', 2) + if group == 'campus': + if not id in campus: + campus[id] = {} + campus[id][field] = request.values[i] + if numid: courses = query('SELECT * FROM courses WHERE id = ?', numid)[0] else: courses = query('SELECT * FROM courses WHERE handle = ?', id)[0] lectures = query('SELECT * FROM lectures WHERE course_id = ?', courses['id']) - return render_template('import_campus.html', course=courses, lectures=lectures) + return render_template('import_campus.html', course=courses, lectures=lectures, campus=campus) diff --git a/templates/import_campus.html b/templates/import_campus.html index ea49c0b933c6385abc28dc583a2c4f2e5d12bb7e..b43f6820cbacf85dcd65fbf94088f367028e9bea 100644 --- a/templates/import_campus.html +++ b/templates/import_campus.html @@ -10,17 +10,22 @@ <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">hier</a>). Der Veranstaltungstyp ist z.B. "Vorlesung" oder "Übung" oder "Praktikum". </p> - <ul class="list-group row"> - <li class="list-group-item form-inline"> - <span class="input-group"> - <input class="form-control" type="text" placeholder="url"> - </span> - <span class="input-group"> - <input class="form-control" type="test" placeholder="typ"> - </span> - </li> - </ul> - <a class="btn btn-default pull-right">speichern und neu Laden</a> + <p> + {{ campus }} + </p> + <form method="post"> + <ul class="list-group row"> + <li class="list-group-item form-inline"> + <span class="input-group"> + <input class="form-control" type="text" name="campus.0.url" placeholder="url"> + </span> + <span class="input-group"> + <input class="form-control" type="test" name="campus.0.type" placeholder="type"> + </span> + </li> + </ul> + <button class="btn btn-default pull-right" type="submit">speichern und neu Laden</button> + </form> </div> <div> <ul class="list-group row">