From ab9967596fbf0679425cb395179a3f9a4b59be37 Mon Sep 17 00:00:00 2001 From: Mathieu Perrin Date: Fri, 29 Nov 2024 09:33:07 +0100 Subject: [PATCH] 276: Car management 2.0 --- app/pages/events/entry_list/entry_list.php | 17 +- .../entry_list/entry_list_tab_activity.php | 2 + app/pages/events/view/event_view.php | 233 +++++++++--------- app/pages/vehicle/vehicle_delete.php | 4 +- app/pages/vehicle/vehicle_edit.php | 2 +- app/pages/vehicle/vehicle_view.php | 20 ++ app/template/shoelace.php | 9 +- assets/css/entry_list.css | 11 +- assets/css/event_view.css | 5 + .../Version20241007062815.php | 2 +- ...14165603.php => Version20241128071722.php} | 2 +- routes.php | 9 +- 12 files changed, 175 insertions(+), 141 deletions(-) create mode 100644 app/pages/vehicle/vehicle_view.php rename database/{migrations_sqlite => migrations}/Version20241007062815.php (98%) rename database/migrations_sqlite/{Version20241114165603.php => Version20241128071722.php} (97%) diff --git a/app/pages/events/entry_list/entry_list.php b/app/pages/events/entry_list/entry_list.php index c52a42b6..1d0ea755 100644 --- a/app/pages/events/entry_list/entry_list.php +++ b/app/pages/events/entry_list/entry_list.php @@ -2,22 +2,19 @@ $event_id = get_route_param("event_id"); $event_infos = EventService::getEventInfos($event_id); -page($event_infos->name . " : Inscrits")->css("entry_list.css") ?> - -back("/evenements/$event_id") - ->if( - $event_infos->open && check_auth(Access::$ADD_EVENTS), - fn($a) => $a->button("Copier le tableau", attributes: ["onclick" => "selectTable()"]) - ) ?> +$is_simple = get_query_param("is_simple", false, false); +?> +open && check_auth(Access::$ADD_EVENTS)): ?> +
+ open): ?>

- +

- render(["event_id" => $event_id]) ?> + render(["activity_id" => EventService::getActivityIdList($event_id)[0]->id]) : component(__DIR__ . "/entry_list_tabs.php")->render(["event_id" => $event_id]) ?>
diff --git a/app/pages/events/entry_list/entry_list_tab_activity.php b/app/pages/events/entry_list/entry_list_tab_activity.php index a0740197..33992786 100644 --- a/app/pages/events/entry_list/entry_list_tab_activity.php +++ b/app/pages/events/entry_list/entry_list_tab_activity.php @@ -1,4 +1,6 @@ diff --git a/app/pages/events/view/event_view.php b/app/pages/events/view/event_view.php index a22b6a27..952895cd 100644 --- a/app/pages/events/view/event_view.php +++ b/app/pages/events/view/event_view.php @@ -7,10 +7,7 @@ restrict_access(Access::$ADD_EVENTS); } -$vehicles = em()->createQuery('SELECT v FROM Vehicle v WHERE v.event = ?1')->setParameter( - 1, - $event->id -)->getResult(); +$tab = get_query_param("tab", false, false); $can_edit = check_auth(Access::$ADD_EVENTS); $today_date = date_create("today"); @@ -20,7 +17,7 @@ $totalEntryCount = EventService::getEntryCount($event->id); $is_simple = $event->type == EventType::Simple; -page($event->name)->css("event_view.css"); +page($event->name)->css("event_view.css")->css("entry_list.css"); ?> @@ -44,120 +41,122 @@ activities[0], $can_register) : RenderEventEntry($entry, $event, $can_edit) ?> -present ? "completed" : "missed"); -$start_class = $event->start_date < $today_date ? $deadline_class : ""; -$end_class = $event->end_date < $today_date ? $deadline_class : ""; - -?> -
-
-
-
- present) ?> -
-
-
- bulletin_url): ?> -
- - Bulletin - + + > + Informations + + " + hx-target="#entry-list" > + Participants + + > + Véhicules + + + + present ? "completed" : "missed"); + $start_class = $event->start_date < $today_date ? $deadline_class : ""; + $end_class = $event->end_date < $today_date ? $deadline_class : ""; + + ?> +
-
-
-
- activities)): ?> -

