Project

General

Profile

Actions

Anomalie #1626

closed

Cartes d'adhérents - Chevauchement numéro et date

Added by Peire BRECHET about 2 years ago. Updated 9 months ago.

Status:
Fermé
Priority:
Normal
Category:
-
Target version:
Start date:
02/10/2022
Due date:
% Done:

100%

Estimated time:
Version utilisée:

Description

Voici un essai de carte : le numéro d'adhésion chevauche l'année.


Files

Capture d’écran 2022-02-10 à 16.33.54.png (168 KB) Capture d’écran 2022-02-10 à 16.33.54.png Peire BRECHET, 02/10/2022 04:36 PM
exemple_hauteur_max.png (69.9 KB) exemple_hauteur_max.png Guillaume AGNIERAY, 01/25/2023 01:57 PM
exemple_hauteur_max-2.png (68.9 KB) exemple_hauteur_max-2.png Guillaume AGNIERAY, 01/25/2023 01:57 PM
exemple_hauteur_max-3.png (68.8 KB) exemple_hauteur_max-3.png Guillaume AGNIERAY, 01/25/2023 01:57 PM
exemple_largeur_max-1.png (70.8 KB) exemple_largeur_max-1.png Guillaume AGNIERAY, 01/25/2023 01:57 PM
exemple_largeur_max-2.png (70.3 KB) exemple_largeur_max-2.png Guillaume AGNIERAY, 01/25/2023 01:57 PM
exemple_inférieur_hauteur_max.png (67.8 KB) exemple_inférieur_hauteur_max.png Guillaume AGNIERAY, 01/25/2023 01:58 PM
exemple_inférieur_largeur_max.png (68 KB) exemple_inférieur_largeur_max.png Guillaume AGNIERAY, 01/25/2023 01:58 PM
exemple_id_adhérent.png (89.8 KB) exemple_id_adhérent.png Guillaume AGNIERAY, 01/25/2023 01:59 PM
exemple_numéro_adhérent.png (82.2 KB) exemple_numéro_adhérent.png Guillaume AGNIERAY, 01/25/2023 01:59 PM
exemple_sans_numéro.png (89.4 KB) exemple_sans_numéro.png Guillaume AGNIERAY, 01/25/2023 01:59 PM
Actions #1

Updated by Alain Paris about 2 years ago

Bonjour,
Actuellement l'affichage de l'année dépend de la hauteur du logo,essayez avec un logo de 150 pixels par exemple....

Actions #2

Updated by Peire BRECHET about 2 years ago

Merci de votre réponse rapide, j'ai essayé avec 150, 100 et pas d'image du tout et aucune modification...
La question devient faut il redémarrer Galette ?
(J'ai naturellement vidé le cache du navigateur) et je teste en local.
Merci

Actions #3

Updated by Peire BRECHET about 2 years ago

Autant pour moi, j'ai travaillé sur le logo général. Et oui celui de la carte en est un autre...

Actions #4

Updated by Peire BRECHET about 2 years ago

Et bien, pas mieux… je n'arrive même plus à supprimer lo logo

Actions #5

Updated by Alain Paris about 2 years ago

Oui il s'agit du logo réservé aux cartes.
Configuration/préférences/cartes
Il suffit choisir un autre fichier avec une hauteur de 150 (chez moi 200x150 cela fonctionne ). enregistrer
Revenir sur la page cartes et vérifier que le logo est affiché et cela devrait être bon.Si pas affiché ,il se peut qu'il y ait eu un problème a l'enregistrement de la modification.
Peut être quelque chose dans les logs.

Actions #6

Updated by Guillaume AGNIERAY about 1 year ago

  • Assignee set to Guillaume AGNIERAY

Alain Paris a écrit (#note-5):

Il suffit choisir un autre fichier avec une hauteur de 150 (chez moi 200x150 cela fonctionne ).

Après avoir jeté un œil au code, tout dépend du ratio de l'image, et normalement une largeur et une hauteur max sont imposées.
Les images en portrait sont redimensionnées en se référant à leur hauteur.
Les images en paysage, en se référant à leur largeur.

Il y a bien des erreurs dans le code. Les dimensions de l'image sont comparées aux limites imposées, mais sur de mauvaises valeurs et avec des unités différentes (pixels pour l'image, contre millimètres pour les valeurs utilisées dans le PDF).
Et le cas des images carrées (ou proche d'un ratio 1 en paysage) n'est pas vraiment traité ce qui entraîne leur agrandissement au delà de ce qui est prévu comme c'est le cas de Peire.

source:/galette/lib/Galette/IO/PdfMembersCards.php#L165

La hauteur indiquée n'est plus celle utilisée après dans le code :

  // Set logo size to max width 30 mm or max height 25 mm

getHeight() et getWidth() renvoient une valeur en pixels et sont comparées à une mauvaise valeur en millimètres :

  $ratio = $print_logo->getWidth() / $print_logo->getHeight();
  if ($ratio < 1) {
      if ($print_logo->getHeight() > 16) {
          $this->hlogo = 20; 
      } else {
          $this->hlogo = $print_logo->getHeight();
      }
      $this->wlogo = round($this->hlogo * $ratio);                 

Ensuite les images carrées sont redimensionnées comme des images paysage en fonction de leur largeur et dépassent alors la hauteur max imposée pour le PDF :

  } else { 
      if ($print_logo->getWidth() > 16) {
          $this->wlogo = 30;
      } else {
          $this->wlogo = $print_logo->getWidth();
      }
      $this->hlogo = round($this->wlogo / $ratio);
  }

Updated by Guillaume AGNIERAY about 1 year ago

Les modifs proposées corrigent ce que je pense être le comportement normal souhaité pour l'affichage du logo :
https://github.com/galette/galette/pull/215/files

Si les dimensions du fichier original sont inférieures à 113x64px (30x17mm), ce sont elles qui seront utilisées.

Je joins plusieurs captures des résultats obtenus :)

Au passage j'introduis de nouvelles conditions pour l'affichage du numéro/id adhérent :
  • si l'option "Afficher les identifiants" est cochée dans les paramètres, c'est cet identifiant qui est utilisé (comportement actuel par défaut).
  • si le champ "Numéro adhérent" est utilisé ET renseigné, c'est ce numéro qui est utilisé.
  • si ce même champ est utilisé ET renseigné ET que l'option "Afficher les identifiants" est cochée, c'est le numéro qui est privilégié.
  • si ni l'option, ni le champ ne sont utilisés, rien n'est affiché.
Actions #8

Updated by Guillaume AGNIERAY about 1 year ago

  • Status changed from Nouveau to Résolu
  • % Done changed from 0 to 100
Actions #9

Updated by Johan Cwiklinski 9 months ago

  • Status changed from Résolu to Fermé
Actions

Also available in: Atom PDF