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) w.WriteHeader(http.StatusUnprocessableEntity)
} }
page := newPublicPageWithForm(f) page := newPublicPageWithForm(f)
page.HasErrors = true
page.MustRender(w, r, user, company, conn) page.MustRender(w, r, user, company, conn)
return return
} }

View File

@ -57,6 +57,7 @@ func (h *PublicHandler) Handler(user *auth.User, company *auth.Company, conn *da
type publicPage struct { type publicPage struct {
*template.PublicPage *template.PublicPage
Form *bookingForm Form *bookingForm
HasErrors bool
} }
func newPublicPage(r *http.Request, company *auth.Company, conn *database.Conn, l *locale.Locale) (*publicPage, error) { 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.")) v.CheckMinLength(f.FullName, 1, l.GettextNoop("Full name must have at least one letter."))
} }
if country != "" && f.PostalCode.Val != "" { v.CheckRequired(f.Address, l.GettextNoop("Address can not be empty."))
if _, err := v.CheckValidPostalCode(ctx, conn, f.PostalCode, country, l.GettextNoop("This postal code is not valid.")); err != nil { 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 return err
} }
} }
if v.CheckRequired(f.Email, l.GettextNoop("Email can not be empty.")) { 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.")) 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 { if _, err := v.CheckValidPhone(ctx, conn, f.Phone, country, l.GettextNoop("This phone number is not valid.")); err != nil {
return err 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.Address, l.GettextNoop("Address can not be empty."))
v.CheckRequired(f.City, l.GettextNoop("City 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.")) 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 v.CheckRequired(f.PostalCode, l.GettextNoop("Postcode can not be empty.")) {
if _, err := v.CheckValidPostalCode(ctx, conn, f.PostalCode, country, l.GettextNoop("This postal code is not valid.")); err != nil { if _, err := v.CheckValidPostalCode(ctx, conn, f.PostalCode, country, l.GettextNoop("This postcode is not valid.")); err != nil {
return false, err return false, err
} }
} }

