Styles in flash

This commit is contained in:
2023-06-05 14:25:47 +02:00
parent ae04ea5426
commit b4ced47b52
9 changed files with 59 additions and 12 deletions

Binary file not shown.

View File

@@ -5,7 +5,7 @@ from flask_login import LoginManager
from .config import Config from .config import Config
from .models import User, db from .models import User, db
from .results.main import results from .results.main_select import results
from .main import main from .main import main
bootstrap = Bootstrap5() bootstrap = Bootstrap5()

View File

@@ -9,10 +9,12 @@ from flask import (
from flask_login import login_user, current_user, logout_user, login_required from flask_login import login_user, current_user, logout_user, login_required
from werkzeug.urls import url_parse from werkzeug.urls import url_parse
from .forms import LoginForm from .forms import LoginForm
from .models import User, Benchmark from .models import User, Benchmark, db
main = Blueprint("main", __name__) main = Blueprint("main", __name__)
INDEX = "main.index"
@main.route("/") @main.route("/")
@main.route("/index") @main.route("/index")
@@ -27,6 +29,21 @@ def index():
return render_template("index.html", benchmarks=benchmarks) return render_template("index.html", benchmarks=benchmarks)
@main.route("/set_benchmark/<benchmark_id>")
@login_required
def set_benchmark(benchmark_id):
if current_user.admin:
benchmark = Benchmark.query.filter_by(id=benchmark_id).first()
if benchmark is None:
flash("Benchmark not found.")
return redirect(url_for(INDEX))
current_user.benchmark = benchmark
db.session.commit()
else:
flash("You are not an admin.", "danger")
return redirect(url_for(INDEX))
@main.route("/config") @main.route("/config")
@login_required @login_required
def config(): def config():
@@ -36,7 +53,7 @@ def config():
@main.route("/login", methods=["GET", "POST"]) @main.route("/login", methods=["GET", "POST"])
def login(): def login():
if current_user.is_authenticated: if current_user.is_authenticated:
return redirect(url_for("main.index")) return redirect(url_for(INDEX))
form = LoginForm() form = LoginForm()
if form.validate_on_submit(): if form.validate_on_submit():
user = User.query.filter_by(username=form.username.data).first() user = User.query.filter_by(username=form.username.data).first()
@@ -47,7 +64,7 @@ def login():
flash("Logged in successfully.") flash("Logged in successfully.")
next_page = request.args.get("next") next_page = request.args.get("next")
if not next_page or url_parse(next_page).netloc != "": if not next_page or url_parse(next_page).netloc != "":
next_page = url_for("main.index") next_page = url_for(INDEX)
return redirect(next_page) return redirect(next_page)
return render_template("login.html", title="Sign In", form=form) return render_template("login.html", title="Sign In", form=form)
@@ -55,4 +72,4 @@ def login():
@main.route("/logout") @main.route("/logout")
def logout(): def logout():
logout_user() logout_user()
return redirect(url_for("main.index")) return redirect(url_for(INDEX))

View File

@@ -1,6 +1,7 @@
import os import os
from benchmark.Utils import Files, Folders from benchmark.Utils import Files, Folders
from benchmark.ResultsBase import StubReport from benchmark.ResultsBase import StubReport
from flask_login import current_user
from flask import Blueprint, current_app, send_file from flask import Blueprint, current_app, send_file
from flask import render_template, current_app, request, redirect, url_for from flask import render_template, current_app, request, redirect, url_for
from flask_login import login_required from flask_login import login_required
@@ -19,6 +20,7 @@ results = Blueprint("results", __name__, template_folder="templates")
def select(compare="False"): def select(compare="False"):
# Get a list of files in a directory # Get a list of files in a directory
files = {} files = {}
os.chdir(current_user.benchmark.folder)
names = Files.get_all_results(hidden=False) names = Files.get_all_results(hidden=False)
for name in names: for name in names:
report = StubReport(os.path.join(Folders.results, name)) report = StubReport(os.path.join(Folders.results, name))

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 MiB

View File

@@ -1,5 +1,5 @@
{% from 'bootstrap5/nav.html' import render_nav_item %} {% from 'bootstrap5/nav.html' import render_nav_item %}
<nav class="navbar navbar-expand-sm navbar-light bg-light mb-4 justify-content-end"> <nav class="navbar navbar-expand-sm navbar-dark bg-dark mb-4 justify-content-end">
<div class="container"> <div class="container">
<button class="navbar-toggler" <button class="navbar-toggler"
type="button" type="button"

View File

@@ -7,7 +7,6 @@
content="width=device-width, initial-scale=1, shrink-to-fit=no"> content="width=device-width, initial-scale=1, shrink-to-fit=no">
{% block styles %} {% block styles %}
{{ bootstrap.load_css() }} {{ bootstrap.load_css() }}
<link rel="stylesheet" href="/css/elina.css">
<link rel="stylesheet" <link rel="stylesheet"
href="{{ url_for('static', filename='css/main.css') }}"> href="{{ url_for('static', filename='css/main.css') }}">
{% endblock %} {% endblock %}
@@ -16,9 +15,14 @@
</head> </head>
<body> <body>
{% include "_nav.html" %} {% include "_nav.html" %}
{% with messages = get_flashed_messages() %} {% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %} {% if messages %}
{% for message in messages %}<div class="alert alert-info" role="alert">{{ message }}</div>{% endfor %} {% for category, message in messages %}
{% if category == 'message' %}
{% set category = "info" %}
{% endif %}
<div class="alert alert-{{ category }}" role="alert">{{ message }}</div>
{% endfor %}
{% endif %} {% endif %}
{% endwith %} {% endwith %}
<div class="container"> <div class="container">

View File

@@ -5,9 +5,15 @@
<ul> <ul>
{% for benchmark in benchmarks %} {% for benchmark in benchmarks %}
<li> <li>
<a href="">{{ benchmark.name }} {{ benchmark.folder }}</a> <a href="{{ url_for('main.set_benchmark', benchmark_id=benchmark.id) }}">{{ benchmark.name }}
{% if benchmark == current_user.benchmark %}*{% endif %}
</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
{% else %}
<img src="{{ url_for('static', filename='img/robert-lukeman-_RBcxo9AU-U-unsplash.jpg') }}"
class="img-fluid"
alt="image robert lukeman">
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View File

@@ -8,10 +8,28 @@ with app.app_context():
db.create_all() db.create_all()
b = Benchmark( b = Benchmark(
name="discretizbench", name="discretizbench",
folder="proyects/discretizbench", folder="/Users/rmontanana/Code/discretizbench",
description="Experiments with local discretization and Bayesian classifiers", description="Experiments with local discretization and Bayesian classifiers",
) )
u = User(username="rmontanana", email="rmontanana@gmail.com", admin=True) db.session.add(b)
b = Benchmark(
name="odtebench",
folder="/Users/rmontanana/Code/odtebench",
description="Experiments with STree and Ensemble classifiers",
)
db.session.add(b)
b = Benchmark(
name="covbench",
folder="/Users/rmontanana/Code/covbench",
description="Experiments with COVID-19 dataset",
)
db.session.add(b)
u = User(
username="rmontanana",
email="rmontanana@gmail.com",
admin=True,
benchmark_id=1,
)
u.set_password("patata") u.set_password("patata")
u1 = User( u1 = User(
username="guest", username="guest",