Skip to content

4. Le rendre visible

This content is not available in your language yet.

À ce stade, votre module fonctionne. Les tables existent, l’API répond, les écrans sont déclarés.

Et il est invisible.

Ouvrez le lanceur d’applications : library n’y est pas. Aucune erreur, aucun message, aucun journal. Le module fonctionne parfaitement et personne ne peut y accéder.

Pourquoi

Chaque installation décide quels modules elle active. Ce n’est pas une question de code : le registre est global au processus, l’activation est un filtre de visibilité par installation.

Un module qui n’a pas été activé n’apparaît ni dans le lanceur, ni dans les menus, et ses écrans répondent 404 pour cette installation. Ses tables, elles, existent toujours.

Activer votre module

Depuis l’interface : Paramètres → Modules, puis activez Library.

En ligne de commande, pendant le développement :

from sqlalchemy import create_engine
from kewos.tenant_modules import set_module_active, list_module_states
engine = create_engine(DATABASE_URL)
with engine.begin() as connection:
set_module_active(connection, module="library", active=True)
print(list_module_states(engine))
# {'core': True, 'pipeline': True, 'support': True, 'audit': True, 'library': True}

Rechargez le lanceur :

Le lanceur d'applications, avec Library apparu parmi les applications

Library est là, rangé dans le rayon déclaré par category dans le manifeste.

L’icône

Sur la capture, Library s’affiche avec ses initiales « LI » : c’est ce que fait le lanceur quand le module n’a pas d’icône.

Ajoutez icon.svg à la racine du module. Un tracé simple, monochrome, qui hérite de la couleur courante :

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="1.7" stroke-linecap="round"
stroke-linejoin="round">
<path d="M3 7h18M6 7v12a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V7M9 7V5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"/>
</svg>

Vérifier que vous n’avez rien oublié

SymptômeCause
Le module n’est pas dans le lanceurIl n’est pas activé pour cette installation.
Il y est mais sans écranAucune vue déclarée, ou le dossier views/ n’est pas chargé par register().
Il y est, avec des écrans, mais videsUne question de droits : voir Les droits.
Il affiche ses initialesPas d’icon.svg.
Il est classé « Autres »Pas de category dans le manifeste.

Et ensuite

Traduire.