[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