146
po/ca.po
View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: camper\n" "Project-Id-Version: camper\n"
"Report-Msgid-Bugs-To: jordi@tandem.blog\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" "PO-Revision-Date: 2024-02-06 10:04+0100\n"
"Last-Translator: jordi fita mas <jordi@tandem.blog>\n" "Last-Translator: jordi fita mas <jordi@tandem.blog>\n"
"Language-Team: Catalan <ca@dodds.net>\n" "Language-Team: Catalan <ca@dodds.net>\n"
@ -256,7 +256,7 @@ msgid "Discover"
msgstr "Descobreix" msgstr "Descobreix"
#: web/templates/public/campsite/type.gohtml:49 #: web/templates/public/campsite/type.gohtml:49
#: web/templates/public/booking/fields.gohtml:266 #: web/templates/public/booking/fields.gohtml:268
msgctxt "action" msgctxt "action"
msgid "Book" msgid "Book"
msgstr "Reserva" msgstr "Reserva"
@ -645,6 +645,10 @@ msgstr "Obertura"
msgid "<abbr title=\"Catalonia Tourism Registry\">RTC</abbr> <abbr title=\"Number\">#</abbr>%s" 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" 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/public/booking/fields.gohtml:14
#: web/templates/admin/payment/details.gohtml:44 #: web/templates/admin/payment/details.gohtml:44
msgctxt "title" msgctxt "title"
@ -715,19 +719,23 @@ msgid "Full name"
msgstr "Nom i cognoms" msgstr "Nom i cognoms"
#: web/templates/public/booking/fields.gohtml:157 #: web/templates/public/booking/fields.gohtml:157
#: web/templates/admin/payment/details.gohtml:113
#: web/templates/admin/taxDetails.gohtml:69
msgctxt "input" msgctxt "input"
msgid "Address (optional)" msgid "Address"
msgstr "Adreça (opcional)" msgstr "Adreça"
#: web/templates/public/booking/fields.gohtml:166 #: web/templates/public/booking/fields.gohtml:166
#: web/templates/admin/payment/details.gohtml:117
#: web/templates/admin/taxDetails.gohtml:93
msgctxt "input" msgctxt "input"
msgid "Postcode (optional)" msgid "Postcode"
msgstr "Codi postal (opcional)" msgstr "Codi postal"
#: web/templates/public/booking/fields.gohtml:175 #: web/templates/public/booking/fields.gohtml:175
msgctxt "input" msgctxt "input"
msgid "Town or village (optional)" msgid "Town or village"
msgstr "Població (opcional)" msgstr "Població"
#: web/templates/public/booking/fields.gohtml:184 #: web/templates/public/booking/fields.gohtml:184
#: web/templates/admin/payment/details.gohtml:125 #: web/templates/admin/payment/details.gohtml:125
@ -760,31 +768,31 @@ msgctxt "input"
msgid "ACSI card? (optional)" msgid "ACSI card? (optional)"
msgstr "Targeta ACSI? (opcional)" msgstr "Targeta ACSI? (opcional)"
#: web/templates/public/booking/fields.gohtml:222 #: web/templates/public/booking/fields.gohtml:223
msgctxt "input" msgctxt "input"
msgid "I have read and I accept %[1]sthe reservation conditions%[2]s" 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" 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" msgctxt "cart"
msgid "Total" msgid "Total"
msgstr "Total" msgstr "Total"
#: web/templates/public/booking/fields.gohtml:244 #: web/templates/public/booking/fields.gohtml:246
#: web/templates/admin/payment/details.gohtml:84 #: web/templates/admin/payment/details.gohtml:84
msgctxt "cart" msgctxt "cart"
msgid "Down payment" msgid "Down payment"
msgstr "A compte" 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." 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." 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." 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." 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." msgid "See <%s>our conditions</%s> for more information."
msgstr "Consulteu <%s>les nostres condicions</%s> per a més informació." msgstr "Consulteu <%s>les nostres condicions</%s> per a més informació."
@ -916,18 +924,6 @@ msgctxt "title"
msgid "Campsite Type Options" msgid "Campsite Type Options"
msgstr "Opcions del tipus dallotjament" 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/payment/details.gohtml:121
#: web/templates/admin/taxDetails.gohtml:77 #: web/templates/admin/taxDetails.gohtml:77
msgctxt "input" 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." 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/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." msgid "Email can not be empty."
msgstr "No podeu deixar el correu-e en blanc." 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/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." 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." 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)" msgid "Children (aged 2 to 10)"
msgstr "Mainada (entre 2 i 10 anys)" msgstr "Mainada (entre 2 i 10 anys)"
#: pkg/campsite/admin.go:275 pkg/booking/public.go:171 #: pkg/campsite/admin.go:275 pkg/booking/public.go:172
#: pkg/booking/public.go:226 #: pkg/booking/public.go:227
msgid "Selected campsite type is not valid." msgid "Selected campsite type is not valid."
msgstr "El tipus dallotjament escollit no és vàlid." 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/." 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/." 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." msgid "Selected country is not valid."
msgstr "El país escollit no és vàlid." 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." msgid "This VAT number is not valid."
msgstr "Aquest NIF no és vàlid." 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." msgid "Phone can not be empty."
msgstr "No podeu deixar el telèfon en blanc." 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." msgid "This phone number is not valid."
msgstr "Aquest número de telèfon no és vàlid." 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." msgid "Address can not be empty."
msgstr "No podeu deixar ladreça en blanc." 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." msgid "Province can not be empty."
msgstr "No podeu deixar la província en blanc." msgstr "No podeu deixar la província en blanc."
#: pkg/company/admin.go:226 #: pkg/company/admin.go:226 pkg/booking/public.go:531
msgid "Postal code can not be empty." msgid "Postcode can not be empty."
msgstr "No podeu deixar el codi postal en blanc." msgstr "No podeu deixar el codi postal en blanc."
#: pkg/company/admin.go:227 pkg/booking/public.go:529 #: pkg/company/admin.go:227 pkg/booking/public.go:532
msgid "This postal code is not valid." msgid "This postcode is not valid."
msgstr "Aquest codi postal no és vàlid." msgstr "Aquest codi postal no és vàlid."
#: pkg/company/admin.go:231 #: pkg/company/admin.go:231
@ -2744,127 +2740,145 @@ msgctxt "filename"
msgid "bookings.ods" msgid "bookings.ods"
msgstr "reserves.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." msgid "Arrival date must be a valid date."
msgstr "La data darribada ha de ser una data vàlida." 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." msgid "Departure date must be a valid date."
msgstr "La data de sortida ha de ser una data vàlida." 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" msgid "Arrival date can not be empty"
msgstr "No podeu deixar la data darribada en blanc." msgstr "No podeu deixar la data darribada en blanc."
#: pkg/booking/public.go:305 #: pkg/booking/public.go:306
#, c-format #, c-format
msgid "Arrival date must be %s or after." msgid "Arrival date must be %s or after."
msgstr "La data darribada ha de ser igual o posterior a %s." msgstr "La data darribada ha de ser igual o posterior a %s."
#: pkg/booking/public.go:306 #: pkg/booking/public.go:307
#, c-format #, c-format
msgid "Arrival date must be %s or before." msgid "Arrival date must be %s or before."
msgstr "La data darribada ha de ser anterior o igual a %s." 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" msgid "Departure date can not be empty"
msgstr "No podeu deixar la data de sortida en blanc." msgstr "No podeu deixar la data de sortida en blanc."
#: pkg/booking/public.go:312 #: pkg/booking/public.go:313
#, c-format #, c-format
msgid "Departure date must be %s or after." msgid "Departure date must be %s or after."
msgstr "La data de sortida ha de ser igual o posterior a %s." 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 #, c-format
msgid "Departure date must be %s or before." msgid "Departure date must be %s or before."
msgstr "La data de sortida ha de ser anterior o igual a %s." 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 #, c-format
msgid "There can be at most %d guests in this accommodation." msgid "There can be at most %d guests in this accommodation."
msgstr "Hi poden haver com a màxim %d convidats a aquest allotjament." 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" msgid "Number of adults can not be empty"
msgstr "No podeu deixar el número dadults en blanc." 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." msgid "Number of adults must be an integer."
msgstr "El número dadults ha de ser enter." 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." msgid "There must be at least one adult."
msgstr "Hi ha dhaver com a mínim un 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" msgid "Number of teenagers can not be empty"
msgstr "No podeu deixar el número dadolescents en blanc." 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." msgid "Number of teenagers must be an integer."
msgstr "El número dadolescents ha de ser enter." 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." msgid "Number of teenagers can not be negative."
msgstr "El número dadolescents no pot ser negatiu." 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" msgid "Number of children can not be empty"
msgstr "No podeu deixar el número de nens en blanc." 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." msgid "Number of children must be an integer."
msgstr "El número de nens ha de ser enter." 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." msgid "Number of children can not be negative."
msgstr "El número de nens no pot ser negatiu." 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" msgid "Number of dogs can not be empty"
msgstr "No podeu deixar el número de gossos en blanc." 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." msgid "Number of dogs must be an integer."
msgstr "El número de gossos ha de ser enter." 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." msgid "Number of dogs can not be negative."
msgstr "El número de gossos no pot ser negatiu." msgstr "El número de gossos no pot ser negatiu."
#: pkg/booking/public.go:463 #: pkg/booking/public.go:464
#, c-format #, c-format
msgid "%s can not be empty" msgid "%s can not be empty"
msgstr "No podeu deixar %s en blanc." msgstr "No podeu deixar %s en blanc."
#: pkg/booking/public.go:464 #: pkg/booking/public.go:465
#, c-format #, c-format
msgid "%s must be an integer." msgid "%s must be an integer."
msgstr "%s ha de ser un número enter." msgstr "%s ha de ser un número enter."
#: pkg/booking/public.go:465 #: pkg/booking/public.go:466
#, c-format #, c-format
msgid "%s must be %d or greater." msgid "%s must be %d or greater."
msgstr "El valor de %s ha de ser com a mínim %d." 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 #, c-format
msgid "%s must be at most %d." msgid "%s must be at most %d."
msgstr "El valor de %s ha de ser com a màxim %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." msgid "Full name can not be empty."
msgstr "No podeu deixar el nom i els cognoms en blanc." 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." msgid "Full name must have at least one letter."
msgstr "El nom i els cognoms han de tenir com a mínim una lletra." 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." msgid "It is mandatory to agree to the reservation conditions."
msgstr "És obligatori acceptar les condicions de reserves." 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" #~ msgctxt "action"
#~ msgid "Pay" #~ msgid "Pay"
#~ msgstr "Paga" #~ msgstr "Paga"

