Files
Client-Billing-software/app/Controllers/activity_controller.py
2026-04-15 12:05:28 +05:30

64 lines
1.9 KiB
Python

import os
from flask import request, render_template, current_app
from datetime import datetime
def activity_log_controller():
logs = []
log_file = os.path.join(current_app.root_path, 'activity.log')
if os.path.exists(log_file):
with open(log_file, 'r') as f:
for line in f:
parts = line.strip().split(" | ")
if len(parts) == 4:
logs.append({
"timestamp": parts[0].replace("Timestamp:", "").strip(),
"user": parts[1].replace("User:", "").strip(),
"action": parts[2].replace("Action:", "").strip(),
"details": parts[3].replace("Details:", "").strip()
})
# Filters
start_date = request.args.get("start_date")
end_date = request.args.get("end_date")
username = request.args.get("username")
filtered_logs = logs
# Date filter
if start_date or end_date:
try:
if start_date:
start_dt = datetime.strptime(start_date, "%Y-%m-%d")
else:
start_dt = datetime.min
if end_date:
end_dt = datetime.strptime(end_date, "%Y-%m-%d")
else:
end_dt = datetime.max
filtered_logs = [
log for log in filtered_logs
if start_dt <= datetime.strptime(
log["timestamp"], "%Y-%m-%d %H:%M:%S"
) <= end_dt.replace(hour=23, minute=59, second=59)
]
except Exception as e:
print("Date filter error:", e)
# Username filter
if username:
filtered_logs = [
log for log in filtered_logs
if log["user"].lower() == username.lower()
]
return render_template(
"activity_log.html",
logs=filtered_logs,
start_date=start_date,
end_date=end_date,
username=username
)