doc/plan_formation_python_cubicweb.txt
author Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
Wed, 20 Jan 2010 13:03:08 +0100
changeset 4291 62a315e61adb
parent 36 f6bcad5c6dfe
child 12792 e2cdb1be6bd9
permissions -rw-r--r--
clear vreg's parent_classes cache to fix etype cache / auto-reloading bug EtypeRegistry.parent_classes()'s is cached. When the registry is reloaded, if the cache is not cleared, we might get the old list of parent classes and that leads to strange bugs. Typical scenario : 1/ start application in debug mode 2/ go to add/Bookmark -> everything's fine 3/ change the source 4/ reload add/Bookmark -> 'creation' not selectable because : a/ cw detects a change in the source and reloads vreg b/ cw tries to select 'creation' view for 'Bookmark' - 'creation' view uses specified_etype_implements('Any') - cw compares Bookmark.__bases__[0] (i.e. new version of AnyEntity) with the old version of AnyEntity cached in the vreg. They don't match => view is not applicable.

.. -*- 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