Projet

Général

Profil

Bug #55988

appliquer le style des boutons radio et cases à cocher uniques partout et pas uniquement aux formulaires wcs

Ajouté par Serghei Mihai il y a plus de 2 ans. Mis à jour il y a plus de 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
05 août 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Faire appliquer les variables widget-custom-radio-checkbox et widget-unique-checkbox-position à tous les champs.


Fichiers


Demandes liées

Lié à Intégrations graphiques Publik - Development #55849: grandlyon-glc : étendre les options d'intégration existantes pour s'appliquer également aux cases à cocher.Fermé27 juillet 2021

Actions
Lié à Gadjo - Development #56114: widgets: entourer les cases à cocher et boutons radio par la balise "label"Fermé11 août 2021

Actions
Lié à Intégrations graphiques Publik - Bug #56341: alignement case à cocher consentement GLCFermé24 août 2021

Actions

Révisions associées

Révision ce295f32 (diff)
Ajouté par Serghei Mihai il y a plus de 2 ans

forms: apply custom styles to all radio and checkbox widgets (#55988)

Révision 2f587e17 (diff)
Ajouté par Frédéric Péters il y a plus de 2 ans

Revert "forms: apply custom styles to all radio and checkbox widgets (#55988)"

This reverts commit ce295f32526cea8ad622348425ffe7dbe53cc203.

Révision beab6d22 (diff)
Ajouté par Serghei Mihai il y a plus de 2 ans

forms: apply custom styles to all radio and checkbox widgets (#55988)

Historique

#2

Mis à jour par Serghei Mihai il y a plus de 2 ans

  • Lié à Development #55849: grandlyon-glc : étendre les options d'intégration existantes pour s'appliquer également aux cases à cocher. ajouté
#3

Mis à jour par Serghei Mihai il y a plus de 2 ans

Pour appliquer les mêmes styles partout il faudrait que le HTML généré pour les checkbox et radio soit le même que celui produit par wcs: <label><input type="checkbox" ...><span></span></label>.
Je fais un ticket gadjo dans ce sens.

#4

Mis à jour par Serghei Mihai il y a plus de 2 ans

  • Lié à Development #56114: widgets: entourer les cases à cocher et boutons radio par la balise "label" ajouté
#5

Mis à jour par Serghei Mihai il y a plus de 2 ans

Avec modifications de tous les thèmes personnalisant les boutons radio et les cases à cocher.

#6

Mis à jour par Thomas Jund (congés, retour le 29/04) il y a plus de 2 ans

Je n'aime pas la multiplication des selecteurs. Cela complique la création de thème, rend infernal l'évolution du core et demande de patcher tous les thèmes.
Ne pourrait-on pas garder les mêmes class ?

#7

Mis à jour par Serghei Mihai il y a plus de 2 ans

Les noms des class sont celles des widgets utilisés pour le rendu des champs. Ils sont différents dans wcs (RadiobuttonsWidget, CheckboxWidget, CheckboxsWidget,...) des autres applis qui utilisent les classes django qui ont un autre nom.

Pour revenir à la duplication des selecteurs dans les variants, on doit pouvoir sûrement s'en passer car il s'agit de la personnalisation de la couleur, taille, bordure des éléments ::before et ::after. On pourrait gérer cela avec des variables.

Je fais un ticket.

#8

Mis à jour par Serghei Mihai il y a plus de 2 ans

Serghei Mihai a écrit :

Pour revenir à la duplication des selecteurs dans les variants, on doit pouvoir sûrement s'en passer car il s'agit de la personnalisation de la couleur, taille, bordure des éléments ::before et ::after. On pourrait gérer cela avec des variables.

Cela existe déjà: $widget-custom-radio-checkbox-border-color, $widget-custom-radio-checkbox-marker-color. Il manquerait une variable pour gérer la taille du widget (comme à la Dordogne par exemple).

#9

Mis à jour par Thomas Jund (congés, retour le 29/04) il y a plus de 2 ans

Les noms des class sont celles des widgets utilisés pour le rendu des champs

Ok, je comprends donc qu'il n'y a aucun moyen d'avoir un selecteur commun. Passons.

On pourrait gérer cela avec des variables

De ce que je vois, il y egalement des paddings, la possibilité de différencier la couleur du contour de celle du fond, des valeurs de border-radius,
et la modification de la taille qui se fait à coup de width, height et qui demande du coup de repositionner les élements à coup de top parfois left et calc().
(Bref, réécrire tout cela devient necessaire).
Enfin même si on multiplie les variables de personnalisation, il arrivera toujours un moment où on aura besoin de personnaliser aussi via CSS.

Pour cleaner la personalisation dans les variants
Il y a toujours les @extend Sass à la rescousse :

.custom-radio-checkbox {
  // ici tout le code actuel
}

@if $widget-custom-radio-checkbox == true {
.django-radio-select,
.django-checkbox-input,
.RadiobuttonsWidget,
.CheckboxWidget,
.CheckboxesWidget {
  @extend .custom-radio-checkbox;
}
}

Et s'il y a besoin de personnaliser via CSS dans un thème :

.custom-radio-checkbox {
  // CSS de personnalisation
}

Pour moi c'est déjà plus propre, plus simple, plus mieux.

#10

Mis à jour par Serghei Mihai il y a plus de 2 ans

Thomas Jund a écrit :

Ok, je comprends donc qu'il n'y a aucun moyen d'avoir un selecteur commun. Passons.

On peut sûrement y arriver, mais cela implique beaucoup plus de modifications de code dans wcs et gadjo que dans publik-base-theme.

Pour moi c'est déjà plus propre, plus simple, plus mieux.

Je suis d'accord.

#11

Mis à jour par Serghei Mihai il y a plus de 2 ans

En suivant ta proposition de regroupement du code des styles custom.

#12

Mis à jour par Serghei Mihai il y a plus de 2 ans

  • Lié à Bug #56341: alignement case à cocher consentement GLC ajouté
#13

Mis à jour par Thomas Jund (congés, retour le 29/04) il y a plus de 2 ans

%custom-radio-checkbox-widget {
-     @extend %custom-radio-checkbox-widget;

Tu n'as pas besoin de faire un @extend, c'est implicite, comme pour une class CSS

Je préfère aussi l'utilisation d'une class CSS, utilisable dans les templates, plutôt que du %truc specifique Sass.

#14

Mis à jour par Serghei Mihai il y a plus de 2 ans

Thomas Jund a écrit :

[...]

Tu n'as pas besoin de faire un @extend, c'est implicite, comme pour une class CSS

J'ai appris une chose, merci.

Je préfère aussi l'utilisation d'une class CSS, utilisable dans les templates, plutôt que du %truc specifique Sass.

Mais on a déjà les classes RadioSelect, etc pour ça. Et on pilote l'affichage custom via les variables Sass. Ou bien je ne saisis pas ton idée?

#15

Mis à jour par Thomas Jund (congés, retour le 29/04) il y a plus de 2 ans

Ou bien je ne saisis pas ton idée?

Je propose de remplacer les

- %custom-radio-checkbox-widget {
+ .custom-radio-checkbox-widget {

et

@extend %custom-radio-checkbox-widget;
@extend .custom-radio-checkbox-widget;

+ de CSS natif et - de SASS specifique.

#17

Mis à jour par Thomas Jund (congés, retour le 29/04) il y a plus de 2 ans

  • Statut changé de Solution proposée à Solution validée
#18

Mis à jour par Serghei Mihai il y a plus de 2 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit ce295f32526cea8ad622348425ffe7dbe53cc203 (origin/main, origin/HEAD)
Author: Serghei Mihai <smihai@entrouvert.com>
Date:   Wed Aug 11 10:33:35 2021 +0200

    forms: apply custom styles to all radio and checkbox widgets (#55988)
#19

Mis à jour par Frédéric Péters il y a plus de 2 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#20

Mis à jour par Frédéric Péters il y a plus de 2 ans

Sérieusement pas à pousser à deux jours de la mise à jour.

#21

Mis à jour par Frédéric Péters il y a plus de 2 ans

  • Statut changé de Solution déployée à Solution validée

J'ai poussé et vais déployé un revert, parce que foutage de gueule là.

#22

Mis à jour par Serghei Mihai il y a plus de 2 ans

My bad, ce patch corrigeait le raté sur l'alignement des cases à cocher sur le thème GLC. Et au lieu de poser de code pourri dans son _custom.css qu'il allait falloir virer de toute façon j'ai opté pour envoyer celui-ci.

J'ai fait le tour des recettes, notamment celles avec les widgets customisés, et ça a l'air ok.

#23

Mis à jour par Frédéric Péters il y a plus de 2 ans

Et j'ai reverté les bouts gadjo qui allaient avec.

Une différence visible immédiatement (une fois que j'ai vu ce commit arriver c'est ce que je suis allé voir) c'est le "civilité" de Strasbourg, cf captures.

#24

Mis à jour par Frédéric Péters il y a plus de 2 ans

J'ai fait le tour des recettes, notamment celles avec les widgets customisés, et ça a l'air ok.

De fait pas et ça vient peut-être surtout des modifications gadjo mais comme tout ça arrive tard je suis obligé d'y aller sans finesse et je vire tout plutôt qu'essayer de voir quel bout de quel patch pourrait être laissé.

#25

Mis à jour par Frédéric Péters il y a plus de 2 ans

  • Statut changé de Solution validée à En cours
#26

Mis à jour par Serghei Mihai il y a plus de 2 ans

Frédéric Péters a écrit :

Et j'ai reverté les bouts gadjo qui allaient avec.

Une différence visible immédiatement (une fois que j'ai vu ce commit arriver c'est ce que je suis allé voir) c'est le "civilité" de Strasbourg, cf captures.

Pour revenir là-dessus. Je pense que la différence de rendu est due au fait qu'après le patch de #54642 les boutons radio ne sont plus placés dans des listes (pas de padding à gauche).
Il faudrait ajouter du padding pour le nouveau markup pour respecter le rendu.

#27

Mis à jour par Frédéric Péters il y a plus de 2 ans

Le propos c'est que oui différence de markup différence de rendu j'en ai pointé un exemple il peut y en avoir d'autres il faut le plus rapidement possible faire correctement le tour.

#28

Mis à jour par Thomas Jund (congés, retour le 29/04) il y a plus de 2 ans

  • Statut changé de En cours à Solution validée

Je revalide.
Problème réglé par #56522

#29

Mis à jour par Serghei Mihai il y a plus de 2 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit beab6d22d1dfcabffa09957c85189694f595b115 (origin/main, origin/HEAD)
Author: Serghei Mihai <smihai@entrouvert.com>
Date:   Wed Aug 11 10:33:35 2021 +0200

    forms: apply custom styles to all radio and checkbox widgets (#55988)
#30

Mis à jour par Frédéric Péters il y a plus de 2 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF