[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'
Configuration d'une instance
============================
la cration d'une instance, un fichier de configuration est gnr dans ::
$(CW_REGISTRY)/<instance>/<nom configuration>.conf
par exemple ::
/etc/cubicweb.d/jpl/all-in-one.conf
C'est un simple fichier texte au format INI. Dans la description suivante,
chaque nom d'option est prfix de sa section et suivi de sa valeur par dfaut
le cas chant, e.g. "`<section>.<option>` [valeur]".
Configuration du serveur web
----------------------------
:`web.auth-mode` [cookie]:
mode d'authentification, cookie ou http
:`web.realm`:
realm de l'application en mode d'authentification http
:`web.http-session-time` [0]:
dlai d'inactivit d'une session HTTP avant sa fermeture automatique. Dure
en secondes, 0 signifiant pas d'expiration (ou plus exactement lors de la
fermeture du navigateur du client)
:`main.anonymous-user`, `main.anonymous-password`:
login et mot de passe utiliser pour se connecter au serveur RQL lors des
connexions HTTP anonymes. Il faut que le compte CWUser associ existe.
:`main.base-url`:
url de base du site, utiliser pour gnrer les urls des pages web
Configuration https
```````````````````
Il est possible de rendre un site accessible en http pour les connections
anonymes et en https pour les utilisateurs authentifi. Il faut pour cela
utiliser apache (par ex.) pour la redirection et la variable `main.https-url` du
fichier de configuration.
:Exemple:
pour une redirection apache d'un site accessible via `http://localhost/demo`
et `https://localhost/demo` et qui tourne en ralit sur le port 8080, il
faut avoir pour la version http : ::
RewriteCond %{REQUEST_URI} ^/demo
RewriteRule ^/demo$ /demo/
RewriteRule ^/demo/(.*) http://127.0.0.1:8080/$1 [L,P]
et pour la version https : ::
RewriteCond %{REQUEST_URI} ^/demo
RewriteRule ^/demo$ /demo/
RewriteRule ^/demo/(.*) http://127.0.0.1:8080/https/$1 [L,P]
et on aura dans le fichier all-in-one.conf de l'instance : ::
base-url = http://localhost/demo
https-url = `https://localhost/demo`
Configuration de l'interface web
--------------------------------
:`web.embed-allowed`:
expression rgulire correspondant aux sites pouvant tre "incorpor" dans
le site (controleur 'embed')
:`web.submit-url`:
url laquelle les bugs rencontrs dans l'application peuvent tre post
Configuration du serveur RQL
----------------------------
:`main.host`:
nom de l'hte s'il ne peut tre dtecter correctement
:`main.pid-file`:
fichier o sera crit le pid du serveur
:`main.uid`:
compte utilisateur utiliser pour le lancement du serveur quand il est
lanc en root par init
:`main.session-time [30*60]`:
temps d'expiration d'une session RQL
:`main.query-log-file`:
fichier dans lequel crire toutes les requtes RQL xcutes par le serveur
Configuration Pyro pour l'instance
-----------------------------------
Cot serveur web :
:`pyro-client.pyro-application-id`:
identifiant pyro du serveur RQL (e.g. le nom de l'instance)
Cot serveur RQL :
:`pyro-server.pyro-port`:
numro de port pyro. Si aucune valeur n'est spcifie, un port est attribu
automatiquement.
Cot serveur RQL et serveur web :
:`pyro-name-server.pyro-ns-host`:
nom de l'hte hbergeant le serveur de nom pyro. Si aucune valeur n'est
spcifi, il est localis par une requte de broadcast
:`pyro-name-server.pyro-ns-group` [cubicweb]:
groupe pyro sous lequel enregistrer l'application
Configuration courriel
----------------------
Cot serveur RQL et serveur web :
:`email.mangle-emails [no]`:
indique si les adresses email doivent tre affiches telle quelle ou
transforme
Cot serveur RQL :
:`email.smtp-host [mail]`:
nom de l'hte hbergeant le serveur SMTP utiliser pour le courriel sortant
:`email.smtp-port [25]`:
port du serveur SMTP utiliser pour le courriel sortant
:`email.sender-name`:
nom utiliser pour les courriels sortant de l'application
:`email.sender-addr`:
adresse utiliser pour les courriels sortant de l'application
:`email.default-dest-addrs`:
adresses de destination par dfaut, si utilis par la configuration de la
diffusion du modle (spares par des virgules)
:`email.supervising-addrs`:
addresses de destination des courriels de supervision (spares par des
virgules)
Configuration journalisation
----------------------------
:`main.log-threshold`:
niveau de filtrage des messages (DEBUG, INFO, WARNING, ERROR)
:`main.log-file`:
fichier dans lequel crire les messages
Configuration Eproperties
-------------------------
D'autres paramtres de configuration sont sous la forme d'entits `CWProperty`
dans la base de donnes. Il faut donc les diter via l'interface web ou par des
requtes rql.
:`ui.encoding`:
encodage de caractres utiliser pour l'interface web
:`navigation.short-line-size`: # XXX should be in ui
nombre de caractres maximum pour les affichages "courts"
:`navigation.page-size`:
nombre d'entits maximum afficher par page de rsultat
:`navigation.related-limit`:
nombre d'entits lies maximum afficher sur la vue primaire d'une entit
:`navigation.combobox-limit`:
nombre d'entits non lies maximum afficher sur les listes droulantes de
la vue d'dition d'une entit