Projet

Général

Profil

Development #23408

clarifier l'usage de is_relevant()

Ajouté par Frédéric Péters il y a presque 6 ans.

Statut:
Nouveau
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
25 avril 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:

Description

Pour le moment c'est parfois utilisé pour ne pas faire de rendu pour des cellules configurées,

    def is_relevant(self, context):
        return bool(self.text)

et parfois pour ne pas faire le rendu de cellules demandant à un utilisateur connecté,

    def is_relevant(self, context):
        if not (getattr(context['request'], 'user', None) and context['request'].user.is_authenticated()):
            return False
        return True

et parfois davantage encore :

    def is_relevant(self, context):
        if not (getattr(context['request'], 'user', None) and context['request'].user.is_authenticated()):
            return False
        return BasketItem.get_items_to_be_paid(context['request'].user).count() > 0

et parfois c'est pris comme synonyme de is_enabled(),

    def is_relevant(self, context):
        return self.is_enabled()

Je nettoierais pour avoir :

  • is_enabled (existe déjà) → concerne le /manage/, sans le is_enabled on ne présente même pas la cellule (ça peut être sur un flag ENABLED mais aussi sur d'autres choses, genre on ne présente pas le paiement tant qu'une régie n'a pas été configurée)
  • is_configured (à créer) → pour la situation du bool(self.text) (et autres similaires), pour ne pas tenter un rendu public alors que la cellule n'est pas configurée.
  • is_visible (existe déjà) → pour la vérif par rapport à l'usager connecté
  • is_relevant → pour le reste.

Les deux endroits où c'est utilisé, c'est lors du rendu d'un placeholder pour voir les cellules à mettre dedans, et le rendu d'une cellule pour la recherche (render_for_search).

Formats disponibles : Atom PDF