From 01fdd395f90ed37b54ce67f568614cdee45e7150 Mon Sep 17 00:00:00 2001 From: Arnaud Delcasse Date: Mon, 7 Nov 2022 01:26:09 +0100 Subject: [PATCH] Improve vehicles management --- config.yaml | 10 +- .../fleets/bookings/creation-admin-alert.html | 4 + web/layouts/agenda/home.html | 12 +- web/layouts/support/support.html | 2 +- web/layouts/vehicles/search.html | 71 ++-- .../_partials/bookings-list.html | 46 ++- .../_partials/vehicles-list.html | 7 +- .../vehicles_management/booking-display.html | 4 +- .../vehicles_management/fleet-add.html | 40 ++- .../vehicles_management/fleet-display.html | 303 +++++++++++++----- web/public/css/main.css | 52 ++- 11 files changed, 400 insertions(+), 151 deletions(-) create mode 100644 emails/fleets/bookings/creation-admin-alert.html diff --git a/config.yaml b/config.yaml index 4481431..1a9c750 100644 --- a/config.yaml +++ b/config.yaml @@ -146,7 +146,7 @@ icons: svg: coopgo:parcoursmob/monogram: hero:outline/briefcase: - hero:outline/support: + hero:outline/support: hero:outline/calendar: hero:outline/chevron-right: hero:outline/cog: @@ -154,6 +154,7 @@ icons: hero:outline/document-text: hero:outline/folder-plus: hero:outline/home: + hero:outline/information-circle: hero:outline/map: hero:outline/office-building: hero:outline/paper-clip: @@ -199,6 +200,13 @@ emails: files: - emails/layout.html - emails/auth/retrieve-password.html + fleets: + bookings: + creation_admin_alert: + subject: PARCOURSMOB - Nouvelle réservation de véhicule + files: + - emails/layout.html + - emails/fleets/bookings/creation-admin-alert.html support: request: subject: PARCOURMOB - Demande de support diff --git a/emails/fleets/bookings/creation-admin-alert.html b/emails/fleets/bookings/creation-admin-alert.html new file mode 100644 index 0000000..cf93054 --- /dev/null +++ b/emails/fleets/bookings/creation-admin-alert.html @@ -0,0 +1,4 @@ +{{define "content"}} +

Vous avez une nouvelle réservation e véhicule sur PARCOURSMOB.

+

Connectez vous sur http://localhost:9000/app/vehicles-management/bookings/{{.bookingid}} pour y accéder

+{{end}} \ No newline at end of file diff --git a/web/layouts/agenda/home.html b/web/layouts/agenda/home.html index 864f81c..9a5882a 100644 --- a/web/layouts/agenda/home.html +++ b/web/layouts/agenda/home.html @@ -27,14 +27,11 @@ - Type de dispositif + Dispositif Structure - - Nom - Lieu @@ -56,7 +53,9 @@ -
{{.Type}}
+ +
{{.Name}}
+
{{.Type}}
@@ -68,9 +67,6 @@ {{end}} - -
{{.Name}}
-
{{if .Data.address}}{{.Data.address.properties.label}}{{end}}
diff --git a/web/layouts/support/support.html b/web/layouts/support/support.html index 224bd63..f976bf9 100644 --- a/web/layouts/support/support.html +++ b/web/layouts/support/support.html @@ -4,7 +4,7 @@

Demande de support technique

- Le support technique PARCOURSMOB est ouvert les jours ouvrés de 9h à 18h. Vous pouvez également nous joindre par email à support@parcoursmob.fr, par exemple pour nous envoyez des copies d'écran du problème que vous rencontrez. + Le support technique PARCOURSMOB est ouvert les jours ouvrés de 9h à 18h. Vous pouvez également nous joindre par email à support@parcoursmob.fr, par exemple pour nous envoyer des copies d'écran du problème que vous rencontrez.