Activités

- activities as $i => $activity): - $activity_entry = $activity->entries[0] ?? null; ?> -
- - present) . " " ?> - name ?> - type->toName() ?>> - - -

- - date) ?> - - location_label): ?> - - - location_url): ?> - location_url ?> target="_blank">location_label ?> - - location_label ?> +

+
+ bulletin_url): ?> + - - -

- +
-
-
- - - - - -

- - Ajouter une activité -

- -
- description): ?> -
-
-

Description

- text($event->description) ?> -
- -
- -

Véhicules

- - -
-
- - - - Ajouter un véhicule + +
+ activities)): ?> +

Activités

+ activities as $i => $activity): + $activity_entry = $activity->entries[0] ?? null; ?> +
+ + present) . " " ?> + name ?> + type->toName() ?>> + + +

+ + date) ?> + + location_label): ?> + + + location_url): ?> + location_url ?> target="_blank">location_label ?> + + location_label ?> + + + +

+ +
+
+ + + + + +

+ + Ajouter une activité +

+ + description): ?> +
+
+

Description

+ text($event->description) ?> +
+ + Pas encore de description pour cet événement 🪶 + +
+ + + + + + \ No newline at end of file diff --git a/app/pages/vehicle/vehicle_delete.php b/app/pages/vehicle/vehicle_delete.php index 35e44f24..78b1496a 100644 --- a/app/pages/vehicle/vehicle_delete.php +++ b/app/pages/vehicle/vehicle_delete.php @@ -18,7 +18,7 @@ em()->remove($vehicle); em()->flush(); Toast::error("Véhicule supprimé"); - redirect("/evenements/$event_id"); + redirect("/evenements/$event_id?tab=vehicules"); } page("Confirmation de suppression"); @@ -30,7 +30,7 @@ id" ?> ? Il sera définitivement supprimé!!

