def presentation_start(): """ Method for python flask, to set path for starting presentation page of the web frontend here, you can start presentation of the former uploaded files. login required """ if not current_user.is_lecturer(): flash("Zugriff nicht moeglich, bitte melden Sie sich an.", "danger") return redirect(url_for("index")) # stop all previous presentations presentation.stop() # get content of the form form = PresentationControlForm(request.form) # get file_name and file_extension file_name = os.path.join(get_upload_folder(), form.param.data) file_extension = str(os.path.splitext(file_name)[1]).lower() # when the file exists start the matching presentation if os.path.isfile(file_name): # start pdf presentation if file_extension == ".pdf": res = presentation.pdf.start_presentation(get_upload_folder(), form.param.data) if res: return redirect(url_for("presentation_pdf")) # start video presentation elif file_extension == ".avi" or file_extension == ".mp4": res = presentation.video.start_presentation(get_upload_folder(), form.param.data) if res: return redirect(url_for("presentation_video")) return redirect(url_for("index")) else: return redirect(url_for("index"))
def presentation_video_control(): """ Method for python flask, to set path for presenting video page of the web frontend each document type has its own needs of control buttons. login required """ if not current_user.is_lecturer(): flash("Zugriff nicht moeglich, bitte melden Sie sich an.", "danger") return redirect(url_for("index")) form = PresentationControlForm(request.form) if presentation.video.is_active(): # Stop the Presentation if form.action.data == "stop": presentation.stop() return redirect(url_for("index")) elif form.action.data == "play_pause": presentation.video.toggle_play() elif form.action.data == "volume_up": presentation.video.volume_up() elif form.action.data == "volume_down": presentation.video.volume_down() elif form.action.data == "jump_further": presentation.video.jump_further() elif form.action.data == "jump_back": presentation.video.jump_back() return redirect(url_for("presentation_video"))
def voip_control(): if not current_user.is_lecturer(): flash("Zugriff nicht moeglich, bitte melden Sie sich an.", "danger") return redirect(url_for("index")) form = PresentationControlForm(request.form) presentation.stop() presentation.voip.start_voip(form.param.data) return redirect(url_for("index"))
def logout(): """ Method for flask login, to handle logout for the web frontend """ # if the user was a lecturer stop all presentations if current_user.is_lecturer(): presentation.stop() # logout the user user_database.logout_user(current_user.id) logout_user() flash("Logout erfolgreich", "success") return redirect(url_for("index"))
def upload_file(): """ Method for python flask, to set path for upload page of the web frontend; one can upload files for presentation. login required """ if not current_user.is_lecturer(): flash("Zugriff nicht moeglich, bitte melden Sie sich an.", "danger") return redirect(url_for("index")) file_obj = request.files['file'] if file_obj and allowed_file(file_obj.filename): filename = secure_filename(file_obj.filename) file_obj.save(os.path.join(get_upload_folder(), filename)) return redirect(url_for("index"))
def presentation_video(): """ Method for python flask, to set path for presenting video page of the web frontend login required """ if not current_user.is_lecturer(): flash("Zugriff nicht moeglich, bitte melden Sie sich an.", "danger") return redirect(url_for("index")) if not presentation.video.is_active(): return redirect(url_for("index")) return render_template("presentation/presentation_video.html", current_file=presentation.video.filename, active=presentation.video.is_active())
def projector_control(): """ Method for python flask, to set path for settings page of the web frontend """ if not current_user.is_lecturer(): flash("Zugriff nicht moeglich, bitte melden Sie sich an.", "danger") return redirect(url_for("index")) form = ProjectorControlForm(request.form) if form.action.data == "power_on": projector.power_on() elif form.action.data == "power_off": projector.power_off() elif form.action.data == "mute_on": projector.mute_on() elif form.action.data == "mute_off": projector.mute_off() return redirect(url_for("index"))
def connections_control(): """ Method for python flask, to set path for connection control page of the web frontend; one needs to be logged in, to get access. Here the user_list can be managed """ if not current_user.is_lecturer(): flash("Zugriff nicht moeglich, bitte melden Sie sich an.", "danger") return redirect(url_for("index")) form = ConnectionControlForm(request.form) if form.action.data == "start": presentation.stop() result = presentation.vnc.start_connection(form.param.data, "5900") if result: flash("Verbindung wird aufgebaut", "success") else: flash("Fehler beim Verbindungsaufbau", "danger") elif form.action.data == "stop": presentation.stop() return redirect(url_for("index"))
def presentation_pdf_control(): """ Method for python flask, to set path for presenting pdf page of the web frontend each document type has its own needs of control buttons. login required """ if not current_user.is_lecturer(): flash("Zugriff nicht moeglich, bitte melden Sie sich an.", "danger") return redirect(url_for("index")) form = PresentationControlForm(request.form) if presentation.pdf.is_active(): # Stop the Presentation if form.action.data == "stop": presentation.stop() return redirect(url_for("index")) elif form.action.data == "next": presentation.pdf.next_page() elif form.action.data == "previous": presentation.pdf.previous_page() elif form.action.data == "go_to_page": presentation.pdf.go_to_page(form.param.data) return redirect(url_for("presentation_pdf"))