Make email mandatory + sign in translations
All checks were successful
CI / scan_ruby (push) Successful in 17s
CI / scan_js (push) Successful in 12s
CI / lint (push) Successful in 11s
CI / test (push) Successful in 26s

This commit is contained in:
sto 2025-06-19 16:54:47 +02:00
parent 67492cdd15
commit ac83a599f3
4 changed files with 32 additions and 9 deletions

View File

@ -23,5 +23,6 @@ class User < ApplicationRecord
normalizes :email_address, with: ->(e) { e.strip.downcase } normalizes :email_address, with: ->(e) { e.strip.downcase }
validates :username, presence: true, uniqueness: true validates :username, presence: true, uniqueness: true
validates :email_address, presence: true, uniqueness: true
validates :lang, inclusion: { in: Languages::AVAILABLE_LANGUAGES.map { |lang| lang[:id] } } validates :lang, inclusion: { in: Languages::AVAILABLE_LANGUAGES.map { |lang| lang[:id] } }
end end

View File

@ -4,10 +4,12 @@
.form-floating .form-floating
= form.email_field :email_address, autocomplete: "username", required: true, autofocus: true, class: "form-control" = form.email_field :email_address, autocomplete: "username", required: true, autofocus: true, class: "form-control"
= form.label :email_address, class: "required" = form.label :email_address, class: "required"
= t("activerecord.attributes.session.email_address")
.row.mb-3 .row.mb-3
.col .col
.form-floating .form-floating
= form.password_field :password, autocomplete: "current-password", required: true, autofocus: true, class: "form-control", maxlength: 72 = form.password_field :password, autocomplete: "current-password", required: true, autofocus: true, class: "form-control", maxlength: 72
= form.label :password, class: "required" = form.label :password, class: "required"
= t("activerecord.attributes.session.password")
= form.submit "Sign in" = form.submit t("helpers.buttons.sign_in")

View File

@ -68,11 +68,14 @@ en:
brand: "Brand" brand: "Brand"
image: "Image" image: "Image"
name: "Name" name: "Name"
session:
email_address: Email address
password: Password
user: user:
username: "Username" username: Username
email_address: "Email address" email_address: Email address
lang: "Language" lang: Language
password: "New password" password: New password
errors: errors:
models: models:
completion: completion:
@ -100,6 +103,12 @@ en:
attributes: attributes:
name: name:
blank: The puzzle name cannot be empty blank: The puzzle name cannot be empty
user:
attributes:
email_address:
blank: Your email cannot be empty
username:
blank: Your username cannot be empty
completions: completions:
edit: edit:
title: "Edit completion" title: "Edit completion"
@ -160,6 +169,7 @@ en:
edit: "Edit" edit: "Edit"
import: CSV Import import: CSV Import
open: Open open: Open
sign_in: Sign in
save: Save save: Save
field: Field field: Field
none: No field selected none: No field selected

View File

@ -39,11 +39,14 @@ fr:
brand: "Marque" brand: "Marque"
image: "Image" image: "Image"
name: "Nom" name: "Nom"
session:
email_address: Adresse email
password: Mot de passe
user: user:
username: "Nom d'utilisateur.ice" username: Nom d'utilisateur.ice
email_address: "Adresse email" email_address: Adresse email
lang: "Langue de l'interface" lang: Langue de l'interface
password: "Nouveau mot de passe" password: Nouveau mot de passe
errors: errors:
models: models:
completion: completion:
@ -71,6 +74,12 @@ fr:
attributes: attributes:
name: name:
blank: Le nom du puzzle est obligatoire blank: Le nom du puzzle est obligatoire
user:
attributes:
email_address:
blank: L'email est obligatoire
username:
blank: Le nom d'utilisateur.ice est obligatoire
completions: completions:
edit: edit:
title: "Modifier la complétion" title: "Modifier la complétion"
@ -131,6 +140,7 @@ fr:
edit: "Modifier" edit: "Modifier"
import: Importer un CSV import: Importer un CSV
open: Détails open: Détails
sign_in: Se connecter
save: Modifier save: Modifier
field: Champ field: Champ
none: Aucun champ sélectionné none: Aucun champ sélectionné