148
po/es.po
View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: camper\n" "Project-Id-Version: camper\n"
"Report-Msgid-Bugs-To: jordi@tandem.blog\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" "PO-Revision-Date: 2024-02-06 10:04+0100\n"
"Last-Translator: jordi fita mas <jordi@tandem.blog>\n" "Last-Translator: jordi fita mas <jordi@tandem.blog>\n"
"Language-Team: Spanish <es@tp.org.es>\n" "Language-Team: Spanish <es@tp.org.es>\n"
@ -256,7 +256,7 @@ msgid "Discover"
msgstr "Descubre" msgstr "Descubre"
#: web/templates/public/campsite/type.gohtml:49 #: web/templates/public/campsite/type.gohtml:49
#: web/templates/public/booking/fields.gohtml:266 #: web/templates/public/booking/fields.gohtml:268
msgctxt "action" msgctxt "action"
msgid "Book" msgid "Book"
msgstr "Reservar" msgstr "Reservar"
@ -645,6 +645,10 @@ msgstr "Apertura"
msgid "<abbr title=\"Catalonia Tourism Registry\">RTC</abbr> <abbr title=\"Number\">#</abbr>%s" 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" 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/public/booking/fields.gohtml:14
#: web/templates/admin/payment/details.gohtml:44 #: web/templates/admin/payment/details.gohtml:44
msgctxt "title" msgctxt "title"
@ -715,19 +719,23 @@ msgid "Full name"
msgstr "Nombre y apellidos" msgstr "Nombre y apellidos"
#: web/templates/public/booking/fields.gohtml:157 #: web/templates/public/booking/fields.gohtml:157
#: web/templates/admin/payment/details.gohtml:113
#: web/templates/admin/taxDetails.gohtml:69
msgctxt "input" msgctxt "input"
msgid "Address (optional)" msgid "Address"
msgstr "Dirección (opcional)" msgstr "Dirección"
#: web/templates/public/booking/fields.gohtml:166 #: web/templates/public/booking/fields.gohtml:166
#: web/templates/admin/payment/details.gohtml:117
#: web/templates/admin/taxDetails.gohtml:93
msgctxt "input" msgctxt "input"
msgid "Postcode (optional)" msgid "Postcode"
msgstr "Código postal (opcional)" msgstr "Código postal"
#: web/templates/public/booking/fields.gohtml:175 #: web/templates/public/booking/fields.gohtml:175
msgctxt "input" msgctxt "input"
msgid "Town or village (optional)" msgid "Town or village"
msgstr "Población (opcional)" msgstr "Población"
#: web/templates/public/booking/fields.gohtml:184 #: web/templates/public/booking/fields.gohtml:184
#: web/templates/admin/payment/details.gohtml:125 #: web/templates/admin/payment/details.gohtml:125
@ -760,31 +768,31 @@ msgctxt "input"
msgid "ACSI card? (optional)" msgid "ACSI card? (optional)"
msgstr "¿Tarjeta ACSI? (opcional)" msgstr "¿Tarjeta ACSI? (opcional)"
#: web/templates/public/booking/fields.gohtml:222 #: web/templates/public/booking/fields.gohtml:223
msgctxt "input" msgctxt "input"
msgid "I have read and I accept %[1]sthe reservation conditions%[2]s" 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" 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" msgctxt "cart"
msgid "Total" msgid "Total"
msgstr "Total" msgstr "Total"
#: web/templates/public/booking/fields.gohtml:244 #: web/templates/public/booking/fields.gohtml:246
#: web/templates/admin/payment/details.gohtml:84 #: web/templates/admin/payment/details.gohtml:84
msgctxt "cart" msgctxt "cart"
msgid "Down payment" msgid "Down payment"
msgstr "A cuenta" 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." 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." 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." 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." 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." msgid "See <%s>our conditions</%s> for more information."
msgstr "Consultad <%s>nuestras condiciones</%s> para más información." msgstr "Consultad <%s>nuestras condiciones</%s> para más información."
@ -884,13 +892,11 @@ msgid "Payment"
msgstr "Pago" msgstr "Pago"
#: web/templates/admin/payment/details.gohtml:30 #: web/templates/admin/payment/details.gohtml:30
#, fuzzy
msgctxt "payment header" msgctxt "payment header"
msgid "Created at" msgid "Created at"
msgstr "Creado el" msgstr "Creado el"
#: web/templates/admin/payment/details.gohtml:34 #: web/templates/admin/payment/details.gohtml:34
#, fuzzy
msgctxt "payment header" msgctxt "payment header"
msgid "Last updated at" msgid "Last updated at"
msgstr "Actualizado por última vez el" msgstr "Actualizado por última vez el"
@ -918,18 +924,6 @@ msgctxt "title"
msgid "Campsite Type Options" msgid "Campsite Type Options"
msgstr "Opciones del tipo de alojamiento" 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/payment/details.gohtml:121
#: web/templates/admin/taxDetails.gohtml:77 #: web/templates/admin/taxDetails.gohtml:77
msgctxt "input" 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." 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/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." msgid "Email can not be empty."
msgstr "No podéis dejar el correo-e en blanco." 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/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." 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." 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)" msgid "Children (aged 2 to 10)"
msgstr "Niños (de 2 a 10 años)" msgstr "Niños (de 2 a 10 años)"
#: pkg/campsite/admin.go:275 pkg/booking/public.go:171 #: pkg/campsite/admin.go:275 pkg/booking/public.go:172
#: pkg/booking/public.go:226 #: pkg/booking/public.go:227
msgid "Selected campsite type is not valid." msgid "Selected campsite type is not valid."
msgstr "El tipo de alojamiento escogido no es válido." 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/." 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/." 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." msgid "Selected country is not valid."
msgstr "El país escogido no es válido." 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." msgid "This VAT number is not valid."
msgstr "Este NIF no es válido." 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." msgid "Phone can not be empty."
msgstr "No podéis dejar el teléfono en blanco." 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." msgid "This phone number is not valid."
msgstr "Este teléfono no es válido." 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." msgid "Address can not be empty."
msgstr "No podéis dejar la dirección en blanco." 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." msgid "Province can not be empty."
msgstr "No podéis dejar la provincia en blanco." msgstr "No podéis dejar la provincia en blanco."
#: pkg/company/admin.go:226 #: pkg/company/admin.go:226 pkg/booking/public.go:531
msgid "Postal code can not be empty." msgid "Postcode can not be empty."
msgstr "No podéis dejar el código postal en blanco." msgstr "No podéis dejar el código postal en blanco."
#: pkg/company/admin.go:227 pkg/booking/public.go:529 #: pkg/company/admin.go:227 pkg/booking/public.go:532
msgid "This postal code is not valid." msgid "This postcode is not valid."
msgstr "Este código postal no es válido." msgstr "Este código postal no es válido."
#: pkg/company/admin.go:231 #: pkg/company/admin.go:231
@ -2746,127 +2740,145 @@ msgctxt "filename"
msgid "bookings.ods" msgid "bookings.ods"
msgstr "reservas.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." msgid "Arrival date must be a valid date."
msgstr "La fecha de llegada tiene que ser una fecha válida." 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." msgid "Departure date must be a valid date."
msgstr "La fecha de partida tiene que ser una fecha válida." 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" msgid "Arrival date can not be empty"
msgstr "No podéis dejar la fecha de llegada en blanco." msgstr "No podéis dejar la fecha de llegada en blanco."
#: pkg/booking/public.go:305 #: pkg/booking/public.go:306
#, c-format #, c-format
msgid "Arrival date must be %s or after." msgid "Arrival date must be %s or after."
msgstr "La fecha de llegada tiene que ser igual o posterior a %s." 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 #, c-format
msgid "Arrival date must be %s or before." msgid "Arrival date must be %s or before."
msgstr "La fecha de llegada tiene que ser anterior o igual a %s." 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" msgid "Departure date can not be empty"
msgstr "No podéis dejar la fecha de partida en blanco." msgstr "No podéis dejar la fecha de partida en blanco."
#: pkg/booking/public.go:312 #: pkg/booking/public.go:313
#, c-format #, c-format
msgid "Departure date must be %s or after." msgid "Departure date must be %s or after."
msgstr "La fecha de partida tiene que igual o posterior a %s." msgstr "La fecha de partida tiene que igual o posterior a %s."
#: pkg/booking/public.go:313 #: pkg/booking/public.go:314
#, c-format #, c-format
msgid "Departure date must be %s or before." msgid "Departure date must be %s or before."
msgstr "La fecha de partida tiene que ser anterior o igual a %s." 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 #, c-format
msgid "There can be at most %d guests in this accommodation." msgid "There can be at most %d guests in this accommodation."
msgstr "Solo puede haber como máximo %d invitados en este alojamiento." 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" msgid "Number of adults can not be empty"
msgstr "No podéis dejar el número de adultos blanco." 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." msgid "Number of adults must be an integer."
msgstr "El número de adultos tiene que ser entero." 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." msgid "There must be at least one adult."
msgstr "Tiene que haber como mínimo un adulto." 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" msgid "Number of teenagers can not be empty"
msgstr "No podéis dejar el número de adolescentes en blanco." 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." msgid "Number of teenagers must be an integer."
msgstr "El número de adolescentes tiene que ser entero." 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." msgid "Number of teenagers can not be negative."
msgstr "El número de adolescentes no puede ser negativo." 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" msgid "Number of children can not be empty"
msgstr "No podéis dejar el número de niños en blanco." 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." msgid "Number of children must be an integer."
msgstr "El número de niños tiene que ser entero." 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." msgid "Number of children can not be negative."
msgstr "El número de niños no puede ser negativo." 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" msgid "Number of dogs can not be empty"
msgstr "No podéis dejar el número de perros en blanco." 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." msgid "Number of dogs must be an integer."
msgstr "El número de perros tiene que ser entero." 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." msgid "Number of dogs can not be negative."
msgstr "El número de perros no puede ser negativo." msgstr "El número de perros no puede ser negativo."
#: pkg/booking/public.go:463 #: pkg/booking/public.go:464
#, c-format #, c-format
msgid "%s can not be empty" msgid "%s can not be empty"
msgstr "No podéis dejar %s en blanco." msgstr "No podéis dejar %s en blanco."
#: pkg/booking/public.go:464 #: pkg/booking/public.go:465
#, c-format #, c-format
msgid "%s must be an integer." msgid "%s must be an integer."
msgstr "%s tiene que ser un número entero." msgstr "%s tiene que ser un número entero."
#: pkg/booking/public.go:465 #: pkg/booking/public.go:466
#, c-format #, c-format
msgid "%s must be %d or greater." msgid "%s must be %d or greater."
msgstr "%s tiene que ser como mínimo %d." msgstr "%s tiene que ser como mínimo %d."
#: pkg/booking/public.go:466 #: pkg/booking/public.go:467
#, c-format #, c-format
msgid "%s must be at most %d." msgid "%s must be at most %d."
msgstr "%s tiene que ser como máximo %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." msgid "Full name can not be empty."
msgstr "No podéis dejar el nombre y los apellidos en blanco." 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." msgid "Full name must have at least one letter."
msgstr "El nombre y los apellidos tienen que tener como mínimo una letra." 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." msgid "It is mandatory to agree to the reservation conditions."
msgstr "Es obligatorio aceptar las condiciones de reserva." 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" #~ msgctxt "action"
#~ msgid "Pay" #~ msgid "Pay"
#~ msgstr "Pagar" #~ msgstr "Pagar"

