05/24 Enhance functionalities 2
This commit is contained in:
@@ -250,6 +250,23 @@ def get_user_by_id(user_id: int):
|
||||
conn.close()
|
||||
|
||||
|
||||
def update_user_profile(user_id: int, full_name: str, email: str):
|
||||
"""Allow a user to update their own full name and email address."""
|
||||
conn = None
|
||||
try:
|
||||
conn = get_connection()
|
||||
cur = conn.cursor()
|
||||
cur.execute(
|
||||
"UPDATE users SET full_name=%s, email=%s WHERE id=%s",
|
||||
(full_name.strip() or None, email.strip().lower() or None, user_id),
|
||||
)
|
||||
conn.commit()
|
||||
cur.close()
|
||||
finally:
|
||||
if conn:
|
||||
conn.close()
|
||||
|
||||
|
||||
def create_user(admin_id, username, password, role, full_name, email=None):
|
||||
conn = None
|
||||
try:
|
||||
@@ -1092,12 +1109,28 @@ def get_admin_dashboard_stats():
|
||||
total_users = cur.fetchone()["n"]
|
||||
cur.execute("SELECT COUNT(DISTINCT user_id) AS n FROM shift_checks WHERE DATE(checked_at)=CURDATE()")
|
||||
active_today = cur.fetchone()["n"]
|
||||
cur.execute("SELECT COUNT(*) AS n FROM bid_tracker WHERE status IN ('open','monitoring')")
|
||||
open_bids = cur.fetchone()["n"]
|
||||
cur.execute(
|
||||
"SELECT COUNT(*) AS n FROM bid_tracker"
|
||||
" WHERE status IN ('open','monitoring')"
|
||||
" AND due_date BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY)"
|
||||
)
|
||||
bids_due_soon = cur.fetchone()["n"]
|
||||
cur.execute(
|
||||
"SELECT COUNT(*) AS n FROM ai_analysis_log"
|
||||
" WHERE analyzed_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)"
|
||||
)
|
||||
ai_analyses_30d = cur.fetchone()["n"]
|
||||
cur.close()
|
||||
return {
|
||||
"user_stats": user_stats,
|
||||
"total_sites": total_sites,
|
||||
"total_users": total_users,
|
||||
"active_today": active_today,
|
||||
"user_stats": user_stats,
|
||||
"total_sites": total_sites,
|
||||
"total_users": total_users,
|
||||
"active_today": active_today,
|
||||
"open_bids": open_bids,
|
||||
"bids_due_soon": bids_due_soon,
|
||||
"ai_analyses_30d": ai_analyses_30d,
|
||||
}
|
||||
finally:
|
||||
if conn:
|
||||
|
||||
Reference in New Issue
Block a user