From 1465c447935f9c06a2eefe2c0c73a8a28289741b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Bouzour=C3=A8ne?= Date: Mon, 24 Mar 2025 15:45:06 +0100 Subject: [PATCH] First name is not required --- controllers/contacts.go | 34 ++++++++++++++-------------------- controllers/members.go | 36 +++++++++++++++--------------------- views/person_form.html | 1 - 3 files changed, 29 insertions(+), 42 deletions(-) diff --git a/controllers/contacts.go b/controllers/contacts.go index a0d0ae1..f5af97f 100644 --- a/controllers/contacts.go +++ b/controllers/contacts.go @@ -113,7 +113,7 @@ func Contacts(c *fiber.Ctx) error { ).Limit( pagination.PageSize, ).Order( - "last_name collate nocase asc, first_name collate nocase asc", + "concat(last_name, first_name) collate nocase asc", ).Preload( "Section", ).Find( @@ -134,7 +134,7 @@ func Contacts(c *fiber.Ctx) error { ).Limit( pagination.PageSize, ).Order( - "last_name collate nocase asc, first_name collate nocase asc", + "concat(last_name, first_name) collate nocase asc", ).Preload( "Section", ).Find( @@ -458,11 +458,10 @@ func ContactShow(c *fiber.Ctx) error { return fiber.NewError(fiber.StatusForbidden, "Forbidden") } - title := fmt.Sprintf( - "%s %s | Contact", - person.LastName, - person.FirstName, - ) + title := fmt.Sprintf("%s | Contact", person.FirstName) + if person.LastName != "" { + title = fmt.Sprintf("%s %s", person.LastName, title) + } var fields []models.Field db.Order("position asc").Preload( @@ -557,13 +556,11 @@ func ContactAdd(c *fiber.Ctx) error { for _, validErr := range validErrs.(validator.ValidationErrors) { switch validErr.Field() { case "LastName": - errors = append(errors, "Le nom de famille est requis et ne peut pas contenir plus de 100 caractères") + errors = append(errors, "Le nom de famille ne peut pas contenir plus de 100 caractères") case "FirstName": errors = append(errors, "Le prénom est requis et ne peut pas contenir plus de 100 caractères") case "Email": - if len(data.Email) > 0 { - errors = append(errors, "L'adresse email doit être valide") - } + errors = append(errors, "L'adresse email doit être valide") case "Phone": errors = append(errors, "Le numéro de téléphone fixe est trop long") case "Mobile": @@ -759,11 +756,10 @@ func ContactEdit(c *fiber.Ctx) error { return fiber.NewError(fiber.StatusForbidden, "Forbidden") } - title := fmt.Sprintf( - "%s %s | Modifier contact", - person.LastName, - person.FirstName, - ) + title := fmt.Sprintf("%s | Modifier contact", person.FirstName) + if person.LastName != "" { + title = fmt.Sprintf("%s %s", person.LastName, title) + } var sections []models.Section db.Order("name collate nocase asc").Find( @@ -808,13 +804,11 @@ func ContactEdit(c *fiber.Ctx) error { for _, validErr := range validErrs.(validator.ValidationErrors) { switch validErr.Field() { case "LastName": - errors = append(errors, "Le nom de famille est requis et ne peut pas contenir plus de 100 caractères") + errors = append(errors, "Le nom de famille ne peut pas contenir plus de 100 caractères") case "FirstName": errors = append(errors, "Le prénom est requis et ne peut pas contenir plus de 100 caractères") case "Email": - if len(data.Email) > 0 { - errors = append(errors, "L'adresse email doit être valide") - } + errors = append(errors, "L'adresse email doit être valide") case "Phone": errors = append(errors, "Le numéro de téléphone fixe est trop long") case "Mobile": diff --git a/controllers/members.go b/controllers/members.go index 7439065..0548c70 100644 --- a/controllers/members.go +++ b/controllers/members.go @@ -15,7 +15,7 @@ import ( ) type PersonValidation struct { - LastName string `validate:"required,min=1,max=100"` + LastName string `validate:"max=100"` FirstName string `validate:"required,min=1,max=100"` Email string `validate:"max=100"` Phone string `validate:"max=100"` @@ -126,7 +126,7 @@ func Members(c *fiber.Ctx) error { ).Limit( pagination.PageSize, ).Order( - "last_name collate nocase asc, first_name collate nocase asc", + "concat(last_name, first_name) collate nocase asc", ).Preload( "Section", ).Find( @@ -147,7 +147,7 @@ func Members(c *fiber.Ctx) error { ).Limit( pagination.PageSize, ).Order( - "last_name collate nocase asc, first_name collate nocase asc", + "concat(last_name, first_name) collate nocase asc", ).Preload( "Section", ).Find( @@ -471,11 +471,10 @@ func MemberShow(c *fiber.Ctx) error { return fiber.NewError(fiber.StatusForbidden, "Forbidden") } - title := fmt.Sprintf( - "%s %s | Membre", - person.LastName, - person.FirstName, - ) + title := fmt.Sprintf("%s | Membre", person.FirstName) + if person.LastName != "" { + title = fmt.Sprintf("%s %s", person.LastName, title) + } var fields []models.Field db.Order("position asc").Preload( @@ -570,13 +569,11 @@ func MemberAdd(c *fiber.Ctx) error { for _, validErr := range validErrs.(validator.ValidationErrors) { switch validErr.Field() { case "LastName": - errors = append(errors, "Le nom de famille est requis et ne peut pas contenir plus de 100 caractères") + errors = append(errors, "Le nom de famille ne peut pas contenir plus de 100 caractères") case "FirstName": errors = append(errors, "Le prénom est requis et ne peut pas contenir plus de 100 caractères") case "Email": - if len(data.Email) > 0 { - errors = append(errors, "L'adresse email doit être valide") - } + errors = append(errors, "L'adresse email doit être valide") case "Phone": errors = append(errors, "Le numéro de téléphone fixe est trop long") case "Mobile": @@ -772,11 +769,10 @@ func MemberEdit(c *fiber.Ctx) error { return fiber.NewError(fiber.StatusForbidden, "Forbidden") } - title := fmt.Sprintf( - "%s %s | Modifier membre", - person.LastName, - person.FirstName, - ) + title := fmt.Sprintf("%s | Modifier membre", person.FirstName) + if person.LastName != "" { + title = fmt.Sprintf("%s %s", person.LastName, title) + } var sections []models.Section db.Order("name collate nocase asc").Find( @@ -821,13 +817,11 @@ func MemberEdit(c *fiber.Ctx) error { for _, validErr := range validErrs.(validator.ValidationErrors) { switch validErr.Field() { case "LastName": - errors = append(errors, "Le nom de famille est requis et ne peut pas contenir plus de 100 caractères") + errors = append(errors, "Le nom de famille ne peut pas contenir plus de 100 caractères") case "FirstName": errors = append(errors, "Le prénom est requis et ne peut pas contenir plus de 100 caractères") case "Email": - if len(data.Email) > 0 { - errors = append(errors, "L'adresse email doit être valide") - } + errors = append(errors, "L'adresse email doit être valide") case "Phone": errors = append(errors, "Le numéro de téléphone fixe est trop long") case "Mobile": diff --git a/views/person_form.html b/views/person_form.html index 30688c9..facc06f 100644 --- a/views/person_form.html +++ b/views/person_form.html @@ -59,7 +59,6 @@ class="form-control" type="text" name="last_name" - required value="{{ Person.LastName }}" autofocus autocomplete="off"