diff --git a/web/layouts/vehicles/search.html b/web/layouts/vehicles/search.html index b9d4845..42c2875 100644 --- a/web/layouts/vehicles/search.html +++ b/web/layouts/vehicles/search.html @@ -37,11 +37,10 @@ beneficiaryid: {{if .ViewState.search}}'{{.ViewState.search.beneficiary.ID}}'{{else}}null{{end}}, }, selectbeneficiary(beneficiary) { - console.log(beneficiary) this.fields.beneficiaryid = beneficiary.id this.text = beneficiary.data.first_name + ' ' + beneficiary.data.last_name this.beneficiariesListOpen = false - } + }, }"> @@ -105,7 +104,37 @@
- {{template "vehicle_type_select" .}} +
+ + +
+ Automatique +
+
+ +
+
+ +

Rechercher uniquement un véhicule à boite automatique.

+
+
+
+
+ class="relative inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-xs font-medium rounded-2xl text-co-blue bg-gray-100 hover:bg-co-blue hover:text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-co-blue">Email --> diff --git a/web/layouts/vehicles_management/fleet-add.html b/web/layouts/vehicles_management/fleet-add.html index 55ae759..c14bdf5 100644 --- a/web/layouts/vehicles_management/fleet-add.html +++ b/web/layouts/vehicles_management/fleet-add.html @@ -9,16 +9,19 @@ fields: { licence_plate: null, name: null, + type: null, }, rules: { - licence_plate: ['required', 'regexMatch:^[A-Z]{1,2}-[0-9]{1,3}-[A-Z]{1,2}$'], + licence_plate: ['required'], // 'regexMatch:^[A-Z]{1,2}-[0-9]{1,3}-[A-Z]{1,2}$' name: ['required'], + type: ['required'], }, formValidation: { valid: false, fields: { name: {valid: null}, licence_plate: {valid: null}, + type: {valid: null}, } }, isFormValid: true, @@ -35,6 +38,10 @@ event.preventDefault() } return this.formValidation.valid + }, + + displayAutomatic(type) { + return type == 'Voiture' } }"> @@ -47,19 +54,40 @@
- +
- {{template "vehicle_type_select" .}} + + +
+ Automatique +
+
+ +
+
+ +

Ce véhicule a une boite automatique.

+
+
+
+
+ class="block text-sm font-medium text-gray-700">Numéro (Immat, Bicycode, ...) - + -
-
-
-
-
-

Informations

-

Informations sur le véhicule

-
-
-
- {{if .ViewState.vehicle.Data.type}} -
-
Type
-
{{if eq .ViewState.vehicle.Data.type "electric_bike"}}Vélo électrique{{else}}Voiture{{end}}
-
- {{else}} -
-
Type
-
Voiture
-
- {{end}} - {{if .ViewState.vehicle.Data.licence_plate}} -
-
Numéro (Immatriculation, bicycode, ...)
-
{{.ViewState.vehicle.Data.licence_plate}}
-
- {{end}} - {{if .ViewState.vehicle.Data.address}} -
-
Lieu
-
{{.ViewState.vehicle.Data.address.properties.label}}
-
- {{end}} - {{if .ViewState.vehicle.Data.informations}} -
-
Informations pratiques pour le bénéficiaire
-
{{.ViewState.vehicle.Data.informations}}
-
- {{end}} +
+
+
+
+
+

Informations

+

Informations sur le véhicule

+
+
+
+ {{if .ViewState.vehicle.Type}} +
+
Type
+
{{.ViewState.vehicle.Type}}
+
+ {{if eq .ViewState.vehicle.Type "Voiture"}} +
+
Automatique
+
+ {{ if .ViewState.vehicle.Data.automatic}} + Oui + {{ else }} + Non + {{ end }} +
+
+ {{end}} + {{end}} + {{if .ViewState.vehicle.Data.licence_plate}} +
+
Numéro (Immatriculation, bicycode, ...)
+
{{.ViewState.vehicle.Data.licence_plate}}
+
+ {{end}} + {{if .ViewState.vehicle.Data.address}} +
+
Lieu
+
{{.ViewState.vehicle.Data.address.properties.label}}
+
+ {{end}} + {{if .ViewState.vehicle.Data.informations}} +
+
Informations pratiques pour le bénéficiaire
+
{{.ViewState.vehicle.Data.informations}}
+
+ {{end}} +
+
+
+
+
+
+
+ + + + + + + + + + + + {{range .ViewState.vehicle.Bookings}} + + + + + + + + {{end}} + +
+ Statut + + Beneficiaire + + Dates + + Commentaire + + Actions +
+ {{if .Data.administrator_unavailability}} + + Retiré + + {{else}} + {{if eq .Status 1 }} + + A venir + + {{end}} + {{if eq .Status 0 }} + + En cours + + {{end}} + {{if eq .Status -1 }} + + Terminé + + {{end}} + {{end}} + + {{if .Data.administrator_unavailability}} +
+ {{else}} +
+ + + +
+ {{end}} +
+ {{if .Data.administrator_unavailability}} +
Retiré du {{(timeFrom .Unavailablefrom).Format "02/01/2006"}} au {{(timeFrom .Unavailableto).Format "02/01/2006"}}
+ {{else}} +
Du {{(timeFrom .Startdate).Format "02/01/2006"}} au {{(timeFrom .Enddate).Format "02/01/2006"}}
+ {{end}} +
+
{{ .Data.comment }}
+
+ Voir +
+
+
+
+
+
+
+
+
+

Réservations à venir

+ {{if eq (len .ViewState.vehicle.Bookings) 0}} +

Aucune réservation à venir

+ {{end}} +
-
-
-

Réservations à venir

- {{if eq (len .ViewState.vehicle.Bookings) 0}} -

Aucune réservation à venir

- {{end}} - - {{template "calendar" .}} + + +
+
+
- +
{{end}} \ No newline at end of file diff --git a/web/public/css/main.css b/web/public/css/main.css index 868f308..dcdf68f 100644 --- a/web/public/css/main.css +++ b/web/public/css/main.css @@ -1149,10 +1149,6 @@ html { width: 0px; } -.w-20 { - width: 5rem; -} - .min-w-full { min-width: 100%; } @@ -1181,14 +1177,6 @@ html { max-width: 32rem; } -.max-w-sm { - max-width: 24rem; -} - -.max-w-full { - max-width: 100%; -} - .flex-1 { flex: 1 1 0%; } @@ -1687,6 +1675,16 @@ html { background-color: rgb(17 24 39 / var(--tw-bg-opacity)); } +.bg-gray-500 { + --tw-bg-opacity: 1; + background-color: rgb(107 114 128 / var(--tw-bg-opacity)); +} + +.bg-black { + --tw-bg-opacity: 1; + background-color: rgb(0 0 0 / var(--tw-bg-opacity)); +} + .bg-opacity-75 { --tw-bg-opacity: 0.75; } @@ -2049,6 +2047,11 @@ html { color: rgb(0 0 0 / var(--tw-text-opacity)); } +.text-green-600 { + --tw-text-opacity: 1; + color: rgb(22 163 74 / var(--tw-text-opacity)); +} + .placeholder-gray-500::-moz-placeholder { --tw-placeholder-opacity: 1; color: rgb(107 114 128 / var(--tw-placeholder-opacity)); @@ -2303,6 +2306,11 @@ html { background-color: rgb(29 78 216 / var(--tw-bg-opacity)); } +.hover\:bg-indigo-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(67 56 202 / var(--tw-bg-opacity)); +} + .hover\:bg-opacity-5:hover { --tw-bg-opacity: 0.05; } @@ -2486,6 +2494,14 @@ html { grid-column: span 4 / span 4; } + .sm\:col-start-2 { + grid-column-start: 2; + } + + .sm\:col-start-1 { + grid-column-start: 1; + } + .sm\:-mx-6 { margin-left: -1.5rem; margin-right: -1.5rem; @@ -2557,6 +2573,10 @@ html { max-width: 24rem; } + .sm\:max-w-lg { + max-width: 32rem; + } + .sm\:flex-auto { flex: 1 1 auto; } @@ -2586,6 +2606,10 @@ html { transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } + .sm\:grid-flow-row-dense { + grid-auto-flow: row dense; + } + .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } @@ -2622,6 +2646,10 @@ html { gap: 1rem; } + .sm\:gap-3 { + gap: 0.75rem; + } + .sm\:space-y-0 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));