goa/doc/devmanual_fr/sect_stdlib_vues.txt
author Julien Jehannet <Julien Jehannet <julien.jehannet@logilab.fr>>
Tue, 02 Mar 2010 21:48:36 +0100
branchstable
changeset 4783 6dc34d4cf892
parent 0 b97547f5f1fa
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'


Vues prdfinies dans la librairie
----------------------------------
Un certain nombre de vues sont utilises pour construire l'interface web, qui
s'appliquent  une ou plusieurs entits. On les distingue par leur identifiant,
et les principales sont : 

:primary:
    vue principale pour une entit, elle est appele par dfaut lorsqu'il n'y a
    qu'un seul lment correspondant  la recherche. Cette vue est cense
    afficher le maximum d'informations  propos de l'objet.
:secondary:
    vue secondaire d'une entit. Par dfaut, Elle affiche les deux premiers
    attributs de l'entit sous la forme d'un lien cliquable amenant sur la vue
    primaire.
:oneline:
    similaire  la vue `secondary`, mais appele dans des cas o l'on dsire que
    la vue tient sur une ligne, ou de manire gnrale juste avoir une vue plus
    abbrge. Par dfaut, cette vue utilise le paramtre de configuration
    `MAX_LINE_CHAR` pour contrler la taille du rsultat.
:text:
    similaire  la vue `oneline`, mais ne devant pas contenir de html.
:incontext, outofcontext:
    similaire  la vue `secondary`, mais appel si l'entit est considre comme
    en dehors ou dans son contexte. Par dfault renvoie respectivement le
    rsultat de `textincontext` et `textoutofcontext` entour par un lien
    permettant d'accder  la vue primaire de l'entit
:textincontext, textoutofcontext:
    similaire  la vue `text`, mais appel si l'entit est considre comme
    en dehors ou dans son contexte. Par dfault renvoie respectivement le
    rsultat des mthodes `.dc_title` et `.dc_long_title` de l'entit
:list:
    cre une liste html (<ul>) et appelle la vue `listitem` pour chaque entit
:listitem:
    redirige par dfaut vers la vue `outofcontext`
:rss:
    cre unvue RSS/XML et appelle la vue `rssitem` pour chaque entit
:rssitem:
    cre unvue RSS/XML pour une entit  partir des rsultats renvoys par les
    mthodes dublin core de l'objet (`dc_*`)

Vues de dpart :

:index:
    page d'acceuil
:schema:
    affiche le schma de l'application

Vues particulires :

:noresult:
    appel si le result set est vide
:finall:
    affiche la valeur de la cellule sans transformation (dans le cas d'une
    entit non finale, on voit son eid). Appelable sur n'importe quel result
    set.
:table:
    cre une table html (<table>) et appelle la vue `cell` pour chaque cellule
    du rsultat. Appelable sur n'importe quel result set.
:cell:
    par dfaut redirige sur la vue `final` si c'est une entit finale
    ou sur la vue `outofcontext` sinon
:null:
    vue toujours appelable et ne retournant rien