From 542e00482b653964975ad4de5c8d6eb8164e48b3 Mon Sep 17 00:00:00 2001 From: toine Date: Sat, 4 Oct 2025 11:03:08 +0200 Subject: [PATCH] fix: modification visuel du frontend au niveau du formulaire de contact pour qu'il s'armonise avec le css global. fix : update du backend avec ajout de la suppression d'un projet. --- backend/app.py | 2 +- backend/routes/projects.py | 12 +++++++++++- backend/utils/json_crud.py | 18 +++++++++++++----- frontend/app/components/Header.tsx | 2 +- frontend/app/css/colors.css | 10 ++++++++++ frontend/app/css/forms.css | 9 ++++++--- frontend/app/css/globals.css | 24 +++++++++++++++++++++++- frontend/app/layout.tsx | 5 ++--- frontend/app/projects/new/page.tsx | 1 + 9 files changed, 68 insertions(+), 15 deletions(-) diff --git a/backend/app.py b/backend/app.py index 34ff584..358c6ae 100644 --- a/backend/app.py +++ b/backend/app.py @@ -20,7 +20,7 @@ app.config["API_KEY"] = os.getenv("API_KEY") @app.route('/') def get_home(): return jsonify({ - "return": "Welcome to API" + "return": f"Welcome to API." }) app.register_blueprint(projects_bp) diff --git a/backend/routes/projects.py b/backend/routes/projects.py index 016f8c1..5a025b1 100644 --- a/backend/routes/projects.py +++ b/backend/routes/projects.py @@ -45,4 +45,14 @@ def create_project(): data['id'] = new_id added = add_entry(PROJECTS_FILE, data) - return jsonify(added), 201 \ No newline at end of file + return jsonify(added), 201 + +@projects_bp.route('/', methods=['DELETE']) +def delete_project(project_id): + projects = load_data(PROJECTS_FILE) + project = next((p for p in projects if str(p.get('id')) == project_id), None) + + if project: + deleted = delete_entry(PROJECTS_FILE, project_id) + return jsonify(deleted), 200 + return jsonify({"error": "Project not found"}), 404 \ No newline at end of file diff --git a/backend/utils/json_crud.py b/backend/utils/json_crud.py index c3bb779..a7eb33b 100644 --- a/backend/utils/json_crud.py +++ b/backend/utils/json_crud.py @@ -26,8 +26,16 @@ def update_entry(filename, entry_id, new_entry): return new_entry return None -def delete_entry(filename, entry_id): - data = load_json(filename) - new_data = [item for item in data if item.get('id') != entry_id] - save_json(filename, new_data) - return len(data) != len(new_data) \ No newline at end of file +def delete_entry(filename, project_id): + # 1. Charger les données + with open(filename, "r", encoding="utf-8") as f: + projects = json.load(f) + + # 2. Filtrer pour supprimer le projet avec l'ID donné + updated_projects = [p for p in projects if p.get('id') != int(project_id)] + + # 3. Sauvegarder les données mises à jour + with open(filename, "w", encoding="utf-8") as f: + json.dump(updated_projects, f, indent=2, ensure_ascii=False) + + return {"status": "success", "deleted_id": project_id} \ No newline at end of file diff --git a/frontend/app/components/Header.tsx b/frontend/app/components/Header.tsx index 10549a1..051a312 100644 --- a/frontend/app/components/Header.tsx +++ b/frontend/app/components/Header.tsx @@ -45,7 +45,7 @@ export default function Header() {