Make address, postcode, and city require for booking

Customer changed their mind.
This commit is contained in:
jordi fita mas 2024-02-24 20:03:11 +01:00
parent c848330751
commit 950bae16e1
10 changed files with 298 additions and 242 deletions

View File

@ -27,6 +27,7 @@ func requestPayment(w http.ResponseWriter, r *http.Request, user *auth.User, com
w.WriteHeader(http.StatusUnprocessableEntity)
}
page := newPublicPageWithForm(f)
page.HasErrors = true
page.MustRender(w, r, user, company, conn)
return
}

View File

@ -57,6 +57,7 @@ func (h *PublicHandler) Handler(user *auth.User, company *auth.Company, conn *da
type publicPage struct {
*template.PublicPage
Form *bookingForm
HasErrors bool
}
func newPublicPage(r *http.Request, company *auth.Company, conn *database.Conn, l *locale.Locale) (*publicPage, error) {
@ -525,15 +526,17 @@ func (f *bookingCustomerFields) Valid(ctx context.Context, conn *database.Conn,
v.CheckMinLength(f.FullName, 1, l.GettextNoop("Full name must have at least one letter."))
}
if country != "" && f.PostalCode.Val != "" {
if _, err := v.CheckValidPostalCode(ctx, conn, f.PostalCode, country, l.GettextNoop("This postal code is not valid.")); err != nil {
v.CheckRequired(f.Address, l.GettextNoop("Address can not be empty."))
v.CheckRequired(f.City, l.GettextNoop("Town or village can not be empty."))
if v.CheckRequired(f.PostalCode, l.GettextNoop("Postcode can not be empty.")) && country != "" {
if _, err := v.CheckValidPostalCode(ctx, conn, f.PostalCode, country, l.GettextNoop("This postcode is not valid.")); err != nil {
return err
}
}
if v.CheckRequired(f.Email, l.GettextNoop("Email can not be empty.")) {
v.CheckValidEmail(f.Email, l.GettextNoop("This email is not valid. It should be like name@domain.com."))
}
if v.CheckRequired(f.Phone, l.GettextNoop("Phone can not be empty.")) {
if v.CheckRequired(f.Phone, l.GettextNoop("Phone can not be empty.")) && country != "" {
if _, err := v.CheckValidPhone(ctx, conn, f.Phone, country, l.GettextNoop("This phone number is not valid.")); err != nil {
return err
}

View File

@ -223,8 +223,8 @@ func (f *taxDetailsForm) Valid(ctx context.Context, conn *database.Conn, l *loca
v.CheckRequired(f.Address, l.GettextNoop("Address can not be empty."))
v.CheckRequired(f.City, l.GettextNoop("City can not be empty."))
v.CheckRequired(f.Province, l.GettextNoop("Province can not be empty."))
if v.CheckRequired(f.PostalCode, l.GettextNoop("Postal code can not be empty.")) {
if _, err := v.CheckValidPostalCode(ctx, conn, f.PostalCode, country, l.GettextNoop("This postal code is not valid.")); err != nil {
if v.CheckRequired(f.PostalCode, l.GettextNoop("Postcode can not be empty.")) {
if _, err := v.CheckValidPostalCode(ctx, conn, f.PostalCode, country, l.GettextNoop("This postcode is not valid.")); err != nil {
return false, err
}
}

146
po/ca.po
View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: camper\n"
"Report-Msgid-Bugs-To: jordi@tandem.blog\n"
"POT-Creation-Date: 2024-02-15 15:41+0100\n"
"POT-Creation-Date: 2024-02-24 19:56+0100\n"
"PO-Revision-Date: 2024-02-06 10:04+0100\n"
"Last-Translator: jordi fita mas <jordi@tandem.blog>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
@ -256,7 +256,7 @@ msgid "Discover"
msgstr "Descobreix"
#: web/templates/public/campsite/type.gohtml:49
#: web/templates/public/booking/fields.gohtml:266
#: web/templates/public/booking/fields.gohtml:268
msgctxt "action"
msgid "Book"
msgstr "Reserva"
@ -645,6 +645,10 @@ msgstr "Obertura"
msgid "<abbr title=\"Catalonia Tourism Registry\">RTC</abbr> <abbr title=\"Number\">#</abbr>%s"
msgstr "<abbr title=\"Número\">Núm.</abbr> <abbr title=\"Registre de Turisme de Catalunya\">RTC</abbr> %s"
#: web/templates/public/booking/page.gohtml:15
msgid "Sorry, there was a problem. Youll find more details highlighted below."
msgstr "Hi ha hagut un problema. Trobeu més informació ressaltada a baix."
#: web/templates/public/booking/fields.gohtml:14
#: web/templates/admin/payment/details.gohtml:44
msgctxt "title"
@ -715,19 +719,23 @@ msgid "Full name"
msgstr "Nom i cognoms"
#: web/templates/public/booking/fields.gohtml:157
#: web/templates/admin/payment/details.gohtml:113
#: web/templates/admin/taxDetails.gohtml:69
msgctxt "input"
msgid "Address (optional)"
msgstr "Adreça (opcional)"
msgid "Address"
msgstr "Adreça"
#: web/templates/public/booking/fields.gohtml:166
#: web/templates/admin/payment/details.gohtml:117
#: web/templates/admin/taxDetails.gohtml:93
msgctxt "input"
msgid "Postcode (optional)"
msgstr "Codi postal (opcional)"
msgid "Postcode"
msgstr "Codi postal"
#: web/templates/public/booking/fields.gohtml:175
msgctxt "input"
msgid "Town or village (optional)"
msgstr "Població (opcional)"
msgid "Town or village"
msgstr "Població"
#: web/templates/public/booking/fields.gohtml:184
#: web/templates/admin/payment/details.gohtml:125
@ -760,31 +768,31 @@ msgctxt "input"
msgid "ACSI card? (optional)"
msgstr "Targeta ACSI? (opcional)"
#: web/templates/public/booking/fields.gohtml:222
#: web/templates/public/booking/fields.gohtml:223
msgctxt "input"
msgid "I have read and I accept %[1]sthe reservation conditions%[2]s"
msgstr "He llegit i accepto %[1]sles condicions de reserves%[2]s"
#: web/templates/public/booking/fields.gohtml:239
#: web/templates/public/booking/fields.gohtml:241
msgctxt "cart"
msgid "Total"
msgstr "Total"
#: web/templates/public/booking/fields.gohtml:244
#: web/templates/public/booking/fields.gohtml:246
#: web/templates/admin/payment/details.gohtml:84
msgctxt "cart"
msgid "Down payment"
msgstr "A compte"
#: web/templates/public/booking/fields.gohtml:258
#: web/templates/public/booking/fields.gohtml:260
msgid "By down paying the %d %% of the total, you are pre-booking your preferences. We will respond within 24 hours and this percentage will be charged if accepted."
msgstr "En tramitar el %d %% del total esteu realitzant la prereserva de les vostres preferències. Us respondrem en un termini de 24 hores i us cobrarem aquest percentatge en cas que sigui acceptada."
#: web/templates/public/booking/fields.gohtml:260
#: web/templates/public/booking/fields.gohtml:262
msgid "By paying the total you are pre-booking your preferences. We will respond within 24 hours and this amount will be charged if accepted."
msgstr "En tramitar el pagament del total esteu realitzant la prereserva de les vostres preferències. Us respondrem en un termini de 24 hores i us cobrarem aquesta quantitat en cas que sigui acceptada."
#: web/templates/public/booking/fields.gohtml:264
#: web/templates/public/booking/fields.gohtml:266
msgid "See <%s>our conditions</%s> for more information."
msgstr "Consulteu <%s>les nostres condicions</%s> per a més informació."
@ -916,18 +924,6 @@ msgctxt "title"
msgid "Campsite Type Options"
msgstr "Opcions del tipus dallotjament"
#: web/templates/admin/payment/details.gohtml:113
#: web/templates/admin/taxDetails.gohtml:69
msgctxt "input"
msgid "Address"
msgstr "Adreça"
#: web/templates/admin/payment/details.gohtml:117
#: web/templates/admin/taxDetails.gohtml:93
msgctxt "input"
msgid "Postcode"
msgstr "Codi postal"
#: web/templates/admin/payment/details.gohtml:121
#: web/templates/admin/taxDetails.gohtml:77
msgctxt "input"
@ -2257,12 +2253,12 @@ msgid "Slide image must be an image media type."
msgstr "La imatge de la diapositiva ha de ser un mèdia de tipus imatge."
#: pkg/app/login.go:56 pkg/app/user.go:246 pkg/company/admin.go:217
#: pkg/booking/public.go:533
#: pkg/booking/public.go:536
msgid "Email can not be empty."
msgstr "No podeu deixar el correu-e en blanc."
#: pkg/app/login.go:57 pkg/app/user.go:247 pkg/company/admin.go:218
#: pkg/booking/public.go:534
#: pkg/booking/public.go:537
msgid "This email is not valid. It should be like name@domain.com."
msgstr "Aquest correu-e no és vàlid. Hauria de ser similar a nom@domini.com."
@ -2473,8 +2469,8 @@ msgctxt "header"
msgid "Children (aged 2 to 10)"
msgstr "Mainada (entre 2 i 10 anys)"
#: pkg/campsite/admin.go:275 pkg/booking/public.go:171
#: pkg/booking/public.go:226
#: pkg/campsite/admin.go:275 pkg/booking/public.go:172
#: pkg/booking/public.go:227
msgid "Selected campsite type is not valid."
msgstr "El tipus dallotjament escollit no és vàlid."
@ -2630,7 +2626,7 @@ msgstr "No podeu deixar ladreça de lenllaç en blanc."
msgid "This web address is not valid. It should be like https://domain.com/."
msgstr "Aquesta adreça web no és vàlida. Hauria de ser similar a https://domini.com/."
#: pkg/company/admin.go:200 pkg/booking/public.go:520
#: pkg/company/admin.go:200 pkg/booking/public.go:521
msgid "Selected country is not valid."
msgstr "El país escollit no és vàlid."
@ -2650,15 +2646,15 @@ msgstr "No podeu deixar el NIF en blanc."
msgid "This VAT number is not valid."
msgstr "Aquest NIF no és vàlid."
#: pkg/company/admin.go:212 pkg/booking/public.go:536
#: pkg/company/admin.go:212 pkg/booking/public.go:539
msgid "Phone can not be empty."
msgstr "No podeu deixar el telèfon en blanc."
#: pkg/company/admin.go:213 pkg/booking/public.go:537
#: pkg/company/admin.go:213 pkg/booking/public.go:540
msgid "This phone number is not valid."
msgstr "Aquest número de telèfon no és vàlid."
#: pkg/company/admin.go:223
#: pkg/company/admin.go:223 pkg/booking/public.go:529
msgid "Address can not be empty."
msgstr "No podeu deixar ladreça en blanc."
@ -2670,12 +2666,12 @@ msgstr "No podeu deixar la població en blanc."
msgid "Province can not be empty."
msgstr "No podeu deixar la província en blanc."
#: pkg/company/admin.go:226
msgid "Postal code can not be empty."
#: pkg/company/admin.go:226 pkg/booking/public.go:531
msgid "Postcode can not be empty."
msgstr "No podeu deixar el codi postal en blanc."
#: pkg/company/admin.go:227 pkg/booking/public.go:529
msgid "This postal code is not valid."
#: pkg/company/admin.go:227 pkg/booking/public.go:532
msgid "This postcode is not valid."
msgstr "Aquest codi postal no és vàlid."
#: pkg/company/admin.go:231
@ -2744,127 +2740,145 @@ msgctxt "filename"
msgid "bookings.ods"
msgstr "reserves.ods"
#: pkg/booking/public.go:275 pkg/booking/public.go:304
#: pkg/booking/public.go:276 pkg/booking/public.go:305
msgid "Arrival date must be a valid date."
msgstr "La data darribada ha de ser una data vàlida."
#: pkg/booking/public.go:289 pkg/booking/public.go:311
#: pkg/booking/public.go:290 pkg/booking/public.go:312
msgid "Departure date must be a valid date."
msgstr "La data de sortida ha de ser una data vàlida."
#: pkg/booking/public.go:303
#: pkg/booking/public.go:304
msgid "Arrival date can not be empty"
msgstr "No podeu deixar la data darribada en blanc."
#: pkg/booking/public.go:305
#: pkg/booking/public.go:306
#, c-format
msgid "Arrival date must be %s or after."
msgstr "La data darribada ha de ser igual o posterior a %s."
#: pkg/booking/public.go:306
#: pkg/booking/public.go:307
#, c-format
msgid "Arrival date must be %s or before."
msgstr "La data darribada ha de ser anterior o igual a %s."
#: pkg/booking/public.go:310
#: pkg/booking/public.go:311
msgid "Departure date can not be empty"
msgstr "No podeu deixar la data de sortida en blanc."
#: pkg/booking/public.go:312
#: pkg/booking/public.go:313
#, c-format
msgid "Departure date must be %s or after."
msgstr "La data de sortida ha de ser igual o posterior a %s."
#: pkg/booking/public.go:313
#: pkg/booking/public.go:314
#, c-format
msgid "Departure date must be %s or before."
msgstr "La data de sortida ha de ser anterior o igual a %s."
#: pkg/booking/public.go:355
#: pkg/booking/public.go:356
#, c-format
msgid "There can be at most %d guests in this accommodation."
msgstr "Hi poden haver com a màxim %d convidats a aquest allotjament."
#: pkg/booking/public.go:375
#: pkg/booking/public.go:376
msgid "Number of adults can not be empty"
msgstr "No podeu deixar el número dadults en blanc."
#: pkg/booking/public.go:376
#: pkg/booking/public.go:377
msgid "Number of adults must be an integer."
msgstr "El número dadults ha de ser enter."
#: pkg/booking/public.go:377
#: pkg/booking/public.go:378
msgid "There must be at least one adult."
msgstr "Hi ha dhaver com a mínim un adult."
#: pkg/booking/public.go:380
#: pkg/booking/public.go:381
msgid "Number of teenagers can not be empty"
msgstr "No podeu deixar el número dadolescents en blanc."
#: pkg/booking/public.go:381
#: pkg/booking/public.go:382
msgid "Number of teenagers must be an integer."
msgstr "El número dadolescents ha de ser enter."
#: pkg/booking/public.go:382
#: pkg/booking/public.go:383
msgid "Number of teenagers can not be negative."
msgstr "El número dadolescents no pot ser negatiu."
#: pkg/booking/public.go:385
#: pkg/booking/public.go:386
msgid "Number of children can not be empty"
msgstr "No podeu deixar el número de nens en blanc."
#: pkg/booking/public.go:386
#: pkg/booking/public.go:387
msgid "Number of children must be an integer."
msgstr "El número de nens ha de ser enter."
#: pkg/booking/public.go:387
#: pkg/booking/public.go:388
msgid "Number of children can not be negative."
msgstr "El número de nens no pot ser negatiu."
#: pkg/booking/public.go:390
#: pkg/booking/public.go:391
msgid "Number of dogs can not be empty"
msgstr "No podeu deixar el número de gossos en blanc."
#: pkg/booking/public.go:391
#: pkg/booking/public.go:392
msgid "Number of dogs must be an integer."
msgstr "El número de gossos ha de ser enter."
#: pkg/booking/public.go:392
#: pkg/booking/public.go:393
msgid "Number of dogs can not be negative."
msgstr "El número de gossos no pot ser negatiu."
#: pkg/booking/public.go:463
#: pkg/booking/public.go:464
#, c-format
msgid "%s can not be empty"
msgstr "No podeu deixar %s en blanc."
#: pkg/booking/public.go:464
#: pkg/booking/public.go:465
#, c-format
msgid "%s must be an integer."
msgstr "%s ha de ser un número enter."
#: pkg/booking/public.go:465
#: pkg/booking/public.go:466
#, c-format
msgid "%s must be %d or greater."
msgstr "El valor de %s ha de ser com a mínim %d."
#: pkg/booking/public.go:466
#: pkg/booking/public.go:467
#, c-format
msgid "%s must be at most %d."
msgstr "El valor de %s ha de ser com a màxim %d."
#: pkg/booking/public.go:524
#: pkg/booking/public.go:525
msgid "Full name can not be empty."
msgstr "No podeu deixar el nom i els cognoms en blanc."
#: pkg/booking/public.go:525
#: pkg/booking/public.go:526
msgid "Full name must have at least one letter."
msgstr "El nom i els cognoms han de tenir com a mínim una lletra."
#: pkg/booking/public.go:542
#: pkg/booking/public.go:530
msgid "Town or village can not be empty."
msgstr "No podeu deixar la població en blanc."
#: pkg/booking/public.go:545
msgid "It is mandatory to agree to the reservation conditions."
msgstr "És obligatori acceptar les condicions de reserves."
#~ msgid "Postal code can not be empty."
#~ msgstr "No podeu deixar el codi postal en blanc."
#~ msgid "This postal code is not valid."
#~ msgstr "Aquest codi postal no és vàlid."
#~ msgctxt "input"
#~ msgid "Address (optional)"
#~ msgstr "Adreça (opcional)"
#~ msgctxt "input"
#~ msgid "Postcode (optional)"
#~ msgstr "Codi postal (opcional)"
#~ msgctxt "action"
#~ msgid "Pay"
#~ msgstr "Paga"

148
po/es.po
View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: camper\n"
"Report-Msgid-Bugs-To: jordi@tandem.blog\n"
"POT-Creation-Date: 2024-02-15 15:41+0100\n"
"POT-Creation-Date: 2024-02-24 19:56+0100\n"
"PO-Revision-Date: 2024-02-06 10:04+0100\n"
"Last-Translator: jordi fita mas <jordi@tandem.blog>\n"
"Language-Team: Spanish <es@tp.org.es>\n"
@ -256,7 +256,7 @@ msgid "Discover"
msgstr "Descubre"
#: web/templates/public/campsite/type.gohtml:49
#: web/templates/public/booking/fields.gohtml:266
#: web/templates/public/booking/fields.gohtml:268
msgctxt "action"
msgid "Book"
msgstr "Reservar"
@ -645,6 +645,10 @@ msgstr "Apertura"
msgid "<abbr title=\"Catalonia Tourism Registry\">RTC</abbr> <abbr title=\"Number\">#</abbr>%s"
msgstr "<abbr title=\"Número\">Nº</abbr> <abbr title=\"Registro de Turismo de Cataluña\">RTC</abbr> %s"
#: web/templates/public/booking/page.gohtml:15
msgid "Sorry, there was a problem. Youll find more details highlighted below."
msgstr "Ha habido un problema. Encontraréis más información resaltada debajo."
#: web/templates/public/booking/fields.gohtml:14
#: web/templates/admin/payment/details.gohtml:44
msgctxt "title"
@ -715,19 +719,23 @@ msgid "Full name"
msgstr "Nombre y apellidos"
#: web/templates/public/booking/fields.gohtml:157
#: web/templates/admin/payment/details.gohtml:113
#: web/templates/admin/taxDetails.gohtml:69
msgctxt "input"
msgid "Address (optional)"
msgstr "Dirección (opcional)"
msgid "Address"
msgstr "Dirección"
#: web/templates/public/booking/fields.gohtml:166
#: web/templates/admin/payment/details.gohtml:117
#: web/templates/admin/taxDetails.gohtml:93
msgctxt "input"
msgid "Postcode (optional)"
msgstr "Código postal (opcional)"
msgid "Postcode"
msgstr "Código postal"
#: web/templates/public/booking/fields.gohtml:175
msgctxt "input"
msgid "Town or village (optional)"
msgstr "Población (opcional)"
msgid "Town or village"
msgstr "Población"
#: web/templates/public/booking/fields.gohtml:184
#: web/templates/admin/payment/details.gohtml:125
@ -760,31 +768,31 @@ msgctxt "input"
msgid "ACSI card? (optional)"
msgstr "¿Tarjeta ACSI? (opcional)"
#: web/templates/public/booking/fields.gohtml:222
#: web/templates/public/booking/fields.gohtml:223
msgctxt "input"
msgid "I have read and I accept %[1]sthe reservation conditions%[2]s"
msgstr "He leído y acepto %[1]slas condiciones de reserva%[2]s"
#: web/templates/public/booking/fields.gohtml:239
#: web/templates/public/booking/fields.gohtml:241
msgctxt "cart"
msgid "Total"
msgstr "Total"
#: web/templates/public/booking/fields.gohtml:244
#: web/templates/public/booking/fields.gohtml:246
#: web/templates/admin/payment/details.gohtml:84
msgctxt "cart"
msgid "Down payment"
msgstr "A cuenta"
#: web/templates/public/booking/fields.gohtml:258
#: web/templates/public/booking/fields.gohtml:260
msgid "By down paying the %d %% of the total, you are pre-booking your preferences. We will respond within 24 hours and this percentage will be charged if accepted."
msgstr "En tramitar el %d %% del total estáis realizando la prerreserva de vuestras preferencias. Os responderemos en un término de 24 horas y os cobraremos este porcentaje en caso que sea aceptada."
#: web/templates/public/booking/fields.gohtml:260
#: web/templates/public/booking/fields.gohtml:262
msgid "By paying the total you are pre-booking your preferences. We will respond within 24 hours and this amount will be charged if accepted."
msgstr "En tramitar el pago del total estáis realizando la prerreserva de vuestras preferencias. Os responderemos en un término de 24 horas y os cobraremos esta cantidad en caso que sea aceptada."
#: web/templates/public/booking/fields.gohtml:264
#: web/templates/public/booking/fields.gohtml:266
msgid "See <%s>our conditions</%s> for more information."
msgstr "Consultad <%s>nuestras condiciones</%s> para más información."
@ -884,13 +892,11 @@ msgid "Payment"
msgstr "Pago"
#: web/templates/admin/payment/details.gohtml:30
#, fuzzy
msgctxt "payment header"
msgid "Created at"
msgstr "Creado el"
#: web/templates/admin/payment/details.gohtml:34
#, fuzzy
msgctxt "payment header"
msgid "Last updated at"
msgstr "Actualizado por última vez el"
@ -918,18 +924,6 @@ msgctxt "title"
msgid "Campsite Type Options"
msgstr "Opciones del tipo de alojamiento"
#: web/templates/admin/payment/details.gohtml:113
#: web/templates/admin/taxDetails.gohtml:69
msgctxt "input"
msgid "Address"
msgstr "Dirección"
#: web/templates/admin/payment/details.gohtml:117
#: web/templates/admin/taxDetails.gohtml:93
msgctxt "input"
msgid "Postcode"
msgstr "Código postal"
#: web/templates/admin/payment/details.gohtml:121
#: web/templates/admin/taxDetails.gohtml:77
msgctxt "input"
@ -2259,12 +2253,12 @@ msgid "Slide image must be an image media type."
msgstr "La imagen de la diapositiva tiene que ser un medio de tipo imagen."
#: pkg/app/login.go:56 pkg/app/user.go:246 pkg/company/admin.go:217
#: pkg/booking/public.go:533
#: pkg/booking/public.go:536
msgid "Email can not be empty."
msgstr "No podéis dejar el correo-e en blanco."
#: pkg/app/login.go:57 pkg/app/user.go:247 pkg/company/admin.go:218
#: pkg/booking/public.go:534
#: pkg/booking/public.go:537
msgid "This email is not valid. It should be like name@domain.com."
msgstr "Este correo-e no es válido. Tiene que ser parecido a nombre@dominio.com."
@ -2475,8 +2469,8 @@ msgctxt "header"
msgid "Children (aged 2 to 10)"
msgstr "Niños (de 2 a 10 años)"
#: pkg/campsite/admin.go:275 pkg/booking/public.go:171
#: pkg/booking/public.go:226
#: pkg/campsite/admin.go:275 pkg/booking/public.go:172
#: pkg/booking/public.go:227
msgid "Selected campsite type is not valid."
msgstr "El tipo de alojamiento escogido no es válido."
@ -2632,7 +2626,7 @@ msgstr "No podéis dejar la dirección del enlace en blanco."
msgid "This web address is not valid. It should be like https://domain.com/."
msgstr "Esta dirección web no es válida. Tiene que ser parecido a https://dominio.com/."
#: pkg/company/admin.go:200 pkg/booking/public.go:520
#: pkg/company/admin.go:200 pkg/booking/public.go:521
msgid "Selected country is not valid."
msgstr "El país escogido no es válido."
@ -2652,15 +2646,15 @@ msgstr "No podéis dejar el NIF en blanco."
msgid "This VAT number is not valid."
msgstr "Este NIF no es válido."
#: pkg/company/admin.go:212 pkg/booking/public.go:536
#: pkg/company/admin.go:212 pkg/booking/public.go:539
msgid "Phone can not be empty."
msgstr "No podéis dejar el teléfono en blanco."
#: pkg/company/admin.go:213 pkg/booking/public.go:537
#: pkg/company/admin.go:213 pkg/booking/public.go:540
msgid "This phone number is not valid."
msgstr "Este teléfono no es válido."
#: pkg/company/admin.go:223
#: pkg/company/admin.go:223 pkg/booking/public.go:529
msgid "Address can not be empty."
msgstr "No podéis dejar la dirección en blanco."
@ -2672,12 +2666,12 @@ msgstr "No podéis dejar la población en blanco."
msgid "Province can not be empty."
msgstr "No podéis dejar la provincia en blanco."
#: pkg/company/admin.go:226
msgid "Postal code can not be empty."
#: pkg/company/admin.go:226 pkg/booking/public.go:531
msgid "Postcode can not be empty."
msgstr "No podéis dejar el código postal en blanco."
#: pkg/company/admin.go:227 pkg/booking/public.go:529
msgid "This postal code is not valid."
#: pkg/company/admin.go:227 pkg/booking/public.go:532
msgid "This postcode is not valid."
msgstr "Este código postal no es válido."
#: pkg/company/admin.go:231
@ -2746,127 +2740,145 @@ msgctxt "filename"
msgid "bookings.ods"
msgstr "reservas.ods"
#: pkg/booking/public.go:275 pkg/booking/public.go:304
#: pkg/booking/public.go:276 pkg/booking/public.go:305
msgid "Arrival date must be a valid date."
msgstr "La fecha de llegada tiene que ser una fecha válida."
#: pkg/booking/public.go:289 pkg/booking/public.go:311
#: pkg/booking/public.go:290 pkg/booking/public.go:312
msgid "Departure date must be a valid date."
msgstr "La fecha de partida tiene que ser una fecha válida."
#: pkg/booking/public.go:303
#: pkg/booking/public.go:304
msgid "Arrival date can not be empty"
msgstr "No podéis dejar la fecha de llegada en blanco."
#: pkg/booking/public.go:305
#: pkg/booking/public.go:306
#, c-format
msgid "Arrival date must be %s or after."
msgstr "La fecha de llegada tiene que ser igual o posterior a %s."
#: pkg/booking/public.go:306
#: pkg/booking/public.go:307
#, c-format
msgid "Arrival date must be %s or before."
msgstr "La fecha de llegada tiene que ser anterior o igual a %s."
#: pkg/booking/public.go:310
#: pkg/booking/public.go:311
msgid "Departure date can not be empty"
msgstr "No podéis dejar la fecha de partida en blanco."
#: pkg/booking/public.go:312
#: pkg/booking/public.go:313
#, c-format
msgid "Departure date must be %s or after."
msgstr "La fecha de partida tiene que igual o posterior a %s."
#: pkg/booking/public.go:313
#: pkg/booking/public.go:314
#, c-format
msgid "Departure date must be %s or before."
msgstr "La fecha de partida tiene que ser anterior o igual a %s."
#: pkg/booking/public.go:355
#: pkg/booking/public.go:356
#, c-format
msgid "There can be at most %d guests in this accommodation."
msgstr "Solo puede haber como máximo %d invitados en este alojamiento."
#: pkg/booking/public.go:375
#: pkg/booking/public.go:376
msgid "Number of adults can not be empty"
msgstr "No podéis dejar el número de adultos blanco."
#: pkg/booking/public.go:376
#: pkg/booking/public.go:377
msgid "Number of adults must be an integer."
msgstr "El número de adultos tiene que ser entero."
#: pkg/booking/public.go:377
#: pkg/booking/public.go:378
msgid "There must be at least one adult."
msgstr "Tiene que haber como mínimo un adulto."
#: pkg/booking/public.go:380
#: pkg/booking/public.go:381
msgid "Number of teenagers can not be empty"
msgstr "No podéis dejar el número de adolescentes en blanco."
#: pkg/booking/public.go:381
#: pkg/booking/public.go:382
msgid "Number of teenagers must be an integer."
msgstr "El número de adolescentes tiene que ser entero."
#: pkg/booking/public.go:382
#: pkg/booking/public.go:383
msgid "Number of teenagers can not be negative."
msgstr "El número de adolescentes no puede ser negativo."
#: pkg/booking/public.go:385
#: pkg/booking/public.go:386
msgid "Number of children can not be empty"
msgstr "No podéis dejar el número de niños en blanco."
#: pkg/booking/public.go:386
#: pkg/booking/public.go:387
msgid "Number of children must be an integer."
msgstr "El número de niños tiene que ser entero."
#: pkg/booking/public.go:387
#: pkg/booking/public.go:388
msgid "Number of children can not be negative."
msgstr "El número de niños no puede ser negativo."
#: pkg/booking/public.go:390
#: pkg/booking/public.go:391
msgid "Number of dogs can not be empty"
msgstr "No podéis dejar el número de perros en blanco."
#: pkg/booking/public.go:391
#: pkg/booking/public.go:392
msgid "Number of dogs must be an integer."
msgstr "El número de perros tiene que ser entero."
#: pkg/booking/public.go:392
#: pkg/booking/public.go:393
msgid "Number of dogs can not be negative."
msgstr "El número de perros no puede ser negativo."
#: pkg/booking/public.go:463
#: pkg/booking/public.go:464
#, c-format
msgid "%s can not be empty"
msgstr "No podéis dejar %s en blanco."
#: pkg/booking/public.go:464
#: pkg/booking/public.go:465
#, c-format
msgid "%s must be an integer."
msgstr "%s tiene que ser un número entero."
#: pkg/booking/public.go:465
#: pkg/booking/public.go:466
#, c-format
msgid "%s must be %d or greater."
msgstr "%s tiene que ser como mínimo %d."
#: pkg/booking/public.go:466
#: pkg/booking/public.go:467
#, c-format
msgid "%s must be at most %d."
msgstr "%s tiene que ser como máximo %d"
#: pkg/booking/public.go:524
#: pkg/booking/public.go:525
msgid "Full name can not be empty."
msgstr "No podéis dejar el nombre y los apellidos en blanco."
#: pkg/booking/public.go:525
#: pkg/booking/public.go:526
msgid "Full name must have at least one letter."
msgstr "El nombre y los apellidos tienen que tener como mínimo una letra."
#: pkg/booking/public.go:542
#: pkg/booking/public.go:530
msgid "Town or village can not be empty."
msgstr "No podéis dejar la población en blanco."
#: pkg/booking/public.go:545
msgid "It is mandatory to agree to the reservation conditions."
msgstr "Es obligatorio aceptar las condiciones de reserva."
#~ msgid "Postal code can not be empty."
#~ msgstr "No podéis dejar el código postal en blanco."
#~ msgid "This postal code is not valid."
#~ msgstr "Este código postal no es válido."
#~ msgctxt "input"
#~ msgid "Address (optional)"
#~ msgstr "Dirección (opcional)"
#~ msgctxt "input"
#~ msgid "Postcode (optional)"
#~ msgstr "Código postal (opcional)"
#~ msgctxt "action"
#~ msgid "Pay"
#~ msgstr "Pagar"

148
po/fr.po
View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: camper\n"
"Report-Msgid-Bugs-To: jordi@tandem.blog\n"
"POT-Creation-Date: 2024-02-15 15:48+0100\n"
"POT-Creation-Date: 2024-02-24 19:56+0100\n"
"PO-Revision-Date: 2024-02-06 10:05+0100\n"
"Last-Translator: Oriol Carbonell <info@oriolcarbonell.cat>\n"
"Language-Team: French <traduc@traduc.org>\n"
@ -256,7 +256,7 @@ msgid "Discover"
msgstr "Découvrir"
#: web/templates/public/campsite/type.gohtml:49
#: web/templates/public/booking/fields.gohtml:266
#: web/templates/public/booking/fields.gohtml:268
msgctxt "action"
msgid "Book"
msgstr "Réserver"
@ -645,6 +645,10 @@ msgstr "Ouverture"
msgid "<abbr title=\"Catalonia Tourism Registry\">RTC</abbr> <abbr title=\"Number\">#</abbr>%s"
msgstr "<abbr title=\"Registre du tourisme de Catalogne\"># RTC</abbr> %s"
#: web/templates/public/booking/page.gohtml:15
msgid "Sorry, there was a problem. Youll find more details highlighted below."
msgstr "Il y avait un problème. Vous trouverez plus de détails ci-dessous."
#: web/templates/public/booking/fields.gohtml:14
#: web/templates/admin/payment/details.gohtml:44
msgctxt "title"
@ -715,19 +719,23 @@ msgid "Full name"
msgstr "Nom et prénom"
#: web/templates/public/booking/fields.gohtml:157
#: web/templates/admin/payment/details.gohtml:113
#: web/templates/admin/taxDetails.gohtml:69
msgctxt "input"
msgid "Address (optional)"
msgstr "Adresse (Facultatif)"
msgid "Address"
msgstr "Adresse"
#: web/templates/public/booking/fields.gohtml:166
#: web/templates/admin/payment/details.gohtml:117
#: web/templates/admin/taxDetails.gohtml:93
msgctxt "input"
msgid "Postcode (optional)"
msgstr "Code postal (Facultatif)"
msgid "Postcode"
msgstr "Code postal"
#: web/templates/public/booking/fields.gohtml:175
msgctxt "input"
msgid "Town or village (optional)"
msgstr "Ville (Facultatif)"
msgid "Town or village"
msgstr "Ville"
#: web/templates/public/booking/fields.gohtml:184
#: web/templates/admin/payment/details.gohtml:125
@ -760,31 +768,31 @@ msgctxt "input"
msgid "ACSI card? (optional)"
msgstr "Carte ACSI ? (Facultatif)"
#: web/templates/public/booking/fields.gohtml:222
#: web/templates/public/booking/fields.gohtml:223
msgctxt "input"
msgid "I have read and I accept %[1]sthe reservation conditions%[2]s"
msgstr "Jai lu et jaccepte %[1]sles conditions de réservation%[2]s"
#: web/templates/public/booking/fields.gohtml:239
#: web/templates/public/booking/fields.gohtml:241
msgctxt "cart"
msgid "Total"
msgstr "Totale"
#: web/templates/public/booking/fields.gohtml:244
#: web/templates/public/booking/fields.gohtml:246
#: web/templates/admin/payment/details.gohtml:84
msgctxt "cart"
msgid "Down payment"
msgstr "Acompte"
#: web/templates/public/booking/fields.gohtml:258
#: web/templates/public/booking/fields.gohtml:260
msgid "By down paying the %d %% of the total, you are pre-booking your preferences. We will respond within 24 hours and this percentage will be charged if accepted."
msgstr "En En effectuant le paiement de %d %% du total vous pré-réservez vos préférences. Nous vous répondrons dans les 24 heures et ce pourcentage sera facturé en cas dacceptation."
#: web/templates/public/booking/fields.gohtml:260
#: web/templates/public/booking/fields.gohtml:262
msgid "By paying the total you are pre-booking your preferences. We will respond within 24 hours and this amount will be charged if accepted."
msgstr "En procédant au paiement du montant total vous pré-réservez vos préférences. Nous vous répondrons dans les 24 heures et ce montant sera facturé en cas dacceptation."
#: web/templates/public/booking/fields.gohtml:264
#: web/templates/public/booking/fields.gohtml:266
msgid "See <%s>our conditions</%s> for more information."
msgstr "Consultez <%s>nos conditions</%s> pour plus dinformations."
@ -884,13 +892,11 @@ msgid "Payment"
msgstr "Paiement"
#: web/templates/admin/payment/details.gohtml:30
#, fuzzy
msgctxt "payment header"
msgid "Created at"
msgstr "Créé à"
#: web/templates/admin/payment/details.gohtml:34
#, fuzzy
msgctxt "payment header"
msgid "Last updated at"
msgstr "Dernière mise à jour à"
@ -918,18 +924,6 @@ msgctxt "title"
msgid "Campsite Type Options"
msgstr "Options de type demplacement de camping"
#: web/templates/admin/payment/details.gohtml:113
#: web/templates/admin/taxDetails.gohtml:69
msgctxt "input"
msgid "Address"
msgstr "Adresse"
#: web/templates/admin/payment/details.gohtml:117
#: web/templates/admin/taxDetails.gohtml:93
msgctxt "input"
msgid "Postcode"
msgstr "Code Postal"
#: web/templates/admin/payment/details.gohtml:121
#: web/templates/admin/taxDetails.gohtml:77
msgctxt "input"
@ -2259,12 +2253,12 @@ msgid "Slide image must be an image media type."
msgstr "Limage de la diapositive doit être de type média dimage."
#: pkg/app/login.go:56 pkg/app/user.go:246 pkg/company/admin.go:217
#: pkg/booking/public.go:533
#: pkg/booking/public.go:536
msgid "Email can not be empty."
msgstr "Le-mail ne peut pas être vide."
#: pkg/app/login.go:57 pkg/app/user.go:247 pkg/company/admin.go:218
#: pkg/booking/public.go:534
#: pkg/booking/public.go:537
msgid "This email is not valid. It should be like name@domain.com."
msgstr "Cette adresse e-mail nest pas valide. Il devrait en être name@domain.com."
@ -2475,8 +2469,8 @@ msgctxt "header"
msgid "Children (aged 2 to 10)"
msgstr "Enfants (de 2 à 10 anys)"
#: pkg/campsite/admin.go:275 pkg/booking/public.go:171
#: pkg/booking/public.go:226
#: pkg/campsite/admin.go:275 pkg/booking/public.go:172
#: pkg/booking/public.go:227
msgid "Selected campsite type is not valid."
msgstr "Le type demplacement sélectionné nest pas valide."
@ -2632,7 +2626,7 @@ msgstr "Laddresse du lien ne peut pas être vide."
msgid "This web address is not valid. It should be like https://domain.com/."
msgstr "Cette adresse web nest pas valide. Il devrait en être https://domain.com/."
#: pkg/company/admin.go:200 pkg/booking/public.go:520
#: pkg/company/admin.go:200 pkg/booking/public.go:521
msgid "Selected country is not valid."
msgstr "Le pays sélectionné nest pas valide."
@ -2652,15 +2646,15 @@ msgstr "Le numéro de TVA ne peut pas être vide."
msgid "This VAT number is not valid."
msgstr "Ce numéro de TVA nest pas valide."
#: pkg/company/admin.go:212 pkg/booking/public.go:536
#: pkg/company/admin.go:212 pkg/booking/public.go:539
msgid "Phone can not be empty."
msgstr "Le téléphone ne peut pas être vide."
#: pkg/company/admin.go:213 pkg/booking/public.go:537
#: pkg/company/admin.go:213 pkg/booking/public.go:540
msgid "This phone number is not valid."
msgstr "Ce numéro de téléphone nest pas valide."
#: pkg/company/admin.go:223
#: pkg/company/admin.go:223 pkg/booking/public.go:529
msgid "Address can not be empty."
msgstr "Ladresse ne peut pas être vide."
@ -2672,12 +2666,12 @@ msgstr "La ville ne peut pas être vide."
msgid "Province can not be empty."
msgstr "La province ne peut pas être vide."
#: pkg/company/admin.go:226
msgid "Postal code can not be empty."
#: pkg/company/admin.go:226 pkg/booking/public.go:531
msgid "Postcode can not be empty."
msgstr "Le code postal ne peut pas être vide."
#: pkg/company/admin.go:227 pkg/booking/public.go:529
msgid "This postal code is not valid."
#: pkg/company/admin.go:227 pkg/booking/public.go:532
msgid "This postcode is not valid."
msgstr "Ce code postal nest pas valide."
#: pkg/company/admin.go:231
@ -2746,127 +2740,145 @@ msgctxt "filename"
msgid "bookings.ods"
msgstr "reservations.ods"
#: pkg/booking/public.go:275 pkg/booking/public.go:304
#: pkg/booking/public.go:276 pkg/booking/public.go:305
msgid "Arrival date must be a valid date."
msgstr "La date darrivée doit être une date valide."
#: pkg/booking/public.go:289 pkg/booking/public.go:311
#: pkg/booking/public.go:290 pkg/booking/public.go:312
msgid "Departure date must be a valid date."
msgstr "La date de départ doit être une date valide."
#: pkg/booking/public.go:303
#: pkg/booking/public.go:304
msgid "Arrival date can not be empty"
msgstr "La date darrivée ne peut pas être vide"
#: pkg/booking/public.go:305
#: pkg/booking/public.go:306
#, c-format
msgid "Arrival date must be %s or after."
msgstr "La date darrivée doit être égale ou postérieure à %s."
#: pkg/booking/public.go:306
#: pkg/booking/public.go:307
#, c-format
msgid "Arrival date must be %s or before."
msgstr "La date darrivée doit être antérieure ou égale à %s."
#: pkg/booking/public.go:310
#: pkg/booking/public.go:311
msgid "Departure date can not be empty"
msgstr "La date de départ ne peut pas être vide"
#: pkg/booking/public.go:312
#: pkg/booking/public.go:313
#, c-format
msgid "Departure date must be %s or after."
msgstr "La date de départ doit être égale ou postérieure à %s."
#: pkg/booking/public.go:313
#: pkg/booking/public.go:314
#, c-format
msgid "Departure date must be %s or before."
msgstr "La date de départ doit être antérieure ou égale à %s."
#: pkg/booking/public.go:355
#: pkg/booking/public.go:356
#, c-format
msgid "There can be at most %d guests in this accommodation."
msgstr "Il peut y avoir au plus %d invités dans cet hébergement."
#: pkg/booking/public.go:375
#: pkg/booking/public.go:376
msgid "Number of adults can not be empty"
msgstr "Le nombre dadultes ne peut pas être vide."
#: pkg/booking/public.go:376
#: pkg/booking/public.go:377
msgid "Number of adults must be an integer."
msgstr "Le nombre dadultes doit être un entier."
#: pkg/booking/public.go:377
#: pkg/booking/public.go:378
msgid "There must be at least one adult."
msgstr "Il doit y avoir au moins un adulte."
#: pkg/booking/public.go:380
#: pkg/booking/public.go:381
msgid "Number of teenagers can not be empty"
msgstr "Le nombre dadolescents ne peut pas être vide."
#: pkg/booking/public.go:381
#: pkg/booking/public.go:382
msgid "Number of teenagers must be an integer."
msgstr "Le nombre dadolescents doit être un entier."
#: pkg/booking/public.go:382
#: pkg/booking/public.go:383
msgid "Number of teenagers can not be negative."
msgstr "Le nombre dadolescents ne peut pas être négatif."
#: pkg/booking/public.go:385
#: pkg/booking/public.go:386
msgid "Number of children can not be empty"
msgstr "Le nombre denfants ne peut pas être vide."
#: pkg/booking/public.go:386
#: pkg/booking/public.go:387
msgid "Number of children must be an integer."
msgstr "Le nombre denfants doit être un entier."
#: pkg/booking/public.go:387
#: pkg/booking/public.go:388
msgid "Number of children can not be negative."
msgstr "Le nombre denfants ne peut pas être négatif."
#: pkg/booking/public.go:390
#: pkg/booking/public.go:391
msgid "Number of dogs can not be empty"
msgstr "Le nombre de chiens ne peut pas être vide."
#: pkg/booking/public.go:391
#: pkg/booking/public.go:392
msgid "Number of dogs must be an integer."
msgstr "Le nombre de chiens nuits être un entier."
#: pkg/booking/public.go:392
#: pkg/booking/public.go:393
msgid "Number of dogs can not be negative."
msgstr "Le nombre de chiens ne peut pas être négatif."
#: pkg/booking/public.go:463
#: pkg/booking/public.go:464
#, c-format
msgid "%s can not be empty"
msgstr "%s ne peut pas être vide"
#: pkg/booking/public.go:464
#: pkg/booking/public.go:465
#, c-format
msgid "%s must be an integer."
msgstr "%s doit être un entier."
#: pkg/booking/public.go:465
#: pkg/booking/public.go:466
#, c-format
msgid "%s must be %d or greater."
msgstr "%s doit être %d ou plus."
#: pkg/booking/public.go:466
#: pkg/booking/public.go:467
#, c-format
msgid "%s must be at most %d."
msgstr "%s doit être tout au plus %d."
#: pkg/booking/public.go:524
#: pkg/booking/public.go:525
msgid "Full name can not be empty."
msgstr "Le nom complet ne peut pas être vide."
#: pkg/booking/public.go:525
#: pkg/booking/public.go:526
msgid "Full name must have at least one letter."
msgstr "Le nom complet doit comporter au moins une lettre."
#: pkg/booking/public.go:542
#: pkg/booking/public.go:530
msgid "Town or village can not be empty."
msgstr "La ville ne peut pas être vide."
#: pkg/booking/public.go:545
msgid "It is mandatory to agree to the reservation conditions."
msgstr "Il est obligatoire daccepter les conditions de réservation."
#~ msgid "Postal code can not be empty."
#~ msgstr "Le code postal ne peut pas être vide."
#~ msgid "This postal code is not valid."
#~ msgstr "Ce code postal nest pas valide."
#~ msgctxt "input"
#~ msgid "Address (optional)"
#~ msgstr "Adresse (Facultatif)"
#~ msgctxt "input"
#~ msgid "Postcode (optional)"
#~ msgstr "Code postal (Facultatif)"
#~ msgctxt "action"
#~ msgid "Pay"
#~ msgstr "Payer"

View File

@ -103,6 +103,7 @@ html {
--accent: #00aa7d;
--accent-2: #FFE37F;
--accent-3: #9adff4;
--error: #871d1f;
--clar-rgb: 239, 237, 236;
--clar: rgb(var(--clar-rgb));
}
@ -1272,14 +1273,6 @@ select {
padding: 20px;
}
/*
label {
display: flex;
align-items: center;
gap: 20px;
}
*/
fieldset {
display: flex;
justify-content: space-between;
@ -1299,6 +1292,20 @@ button[disabled] {
border-color: var(--contrast-3);
}
.error {
color: var(--error);
}
input[aria-invalid="true"] {
border-color: var(--error);
}
.error[role="alert"] {
background-color: #fae0e3;
padding: 1em;
margin: 1em 0 2em;
}
/* radio buttins + checkbox */
/* Context for relative positioning */

View File

@ -6,7 +6,7 @@
{{ define "error-message" -}}
{{ if .Error -}}
<span id="{{ .Name }}-error" class="error">{{ .Error }}</span><br>
<strong id="{{ .Name }}-error" class="error">{{ .Error }}</strong><br>
{{- end }}
{{- end }}

View File

@ -32,8 +32,8 @@
max="{{ formatDateAttr .MaxDate }}"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br>
</label>
{{ template "error-message" . }}
</label>
{{- end }}
{{ with .DepartureDate -}}
<label>
@ -43,8 +43,8 @@
max="{{ formatDateAttr .MaxDate }}"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br>
</label>
{{ template "error-message" . }}
</label>
{{- end }}
</fieldset>
{{- end }}
@ -62,8 +62,8 @@
min="1"{{if not $guests.OverflowAllowed }} max="{{ $guests.MaxGuests }}"{{ end }}
{{ template "error-attrs" . }}
><br>
</label>
{{ template "error-message" . }}
</label>
{{- end }}
{{ with .NumberTeenagers -}}
<label>
@ -73,8 +73,8 @@
min="0"{{if not $guests.OverflowAllowed }} max="{{ $guests.MaxGuests | dec }}"{{ end }}
{{ template "error-attrs" . }}
><br>
</label>
{{ template "error-message" . }}
</label>
{{- end }}
{{ with .NumberChildren -}}
<label>
@ -84,8 +84,8 @@
min="0"{{if not $guests.OverflowAllowed }} max="{{ $guests.MaxGuests | dec }}"{{ end }}
{{ template "error-attrs" . }}
><br>
</label>
{{ template "error-message" . }}
</label>
{{- end }}
{{ if .Overflow -}}
<small>{{( gettext "Note: Due to guest capacity, we have added more accomodations to the booking, but we <strong>cannot</strong> guarantee that they will be next to each other." ) | raw}}</small>
@ -101,8 +101,8 @@
name="{{ .Name }}" value="{{ .Val }}" min="0"
{{ template "error-attrs" . }}
><br>
</label>
{{ template "error-message" . }}
</label>
{{- end }}
{{- else -}}
<small>{{( gettext "Note: This accommodation does <strong>not</strong> allow dogs.") | raw }}</small>
@ -124,8 +124,8 @@
<input type="text"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br>
</label>
{{ template "error-message" . }}
</label>
{{- end }}
{{ range .Options -}}
<label>
@ -135,8 +135,8 @@
min="{{ .Min }}" max="{{ .Max }}"
{{ template "error-attrs" .Input }}
><br>
</label>
{{ template "error-message" .Input }}
</label>
{{- end }}
</fieldset>
{{- end }}
@ -149,35 +149,35 @@
<input type="text" required autocomplete="name" minlength="2"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br>
</label>
{{ template "error-message" . }}
</label>
{{- end }}
{{ with .Address -}}
<label>
{{( pgettext "Address (optional)" "input" )}}<br>
<input type="text" autocomplete="billing street-address"
{{( pgettext "Address" "input" )}}<br>
<input type="text" required autocomplete="billing street-address"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br>
</label>
{{ template "error-message" . }}
</label>
{{- end }}
{{ with .PostalCode -}}
<label>
{{( pgettext "Postcode (optional)" "input" )}}<br>
<input type="text" autocomplete="billing postal-code"
{{( pgettext "Postcode" "input" )}}<br>
<input type="text" required autocomplete="billing postal-code"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br>
</label>
{{ template "error-message" . }}
</label>
{{- end }}
{{ with .City -}}
<label>
{{( pgettext "Town or village (optional)" "input" )}}<br>
<input type="text"
{{( pgettext "Town or village" "input" )}}<br>
<input type="text" required
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br>
</label>
{{ template "error-message" . }}
</label>
{{- end }}
{{ with .Country -}}
<label>
@ -187,8 +187,8 @@
<option>{{( gettext "Choose a country" )}}</option>
{{ template "error-attrs" . }}>{{ template "list-options" . }}
</select><br>
</label>
{{ template "error-message" . }}
</label>
{{- end }}
{{ with .Email -}}
<label>
@ -196,8 +196,8 @@
<input type="email" required autocomplete="email"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br>
</label>
{{ template "error-message" . }}
</label>
{{- end }}
{{ with .Phone -}}
<label>
@ -205,23 +205,25 @@
<input type="tel" required autocomplete="tel"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br>
</label>
{{ template "error-message" . }}
</label>
{{- end }}
{{ with .ACSICard -}}
<label class="full-row">
<input type="checkbox" name="{{ .Name }}" {{ if .Checked}}checked{{ end }}
{{ template "error-attrs" . }}
> {{( pgettext "ACSI card? (optional)" "input" )}}</label><br>
> {{( pgettext "ACSI card? (optional)" "input" )}}<br>
{{ template "error-message" . }}
</label>
{{- end }}
{{ with .Agreement -}}
<label class="full-row">
<input type="checkbox" required name="{{ .Name }}" {{ if .Checked}}checked{{ end }}
{{ template "error-attrs" . }}
> {{ printf ( pgettext "I have read and I accept %[1]sthe reservation conditions%[2]s" "input" ) (printf "<a href=\"/%s/legal/reservation\" rel=\"terms-of-service\" target=\"_blank\">" currentLocale) (print "</a>") | raw }}
</label><br>
<br>
{{ template "error-message" . }}
</label>
{{- end }}
</fieldset>
{{- end }}

View File

@ -10,6 +10,11 @@
{{ define "content" -}}
{{- /*gotype: dev.tandem.ws/tandem/camper/pkg/booking.publicPage*/ -}}
<h2>{{ template "title" . }}</h2>
{{ if .HasErrors -}}
<div role="alert" class="error">
<p>{{( gettext "Sorry, there was a problem. Youll find more details highlighted below." )}}</p>
</div>
{{- end }}
<form id="booking" action="/{{ currentLocale }}/booking" method="post"
data-hx-include="this"
data-hx-target="this"