Linker Block je nach Login Status
This commit is contained in:
parent
751c67c05b
commit
41a1bb3530
@ -1,9 +1,22 @@
|
|||||||
from flask import Flask
|
from flask import Flask
|
||||||
from flask_sqlalchemy import SQLAlchemy
|
from flask_sqlalchemy import SQLAlchemy
|
||||||
|
|
||||||
|
# Initialize a new Flask app instance with the name of the current module (main).
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
# Set the secret key for this application. This is required for session management in Flask.
|
||||||
|
# The secret key should be a cryptographically secure random value, and it's used to sign cookies.
|
||||||
|
# For more information: https://flask.palletsprojects.com/en/2.3.x/config/#SECRET_KEY
|
||||||
|
app.secret_key = 'faab0674dd8d9a4554cbeb53da2dad1414cc4c64b778e282da0b1662df7e0f85'
|
||||||
|
|
||||||
|
# Configure the database URI for SQLAlchemy. Here, it uses an SQLite database named 'learn.db'.
|
||||||
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///learn.db'
|
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///learn.db'
|
||||||
|
|
||||||
|
# Disable tracking modifications to the database, which is not necessary in this case and can improve performance.
|
||||||
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
||||||
|
|
||||||
|
# Initialize SQLAlchemy with the Flask app instance for database management.
|
||||||
db = SQLAlchemy(app)
|
db = SQLAlchemy(app)
|
||||||
|
|
||||||
|
# Import the routes module from the lernplattform package, which is assumed to be in the same directory.
|
||||||
import lernplattform.routes
|
import lernplattform.routes
|
@ -1,4 +1,4 @@
|
|||||||
from flask import Flask, request
|
from flask import Flask, request, session
|
||||||
from lernplattform import app
|
from lernplattform import app
|
||||||
from lernplattform.models import User
|
from lernplattform.models import User
|
||||||
|
|
||||||
@ -17,11 +17,16 @@ class login():
|
|||||||
def __init__(self, user_name=None):
|
def __init__(self, user_name=None):
|
||||||
self.user_name = user_name # Initialize the user name attribute for the login class
|
self.user_name = user_name # Initialize the user name attribute for the login class
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def check(user_name):
|
def check(user_name):
|
||||||
if user_name is None:
|
if user_name is None:
|
||||||
|
session['logged_in'] = False
|
||||||
|
session['user_name'] = 'Gast'
|
||||||
return False # Return False if the user name is not provided
|
return False # Return False if the user name is not provided
|
||||||
else:
|
else:
|
||||||
|
session['logged_in'] = True
|
||||||
|
session['user_name'] = user_name
|
||||||
|
|
||||||
return True # Otherwise, return True indicating a valid user name
|
return True # Otherwise, return True indicating a valid user name
|
||||||
|
|
||||||
def login(self):
|
def login(self):
|
||||||
print("Login") # Print "Login" to indicate that the login method has been called
|
print("Login") # Print "Login" to indicate that the login method has been called
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
from flask import render_template, url_for, flash, redirect, jsonify, request
|
from flask import render_template, url_for, flash, redirect, jsonify, request, session
|
||||||
from lernplattform import app
|
from lernplattform import app
|
||||||
from lernplattform.models import User
|
from lernplattform.models import User
|
||||||
|
|
||||||
@ -16,14 +16,10 @@ def index():
|
|||||||
Returns:
|
Returns:
|
||||||
A rendered HTML template with the current username.
|
A rendered HTML template with the current username.
|
||||||
"""
|
"""
|
||||||
if login.check(request.cookies.get('user_name')):
|
login.check(request.cookies.get('user_name'))
|
||||||
user_name = User.query.filter_by(username=request.cookies.get('user_name')).first().username
|
|
||||||
else:
|
|
||||||
# If not logged in, default to 'Gast'
|
|
||||||
user_name = 'Gast'
|
|
||||||
|
|
||||||
# Render the main page with the current username
|
# Render the main page with the current username
|
||||||
return render_template('index.html', user_name=user_name)
|
return render_template('index.html', user_name=session['user_name'])
|
||||||
|
|
||||||
@app.route('/users', methods=['GET'])
|
@app.route('/users', methods=['GET'])
|
||||||
def get_users():
|
def get_users():
|
||||||
|
@ -18,10 +18,11 @@
|
|||||||
}
|
}
|
||||||
body {
|
body {
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
|
background-color: var(--background-color);
|
||||||
}
|
}
|
||||||
.light {
|
.light {
|
||||||
color: #888888;
|
color: #cdcdcd;
|
||||||
font-weight: 100;
|
font-weight: 400;
|
||||||
font-size: small;
|
font-size: small;
|
||||||
}
|
}
|
||||||
.sidebar {
|
.sidebar {
|
||||||
@ -72,7 +73,7 @@
|
|||||||
background-color: var(--nav-background-color);
|
background-color: var(--nav-background-color);
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
.navbar-nav .nav-link {
|
.navbar-nav .nav-link {
|
||||||
color: var(--link-default-color)
|
color: var(--link-default-color)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,6 +84,14 @@
|
|||||||
.navbar-nav .nav-link.active {
|
.navbar-nav .nav-link.active {
|
||||||
color: var(--link-active-color);
|
color: var(--link-active-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #ffcc00;
|
||||||
|
}
|
||||||
|
a:hover {
|
||||||
|
color: #c07427;
|
||||||
|
}
|
||||||
|
|
||||||
.logo {
|
.logo {
|
||||||
display:inline;
|
display:inline;
|
||||||
width: 50px;
|
width: 50px;
|
||||||
@ -95,10 +104,6 @@
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.3);
|
box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
|
||||||
background-color: var(--background-color);
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@ -110,6 +115,34 @@
|
|||||||
<!-- Sidebar -->
|
<!-- Sidebar -->
|
||||||
<div class="col-12 col-md-3 sidebar mb-3">
|
<div class="col-12 col-md-3 sidebar mb-3">
|
||||||
<div class="profile-card text-center p-3">
|
<div class="profile-card text-center p-3">
|
||||||
|
|
||||||
|
<!-- wenn logged out -->
|
||||||
|
{% if not session['logged_in'] %}
|
||||||
|
<h5>{{ user_name }}</h5>
|
||||||
|
<p>Login oder <a href="#">Registrieren</a></p>
|
||||||
|
<p class="light">Warum registrieren? Zum Schutz der Daten und dem Speichern deines Lernfortschrittes.</p>
|
||||||
|
|
||||||
|
<form>
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="inputEmail3" class="col-sm-3 col-form-label">Benutzer</label>
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<input type="email" class="form-control" id="inputEmail3">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="inputPassword3" class="col-sm-3 col-form-label">Password</label>
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<input type="password" class="form-control" id="inputPassword3">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button type="submit" class="btn btn-primary">Einloggen</button>
|
||||||
|
</form>
|
||||||
|
{% endif %}
|
||||||
|
<!-- wenn logged out -->
|
||||||
|
|
||||||
|
<!-- wenn logged in -->
|
||||||
|
{% if session['logged_in'] %}
|
||||||
<!--<img src="https://via.placeholder.com/100" alt="Profile Picture" />-->
|
<!--<img src="https://via.placeholder.com/100" alt="Profile Picture" />-->
|
||||||
<h5>{{ user_name }}</h5>
|
<h5>{{ user_name }}</h5>
|
||||||
<p>Web Developer at Webestica</p>
|
<p>Web Developer at Webestica</p>
|
||||||
@ -119,6 +152,9 @@
|
|||||||
<span>2.5K Followers</span>
|
<span>2.5K Followers</span>
|
||||||
<span>365 Following</span>
|
<span>365 Following</span>
|
||||||
</div>
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
<!-- wenn logged in -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!--
|
<!--
|
||||||
<div class="list-group">
|
<div class="list-group">
|
||||||
@ -162,11 +198,18 @@
|
|||||||
<img
|
<img
|
||||||
src="../static/images/logo.png"
|
src="../static/images/logo.png"
|
||||||
class="rounded-circle me-3"
|
class="rounded-circle me-3"
|
||||||
style="width: 300px;"
|
style="width: 300px; height: 300px;"
|
||||||
alt="Profile Picture" />
|
alt="Profile Picture" />
|
||||||
<div>
|
<div class="my-3">
|
||||||
<h6>Lernplattform für <br>Rettungs- und Notfallsanitäter</h6>
|
<h6>Lernplattform für <br>Rettungs- und Notfallsanitäter</h6>
|
||||||
<small class="light">Hier kann man lernen und üben, Wiessen festigen und sich aktiv an der Datenbank beteiligen.</small>
|
<p class="light" style="text-align: justify;">
|
||||||
|
Willkommen auf unserer Lernplattform für Rettungssanitäter und Notfallsanitäter,
|
||||||
|
basierend auf dem bewährten Kartensystem nach Leitner.
|
||||||
|
Unsere Plattform bietet Dir die Möglichkeit,
|
||||||
|
Deine Kenntnisse und Fähigkeiten effektiv zu vertiefen und zu erweitern. <br><br>
|
||||||
|
Bei Interesse bist Du herzlich eingeladen, an der Entwicklung von Fragen und Aufgaben mitzuwirken.
|
||||||
|
Unsere Plattform ist und bleibt kostenlos, um alle Mitarbeiter im Rettungsdienst bestmöglich zu unterstützen.
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user