Compare commits

...

15 Commits

Author SHA1 Message Date
e3a4fc4758 Modifica pulsante elimina da link a bottone 2026-03-06 08:43:32 +01:00
c2fab079a5 Aggiustato codebase pagina WebUI per larghezza mobile 2026-03-05 13:15:48 +01:00
11a3f8a31e Rimozione aggiornamento file a operazione DELETE fallita 2026-03-03 11:49:43 +01:00
e6c8964f19 Merge branch 'webui' 2026-03-03 11:45:21 +01:00
f273daefc5 Aggiunta link pagina Web UI in index 2026-03-03 11:39:47 +01:00
fef6f7f015 Aggiunta pagina handling form delete 2026-03-03 11:36:42 +01:00
aa3329c4ee Merge pull request 'Implementazione salvataggio su file' (#1) from filedump into main
Reviewed-on: #1
2026-03-03 10:25:35 +00:00
a249127121 Fix file non aggiornato a operazione DELETE effettuata senza errori 2026-03-03 11:22:20 +01:00
8c870484ac Implementato ripristino ID counter a caricamento file 2026-03-03 11:20:58 +01:00
b430d944bc Aggiunto file JSON compiti in gitignore 2026-02-27 09:43:25 +01:00
bb6408e816 Implementazione lettura file JSON 2026-02-27 09:43:07 +01:00
29c1e40205 Implementata funzione aggiornamento file 2026-02-26 13:48:30 +01:00
326362d157 Aggiunta pulsante elimina 2026-02-26 13:43:56 +01:00
8a15a29dcf Aggiunto handling aggiunta compiti da Web UI 2026-02-26 13:38:26 +01:00
11e4e393e8 Aggiunta web ui base 2026-02-26 13:28:35 +01:00
2 changed files with 74 additions and 10 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
compiti.json

83
app.py
View File

@@ -1,19 +1,36 @@
from flask import Flask, jsonify, request, render_template
from flask import Flask, jsonify, request, render_template, redirect
import json
import os
compiti = []
id_counter = 0
def update_file():
with open('compiti.json', 'w') as f:
json.dump(compiti, f)
if os.path.isfile('compiti.json'):
with open('compiti.json', 'r') as f:
compiti = json.load(f)
id_counter = compiti[-1]["id"] + 1
else:
compiti = [
{"id": 1, "descrizione": "Compito matematica"},
{"id": 2, "descrizione": "Consegna TPSIT progetto API REST"},
{"id": 3, "descrizione": "Compito di sistemi"},
{"id": 4, "descrizione": "Compito di italiano"}
]
id_counter = 5
update_file()
compiti = [
{"id": 1, "descrizione": "Compito matematica"},
{"id": 2, "descrizione": "Consegna TPSIT progetto API REST"},
{"id": 3, "descrizione": "Compito di sistemi"},
{"id": 4, "descrizione": "Compito di italiano"}
]
id_counter = 5
app = Flask(__name__)
@app.route("/", methods=["GET"])
def home():
html = "<h1>Home page API REST Compiti</h1><h2>ciao, 3cx merda</h2>"
html += "<a href=\"/doc\">Documentazione</a>"
html = "<h1>Home page API REST Compiti</h1>"
html += "<a href=\"/ui\">Apri interfaccia web</a><br><a href=\"/doc\">Documentazione</a>"
return html, 200
@app.route("/doc", methods=["GET"])
@@ -38,6 +55,7 @@ def create_compito():
j["id"] = id_counter
id_counter += 1
compiti.append(j)
update_file()
return jsonify(j), 201
@app.route("/compiti/<int:id>", methods=["DELETE"])
@@ -45,7 +63,52 @@ def delete_compito(id):
for ciscomerda in compiti:
if ciscomerda["id"] == id:
compiti.remove(ciscomerda)
update_file()
return jsonify(ciscomerda), 200
return jsonify([]), 404
@app.route("/ui")
def web_ui():
# Tabella compiti
html = "<html><head>"
html += "<meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><title>Gestione compiti</title>"
html += "</head><body><table border>"
for ciscomerda in compiti:
html += "<tr>"
html += f"<td>{ciscomerda["descrizione"]}</td><td><a href=\"/form_delete?id={ciscomerda["id"]}\" class=\"button\"><button>Elimina</button></a>"
html += "</tr>"
html += "</table>"
html += "<form action=\"/form_add\">"
html += "<input type=\"text\" name=\"descrizione\" placeholder=\"Descrizione compito\">"
html += "<input type=\"submit\" value=\"Aggiungi compito\">"
html += "</form></body></html>"
return html, 200
@app.route("/form_add")
def form_add():
if not request.args.get("descrizione"):
return "Errore: descrizione mancante", 400
else:
global id_counter
d = request.args.get("descrizione")
compiti.append({"id": id_counter, "descrizione": d})
id_counter += 1
update_file()
return redirect("/ui")
@app.route("/form_delete")
def form_delete():
if not request.args.get("id"):
return "Errore: id mancante", 400
else:
id = int(request.args.get("id"))
for ciscomerda in compiti:
if ciscomerda["id"] == id:
compiti.remove(ciscomerda)
update_file()
return redirect("/ui")
return "Errore: compito non trovato", 404
app.run("0.0.0.0")