added download button to slides with pdfs

This commit is contained in:
2025-10-28 22:58:36 +01:00
parent b13314037f
commit bec3d5a0ea
4 changed files with 53 additions and 7 deletions

View File

@@ -102,6 +102,9 @@ def index():
if not token:
return redirect(url_for("main.set_token"))
else:
for deck in get_unlocked_decks(token):
print(str(deck) + " | " + str(deck.export_file))
return render_template('index.html', active_banner=get_active_banner(), decks=get_unlocked_decks(token), user_name=token.name, active_course_name=token.active_course.name, courses=get_all_courses())
def set_cookie(token):
@@ -308,6 +311,28 @@ def serve_deck(deck, course_folder, path='index.html'):
abort(404)
@main.route('/exports/<course_folder>/<deck>/<path>')
def serve_export(deck, course_folder, path):
course = db.session.execute(db.select(Course).where(Course.folder==course_folder)).scalar()
if not course:
abort(404)
assert isinstance(course, Course)
deck = db.session.execute(db.select(Deck).where(Deck.deck==deck and Deck.course_id == course.id)).scalar()
if not deck:
abort(404)
assert isinstance(deck, Deck)
if not is_deck_unlocked(deck.deck):
return redirect(url_for('main.index'))
exports_dir = os.path.join(current_app.config['EXPORTS_DIR'], course.folder)
deck_path = os.path.join(exports_dir, deck.deck)
requested_file = os.path.join(deck_path, path)
if os.path.isfile(requested_file):
return send_from_directory(deck_path, path)
abort(404)
@main.route('/admin', methods=['GET', 'POST'])
@flask_login.login_required
def admin():