Source code for maeser.controllers.feedback_form_post
# SPDX-License-Identifier: LGPL-3.0-or-later
"""
Module for handling feedback form submissions.
"""
from maeser.chat.chat_session_manager import ChatSessionManager
from flask import request, redirect, Response
[docs]
def controller(chat_sessions_manager: ChatSessionManager) -> Response:
"""
Controller function to handle the feedback form submission.
Uses flask.request and expects a post request with the following fields:
- "**name**": The name of the form respondent.
- "**feedback**": The text content of the feedback submitted by the respondent.
- "**role**": The role/position of the respondent. Expected values are "Undergraduate Student", "Graduate Student", "Faculty", or "Other".
- "**category**": The category of the feedback. Expected values are "General Feedback", "Bug Report", "Feature Request", "Content Issue", or "Other".
Args:
chat_sessions_manager (ChatSessionManager): The manager for chat sessions.
Returns:
Response: Redirects to the home page.
"""
chat_logs_manager = chat_sessions_manager.chat_logs_manager
name = request.form.get("name")
feedback = request.form.get("feedback")
role = request.form.get("role")
category = request.form.get("category")
if chat_logs_manager is not None:
chat_logs_manager.save_feedback(
{"name": name, "feedback": feedback, "role": role, "category": category}
)
return redirect("/")