Project

General

Profile

Evolution #4310

Formulaire Dater : Autorisation de modifier la date

Added by Peet du 8 months ago. Updated 8 months ago.

Status:
Fermé
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
03/11/2019
Due date:
% Done:

0%

Resolution:
wontfix

Description

Dans #FORMULAIRE_DATER, la condition pour savoir si une date est modifiable est {si #ENV{editable}}.

Voir https://core.spip.net/projects/spip/repository/entry/spip/prive/formulaires/dater.html#L18

Je propose changer ça pour : {si #AUTORISER{dater, #OBJET, #ID_OBJET}}
…car cela me semble logique / lisible / facile à surcharger.

Du coup faire la même chose pour la date antérieur: {si #AUTORISER{dateranterieur, #OBJET, #ID_OBJET}}
(voir https://core.spip.net/projects/spip/repository/entry/spip/prive/formulaires/dater.html#L30)
…avec création de l'autorisation

function autoriser_dateranterieur_dist($faire, $type, $id, $qui, $opt) {

Avant de proposer un patch (pour dater.html, dater.php et autoriser.php), j'attends de voir si il y a des remarques à ce propos…

History

#1 Updated by b b 8 months ago

Je propose changer ça pour : {si #AUTORISER{dater, #OBJET, #ID_OBJET}} …car cela me semble logique / lisible / facile à surcharger.

C'est déjà ce qui est fait dans la fonction charger du formulaire cf : https://core.spip.net/projects/spip/repository/entry/spip/prive/formulaires/dater.php#L97

Du coup faire la même chose pour la date antérieur

J'ai un doute là dessus...

#2 Updated by Peet du 8 months ago

Je propose changer ça pour : {si #AUTORISER{dater, #OBJET, #ID_OBJET}} …car cela me semble logique / lisible / facile à surcharger.

C'est déjà ce qui est fait dans la fonction charger du formulaire cf : https://core.spip.net/projects/spip/repository/entry/spip/prive/formulaires/dater.php#L97

Oui, du coup je retire l'argument "plus facile à surcharger".
Mais je continue à penser que c'est une bonne idée en terme de lisibilité et compréhension du code.

#3 Updated by b b 8 months ago

Mais je continue à penser que c'est une bonne idée en terme de lisibilité et compréhension du code.

Je ne suis pas du même avis, amha c'est bien dans la fonction charger qu'on doit définir si un formulaire est editable ou non, cf les specs :

https://www.spip.net/fr_article4151.html#Champs-particuliers
https://programmer.spip.net/Autoriser-ou-non-l-affichage-du

Le fait de tester l'autorisation dans la fonction charger permet de surcharger un formulaire depuis le pipeline formulaires_charger, alors que si le test est effectué dans le html du formulaire il faudra surcharger celui-ci, ce qui n'est pas une solution pérenne.

#4 Updated by b b 8 months ago

  • Status changed from Nouveau to En cours

#5 Updated by Peet du 8 months ago

Ok, compris.

En terme fonctionnel, le pipeline https://programmer.spip.net/formulaire_charger permet de changer $valeurs['editable'] assez facilement et donc en l'occurence l'autorisation de modifier ou non une date.
Par opposition à cela, la surcharge de autoriser_dater_dist() ne peut se faire qu'une fois. Et il est difficile d'y récupérer le contexte (id_rubrique, lang, etc.)

Garder la déclaration de l'autorisation dans la fonction charger() du formulaire est bien plus sioux.

Merci b_b, on peut fermer

#6 Updated by b b 8 months ago

  • Status changed from En cours to Fermé
  • Resolution set to wontfix

Et hop, on ferme :)

Also available in: Atom PDF