modified: app.py

modified:   templates/user_dashboard.html
This commit is contained in:
SimolZimol
2024-09-12 16:36:55 +02:00
parent c914208cee
commit 5dd0fe1538
2 changed files with 122 additions and 30 deletions

24
app.py
View File

@@ -228,30 +228,20 @@ def user_dashboard():
if "discord_user" in session:
user_info = session["discord_user"]
user_id = user_info["id"]
# Verbindung zur Datenbank herstellen
connection = get_db_connection() # Stelle sicher, dass du die richtige Verbindung benutzt
connection = get_db_connection()
cursor = connection.cursor(dictionary=True)
# Punkte und Rang aus der Datenbank abrufen
cursor.execute("SELECT points, rank FROM user_data WHERE user_id = %s", (user_id,))
cursor.execute("SELECT points, permission, ban FROM user_data WHERE user_id = %s", (user_id,))
user_data = cursor.fetchone()
cursor.close()
connection.close()
# Wenn der Benutzer existiert, werden die Daten an das Template übergeben
if user_data:
user_points = user_data["points"]
user_rank = user_data["rank"]
else:
# Falls keine Daten gefunden wurden, setze Standardwerte
user_points = 0
user_rank = "User"
return render_template("user_dashboard.html", user_info=user_info, user_points=user_points, user_rank=user_rank)
return redirect(url_for("login"))
if user_data:
return render_template("user_dashboard.html", user_info=user_info, user_data=user_data)
else:
return "User data not found", 404
return redirect(url_for("landing_page"))
@app.route("/logout")
def logout():

View File

@@ -1,50 +1,152 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>User Dashboard</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
background-color: #f7f7f7;
}
.card {
margin-top: 20px;
}
.card-header {
background-color: #343a40;
color: white;
}
.user-info {
margin-top: 20px;
}
.points {
font-size: 2em;
color: #28a745;
}
.badge-rank {
font-size: 1.2em;
padding: 10px;
}
.footer {
background-color: #343a40;
color: white;
padding: 20px;
text-align: center;
margin-top: 50px;
}
</style>
</head>
<body>
{% include 'navigation.html' %}
<div class="container mt-5">
<h1 class="text-center">Welcome, {{ user_info.username }}</h1>
<p class="text-center">Here you can view your points and other information.</p>
<!-- Navbar -->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="#">Multus Bot - User Dashboard</a>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<a class="nav-link" href="{{ url_for('admin_dashboard') }}">Switch to Admin View (Admin only)</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ url_for('logout') }}">Logout</a>
</li>
</ul>
</div>
</nav>
<div class="row mt-4">
<!-- User Info -->
<div class="container user-info">
<div class="row">
<div class="col-md-12 text-center">
<h1>Welcome, {{ user_info.username }}</h1>
<p>Your Discord ID: {{ user_info.id }}</p>
</div>
</div>
</div>
<!-- Dashboard Cards -->
<div class="container">
<div class="row">
<!-- Points Card -->
<div class="col-md-4">
<div class="card">
<div class="card-header">
Points
</div>
<div class="card-body text-center">
<h5 class="card-title">Your Points</h5>
<p class="card-text">{{ user_points }} Points</p>
<p class="points">{{ user_data.points }}</p>
<p>Points available</p>
</div>
</div>
</div>
<!-- Rank Card -->
<div class="col-md-4">
<div class="card">
<div class="card-header">
Rank
</div>
<div class="card-body text-center">
<h5 class="card-title">Giveaways</h5>
<p class="card-text">Check out the giveaways you've won!</p>
<a href="{{ url_for('user_giveaways') }}" class="btn btn-primary">View Giveaways</a>
<span class="badge badge-rank badge-{{ 'primary' if user_data.permission == 10 else 'secondary' }}">
{{ 'Owner' if user_data.permission == 10 else 'Admin' if user_data.permission == 8 else 'Mod' if user_data.permission == 5 else 'User' }}
</span>
<p>Your current rank</p>
</div>
</div>
</div>
<!-- Bot Status Card -->
<div class="col-md-4">
<div class="card">
<div class="card-header">
Bot Status
</div>
<div class="card-body text-center">
<h5 class="card-title">Your Rank</h5>
<p class="card-text">Rank: {{ user_rank }}</p>
<span class="badge badge-{{ 'success' if bot_running else 'danger' }}">
{{ "Running" if bot_running else "Stopped" }}
</span>
<p>Current Bot Status</p>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-body text-center">
<h5 class="card-title">Giveaways</h5>
<p class="card-text">Check out the giveaways you've won!</p>
<a href="{{ url_for('user_giveaways') }}" class="btn btn-primary">View Giveaways</a>
</div>
</div>
</div>
<!-- Helpful Links -->
<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-header">
Useful Links
</div>
<div class="card-body text-center">
<a href="/help" class="btn btn-info btn-lg">Help</a>
<a href="/settings" class="btn btn-secondary btn-lg">Settings</a>
<a href="https://discordapp.com/users/@simolzimol" class="btn btn-outline-primary btn-lg">Contact SimolZimol</a>
</div>
</div>
</div>
</div>
</div>
<!-- Footer -->
<footer class="footer">
<div class="container">
<p>&copy; 2024 Multus Bot | Built by SimolZimol | Exclusively on Ludi et Historia</p>
</div>
</footer>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.2/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>