- Annuler + Annuler
diff --git a/app/pages/vehicle/vehicle_edit.php b/app/pages/vehicle/vehicle_edit.php index 61d2eda2..1c96d1c7 100644 --- a/app/pages/vehicle/vehicle_edit.php +++ b/app/pages/vehicle/vehicle_edit.php @@ -48,7 +48,7 @@ ?>
- back("/evenements/$event_id", "Annuler")->submit($vehicle_id ? "Modifier" : "Ajouter") ?> + back("/evenements/$event_id?tab=vehicules", "Annuler")->submit($vehicle_id ? "Modifier" : "Ajouter") ?>
render_validation() ?> diff --git a/app/pages/vehicle/vehicle_view.php b/app/pages/vehicle/vehicle_view.php new file mode 100644 index 00000000..9c50801e --- /dev/null +++ b/app/pages/vehicle/vehicle_view.php @@ -0,0 +1,20 @@ +id; +$event = EventService::getEventWithAllData(get_route_param('event_id'), $user_id); + +$vehicles = em()->createQuery('SELECT v FROM Vehicle v WHERE v.event = ?1')->setParameter( + 1, + $event->id +)->getResult(); + +?> + + +
+
+ + + + Ajouter un véhicule \ No newline at end of file diff --git a/app/template/shoelace.php b/app/template/shoelace.php index 052aeab2..7e8699ea 100644 --- a/app/template/shoelace.php +++ b/app/template/shoelace.php @@ -2,9 +2,16 @@ // These scripts load shoelace from CDN. The files should be cached forever so it is very convenient. ?> - + + \ No newline at end of file diff --git a/assets/css/entry_list.css b/assets/css/entry_list.css index 00e2aac0..ce873a6e 100644 --- a/assets/css/entry_list.css +++ b/assets/css/entry_list.css @@ -1,13 +1,16 @@ .tab-list { - border-bottom: solid var(--contrast) 2px; white-space: nowrap; overflow-x: auto; } .tab-list > button { - margin: 0; - border-radius: 1rem 1rem 0 0; - border-bottom: none; + margin: 0.1rem; + border-radius: 1.5rem; } .filter-panel { padding: 1rem; } + +.entries-header { + display: grid; + justify-items: end; +} diff --git a/assets/css/event_view.css b/assets/css/event_view.css index 40ec4574..639fce32 100644 --- a/assets/css/event_view.css +++ b/assets/css/event_view.css @@ -72,3 +72,8 @@ details summary:focus:not([role="button"]) { gap: 10px; flex-wrap: wrap; } + +sl-tab-group { + --indicator-color: var(--primary); + --sl-color-primary-600: var(--primary); +} diff --git a/database/migrations_sqlite/Version20241007062815.php b/database/migrations/Version20241007062815.php similarity index 98% rename from database/migrations_sqlite/Version20241007062815.php rename to database/migrations/Version20241007062815.php index bf3e6589..be84def2 100644 --- a/database/migrations_sqlite/Version20241007062815.php +++ b/database/migrations/Version20241007062815.php @@ -14,7 +14,7 @@ final class Version20241007062815 extends AbstractMigration { public function getDescription(): string { - return 'Add vehicles'; + return ''; } public function up(Schema $schema): void diff --git a/database/migrations_sqlite/Version20241114165603.php b/database/migrations_sqlite/Version20241128071722.php similarity index 97% rename from database/migrations_sqlite/Version20241114165603.php rename to database/migrations_sqlite/Version20241128071722.php index a3fcb524..2b52dc67 100644 --- a/database/migrations_sqlite/Version20241114165603.php +++ b/database/migrations_sqlite/Version20241128071722.php @@ -10,7 +10,7 @@ /** * Auto-generated Migration: Please modify to your needs! */ -final class Version20241114165603 extends AbstractMigration +final class Version20241128071722 extends AbstractMigration { public function getDescription(): string { diff --git a/routes.php b/routes.php index 8ad21078..6c69d1e8 100644 --- a/routes.php +++ b/routes.php @@ -50,10 +50,11 @@ Router::add('/evenements/$event_id/event_form', __DIR__ . '/app/pages/events/edit/EventEditForm.php'); //Vehicles -Router::add('/evenements/$event_id/vehicule/nouveau', 'pages/vehicle/vehicle_edit'); -Router::add('/evenements/$event_id/vehicule/$vehicle_id', 'pages/vehicle/vehicle_edit'); -Router::add('/evenements/$event_id/vehicule/$vehicle_id/supprimer', 'pages/vehicle/vehicle_delete'); -Router::add('/evenements/$event_id/vehicule/$vehicle_id/inscription/$user_id', 'pages/vehicle/vehicle_register'); +Router::add('/evenements/$event_id/vehicules', __DIR__ . '/app/pages/vehicle/vehicle_view.php'); +Router::add('/evenements/$event_id/vehicule/nouveau', __DIR__ . '/app/pages/vehicle/vehicle_edit.php'); +Router::add('/evenements/$event_id/vehicule/$vehicle_id', __DIR__ . '/app/pages/vehicle/vehicle_edit.php'); +Router::add('/evenements/$event_id/vehicule/$vehicle_id/supprimer', __DIR__ . '/app/pages/vehicle/vehicle_delete.php'); +Router::add('/evenements/$event_id/vehicule/$vehicle_id/inscription/$user_id', __DIR__ . '/app/pages/vehicle/vehicle_register.php'); // Event entry lists Router::add('/evenements/$event_id/participants', __DIR__ . '/app/pages/events/entry_list/entry_list.php');