Skip to content
Snippets Groups Projects
Commit fa261b4b authored by Julian Rother's avatar Julian Rother
Browse files

Merge branch 'master' of git.fsmpi.rwth-aachen.de:videoagwebsite/videoagwebsite

parents a36f2c02 dcf9dfb0
Branches
No related tags found
No related merge requests found
# Website der Video AG
## Entwicklung
### Zum Testen:
Hinweis: diese Variante startet eine lokale Testversion der Website, es sind nicht alle Features verfügbar, z.B. LDAP-Login.
1. Repo Clonen
2. Verzeichnis betreten
3. (optional) config.py anpassen
4. Schauen ob alle Dependencies erfüllt sind (siehe weiter unten)
5. `./run.py` ausführen
6. unter [link](http://localhost:5000) ist die Website verfügbar
7. Moderatorlogin mit user: `videoag` Passwort: `videoag`
### Zum Mitmachen:
1. Repo zum User clonen, dafür den "Clone-Button auf der Website verwenden
2. Weiter mit 'Zum Testen'
3. Änderungen machen
4. ins eigene Repo pushen
5. Pull-Request an uns, dazu unter "Merge-Requests" einmal auf "New Merge Request" und das Private Repo auswählen.
6. Warten
7. Wir mergen die Änderungen
### Dependencies
* python
* flask
* sqlite
* lxml (optional, wird für den Campus Import benötigt)
# Lizenz
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License Version 2
as published by the Free Software Foundation;
......
......@@ -192,6 +192,7 @@ def faq():
return render_template('faq.html')
@app.route('/play/<int:id>')
@app.route('/embed/<int:id>', endpoint='embed')
@handle_errors('course', 'Diese Vorlesung existiert nicht!', 404, IndexError)
def lecture(id):
lectures = query('SELECT * FROM lectures WHERE id = ? AND (? OR visible)', id, ismod())
......@@ -202,7 +203,8 @@ def lecture(id):
if not courses:
return render_endpoint('course', 'Diese Veranstaltung existiert nicht!'), 404
chapters = query('SELECT * FROM chapters WHERE lecture_id = ? AND NOT deleted AND (? OR visible) ORDER BY time ASC', id, ismod())
return render_template('lecture.html', course=courses[0], lecture=lectures[0], videos=videos, chapters=chapters)
return render_template('embed.html' if request.endpoint == 'embed' else 'lecture.html', course=courses[0], lecture=lectures[0], videos=videos, chapters=chapters)
@app.route('/search')
def search():
......@@ -395,6 +397,24 @@ def new_featured():
return redirect(request.values['ref'])
return id, 200
@app.route('/sitemap.xml', methods=['GET'])
def sitemap():
pages=[]
# static pages
for rule in app.url_map.iter_rules():
if 'GET' in rule.methods and len(rule.arguments)==0:
if rule.endpoint not in mod_endpoints:
pages.append([rule.rule])
for i in query('select * from courses where visible and listed'):
pages.append([url_for('course',handle=i['handle'])])
for j in query('select * from lectures where (course_id = ? and visible)',i['id']):
pages.append([url_for('lecture',id=j['id'])])
return Response(render_template('sitemap.xml', pages=pages), 200, {'Content-Type': 'application/atom+xml'} )
import feeds
import importer
import schedule
......@@ -24,6 +24,7 @@
{%if ismod() %}<script src="{{url_for('static', filename='moderator.js')}}"></script>{% endif %}
</head>
<body>
{% block navbar %}
<nav class="navbar navbar-default navbar-static-top">
<div class="container-fluid">
<div class="row">
......@@ -98,6 +99,7 @@
</div>
</div>
</nav>
{% endblock %}
<div class="container-fluid">
<div class="row">
{% if page_border == 0 %}
......@@ -127,8 +129,6 @@
</div>
{% endfor %}
{% block content %}
<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
{% endblock %}
</div>
</div>
......
{% from 'macros.html' import player %}
{% from 'macros.html' import video_download_btn %}
{% from 'macros.html' import video_embed_btn %}
{% set page_border = 0 -%}
{% extends "base.html" %}
{% block navbar %}
{% endblock %}
{% block content %}
<div class="row">
<div class="col-xs-12" style="padding: 0px">
{{ player(lecture, videos) }}
</div>
</div>
{% endblock %}
......@@ -110,7 +110,7 @@
<span>Einbetten</span>
</a>
<script>
{% set embedcode = '<iframe width="700" height="394" src="https://videoag.fsmpi.rwth-aachen.de/site/embed.php?lecture='+lectureid|string+'" frameborder="0" allowfullscreen="true"></iframe>' %}
{% set embedcode = '<iframe width="700" height="394" src="'+url_for('embed', id=lectureid, _external=True)+'" frameborder="0" allowfullscreen="true"></iframe>' %}
$('#embedcodebtn').popover(
{
html:true,
......
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{% for page in pages %}
<url>
<loc>{{page[0]|safe}}</loc>
<lastmod>{{page[1]}}</lastmod>
</url>
{% endfor %}
</urlset>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment