# HG changeset patch # User Aurelien Campeas # Date 1231335763 -3600 # Node ID 31f88b2e350038a43cc92f7deab3ef6524f7677d # Parent e0d5879a613ee45a5b4486d1e3e5c180c9e8f3cc more translation and complements diff -r e0d5879a613e -r 31f88b2e3500 doc/book/en/D010-faq.en.txt --- a/doc/book/en/D010-faq.en.txt Wed Jan 07 12:25:18 2009 +0100 +++ b/doc/book/en/D010-faq.en.txt Wed Jan 07 14:42:43 2009 +0100 @@ -32,36 +32,38 @@ Python is an Object Oriented Programming language and as such it already provides a consistent and strong architecture and syntax - a templating language would not reach. - + a templating language would not reach. + When doing development, you need a real language and template languages are not real languages. - Using Python enables developing applications for which code is - easier to maintain with real functions/classes + Using Python enables developing applications for which code is + easier to maintain with real functions/classes/contexts without the need of learning a new dialect. By using Python, - we use standard OOP techniques and this is a key factor in a + we use standard OOP techniques and this is a key factor in a robust application. -* Why do you use the GPL license to prevent me from doing X? +* Why do you use the GPL license to prevent me from doing X ? - GPL means that *if* you redistribute your application, you need to - redistribute it *and* the changes you made *and* the code _linked_ - to it under the GPL licence. - + GPL means that *if* you redistribute your application, you need to + redistribute it *and* the changes you made *and* the code _linked_ + to it under the GPL licence. + Publishing a web site has nothing to do with redistributing source code. A fair amount of companies use modified GPL code - for internal use. And someone could publish a `CubicWeb` component - under a BSD licence for others to plug into a GPL framework without + for internal use. And someone could publish a `CubicWeb` component + under a BSD licence for others to plug into a GPL framework without any problem. The only thing we are trying to prevent here is someone taking the framework and packaging it as closed source to his own clients. - + * CubicWeb looks pretty recent. Is it stable ? - [answer that framework has evolved over the past seven years and that - data migrated from one schema to the other ever since] + It is constantly evolving, piece by piece. The framework has + evolved over the past seven years and data has been migrated from + one schema to the other ever since. There is a well-defined way to + handle data and schema migration. * Why is the RQL query language looking similar to X ? @@ -92,8 +94,8 @@ [we use jquery and things on top of that] * `Error while publishing rest text ...` - - While modifying the description of an entity, you get an error message in + + While modifying the description of an entity, you get an error message in the application `Error while publishing ...` for Rest text and plain text. The server returns a traceback like as follows :: @@ -104,31 +106,34 @@ file = __builtin__.open(filename, mode, buffering) TypeError: __init__() takes at most 3 arguments (4 given) - + This can be fixed by applying the patch described in : http://code.google.com/p/googleappengine/issues/detail?id=48 * What are hooks used for? - - Les crochets sont appeles lorsqu'une requete RQL est executee. Cela - permet d'executer des actions specifiques lors d'un acces a la base - de donnees, ce qui donne un controle de la base de donnees afin de - prevenir l'insertion de `mauvaises` entites dans la base. + + Hooks are executed around (actually before or after) events. The + most common events are data creation, update and deletion. They + permit additional constraint checking (those not expressible at the + schema level), pre and post computations depending on data + movements. + + As such, they are a vital part of the framework. + + Other kinds of hooks, called Operations, are available + for execution just before commit. * When should you define an HTML template rather than define a graphical component? - Un template HTML ne peut contenir de logique, il ne permettra donc - que de definir une vue statique. Un composant permet lui de gerer - plus de logique et d'operations sur le contexte dans lequel il - s'applique. Il faut donc bien reflechir avant de decider de l'un ou - de l'autre, mais vous avez la possibilite de choisir. + An HTML template cannot contain code, hence it is only about static + content. A component is made of code and operations that apply on a + well defined context (request, result set). It enables much more + dynamic views. * What is the difference between `AppRsetObject` and `AppObject` ? - La différence entre la classe `AppRsetObject` et la classe `AppObject` est que - les instances de la premières sont séléctionnées pour une requête et un "result - set" et alors que les secondes ne sont séléctionnées qu'en fonction de leur - identifiant. + `AppRsetObject` instances are selected on a request and a result + set. `AppObject` instances are directly selected by id. HOW TO ====== @@ -137,20 +142,20 @@ * How to update a database after a schema modification? - - Cela dépend de ce qui a été modifié dans le schéma. - - * Modification d'une relation non finale + + It depends on what has been modified in the schema. - * Modification d'une relation finale + * Update of a non final relation. + + * Update of a final relation. * How to create an anonymous user? - - Cela vous permet d'acceder a votre site sans avoir besoin de vous authentifier. - Dans le fichier ``all-in-one.conf`` de votre instance, définir l'utilisateur - anonyme en initilisant les valeurs des variables suivantes :: - + + This allows to bypass authentication for your site. In the + ``all-in-one.conf`` file of your instance, define the anonymous user + as follows :: + # login of the Erudi user account to use for anonymous user (if you want to # allow anonymous) anonymous-user=anon @@ -158,25 +163,25 @@ # password of the Erudi user account matching login anonymous-password=anon - Vous devez aussi vous assurer que cet utilisateur `anon` existe dans la base - de données, le plus simple étant de s'identifier sur votre application en - administrateur et de rajouter l'utilisateur `anon` via l'interface d'administration. + You also must ensure that this `anon` user is a registered user of + the DB backend. This could be the admin account (for development + purposes, of course). * How to change the application logo? - + There are two ways of changing the logo. 1. The easiest way to use a different logo is to replace the existing ``logo.png`` in ``myapp/data`` by your prefered icon and refresh. - By default all application will look for a ``logo.png`` to be + By default all application will look for a ``logo.png`` to be rendered in the logo section. .. image:: images/lax-book.06-main-template-logo.en.png 2. In your cube directory, you can specify which file to use for the logo. This is configurable in ``mycube/data/external_resources``: :: - + LOGO = DATADIR/path/to/mylogo.gif where DATADIR is ``mycubes/data``. @@ -185,7 +190,7 @@ Here is a very usefull script which enables you to import LDAP users into your `CubicWeb` application by runing the following: :: - + import os import pwd @@ -236,4 +241,4 @@ cnx.commit() cnx.close() - +