148
po/fr.po
View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: camper\n" "Project-Id-Version: camper\n"
"Report-Msgid-Bugs-To: jordi@tandem.blog\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" "PO-Revision-Date: 2024-02-06 10:05+0100\n"
"Last-Translator: Oriol Carbonell <info@oriolcarbonell.cat>\n" "Last-Translator: Oriol Carbonell <info@oriolcarbonell.cat>\n"
"Language-Team: French <traduc@traduc.org>\n" "Language-Team: French <traduc@traduc.org>\n"
@ -256,7 +256,7 @@ msgid "Discover"
msgstr "Découvrir" msgstr "Découvrir"
#: web/templates/public/campsite/type.gohtml:49 #: web/templates/public/campsite/type.gohtml:49
#: web/templates/public/booking/fields.gohtml:266 #: web/templates/public/booking/fields.gohtml:268
msgctxt "action" msgctxt "action"
msgid "Book" msgid "Book"
msgstr "Réserver" msgstr "Réserver"
@ -645,6 +645,10 @@ msgstr "Ouverture"
msgid "<abbr title=\"Catalonia Tourism Registry\">RTC</abbr> <abbr title=\"Number\">#</abbr>%s" msgid "<abbr title=\"Catalonia Tourism Registry\">RTC</abbr> <abbr title=\"Number\">#</abbr>%s"
msgstr "<abbr title=\"Registre du tourisme de Catalogne\"># RTC</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/public/booking/fields.gohtml:14
#: web/templates/admin/payment/details.gohtml:44 #: web/templates/admin/payment/details.gohtml:44
msgctxt "title" msgctxt "title"
@ -715,19 +719,23 @@ msgid "Full name"
msgstr "Nom et prénom" msgstr "Nom et prénom"
#: web/templates/public/booking/fields.gohtml:157 #: web/templates/public/booking/fields.gohtml:157
#: web/templates/admin/payment/details.gohtml:113
#: web/templates/admin/taxDetails.gohtml:69
msgctxt "input" msgctxt "input"
msgid "Address (optional)" msgid "Address"
msgstr "Adresse (Facultatif)" msgstr "Adresse"
#: web/templates/public/booking/fields.gohtml:166 #: web/templates/public/booking/fields.gohtml:166
#: web/templates/admin/payment/details.gohtml:117
#: web/templates/admin/taxDetails.gohtml:93
msgctxt "input" msgctxt "input"
msgid "Postcode (optional)" msgid "Postcode"
msgstr "Code postal (Facultatif)" msgstr "Code postal"
#: web/templates/public/booking/fields.gohtml:175 #: web/templates/public/booking/fields.gohtml:175
msgctxt "input" msgctxt "input"
msgid "Town or village (optional)" msgid "Town or village"
msgstr "Ville (Facultatif)" msgstr "Ville"
#: web/templates/public/booking/fields.gohtml:184 #: web/templates/public/booking/fields.gohtml:184
#: web/templates/admin/payment/details.gohtml:125 #: web/templates/admin/payment/details.gohtml:125
@ -760,31 +768,31 @@ msgctxt "input"
msgid "ACSI card? (optional)" msgid "ACSI card? (optional)"
msgstr "Carte ACSI ? (Facultatif)" msgstr "Carte ACSI ? (Facultatif)"
#: web/templates/public/booking/fields.gohtml:222 #: web/templates/public/booking/fields.gohtml:223
msgctxt "input" msgctxt "input"
msgid "I have read and I accept %[1]sthe reservation conditions%[2]s" 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" 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" msgctxt "cart"
msgid "Total" msgid "Total"
msgstr "Totale" msgstr "Totale"
#: web/templates/public/booking/fields.gohtml:244 #: web/templates/public/booking/fields.gohtml:246
#: web/templates/admin/payment/details.gohtml:84 #: web/templates/admin/payment/details.gohtml:84
msgctxt "cart" msgctxt "cart"
msgid "Down payment" msgid "Down payment"
msgstr "Acompte" 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." 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." 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." 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." 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." msgid "See <%s>our conditions</%s> for more information."
msgstr "Consultez <%s>nos conditions</%s> pour plus dinformations." msgstr "Consultez <%s>nos conditions</%s> pour plus dinformations."
@ -884,13 +892,11 @@ msgid "Payment"
msgstr "Paiement" msgstr "Paiement"
#: web/templates/admin/payment/details.gohtml:30 #: web/templates/admin/payment/details.gohtml:30
#, fuzzy
msgctxt "payment header" msgctxt "payment header"
msgid "Created at" msgid "Created at"
msgstr "Créé à" msgstr "Créé à"
#: web/templates/admin/payment/details.gohtml:34 #: web/templates/admin/payment/details.gohtml:34
#, fuzzy
msgctxt "payment header" msgctxt "payment header"
msgid "Last updated at" msgid "Last updated at"
msgstr "Dernière mise à jour à" msgstr "Dernière mise à jour à"
@ -918,18 +924,6 @@ msgctxt "title"
msgid "Campsite Type Options" msgid "Campsite Type Options"
msgstr "Options de type demplacement de camping" 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/payment/details.gohtml:121
#: web/templates/admin/taxDetails.gohtml:77 #: web/templates/admin/taxDetails.gohtml:77
msgctxt "input" 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." 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/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." msgid "Email can not be empty."
msgstr "Le-mail ne peut pas être vide." msgstr "Le-mail ne peut pas être vide."
#: pkg/app/login.go:57 pkg/app/user.go:247 pkg/company/admin.go:218 #: 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." 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." 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)" msgid "Children (aged 2 to 10)"
msgstr "Enfants (de 2 à 10 anys)" msgstr "Enfants (de 2 à 10 anys)"
#: pkg/campsite/admin.go:275 pkg/booking/public.go:171 #: pkg/campsite/admin.go:275 pkg/booking/public.go:172
#: pkg/booking/public.go:226 #: pkg/booking/public.go:227
msgid "Selected campsite type is not valid." msgid "Selected campsite type is not valid."
msgstr "Le type demplacement sélectionné nest pas valide." 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/." 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/." 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." msgid "Selected country is not valid."
msgstr "Le pays sélectionné nest pas valide." 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." msgid "This VAT number is not valid."
msgstr "Ce numéro de TVA nest pas valide." 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." msgid "Phone can not be empty."
msgstr "Le téléphone ne peut pas être vide." 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." msgid "This phone number is not valid."
msgstr "Ce numéro de téléphone nest pas valide." 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." msgid "Address can not be empty."
msgstr "Ladresse ne peut pas être vide." 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." msgid "Province can not be empty."
msgstr "La province ne peut pas être vide." msgstr "La province ne peut pas être vide."
#: pkg/company/admin.go:226 #: pkg/company/admin.go:226 pkg/booking/public.go:531
msgid "Postal code can not be empty." msgid "Postcode can not be empty."
msgstr "Le code postal ne peut pas être vide." msgstr "Le code postal ne peut pas être vide."
#: pkg/company/admin.go:227 pkg/booking/public.go:529 #: pkg/company/admin.go:227 pkg/booking/public.go:532
msgid "This postal code is not valid." msgid "This postcode is not valid."
msgstr "Ce code postal nest pas valide." msgstr "Ce code postal nest pas valide."
#: pkg/company/admin.go:231 #: pkg/company/admin.go:231
@ -2746,127 +2740,145 @@ msgctxt "filename"
msgid "bookings.ods" msgid "bookings.ods"
msgstr "reservations.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." msgid "Arrival date must be a valid date."
msgstr "La date darrivée doit être une date valide." 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." msgid "Departure date must be a valid date."
msgstr "La date de départ doit être une date valide." 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" msgid "Arrival date can not be empty"
msgstr "La date darrivée ne peut pas être vide" msgstr "La date darrivée ne peut pas être vide"
#: pkg/booking/public.go:305 #: pkg/booking/public.go:306
#, c-format #, c-format
msgid "Arrival date must be %s or after." msgid "Arrival date must be %s or after."
msgstr "La date darrivée doit être égale ou postérieure à %s." msgstr "La date darrivée doit être égale ou postérieure à %s."
#: pkg/booking/public.go:306 #: pkg/booking/public.go:307
#, c-format #, c-format
msgid "Arrival date must be %s or before." msgid "Arrival date must be %s or before."
msgstr "La date darrivée doit être antérieure ou égale à %s." 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" msgid "Departure date can not be empty"
msgstr "La date de départ ne peut pas être vide" msgstr "La date de départ ne peut pas être vide"
#: pkg/booking/public.go:312 #: pkg/booking/public.go:313
#, c-format #, c-format
msgid "Departure date must be %s or after." msgid "Departure date must be %s or after."
msgstr "La date de départ doit être égale ou postérieure à %s." 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 #, c-format
msgid "Departure date must be %s or before." msgid "Departure date must be %s or before."
msgstr "La date de départ doit être antérieure ou égale à %s." 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 #, c-format
msgid "There can be at most %d guests in this accommodation." 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." 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" msgid "Number of adults can not be empty"
msgstr "Le nombre dadultes ne peut pas être vide." 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." msgid "Number of adults must be an integer."
msgstr "Le nombre dadultes doit être un entier." 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." msgid "There must be at least one adult."
msgstr "Il doit y avoir au moins un adulte." 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" msgid "Number of teenagers can not be empty"
msgstr "Le nombre dadolescents ne peut pas être vide." 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." msgid "Number of teenagers must be an integer."
msgstr "Le nombre dadolescents doit être un entier." 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." msgid "Number of teenagers can not be negative."
msgstr "Le nombre dadolescents ne peut pas être négatif." 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" msgid "Number of children can not be empty"
msgstr "Le nombre denfants ne peut pas être vide." 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." msgid "Number of children must be an integer."
msgstr "Le nombre denfants doit être un entier." 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." msgid "Number of children can not be negative."
msgstr "Le nombre denfants ne peut pas être négatif." 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" msgid "Number of dogs can not be empty"
msgstr "Le nombre de chiens ne peut pas être vide." 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." msgid "Number of dogs must be an integer."
msgstr "Le nombre de chiens nuits être un entier." 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." msgid "Number of dogs can not be negative."
msgstr "Le nombre de chiens ne peut pas être négatif." msgstr "Le nombre de chiens ne peut pas être négatif."
#: pkg/booking/public.go:463 #: pkg/booking/public.go:464
#, c-format #, c-format
msgid "%s can not be empty" msgid "%s can not be empty"
msgstr "%s ne peut pas être vide" msgstr "%s ne peut pas être vide"
#: pkg/booking/public.go:464 #: pkg/booking/public.go:465
#, c-format #, c-format
msgid "%s must be an integer." msgid "%s must be an integer."
msgstr "%s doit être un entier." msgstr "%s doit être un entier."
#: pkg/booking/public.go:465 #: pkg/booking/public.go:466
#, c-format #, c-format
msgid "%s must be %d or greater." msgid "%s must be %d or greater."
msgstr "%s doit être %d ou plus." msgstr "%s doit être %d ou plus."
#: pkg/booking/public.go:466 #: pkg/booking/public.go:467
#, c-format #, c-format
msgid "%s must be at most %d." msgid "%s must be at most %d."
msgstr "%s doit être tout au plus %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." msgid "Full name can not be empty."
msgstr "Le nom complet ne peut pas être vide." 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." msgid "Full name must have at least one letter."
msgstr "Le nom complet doit comporter au moins une lettre." 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." msgid "It is mandatory to agree to the reservation conditions."
msgstr "Il est obligatoire daccepter les conditions de réservation." 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" #~ msgctxt "action"
#~ msgid "Pay" #~ msgid "Pay"
#~ msgstr "Payer" #~ msgstr "Payer"

