Skip to content

[fix] Régression v3.0.8 — Invalid call dans Distributions / ContractAdmin#154

Merged
Mandrak-Kimigo merged 2 commits into
stagingfrom
fix-view-hDate
Jun 28, 2026
Merged

[fix] Régression v3.0.8 — Invalid call dans Distributions / ContractAdmin#154
Mandrak-Kimigo merged 2 commits into
stagingfrom
fix-view-hDate

Conversation

@Mandrak-Kimigo

Copy link
Copy Markdown
Member

Contexte

La v3.0.8 a introduit une régression sur plusieurs pages (Distributions,
ContractAdmin/selectDistrib, ContractAdmin/distributions) avec l'erreur
Invalid call déclenchée par des appels à ::hDate(d.date):: dans
les templates Templo.

Cause

Le commit bdbbd8d a ajouté ?year:Bool = false à View.hDate. Neko
compile cette fonction à 2 arguments ; Templo l'appelle avec 1 → crash.
(cf. BaseView.hx : "templo doesnt manage optional params in functions")

Commits inclus

  • 049915f — commentaire + migration Cron.hx / VolunteerService.hx
  • d8300af — fix Invalid operation (*) dans orders.mtt
  • ce commit — suppression effective de ?year dans la signature de View.hDate

Test

  1. Admin → Distributions → aucune erreur
  2. ContractAdmin → Commandes / Distributions → aucune erreur
  3. Sujets des emails bénévoles : date avec année correcte

Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com

…signature

Le commit 049915f avait ajouté le commentaire et migré les appels Cron.hx
mais avait omis de supprimer le ?year:Bool de la signature elle-même.
View.hDate reste donc une fonction Neko à 2 arguments — les templates
l'appelant avec 1 argument produisent toujours "Invalid call".

Ce commit supprime le paramètre optionnel pour de bon.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Mandrak-Kimigo Mandrak-Kimigo merged commit 76a42c4 into staging Jun 28, 2026
2 checks passed
Mandrak-Kimigo added a commit that referenced this pull request Jun 28, 2026
)

* fix: View.hDate — retirer effectivement le paramètre optionnel de la signature (#154)

Le commit 049915f avait ajouté le commentaire et migré les appels Cron.hx
mais avait omis de supprimer le ?year:Bool de la signature elle-même.
View.hDate reste donc une fonction Neko à 2 arguments — les templates
l'appelant avec 1 argument produisent toujours "Invalid call".

Ce commit supprime le paramètre optionnel pour de bon.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Mandrak-Kimigo added a commit that referenced this pull request Jul 12, 2026
* [mantis-327] Notifications : ajouter l'année dans l'objet des emails

Les objets des mails de notification (distribution, besoin de volontaires,
instructions bénévoles, abandon de rôle) n'affichaient pas l'année, ce qui
rendait les dates ambiguës sur plusieurs saisons.

Formatting.hDate() supportait déjà un paramètre optionnel `year`. Ce commit
propage ce paramètre dans View.hDate() et passe `true` aux 5 appels
concernant les objets de mails.

* [mantis-340] Féminisation des métiers dans la liste des producteurs

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* add fix-* workflow

* fix: View.hDate — supprimer le paramètre optionnel ?year incompatible Templo

Templo ne supporte pas les paramètres optionnels dans les appels de fonctions
(cf. commentaire BaseView : "templo doesnt manage optional params in functions").
Le commit bdbbd8d avait ajouté ?year:Bool=false à View.hDate, ce qui
compilait la fonction Neko en 2 arguments. Les templates l'appelant avec
1 argument déclenchaient une "Invalid call" sur les pages Distributions et
ContractAdmin/selectDistrib.

Solution : View.hDate revient à 1 argument ; les appels avec year=true
(Cron.hx, VolunteerService.hx) passent directement par Formatting.hDate.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: corriger l'erreur "Invalid operation (*)" dans orders.mtt

Le template contractadmin/orders.mtt calculait `o.quantity * o.productQt`
pour l'input de pesée (bloc multiWeight + variablePrice) sans vérifier la
nullité de `productQt` (champ SNull<SFloat> dans Product). Quand un produit
a multiWeight=true mais qt=null, Neko lançait "Invalid operation (*)".

On introduit une variable locale `effectiveQt` qui vaut `o.productQt` si
non-null, sinon 1, aligné sur le comportement de OrderService ligne 872.
L'opérateur ternaire n'étant pas supporté par le compilateur Templo, on
utilise deux instructions ::set:: / ::if::.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* ci: simplify GHCR publish workflow to amd64-only

Remove multi-arch build attempt (linux/arm64) and fallback logic.
Drop setup-qemu-action, replace the two build steps with a single
unconditional linux/amd64 build.

* fix: View.hDate — retirer effectivement le paramètre optionnel de la signature (#154)

Le commit 049915f avait ajouté le commentaire et migré les appels Cron.hx
mais avait omis de supprimer le ?year:Bool de la signature elle-même.
View.hDate reste donc une fonction Neko à 2 arguments — les templates
l'appelant avec 1 argument produisent toujours "Invalid call".

Ce commit supprime le paramètre optionnel pour de bon.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* [mantis-330/331] Refonte de la désinscription de permanence (#156)

* [mantis-330] Remplacer la page de désinscription de permanence par un endpoint REST

La page /distribution/unsubscribeFromRole (formulaire avec textarea obligatoire)
est remplacée par un endpoint REST POST /api/distributions/unsubscribeFromRole
qui effectue la désinscription sans exiger de motif.

L'URL legacy redirige désormais vers /distribution/volunteersCalendar.
La désinscription est désormais gérée côté React dans le NeoModule volunteersCalendar.

* [mantis-331] Ne pas envoyer de mail de désinscription si le rappel des rôles vacants n'a pas encore été envoyé

Avant : removeUserFromRole envoyait toujours un mail (aux coordinateurs
avant la date d'alerte, à tous les membres après).

Après : le mail n'est envoyé que si la date d'alerte est dépassée
(c.-à-d. que le cron "rôles vacants" a déjà été déclenché). Avant cette
date, le cron prochain couvrira la vacance — un double envoi est inutile.

Le paramètre `reason` est supprimé de removeUserFromRole (mantis-330).
Le template volunteerUnsuscribed.mtt est mis à jour : la mention de la
raison est retirée.

* [mantis-331] Corriger la traduction manquante dans le mail de désinscription

La chaîne "has left the role" n'avait pas de traduction française suite
au changement de libellé (suppression de la mention de raison).

Mise à jour de texts_fr.po et allTexts.pot avec le nouveau msgid et
sa traduction : "s'est désisté du rôle".

* pas d'envoie au souscripteur si la commande est à 0 à la souscription

* Camap v3.0.9

---------

Co-authored-by: fbiguet <143797468+fbiguet@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Renaud Bardet <renaud.bardet@lonestone.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants