[config] Make available_cubes aware of cubes installed as packages
For this add a "cubicweb.cubes" entry points group which will be scanned
through to find out installed cubes. Entries in this group are expected to
expose the module name of a cube (i.e. `cubicweb_foo`).
Note that CubicWebConfiguration's available_cubes method will return the
module name of cubes as packages (cubicweb_foo), so we had to add a special
"key" sorting function to keep cubes sorted as before, despite possible
different distribution schemes. This makes it possible to handle loading of
CTL plugins in an almost similar manner as before (just tweaking the package
name from cube name in load_cwctl_plugins method).
I had to tweak (again?) the test_cubes_path method in unittest_cwconfig.py but
did not find out why.
Apart from unforeseen bugs and pending documentation, this finishes the work
on porting cubes to standard Python packages. Closes #13001466.
.. -*- coding: utf-8 -*-
Formation Python-CubicWeb 5 jours
==================================
Bases Python
------------
Syntaxe de base
~~~~~~~~~~~~~~~
:durée: 1j
Modèle objet
~~~~~~~~~~~~
:durée: 0.5j
Traitement de chaînes
~~~~~~~~~~~~~~~~~~~~~
:durée: 0.3j
Formattage de chaînes
Unicode
Entrées/Sorties
~~~~~~~~~~~~~~~
:durée: 0.2j
Fichiers
`StringIO`
Structures avancées
~~~~~~~~~~~~~~~~~~~
:durée: 0.5j
`object`, `super`
iterateurs
générateurs
list comprehension / generator expression
descripteurs, properties (`classmethod`, `property`)
décorateurs
Développement CubicWeb
-----------------------
Mise en place d'un environnement de développement CubicWeb
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:durée: 0.5j
Introduction mercurial
Installation de CubicWeb et de ses dépendances (debian !)
Postgres
Notion de template et d'instance
L'outil `cubicweb-ctl`
Création du modèle
Création d'une instance de développement
Fondements CubicWeb
~~~~~~~~~~~~~~~~~~~
:durée: 0.1j
Vocabulaire
Le langage RQL
Client/Serveur
Définition du modèle de données
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:durée: 0.4j
Définition d'entité
Définition de relation
Persistence du schéma
Migration de schéma
Fondements du framework CubicWeb
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:durée: 0.1j
La classe `appobject`
La base de registres
Chargement dynamique des classes
Manipulation des données stockées
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:durée: 0.4j
Les classes `Entity` et `AnyEntity`
Paramétrages et extensions spécifiques
Écriture de tests unitaires
Définition de vues
~~~~~~~~~~~~~~~~~~
:durée: 0.5j
Les classes de base des vues
Les vues prédéfinies dans la librairie
Les patrons
Vues binaires ou autre
Écriture de tests unitaires
Tests automatiques
Autres composants de l'interface web
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:durée: 0.5j
Actions
Component, VComponent
Forms, Controller
Eproperty