View File

@ -103,6 +103,7 @@ html {
--accent: #00aa7d; --accent: #00aa7d;
--accent-2: #FFE37F; --accent-2: #FFE37F;
--accent-3: #9adff4; --accent-3: #9adff4;
--error: #871d1f;
--clar-rgb: 239, 237, 236; --clar-rgb: 239, 237, 236;
--clar: rgb(var(--clar-rgb)); --clar: rgb(var(--clar-rgb));
} }
@ -1272,14 +1273,6 @@ select {
padding: 20px; padding: 20px;
} }
/*
label {
display: flex;
align-items: center;
gap: 20px;
}
*/
fieldset { fieldset {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@ -1299,6 +1292,20 @@ button[disabled] {
border-color: var(--contrast-3); 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 */ /* radio buttins + checkbox */
/* Context for relative positioning */ /* Context for relative positioning */

View File

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

View File

@ -32,8 +32,8 @@
max="{{ formatDateAttr .MaxDate }}" max="{{ formatDateAttr .MaxDate }}"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }} name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br> ><br>
</label>
{{ template "error-message" . }} {{ template "error-message" . }}
</label>
{{- end }} {{- end }}
{{ with .DepartureDate -}} {{ with .DepartureDate -}}
<label> <label>
@ -43,8 +43,8 @@
max="{{ formatDateAttr .MaxDate }}" max="{{ formatDateAttr .MaxDate }}"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }} name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br> ><br>
</label>
{{ template "error-message" . }} {{ template "error-message" . }}
</label>
{{- end }} {{- end }}
</fieldset> </fieldset>
{{- end }} {{- end }}
@ -62,8 +62,8 @@
min="1"{{if not $guests.OverflowAllowed }} max="{{ $guests.MaxGuests }}"{{ end }} min="1"{{if not $guests.OverflowAllowed }} max="{{ $guests.MaxGuests }}"{{ end }}
{{ template "error-attrs" . }} {{ template "error-attrs" . }}
><br> ><br>
</label>
{{ template "error-message" . }} {{ template "error-message" . }}
</label>
{{- end }} {{- end }}
{{ with .NumberTeenagers -}} {{ with .NumberTeenagers -}}
<label> <label>
@ -73,8 +73,8 @@
min="0"{{if not $guests.OverflowAllowed }} max="{{ $guests.MaxGuests | dec }}"{{ end }} min="0"{{if not $guests.OverflowAllowed }} max="{{ $guests.MaxGuests | dec }}"{{ end }}
{{ template "error-attrs" . }} {{ template "error-attrs" . }}
><br> ><br>
</label>
{{ template "error-message" . }} {{ template "error-message" . }}
</label>
{{- end }} {{- end }}
{{ with .NumberChildren -}} {{ with .NumberChildren -}}
<label> <label>
@ -84,8 +84,8 @@
min="0"{{if not $guests.OverflowAllowed }} max="{{ $guests.MaxGuests | dec }}"{{ end }} min="0"{{if not $guests.OverflowAllowed }} max="{{ $guests.MaxGuests | dec }}"{{ end }}
{{ template "error-attrs" . }} {{ template "error-attrs" . }}
><br> ><br>
</label>
{{ template "error-message" . }} {{ template "error-message" . }}
</label>
{{- end }} {{- end }}
{{ if .Overflow -}} {{ 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> <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" name="{{ .Name }}" value="{{ .Val }}" min="0"
{{ template "error-attrs" . }} {{ template "error-attrs" . }}
><br> ><br>
</label>
{{ template "error-message" . }} {{ template "error-message" . }}
</label>
{{- end }} {{- end }}
{{- else -}} {{- else -}}
<small>{{( gettext "Note: This accommodation does <strong>not</strong> allow dogs.") | raw }}</small> <small>{{( gettext "Note: This accommodation does <strong>not</strong> allow dogs.") | raw }}</small>
@ -124,8 +124,8 @@
<input type="text" <input type="text"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }} name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br> ><br>
</label>
{{ template "error-message" . }} {{ template "error-message" . }}
</label>
{{- end }} {{- end }}
{{ range .Options -}} {{ range .Options -}}
<label> <label>
@ -135,8 +135,8 @@
min="{{ .Min }}" max="{{ .Max }}" min="{{ .Min }}" max="{{ .Max }}"
{{ template "error-attrs" .Input }} {{ template "error-attrs" .Input }}
><br> ><br>
</label>
{{ template "error-message" .Input }} {{ template "error-message" .Input }}
</label>
{{- end }} {{- end }}
</fieldset> </fieldset>
{{- end }} {{- end }}
@ -149,35 +149,35 @@
<input type="text" required autocomplete="name" minlength="2" <input type="text" required autocomplete="name" minlength="2"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }} name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br> ><br>
</label>
{{ template "error-message" . }} {{ template "error-message" . }}
</label>
{{- end }} {{- end }}
{{ with .Address -}} {{ with .Address -}}
<label> <label>
{{( pgettext "Address (optional)" "input" )}}<br> {{( pgettext "Address" "input" )}}<br>
<input type="text" autocomplete="billing street-address" <input type="text" required autocomplete="billing street-address"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }} name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br> ><br>
</label>
{{ template "error-message" . }} {{ template "error-message" . }}
</label>
{{- end }} {{- end }}
{{ with .PostalCode -}} {{ with .PostalCode -}}
<label> <label>
{{( pgettext "Postcode (optional)" "input" )}}<br> {{( pgettext "Postcode" "input" )}}<br>
<input type="text" autocomplete="billing postal-code" <input type="text" required autocomplete="billing postal-code"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }} name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br> ><br>
</label>
{{ template "error-message" . }} {{ template "error-message" . }}
</label>
{{- end }} {{- end }}
{{ with .City -}} {{ with .City -}}
<label> <label>
{{( pgettext "Town or village (optional)" "input" )}}<br> {{( pgettext "Town or village" "input" )}}<br>
<input type="text" <input type="text" required
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }} name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br> ><br>
</label>
{{ template "error-message" . }} {{ template "error-message" . }}
</label>
{{- end }} {{- end }}
{{ with .Country -}} {{ with .Country -}}
<label> <label>
@ -187,8 +187,8 @@
<option>{{( gettext "Choose a country" )}}</option> <option>{{( gettext "Choose a country" )}}</option>
{{ template "error-attrs" . }}>{{ template "list-options" . }} {{ template "error-attrs" . }}>{{ template "list-options" . }}
</select><br> </select><br>
</label>
{{ template "error-message" . }} {{ template "error-message" . }}
</label>
{{- end }} {{- end }}
{{ with .Email -}} {{ with .Email -}}
<label> <label>
@ -196,8 +196,8 @@
<input type="email" required autocomplete="email" <input type="email" required autocomplete="email"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }} name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br> ><br>
</label>
{{ template "error-message" . }} {{ template "error-message" . }}
</label>
{{- end }} {{- end }}
{{ with .Phone -}} {{ with .Phone -}}
<label> <label>
@ -205,23 +205,25 @@
<input type="tel" required autocomplete="tel" <input type="tel" required autocomplete="tel"
name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }} name="{{ .Name }}" value="{{ .Val }}" {{ template "error-attrs" . }}
><br> ><br>
</label>
{{ template "error-message" . }} {{ template "error-message" . }}
</label>
{{- end }} {{- end }}
{{ with .ACSICard -}} {{ with .ACSICard -}}
<label class="full-row"> <label class="full-row">
<input type="checkbox" name="{{ .Name }}" {{ if .Checked}}checked{{ end }} <input type="checkbox" name="{{ .Name }}" {{ if .Checked}}checked{{ end }}
{{ template "error-attrs" . }} {{ template "error-attrs" . }}
> {{( pgettext "ACSI card? (optional)" "input" )}}</label><br> > {{( pgettext "ACSI card? (optional)" "input" )}}<br>
{{ template "error-message" . }} {{ template "error-message" . }}
</label>
{{- end }} {{- end }}
{{ with .Agreement -}} {{ with .Agreement -}}
<label class="full-row"> <label class="full-row">
<input type="checkbox" required name="{{ .Name }}" {{ if .Checked}}checked{{ end }} <input type="checkbox" required name="{{ .Name }}" {{ if .Checked}}checked{{ end }}
{{ template "error-attrs" . }} {{ 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 }} > {{ 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" . }} {{ template "error-message" . }}
</label>
{{- end }} {{- end }}
</fieldset> </fieldset>
{{- end }} {{- end }}

View File

@ -10,6 +10,11 @@
{{ define "content" -}} {{ define "content" -}}
{{- /*gotype: dev.tandem.ws/tandem/camper/pkg/booking.publicPage*/ -}} {{- /*gotype: dev.tandem.ws/tandem/camper/pkg/booking.publicPage*/ -}}
<h2>{{ template "title" . }}</h2> <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" <form id="booking" action="/{{ currentLocale }}/booking" method="post"
data-hx-include="this" data-hx-include="this"
data-hx-target="this" data-hx-target="this"