Skip to content
Snippets Groups Projects
Commit ded08bd3 authored by Andreas Valder's avatar Andreas Valder
Browse files

displaying not published chapters on course list and lectures

parent c695d754
No related branches found
No related tags found
No related merge requests found
...@@ -206,7 +206,11 @@ def index(): ...@@ -206,7 +206,11 @@ def index():
@register_navbar('Videos', icon='film') @register_navbar('Videos', icon='film')
def courses(): def courses():
courses = query('SELECT * FROM courses WHERE (? OR (visible AND listed)) ORDER BY lower(semester), lower(title)', ismod()) courses = query('SELECT * FROM courses WHERE (? OR (visible AND listed)) ORDER BY lower(semester), lower(title)', ismod())
chapters = {}
for i in query('SELECT lectures.course_id AS id, COUNT(chapters.id) AS c FROM chapters JOIN lectures ON chapters.lecture_id = lectures.id WHERE NOT chapters.visible GROUP BY lectures.course_id'):
chapters[i['id']] = i['c']
for course in courses: for course in courses:
course['chapter_count'] = chapters.get(course['id'], 0)
if course['semester'] == '': if course['semester'] == '':
course['semester'] = 'zeitlos' course['semester'] = 'zeitlos'
groupedby = request.args.get('groupedby') groupedby = request.args.get('groupedby')
...@@ -224,11 +228,15 @@ def course(id=None, handle=None): ...@@ -224,11 +228,15 @@ def course(id=None, handle=None):
course = query('SELECT * FROM courses WHERE handle = ? AND (? OR visible)', handle, ismod())[0] course = query('SELECT * FROM courses WHERE handle = ? AND (? OR visible)', handle, ismod())[0]
course['perm'] = query('SELECT * FROM perm WHERE (NOT perm.deleted) AND course_id = ? ORDER BY type', course['id']) course['perm'] = query('SELECT * FROM perm WHERE (NOT perm.deleted) AND course_id = ? ORDER BY type', course['id'])
perms = query('SELECT perm.* FROM perm JOIN lectures ON (perm.lecture_id = lectures.id) WHERE (NOT perm.deleted) AND lectures.course_id = ? ORDER BY perm.type', course['id']) perms = query('SELECT perm.* FROM perm JOIN lectures ON (perm.lecture_id = lectures.id) WHERE (NOT perm.deleted) AND lectures.course_id = ? ORDER BY perm.type', course['id'])
chapters = {}
for i in query('SELECT lectures.id AS id, COUNT(chapters.id) AS c FROM chapters JOIN lectures ON chapters.lecture_id = lectures.id WHERE lectures.course_id = ? GROUP BY chapters.lecture_id;', course['id']):
chapters[i['id']] = i['c']
lectures = query('SELECT * FROM lectures WHERE course_id = ? AND (? OR visible) ORDER BY time, duration DESC', course['id'], ismod()) lectures = query('SELECT * FROM lectures WHERE course_id = ? AND (? OR visible) ORDER BY time, duration DESC', course['id'], ismod())
for lecture in lectures: for lecture in lectures:
lecture['perm'] = [] lecture['perm'] = []
lecture['perm'] += course['perm'] lecture['perm'] += course['perm']
lecture['course'] = course lecture['course'] = course
lecture['chapter_count'] = chapters.get(lecture['id'], 0)
for perm in perms: for perm in perms:
if perm['lecture_id'] == lecture['id']: if perm['lecture_id'] == lecture['id']:
lecture['perm'].append(perm) lecture['perm'].append(perm)
......
...@@ -155,6 +155,9 @@ $(function() { ...@@ -155,6 +155,9 @@ $(function() {
<a href="{{url_for('course', handle=course.handle)}}"> <a href="{{url_for('course', handle=course.handle)}}">
{{ course.title }}{% if ismod() %}<i> ({{course.id}})</i>{% endif %} {{ course.title }}{% if ismod() %}<i> ({{course.id}})</i>{% endif %}
</a> </a>
{% if course.chapter_count|d(0) > 0 and ismod() %}
<span class="label label-info" data-toggle="tooltip" title="Nicht freigegebene Kapitel">{{ course.chapter_count }}</span>
{% endif %}
</span> </span>
<span class="col-xs-8 col-md-3"> <span class="col-xs-8 col-md-3">
{{ course.organizer }} {{ course.organizer }}
...@@ -216,7 +219,13 @@ $('#embedcodebtn').popover( ...@@ -216,7 +219,13 @@ $('#embedcodebtn').popover(
{% endif %} {% endif %}
</div> </div>
<ul class="list-unstyled col-sm-3 col-xs-12"> <ul class="list-unstyled col-sm-3 col-xs-12">
<li>{{ moderator_editor(['lectures',lecture.id,'title'], lecture.title) }}{{livelabel((lecture.live and lecture.time > datetime.now()-timedelta(days=1)), videos|selectattr("livehandle")|list|length)}}</li> <li>
{{ moderator_editor(['lectures',lecture.id,'title'], lecture.title) }}
{{ livelabel((lecture.live and lecture.time > datetime.now()-timedelta(days=1)), videos|selectattr("livehandle")|list|length) }}
{% if lecture.chapter_count|d(0) > 0 and ismod() %}
<span class="label label-info" data-toggle="tooltip" title="Nicht freigegebene Kapitel">{{ lecture.chapter_count }}</span>
{% endif %}
</li>
{% if lecture.speaker or ismod() %}<li>Gehalten von {{ moderator_editor(['lectures',lecture.id,'speaker'], lecture.speaker) }}</li>{% endif %} {% if lecture.speaker or ismod() %}<li>Gehalten von {{ moderator_editor(['lectures',lecture.id,'speaker'], lecture.speaker) }}</li>{% endif %}
{% if ismod() %} {% if ismod() %}
<li>{{ moderator_editor(['lectures',lecture.id,'time'], lecture.time) }} </li> <li>{{ moderator_editor(['lectures',lecture.id,'time'], lecture.time) }} </li>
...@@ -263,7 +272,13 @@ $('#embedcodebtn').popover( ...@@ -263,7 +272,13 @@ $('#embedcodebtn').popover(
<div class="col-sm-2 col-xs-12"> <div class="col-sm-2 col-xs-12">
</div> </div>
<ul class="list-unstyled col-sm-3 col-xs-12"> <ul class="list-unstyled col-sm-3 col-xs-12">
<li>{{ moderator_editor(['lectures',lecture.id,'title'], lecture.title) }}{{livelabel((lecture.live and lecture.time > datetime.now()-timedelta(days=1)), videos|selectattr("livehandle")|list|length)}}</li> <li>
{{ moderator_editor(['lectures',lecture.id,'title'], lecture.title) }}
{{livelabel((lecture.live and lecture.time > datetime.now()-timedelta(days=1)), videos|selectattr("livehandle")|list|length)}}
{% if lecture.chapter_count|d(0) > 0 and ismod() %}
<span class="label label-info" data-toggle="tooltip" title="Nicht freigegebene Kapitel">{{ lecture.chapter_count }}</span>
{% endif %}
</li>
</ul> </ul>
<ul class="list-unstyled col-sm-3 col-xs-12"> <ul class="list-unstyled col-sm-3 col-xs-12">
{% if ismod() %} {% if ismod() %}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment