Files
Comparison_Project/app/routes/activity_routes.py

59 lines
1.6 KiB
Python
Raw Permalink Normal View History

2026-08-01 15:41:26 +05:30
from flask import Blueprint, render_template, request, send_file, abort
import os
from app.utils.helpers import login_required
from app.utils.file_utils import get_logs_folder , ALLOWED_LOG_FILE
from app.services.activity_service import ActivityService
activity_bp = Blueprint("activity", __name__, url_prefix="/activity")
# call activity_log page
@activity_bp.route("/")
@login_required
def activity():
file_name = request.args.get("file", "app.log")
search = request.args.get("search", "")
level = request.args.get("level", "").upper()
user = request.args.get("user", "")
from_date = request.args.get("from_date", "")
to_date = request.args.get("to_date", "")
logs = ActivityService.read_logs(
file_name=file_name,
search=search,
level=level,
user=user,
from_date=from_date,
to_date=to_date
)
return render_template(
"activity/activity_log.html",
logs=logs,
file_name=file_name,
search=search,
level=level,
user=user,
from_date=from_date,
to_date=to_date
)
# Download activity_log files
@activity_bp.route("/logs")
@login_required
def download_log():
filename = request.args.get("file", "app.log")
if filename not in ALLOWED_LOG_FILE:
abort(400, "Invalid log file.")
file_path = os.path.join(get_logs_folder(), filename)
if not os.path.isfile(file_path):
abort(404, "Log file not found.")
return send_file(
file_path,
as_attachment=True,
download_name=filename,
mimetype="text/plain"
)