goa/doc/devmanual_fr/sect_stdlib_schemas.txt
author Julien Jehannet <Julien Jehannet <julien.jehannet@logilab.fr>>
Tue, 02 Mar 2010 21:48:36 +0100
branchstable
changeset 4783 6dc34d4cf892
parent 1398 5fe84a5f7035
permissions -rw-r--r--
[F] views: fix 2 unicode errors 1. You can now use valid unicode strings in ValidationError exception. Previously, if 'err' contains unicode, UnicodeDecodeError was raised by format_errors() >>> templstr = '<li>%s</li>\n' >>> e = ValidationError(None, {None: u'oué, une exception en unicode!'}) >>> templstr % e '<li>None (None): ou\xc3\xa9, une exception en unicode!</li>\n' >>> templstr = u'<li>%s</li>\n' >>> templstr % e u'<li>None (None): ou\xe9, une exception en unicode!</li>\n' 2. The message of an Exception can contains unicode. But it now properly managed by “informal” string representation. We can easily fix the problem by using the Exception.message attribute that still contains the original message. >>> a = AssertionError(u'séfdsdf') >>> a.message u's\xe9fdsdf' >>> str(a) Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 1: ordinal not in range(128) >>> a = ValueError(u'fsdfsdéfsdfs') >>> str(a) Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 6: ordinal not in range(128) >>> a ValueError(u'fsdfsd\xe9fsdfs',) >>> unicode(a) Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 6: ordinal not in range(128) >>> a.message u'fsdfsd\xe9fsdfs'

Schmas prdfinies dans la librairie
-------------------------------------

La librairie dfinit un certain nombre de schmas d'entits ncessaires
au systme ou bien couramment utilises dans les application `cubicweb`.
Vous pouvez bien entendu tendre ces schmas au besoin.


Schmas "systmes"
``````````````````

* `CWUser`, utilisateurs du systme
* `CWGroup`, groupes d'utilisateurs
* `CWEType`, types d'entit
* `CWRType`, types de relation

* `State`, tat d'un workflow
* `Transition`, transition d'un workflow
* `TrInfo`, enregistrement d'un passage de transition pour une entit

* `EmailAddress`, adresse lectronique, utilis par le systme de notification
  pour les utilisateurs et par d'autres schma optionnels

* `CWProperty`, utilis pour configurer l'application
* `CWPermission`, utilis pour configurer la scurit de l'application

* `Card`, fiche documentaire gnrique
* `Bookmark`, un type d'entit utilis pour permetter  un utilisateur de
  personnaliser ses liens de navigation dans l'application.


Composants de la librairie
``````````````````
Une application est construite sur la base de plusieurs composants de base.
Parmi les composants de base disponible, on trouve par exemple :

* `ecomment`, fournit le type d'entit `Comment` permettant de commenter les
  entits du site
  
* `emailinglist`, fournit le type d'entit `Mailinglist` regroupant des
  informations sur une liste de discussion

* `efile`, fournit les types d'entits `File` et `Image` utiliss pour
  reprsenter des fichiers (texte ou binaire) avec quelques donnes
  supplmentaires comme le type MIME ou l'encodage le cas chant ().
  
* `elink`, fournit le type d'entit lien internet (`Link`)

* `eblog`, fournit le type d'entit weblog (`Blog`)

* `eperson`, fournit le type d'entit personne physique (`Person`)

* `eaddressbook`, fournit les types d'entits utiliss pour reprsenter des n
  de tlphone (`PhoneNumber`) et des adresses postales (`PostalAddress`)
  
* `eclasstags`, systme de classfication  base d'tiquettes (`Tag`)

* `eclassfolders`, systme de classification  base de dossiers hirarchiques
  destins  crer des rubriques de navigation (`Folder`)

* `eemail`, gestion d'archives de courriers lectroniques (`Email`, `Emailpart`,
  `Emailthread`)

* `ebasket`, gestion de paniers (`Basket`) permettant de regrouper des entits

Pour dclarer l'utilisation d'un composant, une fois celui-ci install, ajoutez
le nom du composant  la variable `__use__` du fichier `__pkginfo__.py` de
votre propre composant.