--- a/doc/book/en/A020-tutorial.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ b/doc/book/en/A020-tutorial.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -1,9 +1,9 @@
.. -*- coding: utf-8 -*-
-.. _Overview:
+.. _Tutorial:
-Quick overview of `CubicWeb`
-============================
+Tutorial
+========
`CubicWeb` is a semantic web application framework that favors reuse and
object-oriented design.
@@ -17,6 +17,7 @@
An `instance` is a specific installation of an application and includes
configuration files.
+
This tutorial will show how to create a `cube` and how to use it as an
application to run an `instance`.
--- a/doc/book/en/A02a-create-cube.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ b/doc/book/en/A02a-create-cube.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -24,8 +24,6 @@
::
- from cubicweb.schema import format_constraint
-
class Blog(EntityType):
title = String(maxsize=50, required=True)
description = String()
@@ -63,9 +61,7 @@
cubicweb-ctl create blog blogdemo
-This command will create a directory ``~/etc/cubicweb.d/blogdemo``
-which will contain all the configuration files required to start
-you web application.
+This command will create the corresponding database and initialize it.
Welcome to your web application
-------------------------------
--- a/doc/book/en/A02b-components.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ b/doc/book/en/A02b-components.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -68,7 +68,7 @@
Once you modified your data model, you need to synchronize the
database with your model. For this purpose, `CubicWeb` provides
-a very usefull command ``cubicweb-ctl shell blogdemo`` which
+a very useful command ``cubicweb-ctl shell blogdemo`` which
launches an interactive migration Python shell. (see
:ref:`cubicweb-ctl-shell` for more details))
As you modified a relation from the `BlogEntry` schema,
--- a/doc/book/en/B0012-schema-definition.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ b/doc/book/en/B0012-schema-definition.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -23,14 +23,36 @@
works_for = SubjectRelation('Company', cardinality='?*')
-* the name of the Python attribute corresponds to the name of the attribute
- or the relation in `CubicWeb` application.
+The entity described above defines three attributes of type String,
+last_name, first_name and title, an attribute of type Date for the date of
+birth and a relation that connects a `Person` to another entity of type
+`Company` through the semantic `works_for`.
+
+The name of the Python attribute corresponds to the name of the attribute
+or the relation in `CubicWeb` application.
+
+Built-in types for attributes
+`````````````````````````````
-* all `CubicWeb` built-in types are available : `String`, `Int`, `Float`,
- `Boolean`, `Date`, `Datetime`, `Time`, `Byte`; they are and implicitely
- imported (as well as the special the function "_").
+All `CubicWeb` built-in types are available : `String`, `Int`, `Float`,
+`Decimal`, `Boolean`, `Date`, `Datetime`, `Time`, `Interval`, `Byte`
+and `Password`.
+They are implicitely imported (as well as the special the function "_"
+for translation :ref:`internationalization`).
+
+An attribute is defined in the schema as follows::
+
+ attr_name = attr_type(properties*)
-* each entity type has at least the following meta-relations :
+where `attr_type` is one of the type listed above and `properties` is
+a list of the attribute needs to statisfy (see :ref:`properties`
+for more details).
+
+
+Meta-data
+`````````
+
+Each entity type has at least the following meta-relations :
- `eid` (`Int`)
@@ -43,7 +65,7 @@
- `owned_by` (`EUser`) (to whom the entity belongs; by default the
creator but not necessary, and it could have multiple owners)
- - `is` (`EEType`)
+ - `is` (`EEType`) (of which type the entity is)
* relations can be defined by using `ObjectRelation` or `SubjectRelation`.
@@ -64,6 +86,11 @@
* it is possible to use the attribute `meta` to flag an entity type as a `meta`
(e.g. used to describe/categorize other entities)
+Optionnal properties
+````````````````````
+.. _properties:
+
+
* optional properties for attributes and relations :
- `description` : a string describing an attribute or a relation. By default
@@ -97,7 +124,7 @@
or not within all entities of the same type (false by default)
- `indexed` : boolean indicating if an index needs to be created for this
- attribute in the database (false by default). This is usefull only if
+ attribute in the database (false by default). This is useful only if
you know that you will have to run numerous searches on the value of this
attribute.
--- a/doc/book/en/B0040-migration.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ b/doc/book/en/B0040-migration.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -208,3 +208,6 @@
* `add_entity_type_table(etype, commit=True)`
* `add_relation_type_table(rtype, commit=True)`
* `uninline_relation(rtype, commit=True)`
+
+
+[FIXME] Add explanation on how to use cubicweb-ctl shell
--- a/doc/book/en/B1020-define-views.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ b/doc/book/en/B1020-define-views.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -220,12 +220,19 @@
of type `Password` and `Bytes`.
*content_navigation_components(self, context)*
+ This method is applicable only for entity type implementing the interface
+ `IPrevNext`. This interface is for entities which can be linked to a previous
+ and/or next entity. This methods will render the navigation links between
+ entities of this type, either at the top or at the bottom of the page
+ given the context (navcontent{top|bottom}).
*render_entity_relations(self, entity, siderelations)*
- Renders all the relations of the entity.
+ Renders all the relations of the entity in the main section of the page.
*render_side_related(self, entity, siderelations)*
- Renders side related relations.
+ Renders all the relations of the entity in a side box. This is equivalent
+ to *render_entity_relations* in addition to render the relations
+ in a box.
Also, please note that by setting the following attributes in you class,
you can already customize some of the rendering:
--- a/doc/book/en/B1090-internationalization.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ b/doc/book/en/B1090-internationalization.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -1,9 +1,9 @@
.. -*- coding: utf-8 -*-
-.. _internationalization:
+.. _internationalisation:
-Internationalization
+Internationalisation
====================
Cubicweb fully supports the internalization of it's content and interface.
--- a/doc/book/en/C000-administration.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ b/doc/book/en/C000-administration.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -13,7 +13,8 @@
:maxdepth: 1
C010-setup.en.txt
- C020-site-config.en.txt
- C030-instance-config.en.txt
- C040-rql.en.txt
+ C020-create-instance.en.txt
+ C030-site-config.en.txt
+ C040-instance-config.en.txt
+ C050-rql.en.txt
--- a/doc/book/en/C010-setup.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ b/doc/book/en/C010-setup.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -6,7 +6,202 @@
Installation and set-up of a `CubicWeb` environment
===================================================
-.. include:: C011-installation.en.txt
-.. include:: C012-create-instance.en.txt
-.. include:: C013-cubicweb-ctl.en.txt
+Installation of `Cubicweb` and its dependencies
+-----------------------------------------------
+
+`CubicWeb` is packaged for Debian and Ubuntu, but can be installed from source
+using a tarball or the Mercurial version control system.
+
+.. _DebianInstallation:
+
+Debian and Ubuntu packages
+```````````````````````````
+
+Depending on the distribution you are using, add the appropriate line to your list
+of sources (for example by editing ``/etc/apt/sources.list``).
+
+For Debian Lenny::
+
+ deb http://ftp.logilab.org/dists/ lenny/
+
+For Debian Sid::
+
+ deb http://ftp.logilab.org/dists/ sid/
+
+For Ubuntu Hardy::
+
+ deb http://ftp.logilab.org/dists/ hardy/
+
+
+You can now install the required packages with the following command::
+
+ apt-get update
+ apt-get install cubicweb cubicweb-dev
+
+`cubicweb` installs the framework itself, allowing you to create
+new applications.
+
+`cubicweb-dev` installs the development environment allowing you to
+develop new cubes.
+
+There is also a wide variety of cubes listed on http://www.cubicweb.org/Project available as debian packages and tarball.
+
+
+Install from source
+```````````````````
+
+You can download the archive containing the sources from our `ftp site`_ at::
+
+ http://ftp.logilab.org/pub/cubicweb/
+
+.. _`ftp site`: http://ftp.logilab.org/pub/cubicweb/
+
+or keep up to date with on-going development by using Mercurial and its forest
+extension::
+
+ hg fclone http://www.logilab.org/hg/forests/cubicweb
+
+See :ref:`MercurialPresentation` for more details about Mercurial.
+
+Postgres installation
+`````````````````````
+
+Please refer to the `Postgresql project online documentation`_.
+
+.. _`Postgresql project online documentation`: http://www.postgresql.org/
+
+You need to install the three following packages: `postgres-8.3`,
+`postgres-contrib-8.3` and `postgresql-plpython-8.3`.
+
+
+Then you can install:
+
+* `pyro` if you wish the repository to be accessible through Pyro
+ or if the client and the server are not running on the same machine
+ (in which case the packages will have to be installed on both
+ machines)
+
+* `python-ldap` if you plan to use a LDAP source on the server
+
+.. _ConfigurationEnv:
+
+Environment configuration
+-------------------------
+
+If you installed `CubicWeb` by cloning the Mercurial forest, then you
+will need to update the environment variable PYTHONPATH by adding
+the path to the forest ``cubicweb``:
+
+Add the following lines to either `.bashrc` or `.bash_profile` to configure
+your development environment ::
+
+ export PYTHONPATH=/full/path/to/cubicweb-forest
+
+If you installed the debian packages, no configuration is required.
+Your new cubes will be placed in `/usr/share/cubicweb/cubes` and
+your applications will be placed in `/etc/cubicweb.d`.
+
+To use others directories then you will have to configure the
+following environment variables as follows::
+ export CW_CUBES_PATH=~/lib/cubes
+ export CW_REGISTRY=~/etc/cubicweb.d/
+ export CW_INSTANCE_DATA=$CW_REGISTRY
+ export CW_RUNTIME=/tmp
+
+.. note::
+ The values given above are our suggestions but of course
+ can be different.
+
+
+Databases configuration
+-----------------------
+
+
+
+.. _ConfigurationPostgres:
+
+Postgres configuration
+``````````````````````
+
+.. note::
+ If you already have an existing cluster and postgres server
+ running, you do not need to execute the initilization step
+ of your Postgres database.
+
+* First, initialize the database Postgres with the command ``initdb``.
+ ::
+
+ $ initdb -D /path/to/pgsql
+
+ Once initialized, start the database server Postgres
+ with the command::
+
+ $ postgres -D /path/to/psql
+
+ If you cannot execute this command due to permission issues, please
+ make sure that your username has write access on the database.
+ ::
+
+ $ chown username /path/to/pgsql
+
+* The database authentication can be either set to `ident sameuser`
+ or `md5`.
+ If set to `md5`, make sure to use an existing user
+ of your database.
+ If set to `ident sameuser`, make sure that your
+ client's operating system user name has a matching user in
+ the database. If not, please do as follow to create a user::
+
+ $ su
+ $ su - postgres
+ $ createuser -s -P username
+
+ The option `-P` (for password prompt), will encrypt the password with
+ the method set in the configuration file ``pg_hba.conf``.
+ If you do not use this option `-P`, then the default value will be null
+ and you will need to set it with::
+
+ $ su postgres -c "echo ALTER USER username WITH PASSWORD 'userpasswd' | psql"
+
+ This login/password will be requested when you will create an
+ instance with `cubicweb-ctl create` to initialize the database of
+ your application.
+
+.. note::
+ The authentication method can be configured in ``pg_hba.conf``.
+
+
+.. FIXME Are these steps really necessary? It seemed to work without.
+
+* Installation of plain-text index extension ::
+
+ cat /usr/share/postgresql/8.3/contrib/tsearch2.sql | psql -U username template1
+
+* Installation of plpythonu language by default ::
+
+ createlang -U pgadmin plpythonu template1
+
+MySql configuration
+```````````````````
+Yout must add the following lines in /etc/mysql/my.cnf file::
+
+ transaction-isolation = READ-COMMITTED
+ default-storage-engine=INNODB
+ default-character-set=utf8
+ max_allowed_packet = 128M
+
+Pyro configuration
+------------------
+
+If you use Pyro, it is required to have a name server Pyro running on your
+network (by default it is detected by a broadcast request).
+
+To do so, you need to :
+
+* launch the server manually before starting cubicweb as a server with
+ `pyro-nsd start`
+
+* edit the file ``/etc/default/pyro-nsd`` so that the name server pyro
+ will be launched automatically when the machine fire up
+
--- a/doc/book/en/C011-installation.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,209 +0,0 @@
-.. -*- coding: utf-8 -*-
-
-.. _CubicWebInstallation:
-
-Installation
-============
-
-Installation of `Cubicweb` and its dependencies
------------------------------------------------
-
-`CubicWeb` is packaged for Debian and Ubuntu, but can be installed from source
-using a tarball or the Mercurial version control system.
-
-Debian and Ubuntu packages
-```````````````````````````
-Depending on the distribution you are using, add the appropriate line to your list
-of sources (for example by editing ``/etc/apt/sources.list``).
-
-For Debian Lenny::
-
- deb http://ftp.logilab.org/dists/ lenny/
-
-For Debian Sid::
-
- deb http://ftp.logilab.org/dists/ sid/
-
-For Ubuntu Hardy::
-
- deb http://ftp.logilab.org/dists/ hardy/
-
-
-You can now install the required packages with the following command::
-
- apt-get update
- apt-get install cubicweb
- apt-get install cubicweb-dev
-
-`cubicweb` installs the framework itself, allowing you to create
-new applications.
-
-`cubicweb-dev` installs the development environment allowing you to
-develop new cubes.
-
-There is also a wide variety of cubes listed on http://www.cubicweb.org/Project available as debian packages and tarball.
-
-
-Install from source
-```````````````````
-
-You can download the archive containing the sources from our `ftp site`_ at::
-
- http://ftp.logilab.org/pub/cubicweb/
-
-.. _`ftp site`: http://ftp.logilab.org/pub/cubicweb/
-
-or keep up to date with on-going development by using Mercurial and its forest
-extension::
-
- hg fclone http://www.logilab.org/hg/forests/cubicweb
-
-See :ref:`MercurialPresentation` for more details about Mercurial.
-
-Postgres installation
-`````````````````````
-
-Please refer to the `Postgresql project online documentation`_.
-
-.. _`Postgresql project online documentation`: http://www.postgresql.org/
-
-You need to install the three following packages: `postgres-8.3`,
-`postgres-contrib-8.3` and `postgresql-plpython-8.3`.
-
-
-Then you can install:
-
-* `pyro` if you wish the repository to be accessible through Pyro
- or if the client and the server are not running on the same machine
- (in which case the packages will have to be installed on both
- machines)
-
-* `python-ldap` if you plan to use a LDAP source on the server
-
-.. _ConfigurationEnv:
-
-Environment configuration
--------------------------
-
-If you installed `CubicWeb` by cloning the Mercurial forest, then you
-will need to update the environment variable PYTHONPATH by adding
-the path to the forest ``cubicweb``:
-
-Add the following lines to either `.bashrc` or `.bash_profile` to configure
-your development environment ::
-
- export PYTHONPATH=/full/path/to/cubicweb-forest
-
-If you installed the debian packages, no configuration is required.
-Your new cubes will be placed in `/usr/share/cubicweb/cubes` and
-your applications will be placed in `/etc/cubicweb.d`.
-
-To use others directories then you will have to configure the
-following environment variables as follows::
-
- export CW_CUBES_PATH=~/lib/cubes
- export CW_REGISTRY=~/etc/cubicweb.d/
- export CW_INSTANCE_DATA=$CW_REGISTRY
- export CW_RUNTIME=/tmp
-
-.. note::
- The values given above are our suggestions but of course
- can be different.
-
-.. _ConfigurationPostgres:
-
-Postgres configuration
-----------------------
-
-.. note::
- If you already have an existing cluster and postgres server
- running, you do not require to execute the initilization step
- of your Postgres database.
-
-* First you have to initialize the database Postgres with the command ``initdb``.
- ::
-
- $ initdb -D /path/to/pgsql
-
- Once initialized, you can launch the database server Postgres
- with the command::
-
- $ postgres -D /path/to/psql
-
- If you cannot execute this command due to permission issues, please
- make sure that your username has write access on the database.
- ::
-
- $ chown username /path/to/pgsql
-
-* The database authentication can be either set to `ident sameuser`
- or `md5`.
- If set to `md5`, make sure to use an existing user
- of your database.
- If set to `ident sameuser`, make sure that your
- client's operating system user name has a matching user in
- the database. If not, please do as follow to create a user::
-
- $ su
- $ su - postgres
- $ createuser -s username
-
- If created with the options -P (for password prompt,
- ``createuser -s -P username``), the password will be encrypted with
- the method set in the configuration file ``pg_hba.conf``.
- If you do not use this option, then the default value will be null
- and this require to set the password in the database itself.
- To do so: ::
-
- $ su
- $ su - postgres
- $ psql
-
- And then execute de following query::
-
- ALTER USER username WITH PASSWORD `password`
-
- This login/password will be requested when you will create an
- instance with `cubicweb-ctl create` to initialize the database of
- your application.
-
-.. note::
- The authentication method can be configured in ``pg_hba.conf``.
-
-
-.. FIXME Are these steps really necessary? It seemed to work without.
-
-* Installation of plain-text index extension ::
-
- cat /usr/share/postgresql/8.3/contrib/tsearch2.sql | psql -U username template1
-
-* Installation of plpythonu language by default ::
-
- createlang -U pgadmin plpythonu template1
-
-MySql configuration
--------------------
-Yout must add the following lines in /etc/mysql/my.cnf file::
-
- transaction-isolation = READ-COMMITTED
- default-storage-engine=INNODB
- default-character-set=utf8
- max_allowed_packet = 128M
-
-Pyro configuration
-------------------
-
-If you use Pyro, it is required to have a name server Pyro running on your
-network (by default it is identified by a broadcast request).
-
-To do so, you need to :
-
-* launch the server manually before starting cubicweb with `pyro-ns`
-
-* launch the server manually before starting cubicweb as a server with
- `pyro-nsd start`
-
-* edit the file ``/etc/default/pyro-nsd`` so that the name server pyro
- will be launched automatically when the machine fire up
-
-
--- a/doc/book/en/C012-create-instance.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-.. -*- coding: utf-8 -*-
-
-Creation of your first instance
-===============================
-
-What is an instance?
---------------------
-
-A `CubicWeb` instance is a directory in ``~/etc/cubicweb.d``
-which enables us to run a web application. An instance is based on
-one or more cubes.
-
-An instance is a container that refers to cubes and configuration
-parameters for your web application.
-
-We recommand not to define schema, entities or views in the instance
-file system itself but in the cube, in order to maintain re-usability of
-entities and their views. We strongly recommand to develop cubes which
-could be used in other instances (modular approach).
-
-
-What is a cube?
----------------
-
-A cube defines entities, their views, their schemas and workflows
-in an independant directory located in ``/path/to/forest/cubicweb/cubes/``
-for a Mercurial installation or in ``/usr/share/cubicweb/cubes`` for
-a debian package installation.
-
-When an instance is created, you list one or more cubes that your instance
-will use. Using a cube means having the entities defined in your cube's schema
-available in your instance as well as their views and workflows.
-
-.. note::
- The commands used below are more detailled in the section dedicated to
- :ref:`cubicweb-ctl`.
-
-
-Create a cube
--------------
-
-Let's start by creating the cube environment in which we will develop ::
-
- cd ~/hg
-
- cubicweb-ctl newcube mycube
-
- # answer questions
- hg init moncube
- cd mycube
- hg add .
- hg ci
-
-If all went well, you should see the cube you just create in the list
-returned by `cubicweb-ctl list` in the section *Available components*,
-and if it is not the case please refer to :ref:`ConfigurationEnv`.
-
-To use a cube, you have to list it in the variable ``__use__``
-of the file ``__pkginfo__.py`` of the instance.
-This variable is used for the instance packaging (dependencies
-handled by system utility tools such as APT) and the usable cubes
-at the time the base is created (import_erschema('MyCube') will
-not properly work otherwise).
-
-.. note::
- Please note that if you do not wish to use default directory
- for your cubes library, then you want to use the option
- --directory to specify where you would like to place
- the source code of your cube:
- ``cubicweb-ctl newcube --directory=/path/to/cubes/library cube_name``
-
-Instance creation
------------------
-
-Now that we created our cube, we can create an instance to view our
-application in a web browser. To do so we will use a `all-in-on`
-configuration to simplify things ::
-
- cubicweb-ctl create -c all-in-one mycube myinstance
-
-.. note::
- Please note that we created a new cube for a demo purpose but
- you could have use an existing cube available in our standard library
- such as blog or person for example.
-
-A serie of questions will be prompted to you, the default answer is usually
-sufficient. You can anyway modify the configuration later on by editing
-configuration files. When a user/psswd is requested to access the database
-please use the login you create at the time you configured the database
-(:ref:`ConfigurationPostgres`).
-
-It is important to distinguish here the user used to access the database and
-the user used to login to the cubicweb application. When a `CubicWeb` application
-starts, it uses the login/psswd for the database to get the schema and handle
-low level transaction. But, when ``cubicweb-ctl create`` asks for
-a manager login/psswd of `CubicWeb`, it refers to an application user you will
-use during the development to administrate your web application. It will be
-possible, later on, to create others users for your final web application.
-
-When this command is completed, the definition of your instance is
-located in *~/etc/cubicweb.d/myinstance/*. To launch it, you just type ::
-
- cubicweb-ctl start -D myinstance
-
-The option `-D` specify the *debug mode* : the instance is not running in
-server mode and does not disconnect from the termnial, which simplifies debugging
-in case the instance is not properly launched. You can see how it looks by
-visiting the URL `http://localhost:8080` (the port number depends of your
-configuration). To login, please use the cubicweb administrator login/psswd you
-defined when you created the instance.
-
-To shutdown the instance, Crtl-C in the terminal window is enough.
-If you did not use the option `-D`, then type ::
-
- cubicweb-ctl stop myinstance
-
-This is it! All is settled down to start developping your data model...
-
-
-Usage of `cubicweb-liveserver`
-``````````````````````````````
-
-To quickly test a new cube, you can also use the script `cubicweb-liveserver`
-which allows to create an application in memory (use of SQLite database by
-default) and make it accessible through a web server ::
-
- cubicweb-ctl live-server mycube
-
-or by using an existing database (SQLite or Postgres)::
-
- cubicweb-ctl live-server -s myfile_sources mycube
-
--- a/doc/book/en/C013-cubicweb-ctl.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-.. -*- coding: utf-8 -*-
-
-.. _cubicweb-ctl:
-
-``cubicweb-ctl`` tool
-=====================
-
-`cubicweb-ctl` is the swiss knife to manage `CubicWeb` instances.
-The general syntax is ::
-
- cubicweb-ctl <command> [options command] <arguments commands>
-
-To view available commands ::
-
- cubicweb-ctl
- cubicweb-ctl --help
-
-Please note that the commands available depends on the `CubicWeb` packages
-and cubes that have been installed.
-
-To view the help menu on specific command ::
-
- cubicweb-ctl <command> --help
-
-Command to create a cube
-------------------------
-
-* ``newcube``, create a new cube on the file system based on the name
- given in the parameters. This command create a cube from an application
- skeleton that includes default files required for debian packaging.
-
-
-Command to create an instance
------------------------------
-* ``create``, creates the files for the instance configuration
-* ``db-create``, creates the system database of an instance (tables and
- extensions only)
-* ``db-init``, initializes the system database of an instance
- (schema, groups, users, workflows...)
-
-By default, those three commandes are encapsulated in ``create`` so
-that they can be executed consecutively.
-
-Command to create an instance for Google AppEngine datastore source
--------------------------------------------------------------------
-* ``newgapp``, creates the configuration files for an instance
-
-This command needs to be followed by the commands responsible for
-the database initialization. As those are specific to the `datastore`,
-specific Google AppEgine database, they are not available for now
-in cubicweb-ctl, but they are available in the instance created.
-
-For more details, please see :ref:`gaecontents` .
-
-Commands to launch instance
----------------------------
-* ``start``, starts one or more or all instances
-* ``stop``, stops one or more or all instances
-* ``restart``, restarts one or more or all instances
-* ``status``, returns the status of the instance
-
-Commands to maintain instances
-------------------------------
-* ``upgrade``, launches the existing instances migration when a new version
- of `CubicWeb` or the cubes installed is available
-* ``shell``, opens a migration shell for manual maintenance of the instance
- (see :ref:`cubicweb-ctl-shell` for more details)
-* ``db-dump``, creates a dump of the system database
-* ``db-restore``, restores a dump of the system database
-* ``db-check``, checks data integrity of an instance. If the automatic correction
- is activated, it is recommanded to create a dump before this operation.
-* ``schema-sync``, synchronizes the persistent schema of an instance with
- the application schema. It is recommanded to create a dump before this operation.
-
-Commands to maintain i18n catalogs
-----------------------------------
-* ``i18nlibupdate``, regenerates messages catalogs of the `CubicWeb` library
-* ``i18nupdate``, regenerates the messages catalogs of a cube
-* ``i18ncompile``, recompiles the messages catalogs of an instance.
- This is automatically done while upgrading.
-
-Cf :ref:`Internationalisation`.
-
-Other commands
---------------
-* ``list``, provides a list of the available configuration, cubes
- and instances.
-* ``delete``, deletes an instance (configuration files and database)
-
-
-.. _cubicweb-ctl-shell:
-
-``cubicweb-ctl shell`` addon
-----------------------------
-
-This migration shell provides an interactive interface to all
-the migrations functions described in the chapter :ref:`migration`.
-
-Usage
-`````
-::
-
- ``cubicweb-ctl shell myapp``
-
-Examples
---------
-
-Create an instance from an existing cube
-````````````````````````````````````````
-
-To create an instance from an existing cube, execute the following
-command ::
-
- cubicweb-ctl create <cube_name> <instance_name>
-
-This command will create the configuration files of an instance in
-``~/etc/cubicweb.d/<instance_name>``.
-The tool ``cubicweb-ctl`` allows you to execute the command ``db-create``
-and ``db-init`` when you run ``create`` so that you can complete an
-instance creation in a single command.
-
-If you decide not to execut those commands while ``cubicweb-ctl create``,
-then you will have to execute them seperately(``cubicweb-ctl db-create``,
-``cubicweb-ctl db-init`` ) otherwise your installation will not be complete
-and you will not be able to launch your instance.
-
-
-Creation of an instance from a new cube
-```````````````````````````````````````
-
-Create first your new cube cube ::
-
- cubicweb-ctl newcube <mycube>
-
-This will create a new cube in ``/path/to/forest/cubicweb/cubes/<mycube>``
-for a Mercurial forest installation, or in ``/usr/share/cubicweb/cubes``
-for a debian packages installation, and then create an instance as
-explained just above.
-
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/book/en/C020-create-instance.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -0,0 +1,132 @@
+.. -*- coding: utf-8 -*-
+
+Creation of your first instance
+===============================
+
+What is an instance?
+--------------------
+
+A `CubicWeb` instance is a directory in ``~/etc/cubicweb.d``
+which enables us to run a web application. An instance is based on
+a cube.
+
+An instance is a container that refers to cubes and configuration
+parameters for your web application.
+
+We recommand not to define schema, entities or views in the instance
+file system itself but in the cube, in order to maintain re-usability of
+entities and their views. We strongly recommand to develop cubes which
+could be used in other instances (modular approach).
+
+
+What is a cube?
+---------------
+
+A cube defines entities, their views, their schemas and workflows
+in an independant directory located in ``/path/to/forest/cubicweb/cubes/``
+for a Mercurial installation or in ``/usr/share/cubicweb/cubes`` for
+a debian package installation.
+
+When an instance is created, you list one or more cubes that your instance
+will use. Using a cube means having the entities defined in your cube's schema
+available in your instance as well as their views and workflows.
+
+.. note::
+ The commands used below are more detailled in the section dedicated to
+ :ref:`cubicweb-ctl`.
+
+
+Create a cube
+-------------
+
+Let's start by creating the cube environment in which we will develop ::
+
+ cd ~/hg
+
+ cubicweb-ctl newcube mycube
+
+ # answer questions
+ hg init moncube
+ cd mycube
+ hg add .
+ hg ci
+
+If all went well, you should see the cube you just create in the list
+returned by `cubicweb-ctl list` in the section *Available components*,
+and if it is not the case please refer to :ref:`ConfigurationEnv`.
+
+To use a cube, you have to list it in the variable ``__use__``
+of the file ``__pkginfo__.py`` of the instance.
+This variable is used for the instance packaging (dependencies
+handled by system utility tools such as APT) and the usable cubes
+at the time the base is created (import_erschema('MyCube') will
+not properly work otherwise).
+
+.. note::
+ Please note that if you do not wish to use default directory
+ for your cubes library, then you want to use the option
+ --directory to specify where you would like to place
+ the source code of your cube:
+ ``cubicweb-ctl newcube --directory=/path/to/cubes/library cube_name``
+
+Instance creation
+-----------------
+
+Now that we created our cube, we can create an instance to view our
+application in a web browser. To do so we will use a `all-in-on`
+configuration to simplify things ::
+
+ cubicweb-ctl create -c all-in-one mycube myinstance
+
+.. note::
+ Please note that we created a new cube for a demo purpose but
+ you could have use an existing cube available in our standard library
+ such as blog or person for example.
+
+A serie of questions will be prompted to you, the default answer is usually
+sufficient. You can anyway modify the configuration later on by editing
+configuration files. When a user/psswd is requested to access the database
+please use the login you create at the time you configured the database
+(:ref:`ConfigurationPostgres`).
+
+It is important to distinguish here the user used to access the database and
+the user used to login to the cubicweb application. When a `CubicWeb` application
+starts, it uses the login/psswd for the database to get the schema and handle
+low level transaction. But, when ``cubicweb-ctl create`` asks for
+a manager login/psswd of `CubicWeb`, it refers to an application user you will
+use during the development to administrate your web application. It will be
+possible, later on, to create others users for your final web application.
+
+When this command is completed, the definition of your instance is
+located in *~/etc/cubicweb.d/myinstance/*. To launch it, you just type ::
+
+ cubicweb-ctl start -D myinstance
+
+The option `-D` specify the *debug mode* : the instance is not running in
+server mode and does not disconnect from the termnial, which simplifies debugging
+in case the instance is not properly launched. You can see how it looks by
+visiting the URL `http://localhost:8080` (the port number depends of your
+configuration). To login, please use the cubicweb administrator login/psswd you
+defined when you created the instance.
+
+To shutdown the instance, Crtl-C in the terminal window is enough.
+If you did not use the option `-D`, then type ::
+
+ cubicweb-ctl stop myinstance
+
+This is it! All is settled down to start developping your data model...
+
+
+Usage of `cubicweb-liveserver`
+``````````````````````````````
+
+To quickly test a new cube, you can also use the script `cubicweb-liveserver`
+which allows to create an application in memory (use of SQLite database by
+default) and make it accessible through a web server ::
+
+ cubicweb-ctl live-server mycube
+
+or by using an existing database (SQLite or Postgres)::
+
+ cubicweb-ctl live-server -s myfile_sources mycube
+
--- a/doc/book/en/C020-site-config.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-.. -*- coding: utf-8 -*-
-
-User interface for web site configuration
-=========================================
-
-.. image:: images/lax-book.03-site-config-panel.en.png
-
-This panel allows you to configure the appearance of your application site.
-Six menus are available and we will go through each of them to explain how
-to use them.
-
-Navigation
-~~~~~~~~~~
-This menu provides you a way to adjust some navigation options depending on
-your needs, such as the number of entities to display by page of results.
-Follows the detailled list of available options :
-
-* navigation.combobox-limit : maximum number of entities to display in related
- combo box (sample format: 23)
-* navigation.page-size : maximum number of objects displayed by page of results
- (sample format: 23)
-* navigation.related-limit : maximum number of related entities to display in
- the primary view (sample format: 23)
-* navigation.short-line-size : maximum number of characters in short description
- (sample format: 23)
-
-UI
-~~
-This menu provides you a way to customize the user interface settings such as
-date format or encoding in the produced html.
-Follows the detailled list of available options :
-
-* ui.date-format : how to format date in the ui ("man strftime" for format description)
-* ui.datetime-format : how to format date and time in the ui ("man strftime" for format
- description)
-* ui.default-text-format : default text format for rich text fields.
-* ui.encoding : user interface encoding
-* ui.fckeditor :should html fields being edited using fckeditor (a HTML WYSIWYG editor).
- You should also select text/html as default text format to actually get fckeditor.
-* ui.float-format : how to format float numbers in the ui
-* ui.language : language of the user interface
-* ui.main-template : id of main template used to render pages
-* ui.site-title : site title, which is displayed right next to the logo in the header
-* ui.time-format : how to format time in the ui ("man strftime" for format description)
-
-
-Actions
-~~~~~~~
-This menu provides a way to configure the context in which you expect the actions
-to be displayed to the user and if you want the action to be visible or not.
-You must have notice that when you view a list of entities, an action box is
-available on the left column which display some actions as well as a drop-down
-menu for more actions.
-
-The context available are :
-
-* mainactions : actions listed in the left box
-* moreactions : actions listed in the `more` menu of the left box
-* addrelated : add actions listed in the left box
-* useractions : actions listed in the first section of drop-down menu
- accessible from the right corner user login link
-* siteactions : actions listed in the second section of drop-down menu
- accessible from the right corner user login link
-* hidden : select this to hide the specific action
-
-Boxes
-~~~~~
-The application has already a pre-defined set of boxes you can use right away.
-This configuration section allows you to place those boxes where you want in the
-application interface to customize it.
-
-The available boxes are :
-
-* actions box : box listing the applicable actions on the displayed data
-
-* boxes_blog_archives_box : box listing the blog archives
-
-* possible views box : box listing the possible views for the displayed data
-
-* rss box : RSS icon to get displayed data as a RSS thread
-
-* search box : search box
-
-* startup views box : box listing the configuration options available for
- the application site, such as `Preferences` and `Site Configuration`
-
-Components
-~~~~~~~~~~
-[WRITE ME]
-
-Contextual components
-~~~~~~~~~~~~~~~~~~~~~
-[WRITE ME]
-
--- a/doc/book/en/C030-instance-config.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,163 +0,0 @@
-.. -*- coding: utf-8 -*-
-
-
-Configure an instance
-=====================
-
-While creating an instance, a configuration file is generated in::
-
- $ (CW_REGISTRY) / <instance> / <configuration name>.conf
-
-For example::
-
- /etc/cubicweb.d/JPL/all-in-one.conf
-
-It is a simple text file format INI. In the following description,
-each option name is prefixed with its own section and followed by its
-default value if necessary, e.g. "`<section>.<option>` [value]."
-
-
-Configuring the Web server
---------------------------
-:`web.auth-model` [cookie]:
- authentication mode, cookie or http
-:`web.realm`:
- realm of the application in http authentication mode
-:`web.http-session-time` [0]:
- period of inactivity of an HTTP session before it closes automatically.
- Duration in seconds, 0 meaning no expiration (or more exactly at the
- closing of the browser client)
-
-:`main.anonymous-user`, `main.anonymous-password`:
- login and password to use to connect to the RQL server with
- HTTP anonymous connection. EUser account should exist.
-
-:`main.base-url`:
- url base site to be used to generate the urls of web pages
-
-Https configuration
-```````````````````
-It is possible to make a site accessible for anonymous http connections
-and https for authenticated users. This requires to
-use apache (for example) for redirection and the variable `main.https-url`
-of configuration file.
-
-:Example:
-
- For an apache redirection of a site accessible via `http://localhost/demo`
- and `https://localhost/demo` and actually running on port 8080, it
- takes to the http:::
-
- RewriteCond %(REQUEST_URI) ^/demo
- RewriteRule ^/demo$/demo/
- RewriteRule ^/demo/(.*) http://127.0.0.1:8080/$1 [L,P]
-
- and for the https:::
-
- RewriteCond %(REQUEST_URI) ^/ demo
- RewriteRule ^/demo$/demo/
- RewriteRule ^/demo/(.*) http://127.0.0.1:8080/https/$1 [L,P]
-
-
- and we will file in the all-in-one.conf of the instance:::
-
- base-url = http://localhost/demo
- https-url = `https://localhost/demo`
-
-Setting up the web
---------------------------------
-:`web.embed-allowed`:
- regular expression matching sites which could be "embedded" in
- the site (controllers 'embed')
-:`web.submit-url`:
- url where the bugs encountered in the application can be mailed to
-
-
-RQL server configuration
-------------------------
-:`main.host`:
- host name if it can not be detected correctly
-:`main.pid-file`:
- file where will be written the server pid
-:`main.uid`:
- user account to use for launching the server when it is
- root launched by init
-:`main.session-time [30*60]`:
- timeout of a RQL session
-:`main.query-log-file`:
- file where all requests RQL executed by the server are written
-
-
-Pyro configuration for the instance
------------------------------------
-Web server side:
-
-:`pyro-client.pyro-application-id`:
- pyro identifier of RQL server (e.g. the instance name)
-
-RQL server side:
-
-:`pyro-server.pyro-port`:
- pyro port number. If none is specified, a port is assigned
- automatically.
-
-RQL and web servers side:
-
-:`pyro-name-server.pyro-ns-host`:
- hostname hosting pyro server name. If no value is
- specified, it is located by a request from broadcast
-:`pyro-name-server.pyro-ns-group` [cubicweb]:
- pyro group in which to save the application
-
-
-Configuring e-mail
-------------------
-RQL and web server side:
-
-:`email.mangle-mails [no]`:
- indicates whether the email addresses must be displayed as is or
- transformed
-
-RQL server side:
-
-:`email.smtp-host [mail]`:
- hostname hosting the SMTP server to use for outgoing mail
-:`email.smtp-port [25]`:
- SMTP server port to use for outgoing mail
-:`email.sender-name`:
- name to use for outgoing mail of the application
-:`email.sender-addr`:
- address for outgoing mail of the application
-:`email.default dest-addrs`:
- destination addresses by default, if used by the configuration of the
- dissemination of the model (separated by commas)
-:`email.supervising-addrs`:
- destination addresses of e-mails of supervision (separated by
- commas)
-
-
-Configuring logging
--------------------
-:`main.log-threshold`:
- level of filtering messages (DEBUG, INFO, WARNING, ERROR)
-:`main.log-file`:
- file to write messages
-
-
-Configuring Eproperties
------------------------
-Other configuration settings are in the form of entities `EProperty`
-in the database. It must be edited via the web interface or by
-RQL queries.
-
-:`ui.encoding`:
- Character encoding to use for the web
-:`navigation.short-line-size`: # XXX should be in ui
- number of characters for "short" display
-:`navigation.page-size`:
- maximum number of entities to show per results page
-:`navigation.related-limit`:
- number of related entities to show up on primary entity view
-:`navigation.combobox-limit`:
- number of entities unrelated to show up on the drop-down lists of
- the sight on an editing entity view
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/book/en/C030-site-config.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -0,0 +1,94 @@
+.. -*- coding: utf-8 -*-
+
+User interface for web site configuration
+=========================================
+
+.. image:: images/lax-book.03-site-config-panel.en.png
+
+This panel allows you to configure the appearance of your application site.
+Six menus are available and we will go through each of them to explain how
+to use them.
+
+Navigation
+~~~~~~~~~~
+This menu provides you a way to adjust some navigation options depending on
+your needs, such as the number of entities to display by page of results.
+Follows the detailled list of available options :
+
+* navigation.combobox-limit : maximum number of entities to display in related
+ combo box (sample format: 23)
+* navigation.page-size : maximum number of objects displayed by page of results
+ (sample format: 23)
+* navigation.related-limit : maximum number of related entities to display in
+ the primary view (sample format: 23)
+* navigation.short-line-size : maximum number of characters in short description
+ (sample format: 23)
+
+UI
+~~
+This menu provides you a way to customize the user interface settings such as
+date format or encoding in the produced html.
+Follows the detailled list of available options :
+
+* ui.date-format : how to format date in the ui ("man strftime" for format description)
+* ui.datetime-format : how to format date and time in the ui ("man strftime" for format
+ description)
+* ui.default-text-format : default text format for rich text fields.
+* ui.encoding : user interface encoding
+* ui.fckeditor :should html fields being edited using fckeditor (a HTML WYSIWYG editor).
+ You should also select text/html as default text format to actually get fckeditor.
+* ui.float-format : how to format float numbers in the ui
+* ui.language : language of the user interface
+* ui.main-template : id of main template used to render pages
+* ui.site-title : site title, which is displayed right next to the logo in the header
+* ui.time-format : how to format time in the ui ("man strftime" for format description)
+
+
+Actions
+~~~~~~~
+This menu provides a way to configure the context in which you expect the actions
+to be displayed to the user and if you want the action to be visible or not.
+You must have notice that when you view a list of entities, an action box is
+available on the left column which display some actions as well as a drop-down
+menu for more actions.
+
+The context available are :
+
+* mainactions : actions listed in the left box
+* moreactions : actions listed in the `more` menu of the left box
+* addrelated : add actions listed in the left box
+* useractions : actions listed in the first section of drop-down menu
+ accessible from the right corner user login link
+* siteactions : actions listed in the second section of drop-down menu
+ accessible from the right corner user login link
+* hidden : select this to hide the specific action
+
+Boxes
+~~~~~
+The application has already a pre-defined set of boxes you can use right away.
+This configuration section allows you to place those boxes where you want in the
+application interface to customize it.
+
+The available boxes are :
+
+* actions box : box listing the applicable actions on the displayed data
+
+* boxes_blog_archives_box : box listing the blog archives
+
+* possible views box : box listing the possible views for the displayed data
+
+* rss box : RSS icon to get displayed data as a RSS thread
+
+* search box : search box
+
+* startup views box : box listing the configuration options available for
+ the application site, such as `Preferences` and `Site Configuration`
+
+Components
+~~~~~~~~~~
+[WRITE ME]
+
+Contextual components
+~~~~~~~~~~~~~~~~~~~~~
+[WRITE ME]
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/book/en/C040-instance-config.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -0,0 +1,163 @@
+.. -*- coding: utf-8 -*-
+
+
+Configure an instance
+=====================
+
+While creating an instance, a configuration file is generated in::
+
+ $ (CW_REGISTRY) / <instance> / <configuration name>.conf
+
+For example::
+
+ /etc/cubicweb.d/JPL/all-in-one.conf
+
+It is a simple text file format INI. In the following description,
+each option name is prefixed with its own section and followed by its
+default value if necessary, e.g. "`<section>.<option>` [value]."
+
+
+Configuring the Web server
+--------------------------
+:`web.auth-model` [cookie]:
+ authentication mode, cookie or http
+:`web.realm`:
+ realm of the application in http authentication mode
+:`web.http-session-time` [0]:
+ period of inactivity of an HTTP session before it closes automatically.
+ Duration in seconds, 0 meaning no expiration (or more exactly at the
+ closing of the browser client)
+
+:`main.anonymous-user`, `main.anonymous-password`:
+ login and password to use to connect to the RQL server with
+ HTTP anonymous connection. EUser account should exist.
+
+:`main.base-url`:
+ url base site to be used to generate the urls of web pages
+
+Https configuration
+```````````````````
+It is possible to make a site accessible for anonymous http connections
+and https for authenticated users. This requires to
+use apache (for example) for redirection and the variable `main.https-url`
+of configuration file.
+
+:Example:
+
+ For an apache redirection of a site accessible via `http://localhost/demo`
+ and `https://localhost/demo` and actually running on port 8080, it
+ takes to the http:::
+
+ RewriteCond %(REQUEST_URI) ^/demo
+ RewriteRule ^/demo$ /demo/
+ RewriteRule ^/demo/(.*) http://127.0.0.1:8080/$1 [L,P]
+
+ and for the https:::
+
+ RewriteCond %(REQUEST_URI) ^/ demo
+ RewriteRule ^/demo$/demo/
+ RewriteRule ^/demo/(.*) http://127.0.0.1:8080/https/$1 [L,P]
+
+
+ and we will file in the all-in-one.conf of the instance:::
+
+ base-url = http://localhost/demo
+ https-url = `https://localhost/demo`
+
+Setting up the web
+--------------------------------
+:`web.embed-allowed`:
+ regular expression matching sites which could be "embedded" in
+ the site (controllers 'embed')
+:`web.submit-url`:
+ url where the bugs encountered in the application can be mailed to
+
+
+RQL server configuration
+------------------------
+:`main.host`:
+ host name if it can not be detected correctly
+:`main.pid-file`:
+ file where will be written the server pid
+:`main.uid`:
+ user account to use for launching the server when it is
+ root launched by init
+:`main.session-time [30*60]`:
+ timeout of a RQL session
+:`main.query-log-file`:
+ file where all requests RQL executed by the server are written
+
+
+Pyro configuration for the instance
+-----------------------------------
+Web server side:
+
+:`pyro-client.pyro-application-id`:
+ pyro identifier of RQL server (e.g. the instance name)
+
+RQL server side:
+
+:`pyro-server.pyro-port`:
+ pyro port number. If none is specified, a port is assigned
+ automatically.
+
+RQL and web servers side:
+
+:`pyro-name-server.pyro-ns-host`:
+ hostname hosting pyro server name. If no value is
+ specified, it is located by a request from broadcast
+:`pyro-name-server.pyro-ns-group` [cubicweb]:
+ pyro group in which to save the application
+
+
+Configuring e-mail
+------------------
+RQL and web server side:
+
+:`email.mangle-mails [no]`:
+ indicates whether the email addresses must be displayed as is or
+ transformed
+
+RQL server side:
+
+:`email.smtp-host [mail]`:
+ hostname hosting the SMTP server to use for outgoing mail
+:`email.smtp-port [25]`:
+ SMTP server port to use for outgoing mail
+:`email.sender-name`:
+ name to use for outgoing mail of the application
+:`email.sender-addr`:
+ address for outgoing mail of the application
+:`email.default dest-addrs`:
+ destination addresses by default, if used by the configuration of the
+ dissemination of the model (separated by commas)
+:`email.supervising-addrs`:
+ destination addresses of e-mails of supervision (separated by
+ commas)
+
+
+Configuring logging
+-------------------
+:`main.log-threshold`:
+ level of filtering messages (DEBUG, INFO, WARNING, ERROR)
+:`main.log-file`:
+ file to write messages
+
+
+Configuring Eproperties
+-----------------------
+Other configuration settings are in the form of entities `EProperty`
+in the database. It must be edited via the web interface or by
+RQL queries.
+
+:`ui.encoding`:
+ Character encoding to use for the web
+:`navigation.short-line-size`: # XXX should be in ui
+ number of characters for "short" display
+:`navigation.page-size`:
+ maximum number of entities to show per results page
+:`navigation.related-limit`:
+ number of related entities to show up on primary entity view
+:`navigation.combobox-limit`:
+ number of entities unrelated to show up on the drop-down lists of
+ the sight on an editing entity view
--- a/doc/book/en/C040-rql.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,655 +0,0 @@
-.. -*- coding: utf-8 -*-
-
-.. _RQL:
-
-======================================
-RQL language (Relation Query Language)
-======================================
-
-Introduction
-============
-
-Goals of RQL
-------------
-
-The goal is to have a language emphasizing the way of browsing
-relations. As such, attributes will be regarded as cases of
-special relations (in terms of implementation, the language
-user should see virtually no difference between an attribute and a
-relation).
-
-RQL is inspired by SQL but is the highest level. A knowledge of the
-`CubicWeb` schema defining the application is necessary.
-
-Comparison with existing languages
-----------------------------------
-
-SQL
-```
-RQL builds on the features of SQL but is at a higher level
-(the current implementation of RQL generates SQL). For that it is limited
-to the way of browsing relations and introduces variables.
-The user does not need to know the model underlying SQL, but the `CubicWeb`
-schema defining the application.
-
-Versa
-`````
-We should look in more detail, but here are already some ideas for
-the moment ... Versa_ is the language most similar to what we wanted
-to do, but the model underlying data being RDF, there is some
-number of things such as namespaces or handling of the RDF types which
-does not interest us. On the functionality level, Versa_ is very comprehensive
-including through many functions of conversion and basic types manipulation,
-which may need to be guided at one time or another.
-Finally, the syntax is a little esoteric.
-
-Sparql
-``````
-
-The query language most similar to RQL is SPARQL_, defined by the W3C to serve
-for the semantic web.
-
-
-The different types of queries
-------------------------------
-
-Search (`Any`)
- Extract entities and attributes of entities.
-
-Insert entities (`INSERT`)
- Insert new entities or relations in the database.
- It can also directly create relationships for the newly created entities.
-
-Update entities, create relations (`SET`)
- Update existing entities in the database,
- or create relations between existing entities.
-
-Delete entities or relationship (`DELETE`)
- Remove entities or relations existing in the database.
-
-Search Query
-------------
-
- [ `DISTINCT`] <entity type> V1 (V2) \ *
- [ `GROUPBY` V1 (V2) \*] [ `ORDERBY` <orderterms>]
- [ `WHERE` <restriction>]
- [ `LIMIT` <value>] [ `OFFSET` <value>]
-
-:entity type:
- Type of selected variables.
- The special type `Any` is equivalent to not specify a type.
-:restriction:
- list of conditions to test successively
- `V1 relation V2 | <static value>`
-:orderterms:
- Definition of the selection order: variable or column number followed by
- sorting method ( `ASC`, `DESC`), ASC is the default.
-:note for grouped queries:
- For grouped queries (e.g., a clause `GROUPBY`), all
- selected variables must be aggregated or grouped.
-
-
-
-- *Search for the object of identifier 53*
- ::
-
- Any WHERE X
- X eid 53
-
-- *Search material such as comics, owned by syt and available*
- ::
-
- WHERE X Document
- X occurence_of F, F class C, C name 'Comics'
- X owned_by U, U login 'syt'
- X available true
-
-- *Looking for people working for eurocopter interested in training*
- ::
-
- Any P WHERE
- P is Person, P work_for S, S name 'Eurocopter'
- P interested_by T, T name 'training'
-
-- *Search note less than 10 days old written by jphc or ocy*
- ::
-
- Any N WHERE
- N is Note, N written_on D, D day> (today -10),
- N written_by P, P name 'jphc' or P name 'ocy'
-
-- *Looking for people interested in training or living in Paris*
- ::
-
- Any P WHERE
- P is Person, (P interested_by T, T name 'training') OR
- (P city 'Paris')
-
-- *The name and surname of all people*
- ::
-
- Any N, P WHERE
- X is Person, X name N, X first_name P
-
- Note that the selection of several entities generally force
- the use of "Any" because the type specification applies otherwise
- to all the selected variables. We could write here
- ::
-
- String N, P WHERE
- X is Person, X name N, X first_name P
-
-
- Note: You can not specify several types with * ... where X is FirstType or X is SecondType*.
- To specify several types explicitely, you have to do
-
- ::
-
- Any X where X is in (FirstType, SecondType)
-
-
-Insertion query
----------------
-
- `INSERT` <entity type> V1 (, <entity type> V2) \ * `:` <assignments>
- [ `WHERE` <restriction>]
-
-:assignments:
- list of relations to assign in the form `V1 relationship V2 | <static value>`
-
-The restriction can define variables used in assignments.
-
-Caution, if a restriction is specified, the insertion is done for
-*each line result returned by the restriction*.
-
-- *Insert a new person named 'foo'*
- ::
-
- INSERT Person X: X name 'foo'
-
-- *Insert a new person named 'foo', another called 'nice' and a 'friend' relation
- between them*
- ::
-
- INSERT Person X, Person Y: X name 'foo', Y name 'nice', X friend Y
-
-- *Insert a new person named 'foo' and a 'friend' relation with an existing
- person called 'nice'*
- ::
-
- INSERT Person X: X name 'foo', X friend Y WHERE Y name 'nice'
-
-Update and relation creation queries
-------------------------------------
- `SET` <assignements>
- [ `WHERE` <restriction>]
-
-Caution, if a restriction is specified, the update is done *for
-each result line returned by the restriction*.
-
-- *Renaming of the person named 'foo' to 'bar' with the first name changed*
- ::
-
- SET X name 'bar', X first_name 'original' WHERE X is Person, X name 'foo'
-
-- *Insert a relation of type 'know' between objects linked by
- the relation of type 'friend'*
- ::
-
- SET X know Y WHERE X friend Y
-
-
-Deletion query
---------------
- `DELETE` (<entity type> V) | (V1 relation v2 ),...
- [ `WHERE` <restriction>]
-
-Caution, if a restriction is specified, the deletion is made *for
-each line result returned by the restriction*.
-
-- *Deletion of the person named 'foo'*
- ::
-
- DELETE Person X WHERE X name 'foo'
-
-- *Removal of all relations of type 'friend' from the person named 'foo'*
- ::
-
- DELETE X friend Y WHERE X is Person, X name 'foo'
-
-
-(yet) Undocumented types of queries
------------------------------------
-
-**Limit / offset**
-::
-
- Any P ORDERBY N LIMIT 5 OFFSET 10 WHERE P is Person, P firstname N
-
-**Function calls**
-::
-
- Any UPPER(N) WHERE P firstname N
-
-**Exists**
-::
-
- Any X ORDERBY PN,N
- WHERE X num N, X version_of P, P name PN,
- EXISTS(X in_state S, S name IN ("dev", "ready"))
- OR EXISTS(T tags X, T name "priority")
-
-**Left outer join**
-::
-
- Any T,P,V WHERE T is Ticket, T concerns P, T done_in V?
-
-
-**Having**
-::
-
- Any X GROUPBY X WHERE X knows Y HAVING COUNT(Y) > 10
-
-**Simple union**
-::
-
- (Any X WHERE X is Person) UNION (Any X WHERE X is Company)
-
-**Complex union**
-::
-
- DISTINCT Any W, REF
- WITH W, REF BEING
- (
- (Any W, REF WHERE W is Workcase, W ref REF,
- W concerned_by D, D name "Logilab")
- UNION
- (Any W, REF WHERE W is Workcase, W ref REF, '
- W split_into WP, WP name "WP1")
- )
-
-
-Language definition
-===================
-
-Reserved keywords
------------------
-The keywords are not case sensitive.
-
-::
-
- DISTINCT, INSERT, SET, DELETE,
- WHERE, AND, OR, NOT, EXISTS,
- IN, LIKE, UNION, WITH, BEING,
- TRUE, FALSE, NULL, TODAY, NOW,
- LIMIT, OFFSET,
- HAVING, GROUPBY, ORDERBY, ASC, DESC
-
-
-Variables and Typing
---------------------
-
-With RQL, we do not distinguish between entities and attributes. The
-value of an attribute is considered an entity of a particular type (see
-below), linked to one (real) entity by a relation called the name of
-the attribute.
-
-Entities and values to browse and/or select are represented in
-the query by *variables* that must be written in capital letters.
-
-There is a special type **Any**, referring to a non specific type.
-
-We can restrict the possible types for a variable using the
-special relation **is**.
-The possible type(s) for each variable is derived from the schema
-according to the constraints expressed above and thanks to the relations between
-each variable.
-
-Built-in types
-``````````````
-
-The base types supported are string (between double or single quotes),
-integers or floats (the separator is '.'), dates and
-boolean. We expect to receive a schema in which types String,
-Int, Float, Date and Boolean are defined.
-
-* `String` (literal: between double or single quotes).
-* `Int`, `Float` (separator being'.').
-* `Date`, `Datetime`, `Time` (literal: string YYYY/MM/DD [hh:mm] or keywords
- `TODAY` and `NOW`).
-* `Boolean` (keywords `TRUE` and `FALSE`).
-* `Keyword` NULL.
-
-
-Operators
----------
-
-Logical Operators
-`````````````````
-::
-
- AND, OR, NOT, ','
-
-',' is equivalent to 'AND' but with the smallest among the priority
-of logical operators (see :ref:`PriorityOperators`).
-
-Mathematical Operators
-``````````````````````
-::
-
- +, -, *, /
-
-Comparison operators
-````````````````````
-::
-
- =, <, <=, >=, >, ~=, IN, LIKE
-
-* The operator `=` is the default operator.
-
-* The operator `LIKE` equivalent to `~=` can be used with the
- special character `%` in a string to indicate that the chain
- must start or finish by a prefix/suffix:
- ::
-
- Any X WHERE X name ~= 'Th%'
- Any X WHERE X name LIKE '%lt'
-
-* The operator `IN` provides a list of possible values:
- ::
-
- Any X WHERE X name IN ( 'chauvat', 'fayolle', 'di mascio', 'thenault')
-
-
-XXX nico: "A trick <> 'bar'" wouldn't it be more convenient than
-"NOT A trick 'bar'" ?
-
-.. _PriorityOperators:
-
-Operator priority
-`````````````````
-
-1. '*', '/'
-
-2. '+', '-'
-
-3. 'not'
-
-4 'and'
-
-5 'or'
-
-6 ','
-
-
-Advanced Features
------------------
-
-Aggregate Functions
-```````````````````
-::
-
- COUNT, MIN, MAX, AVG, SUM
-
-Functions on string
-```````````````````
-::
-
- UPPER, LOWER
-
-Optional relations
-``````````````````
-
-* They allow you to select entities related or not to another.
-
-* You must use the `?` behind the variable to specify that the relation
- toward it is optional:
-
- - Anomalies of a project attached or not to a version ::
-
- Any X, V WHERE X concerns P, P eid 42, X corrected_in V?
-
- - All cards and the project they document if necessary ::
-
- Any C, P WHERE C is Card, P? documented_by C
-
-
-
-BNF grammar
------------
-
-The terminal elements are in capital letters, non-terminal in lowercase.
-The value of the terminal elements (between quotes) is a Python regular
-expression.
-::
-
- statement:: = (select | delete | insert | update) ';'
-
-
- # select specific rules
- select ::= 'DISTINCT'? E_TYPE selected_terms restriction? group? sort?
-
- selected_terms ::= expression ( ',' expression)*
-
- group ::= 'GROUPBY' VARIABLE ( ',' VARIABLE)*
-
- sort ::= 'ORDERBY' sort_term ( ',' sort_term)*
-
- sort_term ::= VARIABLE sort_method =?
-
- sort_method ::= 'ASC' | 'DESC'
-
-
- # delete specific rules
- delete ::= 'DELETE' (variables_declaration | relations_declaration) restriction?
-
-
- # insert specific rules
- insert ::= 'INSERT' variables_declaration ( ':' relations_declaration)? restriction?
-
-
- # update specific rules
- update ::= 'SET' relations_declaration restriction
-
-
- # common rules
- variables_declaration ::= E_TYPE VARIABLE (',' E_TYPE VARIABLE)*
-
- relations_declaration ::= simple_relation (',' simple_relation)*
-
- simple_relation ::= VARIABLE R_TYPE expression
-
- restriction ::= 'WHERE' relations
-
- relations ::= relation (LOGIC_OP relation)*
- | '(' relations')'
-
- relation ::= 'NOT'? VARIABLE R_TYPE COMP_OP? expression
- | 'NOT'? R_TYPE VARIABLE 'IN' '(' expression (',' expression)* ')'
-
- expression ::= var_or_func_or_const (MATH_OP var_or_func_or_const) *
- | '(' expression ')'
-
- var_or_func_or_const ::= VARIABLE | function | constant
-
- function ::= FUNCTION '(' expression ( ',' expression) * ')'
-
- constant ::= KEYWORD | STRING | FLOAT | INT
-
- # tokens
- LOGIC_OP ::= ',' | 'OR' | 'AND'
- MATH_OP ::= '+' | '-' | '/' | '*'
- COMP_OP ::= '>' | '>=' | '=' | '<=' | '<' | '~=' | 'LIKE'
-
- FUNCTION ::= 'MIN' | 'MAX' | 'SUM' | 'AVG' | 'COUNT' | 'UPPER' | 'LOWER'
-
- VARIABLE ::= '[A-Z][A-Z0-9]*'
- E_TYPE ::= '[A-Z]\w*'
- R_TYPE ::= '[a-z_]+'
-
- KEYWORD ::= 'TRUE' | 'FALSE' | 'NULL' | 'TODAY' | 'NOW'
- STRING ::= "'([^'\]|\\.)*'" |'"([^\"]|\\.)*\"'
- FLOAT ::= '\d+\.\d*'
- INT ::= '\d+'
-
-
-Remarks
--------
-
-Sorting and groups
-``````````````````
-
-- For grouped queries (e.g. with a GROUPBY clause), all
- selected variables should be grouped.
-
-- To group and/or sort by attributes, we can do: "X,L user U, U
- login L GROUPBY L, X ORDERBY L"
-
-- If the sorting method (SORT_METHOD) is not specified, then the sorting is
- ascendant.
-
-Negation
-````````
-
-* A query such as `Document X WHERE NOT X owned_by U` means "the
- documents have no relation `owned_by`".
-* But the query `Document X WHERE NOT X owned_by U, U login "syt"`
- means "the documents have no relation `owned_by` with the user
- syt". They may have a relation "owned_by" with another user.
-
-Identity
-````````
-
-You can use the special relation `identity` in a query to
-add an identity constraint between two variables. This is equivalent
-to ``is`` in python::
-
- Any A WHERE A comments B, A identity B
-
-return all objects that comment themselves. The relation
-`identity` is especially useful when defining the rules for securities
-with `RQLExpressions`.
-
-Implementation
-==============
-
-Internal representation (syntactic tree)
-----------------------------------------
-
-The tree research does not contain the selected variables
-(e.g. there is only what follows "WHERE").
-
-The insertion tree does not contain the variables inserted or relations
-defined on these variables (e.g. there is only what follows "WHERE").
-
-The removal tree does not contain the deleted variables and relations
-(e.g. there is only what follows the "WHERE").
-
-The update tree does not contain the variables and relations updated
-(e.g. there is only what follows the "WHERE").
-
-::
-
- Select ((Relationship | And | Or)?, Group?, Sort?)
- Insert (Relations | And | Or)?
- Delete (Relationship | And | Or)?
- Update (Relations | And | Or)?
-
- And ((Relationship | And | Or), (Relationship | And | Or))
- Or ((Relationship | And | Or), (Relationship | And | Or))
-
- Relationship ((VariableRef, Comparison))
-
- Comparison ((Function | MathExpression | Keyword | Constant | VariableRef) +)
-
- Function (())
- MathExpression ((MathExpression | Keyword | Constant | VariableRef), (MathExpression | Keyword | Constant | VariableRef))
-
- Group (VariableRef +)
- Sort (SortTerm +)
- SortTerm (VariableRef +)
-
- VariableRef ()
- Variable ()
- Keyword ()
- Constant ()
-
-
-Remarks
--------
-
-- The current implementation does not support linking two relations of type
- 'is' with a OR. I do not think that the negation is supported on this type
- of relation (XXX FIXME to be confirmed).
-
-- Relations defining the variables must be left to those using them.
- For example::
-
- Point P where P abs X, P ord Y, P value X+Y
-
- is valid, but::
-
- Point P where P abs X, P value X+Y, P ord Y
-
- is not.
-
-RQL logs
---------
-
-You can configure the `CubicWeb` application to keep a log
-of the queries executed against your database. To do so,
-edit the configuration file of your application
-``.../etc/cubicweb.d/myapp/all-in-one.conf`` and uncomment the
-variable ``query-log-file``::
-
- # web application query log file
- query-log-file=/tmp/rql-myapp.log
-
-
-Conclusion
-==========
-
-Limitations
------------
-
-It lacks at the moment:
-
-- COALESCE
-
-- restrictions on groups (HAVING)
-
-and certainly other things ...
-
-A disadvantage is that to use this language we must know the
-format used (with real relation names and entities, not those viewing
-in the user interface). On the other hand, we can not really bypass
-that, and it is the job of a user interface to hide the RQL.
-
-
-Topics
-------
-
-It would be convenient to express the schema matching
-relations (non-recursive rules)::
-
- Document class Type <-> Document occurence_of Fiche class Type
- Sheet class Type <-> Form collection Collection class Type
-
-Therefore 1. becomes::
-
- Document X where
- X class C, C name 'Cartoon'
- X owned_by U, U login 'syt'
- X available true
-
-I'm not sure that we should handle this at RQL level ...
-
-There should also be a special relation 'anonymous'.
-
-
-
-.. _Versa: http://uche.ogbuji.net/tech/rdf/versa/
-.. _SPARQL: http://www.w3.org/TR/rdf-sparql-query/
-
-
-[FIXME] see also RQL documentation in source rql/doc.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/book/en/C050-rql.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -0,0 +1,655 @@
+.. -*- coding: utf-8 -*-
+
+.. _RQL:
+
+======================================
+RQL language (Relation Query Language)
+======================================
+
+Introduction
+============
+
+Goals of RQL
+------------
+
+The goal is to have a language emphasizing the way of browsing
+relations. As such, attributes will be regarded as cases of
+special relations (in terms of implementation, the language
+user should see virtually no difference between an attribute and a
+relation).
+
+RQL is inspired by SQL but is the highest level. A knowledge of the
+`CubicWeb` schema defining the application is necessary.
+
+Comparison with existing languages
+----------------------------------
+
+SQL
+```
+RQL builds on the features of SQL but is at a higher level
+(the current implementation of RQL generates SQL). For that it is limited
+to the way of browsing relations and introduces variables.
+The user does not need to know the model underlying SQL, but the `CubicWeb`
+schema defining the application.
+
+Versa
+`````
+We should look in more detail, but here are already some ideas for
+the moment ... Versa_ is the language most similar to what we wanted
+to do, but the model underlying data being RDF, there is some
+number of things such as namespaces or handling of the RDF types which
+does not interest us. On the functionality level, Versa_ is very comprehensive
+including through many functions of conversion and basic types manipulation,
+which may need to be guided at one time or another.
+Finally, the syntax is a little esoteric.
+
+Sparql
+``````
+
+The query language most similar to RQL is SPARQL_, defined by the W3C to serve
+for the semantic web.
+
+
+The different types of queries
+------------------------------
+
+Search (`Any`)
+ Extract entities and attributes of entities.
+
+Insert entities (`INSERT`)
+ Insert new entities or relations in the database.
+ It can also directly create relationships for the newly created entities.
+
+Update entities, create relations (`SET`)
+ Update existing entities in the database,
+ or create relations between existing entities.
+
+Delete entities or relationship (`DELETE`)
+ Remove entities or relations existing in the database.
+
+Search Query
+------------
+
+ [ `DISTINCT`] <entity type> V1 (V2) \ *
+ [ `GROUPBY` V1 (V2) \*] [ `ORDERBY` <orderterms>]
+ [ `WHERE` <restriction>]
+ [ `LIMIT` <value>] [ `OFFSET` <value>]
+
+:entity type:
+ Type of selected variables.
+ The special type `Any` is equivalent to not specify a type.
+:restriction:
+ list of conditions to test successively
+ `V1 relation V2 | <static value>`
+:orderterms:
+ Definition of the selection order: variable or column number followed by
+ sorting method ( `ASC`, `DESC`), ASC is the default.
+:note for grouped queries:
+ For grouped queries (e.g., a clause `GROUPBY`), all
+ selected variables must be aggregated or grouped.
+
+
+
+- *Search for the object of identifier 53*
+ ::
+
+ Any WHERE X
+ X eid 53
+
+- *Search material such as comics, owned by syt and available*
+ ::
+
+ WHERE X Document
+ X occurence_of F, F class C, C name 'Comics'
+ X owned_by U, U login 'syt'
+ X available true
+
+- *Looking for people working for eurocopter interested in training*
+ ::
+
+ Any P WHERE
+ P is Person, P work_for S, S name 'Eurocopter'
+ P interested_by T, T name 'training'
+
+- *Search note less than 10 days old written by jphc or ocy*
+ ::
+
+ Any N WHERE
+ N is Note, N written_on D, D day> (today -10),
+ N written_by P, P name 'jphc' or P name 'ocy'
+
+- *Looking for people interested in training or living in Paris*
+ ::
+
+ Any P WHERE
+ P is Person, (P interested_by T, T name 'training') OR
+ (P city 'Paris')
+
+- *The name and surname of all people*
+ ::
+
+ Any N, P WHERE
+ X is Person, X name N, X first_name P
+
+ Note that the selection of several entities generally force
+ the use of "Any" because the type specification applies otherwise
+ to all the selected variables. We could write here
+ ::
+
+ String N, P WHERE
+ X is Person, X name N, X first_name P
+
+
+ Note: You can not specify several types with * ... where X is FirstType or X is SecondType*.
+ To specify several types explicitely, you have to do
+
+ ::
+
+ Any X where X is in (FirstType, SecondType)
+
+
+Insertion query
+---------------
+
+ `INSERT` <entity type> V1 (, <entity type> V2) \ * `:` <assignments>
+ [ `WHERE` <restriction>]
+
+:assignments:
+ list of relations to assign in the form `V1 relationship V2 | <static value>`
+
+The restriction can define variables used in assignments.
+
+Caution, if a restriction is specified, the insertion is done for
+*each line result returned by the restriction*.
+
+- *Insert a new person named 'foo'*
+ ::
+
+ INSERT Person X: X name 'foo'
+
+- *Insert a new person named 'foo', another called 'nice' and a 'friend' relation
+ between them*
+ ::
+
+ INSERT Person X, Person Y: X name 'foo', Y name 'nice', X friend Y
+
+- *Insert a new person named 'foo' and a 'friend' relation with an existing
+ person called 'nice'*
+ ::
+
+ INSERT Person X: X name 'foo', X friend Y WHERE Y name 'nice'
+
+Update and relation creation queries
+------------------------------------
+ `SET` <assignements>
+ [ `WHERE` <restriction>]
+
+Caution, if a restriction is specified, the update is done *for
+each result line returned by the restriction*.
+
+- *Renaming of the person named 'foo' to 'bar' with the first name changed*
+ ::
+
+ SET X name 'bar', X first_name 'original' WHERE X is Person, X name 'foo'
+
+- *Insert a relation of type 'know' between objects linked by
+ the relation of type 'friend'*
+ ::
+
+ SET X know Y WHERE X friend Y
+
+
+Deletion query
+--------------
+ `DELETE` (<entity type> V) | (V1 relation v2 ),...
+ [ `WHERE` <restriction>]
+
+Caution, if a restriction is specified, the deletion is made *for
+each line result returned by the restriction*.
+
+- *Deletion of the person named 'foo'*
+ ::
+
+ DELETE Person X WHERE X name 'foo'
+
+- *Removal of all relations of type 'friend' from the person named 'foo'*
+ ::
+
+ DELETE X friend Y WHERE X is Person, X name 'foo'
+
+
+(yet) Undocumented types of queries
+-----------------------------------
+
+**Limit / offset**
+::
+
+ Any P ORDERBY N LIMIT 5 OFFSET 10 WHERE P is Person, P firstname N
+
+**Function calls**
+::
+
+ Any UPPER(N) WHERE P firstname N
+
+**Exists**
+::
+
+ Any X ORDERBY PN,N
+ WHERE X num N, X version_of P, P name PN,
+ EXISTS(X in_state S, S name IN ("dev", "ready"))
+ OR EXISTS(T tags X, T name "priority")
+
+**Left outer join**
+::
+
+ Any T,P,V WHERE T is Ticket, T concerns P, T done_in V?
+
+
+**Having**
+::
+
+ Any X GROUPBY X WHERE X knows Y HAVING COUNT(Y) > 10
+
+**Simple union**
+::
+
+ (Any X WHERE X is Person) UNION (Any X WHERE X is Company)
+
+**Complex union**
+::
+
+ DISTINCT Any W, REF
+ WITH W, REF BEING
+ (
+ (Any W, REF WHERE W is Workcase, W ref REF,
+ W concerned_by D, D name "Logilab")
+ UNION
+ (Any W, REF WHERE W is Workcase, W ref REF, '
+ W split_into WP, WP name "WP1")
+ )
+
+
+Language definition
+===================
+
+Reserved keywords
+-----------------
+The keywords are not case sensitive.
+
+::
+
+ DISTINCT, INSERT, SET, DELETE,
+ WHERE, AND, OR, NOT, EXISTS,
+ IN, LIKE, UNION, WITH, BEING,
+ TRUE, FALSE, NULL, TODAY, NOW,
+ LIMIT, OFFSET,
+ HAVING, GROUPBY, ORDERBY, ASC, DESC
+
+
+Variables and Typing
+--------------------
+
+With RQL, we do not distinguish between entities and attributes. The
+value of an attribute is considered an entity of a particular type (see
+below), linked to one (real) entity by a relation called the name of
+the attribute.
+
+Entities and values to browse and/or select are represented in
+the query by *variables* that must be written in capital letters.
+
+There is a special type **Any**, referring to a non specific type.
+
+We can restrict the possible types for a variable using the
+special relation **is**.
+The possible type(s) for each variable is derived from the schema
+according to the constraints expressed above and thanks to the relations between
+each variable.
+
+Built-in types
+``````````````
+
+The base types supported are string (between double or single quotes),
+integers or floats (the separator is '.'), dates and
+boolean. We expect to receive a schema in which types String,
+Int, Float, Date and Boolean are defined.
+
+* `String` (literal: between double or single quotes).
+* `Int`, `Float` (separator being'.').
+* `Date`, `Datetime`, `Time` (literal: string YYYY/MM/DD [hh:mm] or keywords
+ `TODAY` and `NOW`).
+* `Boolean` (keywords `TRUE` and `FALSE`).
+* `Keyword` NULL.
+
+
+Operators
+---------
+
+Logical Operators
+`````````````````
+::
+
+ AND, OR, NOT, ','
+
+',' is equivalent to 'AND' but with the smallest among the priority
+of logical operators (see :ref:`PriorityOperators`).
+
+Mathematical Operators
+``````````````````````
+::
+
+ +, -, *, /
+
+Comparison operators
+````````````````````
+::
+
+ =, <, <=, >=, >, ~=, IN, LIKE
+
+* The operator `=` is the default operator.
+
+* The operator `LIKE` equivalent to `~=` can be used with the
+ special character `%` in a string to indicate that the chain
+ must start or finish by a prefix/suffix:
+ ::
+
+ Any X WHERE X name ~= 'Th%'
+ Any X WHERE X name LIKE '%lt'
+
+* The operator `IN` provides a list of possible values:
+ ::
+
+ Any X WHERE X name IN ( 'chauvat', 'fayolle', 'di mascio', 'thenault')
+
+
+XXX nico: "A trick <> 'bar'" wouldn't it be more convenient than
+"NOT A trick 'bar'" ?
+
+.. _PriorityOperators:
+
+Operator priority
+`````````````````
+
+1. '*', '/'
+
+2. '+', '-'
+
+3. 'not'
+
+4 'and'
+
+5 'or'
+
+6 ','
+
+
+Advanced Features
+-----------------
+
+Aggregate Functions
+```````````````````
+::
+
+ COUNT, MIN, MAX, AVG, SUM
+
+Functions on string
+```````````````````
+::
+
+ UPPER, LOWER
+
+Optional relations
+``````````````````
+
+* They allow you to select entities related or not to another.
+
+* You must use the `?` behind the variable to specify that the relation
+ toward it is optional:
+
+ - Anomalies of a project attached or not to a version ::
+
+ Any X, V WHERE X concerns P, P eid 42, X corrected_in V?
+
+ - All cards and the project they document if necessary ::
+
+ Any C, P WHERE C is Card, P? documented_by C
+
+
+
+BNF grammar
+-----------
+
+The terminal elements are in capital letters, non-terminal in lowercase.
+The value of the terminal elements (between quotes) is a Python regular
+expression.
+::
+
+ statement:: = (select | delete | insert | update) ';'
+
+
+ # select specific rules
+ select ::= 'DISTINCT'? E_TYPE selected_terms restriction? group? sort?
+
+ selected_terms ::= expression ( ',' expression)*
+
+ group ::= 'GROUPBY' VARIABLE ( ',' VARIABLE)*
+
+ sort ::= 'ORDERBY' sort_term ( ',' sort_term)*
+
+ sort_term ::= VARIABLE sort_method =?
+
+ sort_method ::= 'ASC' | 'DESC'
+
+
+ # delete specific rules
+ delete ::= 'DELETE' (variables_declaration | relations_declaration) restriction?
+
+
+ # insert specific rules
+ insert ::= 'INSERT' variables_declaration ( ':' relations_declaration)? restriction?
+
+
+ # update specific rules
+ update ::= 'SET' relations_declaration restriction
+
+
+ # common rules
+ variables_declaration ::= E_TYPE VARIABLE (',' E_TYPE VARIABLE)*
+
+ relations_declaration ::= simple_relation (',' simple_relation)*
+
+ simple_relation ::= VARIABLE R_TYPE expression
+
+ restriction ::= 'WHERE' relations
+
+ relations ::= relation (LOGIC_OP relation)*
+ | '(' relations')'
+
+ relation ::= 'NOT'? VARIABLE R_TYPE COMP_OP? expression
+ | 'NOT'? R_TYPE VARIABLE 'IN' '(' expression (',' expression)* ')'
+
+ expression ::= var_or_func_or_const (MATH_OP var_or_func_or_const) *
+ | '(' expression ')'
+
+ var_or_func_or_const ::= VARIABLE | function | constant
+
+ function ::= FUNCTION '(' expression ( ',' expression) * ')'
+
+ constant ::= KEYWORD | STRING | FLOAT | INT
+
+ # tokens
+ LOGIC_OP ::= ',' | 'OR' | 'AND'
+ MATH_OP ::= '+' | '-' | '/' | '*'
+ COMP_OP ::= '>' | '>=' | '=' | '<=' | '<' | '~=' | 'LIKE'
+
+ FUNCTION ::= 'MIN' | 'MAX' | 'SUM' | 'AVG' | 'COUNT' | 'UPPER' | 'LOWER'
+
+ VARIABLE ::= '[A-Z][A-Z0-9]*'
+ E_TYPE ::= '[A-Z]\w*'
+ R_TYPE ::= '[a-z_]+'
+
+ KEYWORD ::= 'TRUE' | 'FALSE' | 'NULL' | 'TODAY' | 'NOW'
+ STRING ::= "'([^'\]|\\.)*'" |'"([^\"]|\\.)*\"'
+ FLOAT ::= '\d+\.\d*'
+ INT ::= '\d+'
+
+
+Remarks
+-------
+
+Sorting and groups
+``````````````````
+
+- For grouped queries (e.g. with a GROUPBY clause), all
+ selected variables should be grouped.
+
+- To group and/or sort by attributes, we can do: "X,L user U, U
+ login L GROUPBY L, X ORDERBY L"
+
+- If the sorting method (SORT_METHOD) is not specified, then the sorting is
+ ascendant.
+
+Negation
+````````
+
+* A query such as `Document X WHERE NOT X owned_by U` means "the
+ documents have no relation `owned_by`".
+* But the query `Document X WHERE NOT X owned_by U, U login "syt"`
+ means "the documents have no relation `owned_by` with the user
+ syt". They may have a relation "owned_by" with another user.
+
+Identity
+````````
+
+You can use the special relation `identity` in a query to
+add an identity constraint between two variables. This is equivalent
+to ``is`` in python::
+
+ Any A WHERE A comments B, A identity B
+
+return all objects that comment themselves. The relation
+`identity` is especially useful when defining the rules for securities
+with `RQLExpressions`.
+
+Implementation
+==============
+
+Internal representation (syntactic tree)
+----------------------------------------
+
+The tree research does not contain the selected variables
+(e.g. there is only what follows "WHERE").
+
+The insertion tree does not contain the variables inserted or relations
+defined on these variables (e.g. there is only what follows "WHERE").
+
+The removal tree does not contain the deleted variables and relations
+(e.g. there is only what follows the "WHERE").
+
+The update tree does not contain the variables and relations updated
+(e.g. there is only what follows the "WHERE").
+
+::
+
+ Select ((Relationship | And | Or)?, Group?, Sort?)
+ Insert (Relations | And | Or)?
+ Delete (Relationship | And | Or)?
+ Update (Relations | And | Or)?
+
+ And ((Relationship | And | Or), (Relationship | And | Or))
+ Or ((Relationship | And | Or), (Relationship | And | Or))
+
+ Relationship ((VariableRef, Comparison))
+
+ Comparison ((Function | MathExpression | Keyword | Constant | VariableRef) +)
+
+ Function (())
+ MathExpression ((MathExpression | Keyword | Constant | VariableRef), (MathExpression | Keyword | Constant | VariableRef))
+
+ Group (VariableRef +)
+ Sort (SortTerm +)
+ SortTerm (VariableRef +)
+
+ VariableRef ()
+ Variable ()
+ Keyword ()
+ Constant ()
+
+
+Remarks
+-------
+
+- The current implementation does not support linking two relations of type
+ 'is' with a OR. I do not think that the negation is supported on this type
+ of relation (XXX FIXME to be confirmed).
+
+- Relations defining the variables must be left to those using them.
+ For example::
+
+ Point P where P abs X, P ord Y, P value X+Y
+
+ is valid, but::
+
+ Point P where P abs X, P value X+Y, P ord Y
+
+ is not.
+
+RQL logs
+--------
+
+You can configure the `CubicWeb` application to keep a log
+of the queries executed against your database. To do so,
+edit the configuration file of your application
+``.../etc/cubicweb.d/myapp/all-in-one.conf`` and uncomment the
+variable ``query-log-file``::
+
+ # web application query log file
+ query-log-file=/tmp/rql-myapp.log
+
+
+Conclusion
+==========
+
+Limitations
+-----------
+
+It lacks at the moment:
+
+- COALESCE
+
+- restrictions on groups (HAVING)
+
+and certainly other things ...
+
+A disadvantage is that to use this language we must know the
+format used (with real relation names and entities, not those viewing
+in the user interface). On the other hand, we can not really bypass
+that, and it is the job of a user interface to hide the RQL.
+
+
+Topics
+------
+
+It would be convenient to express the schema matching
+relations (non-recursive rules)::
+
+ Document class Type <-> Document occurence_of Fiche class Type
+ Sheet class Type <-> Form collection Collection class Type
+
+Therefore 1. becomes::
+
+ Document X where
+ X class C, C name 'Cartoon'
+ X owned_by U, U login 'syt'
+ X available true
+
+I'm not sure that we should handle this at RQL level ...
+
+There should also be a special relation 'anonymous'.
+
+
+
+.. _Versa: http://uche.ogbuji.net/tech/rdf/versa/
+.. _SPARQL: http://www.w3.org/TR/rdf-sparql-query/
+
+
+[FIXME] see also RQL documentation in source rql/doc.
--- a/doc/book/en/D000-annex.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ b/doc/book/en/D000-annex.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -12,9 +12,10 @@
:maxdepth: 1
D010-faq.en.txt
- D020-api-reference.en.txt
- D030-architecture.en.txt
- D040-modules-stdlib.en.txt
- D050-modules-cbw-api.en.txt
- D060-mercurial.en.txt
- D070-cookbook.en.txt
+ D020-cookbook.en.txt
+ D030-cubicweb-ctl.en.txt
+ D040-api-reference.en.txt
+ D050-architecture.en.txt
+ D060-modules-stdlib.en.txt
+ D070-modules-cbw-api.en.txt
+ D080-mercurial.en.txt
--- a/doc/book/en/D010-faq.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ b/doc/book/en/D010-faq.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -135,12 +135,6 @@
`AppRsetObject` instances are selected on a request and a result
set. `AppObject` instances are directly selected by id.
-HOW TO
-======
-
-[TO COMPLETE]
-
-
* How to update a database after a schema modification?
It depends on what has been modified in the schema.
--- a/doc/book/en/D020-api-reference.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-.. -*- coding: utf-8 -*-
-
-API Reference
-=============
-
-Schema API
-----------
-
-Base Types
-~~~~~~~~~~
-
-Base types are defined as a set in yams.BASE_TYPES that includes:
-`String`, `Int`, `Float`, `Boolean`, `Date`, `Time`, `Datetime`,
-`Interval`, `Password`, `Bytes`.
-
-See `yams' API <http://www.cubicweb.org/doc/en/modindex.html>`_
-
-Constraints
-~~~~~~~~~~~
-
-Constraints are defined in yams.constraints and include:
-`UniqueConstraint`, `SizeConstraint`, `RegexpConstraint`,
-`BoundConstraint`, `IntervalBoundConstraint`,
-`StaticVocabularyConstraint`, `MultipleStaticVocabularyConstraint`.
-
-See `yams' API <http://www.cubicweb.org/doc/en/modindex.html>`_
-
-Views API
----------
-
-See `yams' API <http://www.cubicweb.org/doc/en/modindex.html>`_
-[WRITE ME]
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/book/en/D020-cookbook.txt Thu Apr 30 12:27:32 2009 +0200
@@ -0,0 +1,64 @@
+.. -*- coding: utf-8 -*-
+
+Cook book
+=========
+
+We gathered together some of our tricks and scripts that could make
+life easier.
+
+
+* How to import LDAP users in `CubicWeb`?
+
+ Here is a very useful script which enables you to import LDAP users
+ into your `CubicWeb` application by running the following: ::
+
+
+ import os
+ import pwd
+ import sys
+
+ from logilab.common.db import get_connection
+
+ def getlogin():
+ """avoid usinng os.getlogin() because of strange tty / stdin problems
+ (man 3 getlogin)
+ Another solution would be to use $LOGNAME, $USER or $USERNAME
+ """
+ return pwd.getpwuid(os.getuid())[0]
+
+
+ try:
+ database = sys.argv[1]
+ except IndexError:
+ print 'USAGE: python ldap2system.py <database>'
+ sys.exit(1)
+
+ if raw_input('update %s db ? [y/n]: ' % database).strip().lower().startswith('y'):
+ cnx = get_connection(user=getlogin(), database=database)
+ cursor = cnx.cursor()
+
+ insert = ('INSERT INTO euser (creation_date, eid, modification_date, login, firstname, surname, last_login_time, upassword) '
+ "VALUES (%(mtime)s, %(eid)s, %(mtime)s, %(login)s, %(firstname)s, %(surname)s, %(mtime)s, './fqEz5LeZnT6');")
+ update = "UPDATE entities SET source='system' WHERE eid=%(eid)s;"
+ cursor.execute("SELECT eid,type,source,extid,mtime FROM entities WHERE source!='system'")
+ for eid, type, source, extid, mtime in cursor.fetchall():
+ if type != 'EUser':
+ print "don't know what to do with entity type", type
+ continue
+ if source != 'ldapuser':
+ print "don't know what to do with source type", source
+ continue
+ ldapinfos = dict(x.strip().split('=') for x in extid.split(','))
+ login = ldapinfos['uid']
+ firstname = ldapinfos['uid'][0].upper()
+ surname = ldapinfos['uid'][1:].capitalize()
+ if login != 'jcuissinat':
+ args = dict(eid=eid, type=type, source=source, login=login,
+ firstname=firstname, surname=surname, mtime=mtime)
+ print args
+ cursor.execute(insert, args)
+ cursor.execute(update, args)
+
+ cnx.commit()
+ cnx.close()
+
--- a/doc/book/en/D030-architecture.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-.. -*- coding: utf-8 -*-
-
-
-Server Architecture
--------------------
-
-.. image:: images/server-class-diagram.png
-
-`Diagramme ArgoUML`_
-
-[FIXME]
-Make a downloadable source of zargo file.
-
-.. _`Diagramme ArgoUML`: cubicweb.zargo
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/book/en/D030-cubicweb-ctl.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -0,0 +1,122 @@
+.. -*- coding: utf-8 -*-
+
+.. _cubicweb-ctl:
+
+``cubicweb-ctl`` tool
+=====================
+
+`cubicweb-ctl` is the swiss knife to manage `CubicWeb` instances.
+The general syntax is ::
+
+ cubicweb-ctl <command> [options command] <arguments commands>
+
+To view available commands ::
+
+ cubicweb-ctl
+ cubicweb-ctl --help
+
+Please note that the commands available depends on the `CubicWeb` packages
+and cubes that have been installed.
+
+To view the help menu on specific command ::
+
+ cubicweb-ctl <command> --help
+
+Command to create a cube
+------------------------
+
+* ``newcube``, create a new cube on the file system based on the name
+ given in the parameters. This command create a cube from an application
+ skeleton that includes default files required for debian packaging.
+
+
+Command to create an instance
+-----------------------------
+* ``create``, creates the files for the instance configuration
+* ``db-create``, creates the system database of an instance (tables and
+ extensions only)
+* ``db-init``, initializes the system database of an instance
+ (schema, groups, users, workflows...)
+
+By default, those three commandes are encapsulated in ``create`` so
+that they can be executed consecutively.
+
+Command to create an instance for Google AppEngine datastore source
+-------------------------------------------------------------------
+* ``newgapp``, creates the configuration files for an instance
+
+This command needs to be followed by the commands responsible for
+the database initialization. As those are specific to the `datastore`,
+specific Google AppEgine database, they are not available for now
+in cubicweb-ctl, but they are available in the instance created.
+
+For more details, please see :ref:`gaecontents` .
+
+Commands to control instances
+-----------------------------
+* ``start``, starts one or more or all instances
+* ``stop``, stops one or more or all instances
+* ``restart``, restarts one or more or all instances
+* ``status``, returns the status of the instance
+
+Commands to maintain instances
+------------------------------
+* ``upgrade``, launches the existing instances migration when a new version
+ of `CubicWeb` or the cubes installed is available
+* ``shell``, opens a migration shell for manual maintenance of the instance
+* ``db-dump``, creates a dump of the system database
+* ``db-restore``, restores a dump of the system database
+* ``db-check``, checks data integrity of an instance. If the automatic correction
+ is activated, it is recommanded to create a dump before this operation.
+* ``schema-sync``, synchronizes the persistent schema of an instance with
+ the application schema. It is recommanded to create a dump before this operation.
+
+Commands to maintain i18n catalogs
+----------------------------------
+* ``i18nlibupdate``, regenerates messages catalogs of the `CubicWeb` library
+* ``i18nupdate``, regenerates the messages catalogs of a cube
+* ``i18ncompile``, recompiles the messages catalogs of an instance.
+ This is automatically done while upgrading.
+
+See also chapter :ref:`internationalisation`.
+
+Other commands
+--------------
+* ``list``, provides a list of the available configuration, cubes
+ and instances.
+* ``delete``, deletes an instance (configuration files and database)
+
+
+Create an instance from an existing cube
+````````````````````````````````````````
+
+To create an instance from an existing cube, execute the following
+command ::
+
+ cubicweb-ctl create <cube_name> <instance_name>
+
+This command will create the configuration files of an instance in
+``~/etc/cubicweb.d/<instance_name>``.
+The tool ``cubicweb-ctl`` allows you to execute the command ``db-create``
+and ``db-init`` when you run ``create`` so that you can complete an
+instance creation in a single command.
+
+If you decide not to execut those commands while ``cubicweb-ctl create``,
+then you will have to execute them seperately(``cubicweb-ctl db-create``,
+``cubicweb-ctl db-init`` ) otherwise your installation will not be complete
+and you will not be able to launch your instance.
+
+
+Creation of an instance from a new cube
+```````````````````````````````````````
+
+Create first your new cube cube ::
+
+ cubicweb-ctl newcube <mycube>
+
+This will create a new cube in ``/path/to/forest/cubicweb/cubes/<mycube>``
+for a Mercurial forest installation, or in ``/usr/share/cubicweb/cubes``
+for a debian packages installation, and then create an instance as
+explained just above.
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/book/en/D040-api-reference.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -0,0 +1,33 @@
+.. -*- coding: utf-8 -*-
+
+API Reference
+=============
+
+Schema API
+----------
+
+Base Types
+~~~~~~~~~~
+
+Base types are defined as a set in yams.BASE_TYPES that includes:
+`String`, `Int`, `Float`, `Boolean`, `Date`, `Time`, `Datetime`,
+`Interval`, `Password`, `Bytes`.
+
+See `yams' API <http://www.cubicweb.org/doc/en/modindex.html>`_
+
+Constraints
+~~~~~~~~~~~
+
+Constraints are defined in yams.constraints and include:
+`UniqueConstraint`, `SizeConstraint`, `RegexpConstraint`,
+`BoundConstraint`, `IntervalBoundConstraint`,
+`StaticVocabularyConstraint`, `MultipleStaticVocabularyConstraint`.
+
+See `yams' API <http://www.cubicweb.org/doc/en/modindex.html>`_
+
+Views API
+---------
+
+See `yams' API <http://www.cubicweb.org/doc/en/modindex.html>`_
+[WRITE ME]
+
--- a/doc/book/en/D040-modules-stdlib.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-.. -*- coding: utf-8 -*-
-
-================
-Standard library
-================
-
-:mod:`cubes.addressbook`
-========================
-
-.. automodule:: cubes.addressbook
- :members:
-
-:mod:`cubes.basket`
-========================
-
-.. automodule:: cubes.basket
- :members:
-
-:mod:`cubes.blog`
-========================
-
-.. automodule:: cubes.blog
- :members:
-
-:mod:`cubes.book`
-========================
-
-.. automodule:: cubes.book
- :members:
-
-:mod:`cubes.comment`
-========================
-
-.. automodule:: cubes.comment
- :members:
-
-:mod:`cubes.company`
-========================
-
-.. automodule:: cubes.company
- :members:
-
-
-:mod:`cubes.conference`
-========================
-
-.. automodule:: cubes.conference
- :members:
-
-:mod:`cubes.email`
-========================
-
-.. automodule:: cubes.email
- :members:
-
-:mod:`cubes.event`
-========================
-
-.. automodule:: cubes.event
- :members:
-
-:mod:`cubes.expense`
-========================
-
-.. automodule:: cubes.expense
- :members:
-
-
-:mod:`cubes.file`
-========================
-
-.. automodule:: cubes.file
- :members:
-
-:mod:`cubes.folder`
-========================
-
-.. automodule:: cubes.folder
- :members:
-
-:mod:`cubes.i18ncontent`
-========================
-
-.. automodule:: cubes.i18ncontent
- :members:
-
-:mod:`cubes.invoice`
-========================
-
-.. automodule:: cubes.invoice
- :members:
-
-:mod:`cubes.keyword`
-========================
-
-.. automodule:: cubes.keyword
- :members:
-
-:mod:`cubes.link`
-========================
-
-.. automodule:: cubes.link
- :members:
-
-:mod:`cubes.mailinglist`
-========================
-
-.. automodule:: cubes.mailinglist
- :members:
-
-:mod:`cubes.person`
-========================
-
-.. automodule:: cubes.person
- :members:
-
-:mod:`cubes.shopcart`
-========================
-
-.. automodule:: cubes.shopcart
- :members:
-
-:mod:`cubes.skillmat`
-========================
-
-.. automodule:: cubes.skillmat
- :members:
-
-:mod:`cubes.tag`
-========================
-
-.. automodule:: cubes.tag
- :members:
-
-:mod:`cubes.task`
-========================
-
-.. automodule:: cubes.task
- :members:
-
-:mod:`cubes.workcase`
-========================
-
-.. automodule:: cubes.workcase
- :members:
-
-:mod:`cubes.workorder`
-========================
-
-.. automodule:: cubes.workorder
- :members:
-
-:mod:`cubes.zone`
-========================
-
-.. automodule:: cubes.zone
- :members:
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/book/en/D050-architecture.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -0,0 +1,14 @@
+.. -*- coding: utf-8 -*-
+
+
+Server Architecture
+-------------------
+
+.. image:: images/server-class-diagram.png
+
+`Diagramme ArgoUML`_
+
+[FIXME]
+Make a downloadable source of zargo file.
+
+.. _`Diagramme ArgoUML`: cubicweb.zargo
--- a/doc/book/en/D050-modules-cbw-api.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1961 +0,0 @@
-.. -*- coding: utf-8 -*-
-
-============
-CubicWeb API
-============
-
-:mod:`cubicweb.hercule`
-=======================
-
-.. automodule:: cubicweb.hercule
- :members:
-
-:mod:`cubicweb.cwctl`
-=====================
-
-.. automodule:: cubicweb.cwctl
- :members:
-
-:mod:`cubicweb.schema`
-======================
-
-.. automodule:: cubicweb.schema
- :members:
-
-:mod:`cubicweb.cwconfig`
-========================
-
-.. automodule:: cubicweb.cwconfig
- :members:
-
-:mod:`cubicweb.schemaviewer`
-============================
-
-.. automodule:: cubicweb.schemaviewer
- :members:
-
-:mod:`cubicweb._exceptions`
-===========================
-
-.. automodule:: cubicweb._exceptions
- :members:
-
-:mod:`cubicweb.dbapi`
-=====================
-
-.. automodule:: cubicweb.dbapi
- :members:
-
-:mod:`cubicweb.toolsutils`
-==========================
-
-.. automodule:: cubicweb.toolsutils
- :members:
-
-:mod:`cubicweb.cwvreg`
-======================
-
-.. automodule:: cubicweb.cwvreg
- :members:
-
-:mod:`cubicweb.md5crypt`
-========================
-
-.. automodule:: cubicweb.md5crypt
- :members:
-
-:mod:`cubicweb.rset`
-====================
-
-.. automodule:: cubicweb.rset
- :members:
-
-:mod:`cubicweb`
-===============
-
-.. automodule:: cubicweb
- :members:
-
-:mod:`cubicweb.setup`
-=====================
-
-.. automodule:: cubicweb.setup
- :members:
-
-:mod:`cubicweb.gettext`
-=======================
-
-.. automodule:: cubicweb.gettext
- :members:
-
-:mod:`cubicweb.interfaces`
-==========================
-
-.. automodule:: cubicweb.interfaces
- :members:
-
-:mod:`cubicweb.vregistry`
-=========================
-
-.. automodule:: cubicweb.vregistry
- :members:
-
-:mod:`cubicweb.web.httpcache`
-=============================
-
-.. automodule:: cubicweb.web.httpcache
- :members:
-
-:mod:`cubicweb.web.webconfig`
-=============================
-
-.. automodule:: cubicweb.web.webconfig
- :members:
-
-:mod:`cubicweb.web.request`
-===========================
-
-.. automodule:: cubicweb.web.request
- :members:
-
-:mod:`cubicweb.web._exceptions`
-===============================
-
-.. automodule:: cubicweb.web._exceptions
- :members:
-
-:mod:`cubicweb.web.webctl`
-==========================
-
-.. automodule:: cubicweb.web.webctl
- :members:
-
-:mod:`cubicweb.web.application`
-===============================
-
-.. automodule:: cubicweb.web.application
- :members:
-
-:mod:`cubicweb.web.controller`
-==============================
-
-.. automodule:: cubicweb.web.controller
- :members:
-
-:mod:`cubicweb.web.widgets`
-===========================
-
-.. automodule:: cubicweb.web.widgets
- :members:
-
-:mod:`cubicweb.web.htmlwidgets`
-===============================
-
-.. automodule:: cubicweb.web.htmlwidgets
- :members:
-
-:mod:`cubicweb.web`
-===================
-
-.. automodule:: cubicweb.web
- :members:
-
-:mod:`cubicweb.web.form`
-========================
-
-.. automodule:: cubicweb.web.form
- :members:
-
-:mod:`cubicweb.web.box`
-=======================
-
-.. automodule:: cubicweb.web.box
- :members:
-
-:mod:`cubicweb.web.component`
-=============================
-
-.. automodule:: cubicweb.web.component
- :members:
-
-:mod:`cubicweb.web.action`
-==========================
-
-.. automodule:: cubicweb.web.action
- :members:
-
-:mod:`cubicweb.web.facet`
-=========================
-
-.. automodule:: cubicweb.web.facet
- :members:
-
-:mod:`cubicweb.web.views.plots`
-===============================
-
-.. automodule:: cubicweb.web.views.plots
- :members:
-
-:mod:`cubicweb.web.views.error`
-===============================
-
-.. automodule:: cubicweb.web.views.error
- :members:
-
-:mod:`cubicweb.web.views.magicsearch`
-=====================================
-
-.. automodule:: cubicweb.web.views.magicsearch
- :members:
-
-:mod:`cubicweb.web.views.basetemplates`
-=======================================
-
-.. automodule:: cubicweb.web.views.basetemplates
- :members:
-
-:mod:`cubicweb.web.views.idownloadable`
-=======================================
-
-.. automodule:: cubicweb.web.views.idownloadable
- :members:
-
-:mod:`cubicweb.web.views.ajaxedit`
-==================================
-
-.. automodule:: cubicweb.web.views.ajaxedit
- :members:
-
-:mod:`cubicweb.web.views.wfentities`
-====================================
-
-.. automodule:: cubicweb.web.views.wfentities
- :members:
-
-:mod:`cubicweb.web.views.navigation`
-====================================
-
-.. automodule:: cubicweb.web.views.navigation
- :members:
-
-:mod:`cubicweb.web.views.schemaentities`
-========================================
-
-.. automodule:: cubicweb.web.views.schemaentities
- :members:
-
-:mod:`cubicweb.web.views.treeview`
-==================================
-
-.. automodule:: cubicweb.web.views.treeview
- :members:
-
-:mod:`cubicweb.web.views.startup`
-=================================
-
-.. automodule:: cubicweb.web.views.startup
- :members:
-
-:mod:`cubicweb.web.views.iprogress`
-===================================
-
-.. automodule:: cubicweb.web.views.iprogress
- :members:
-
-:mod:`cubicweb.web.views.euser`
-===============================
-
-.. automodule:: cubicweb.web.views.euser
- :members:
-
-:mod:`cubicweb.web.views.facets`
-================================
-
-.. automodule:: cubicweb.web.views.facets
- :members:
-
-:mod:`cubicweb.web.views.emailaddress`
-======================================
-
-.. automodule:: cubicweb.web.views.emailaddress
- :members:
-
-:mod:`cubicweb.web.views.sessions`
-==================================
-
-.. automodule:: cubicweb.web.views.sessions
- :members:
-
-:mod:`cubicweb.web.views.timetable`
-===================================
-
-.. automodule:: cubicweb.web.views.timetable
- :members:
-
-:mod:`cubicweb.web.views.timeline`
-==================================
-
-.. automodule:: cubicweb.web.views.timeline
- :members:
-
-:mod:`cubicweb.web.views.baseviews`
-===================================
-
-.. automodule:: cubicweb.web.views.baseviews
- :members:
-
-:mod:`cubicweb.web.views.boxes`
-===============================
-
-.. automodule:: cubicweb.web.views.boxes
- :members:
-
-:mod:`cubicweb.web.views.old_calendar`
-======================================
-
-.. automodule:: cubicweb.web.views.old_calendar
- :members:
-
-:mod:`cubicweb.web.views.card`
-==============================
-
-.. automodule:: cubicweb.web.views.card
- :members:
-
-:mod:`cubicweb.web.views.ibreadcrumbs`
-======================================
-
-.. automodule:: cubicweb.web.views.ibreadcrumbs
- :members:
-
-:mod:`cubicweb.web.views.basecontrollers`
-=========================================
-
-.. automodule:: cubicweb.web.views.basecontrollers
- :members:
-
-:mod:`cubicweb.web.views.embedding`
-===================================
-
-.. automodule:: cubicweb.web.views.embedding
- :members:
-
-:mod:`cubicweb.web.views.actions`
-=================================
-
-.. automodule:: cubicweb.web.views.actions
- :members:
-
-:mod:`cubicweb.web.views.editcontroller`
-========================================
-
-.. automodule:: cubicweb.web.views.editcontroller
- :members:
-
-:mod:`cubicweb.web.views.debug`
-===============================
-
-.. automodule:: cubicweb.web.views.debug
- :members:
-
-:mod:`cubicweb.web.views.urlpublishing`
-=======================================
-
-.. automodule:: cubicweb.web.views.urlpublishing
- :members:
-
-:mod:`cubicweb.web.views.baseforms`
-===================================
-
-.. automodule:: cubicweb.web.views.baseforms
- :members:
-
-:mod:`cubicweb.web.views.urlrewrite`
-====================================
-
-.. automodule:: cubicweb.web.views.urlrewrite
- :members:
-
-:mod:`cubicweb.web.views.massmailing`
-=====================================
-
-.. automodule:: cubicweb.web.views.massmailing
- :members:
-
-:mod:`cubicweb.web.views`
-=========================
-
-.. automodule:: cubicweb.web.views
- :members:
-
-:mod:`cubicweb.web.views.eproperties`
-=====================================
-
-.. automodule:: cubicweb.web.views.eproperties
- :members:
-
-:mod:`cubicweb.web.views.tabs`
-==============================
-
-.. automodule:: cubicweb.web.views.tabs
- :members:
-
-:mod:`cubicweb.web.views.vcard`
-===============================
-
-.. automodule:: cubicweb.web.views.vcard
- :members:
-
-:mod:`cubicweb.web.views.wdoc`
-==============================
-
-.. automodule:: cubicweb.web.views.wdoc
- :members:
-
-:mod:`cubicweb.web.views.authentication`
-========================================
-
-.. automodule:: cubicweb.web.views.authentication
- :members:
-
-:mod:`cubicweb.web.views.tableview`
-===================================
-
-.. automodule:: cubicweb.web.views.tableview
- :members:
-
-:mod:`cubicweb.web.views.management`
-====================================
-
-.. automodule:: cubicweb.web.views.management
- :members:
-
-:mod:`cubicweb.web.views.igeocodable`
-=====================================
-
-.. automodule:: cubicweb.web.views.igeocodable
- :members:
-
-:mod:`cubicweb.web.views.xbel`
-==============================
-
-.. automodule:: cubicweb.web.views.xbel
- :members:
-
-:mod:`cubicweb.web.views.bookmark`
-==================================
-
-.. automodule:: cubicweb.web.views.bookmark
- :members:
-
-:mod:`cubicweb.web.views.apacherewrite`
-=======================================
-
-.. automodule:: cubicweb.web.views.apacherewrite
- :members:
-
-:mod:`cubicweb.web.views.dynimages`
-===================================
-
-.. automodule:: cubicweb.web.views.dynimages
- :members:
-
-:mod:`cubicweb.web.views.searchrestriction`
-===========================================
-
-.. automodule:: cubicweb.web.views.searchrestriction
- :members:
-
-:mod:`cubicweb.web.views.basecomponents`
-========================================
-
-.. automodule:: cubicweb.web.views.basecomponents
- :members:
-
-:mod:`cubicweb.web.views.calendar`
-==================================
-
-.. automodule:: cubicweb.web.views.calendar
- :members:
-
-:mod:`cubicweb.sobjects.supervising`
-====================================
-
-.. automodule:: cubicweb.sobjects.supervising
- :members:
-
-:mod:`cubicweb.sobjects.hooks`
-==============================
-
-.. automodule:: cubicweb.sobjects.hooks
- :members:
-
-:mod:`cubicweb.sobjects.email`
-==============================
-
-.. automodule:: cubicweb.sobjects.email
- :members:
-
-:mod:`cubicweb.sobjects`
-========================
-
-.. automodule:: cubicweb.sobjects
- :members:
-
-:mod:`cubicweb.sobjects.notification`
-=====================================
-
-.. automodule:: cubicweb.sobjects.notification
- :members:
-
-:mod:`cubicweb.wsgi.request`
-============================
-
-.. automodule:: cubicweb.wsgi.request
- :members:
-
-:mod:`cubicweb.wsgi`
-====================
-
-.. automodule:: cubicweb.wsgi
- :members:
-
-:mod:`cubicweb.wsgi.handler`
-============================
-
-.. automodule:: cubicweb.wsgi.handler
- :members:
-
-:mod:`cubicweb.etwist.server`
-=============================
-
-.. automodule:: cubicweb.etwist.server
- :members:
-
-:mod:`cubicweb.etwist.request`
-==============================
-
-.. automodule:: cubicweb.etwist.request
- :members:
-
-:mod:`cubicweb.etwist.twconfig`
-===============================
-
-.. automodule:: cubicweb.etwist.twconfig
- :members:
-
-:mod:`cubicweb.etwist`
-======================
-
-.. automodule:: cubicweb.etwist
- :members:
-
-:mod:`cubicweb.etwist.twctl`
-============================
-
-.. automodule:: cubicweb.etwist.twctl
- :members:
-
-:mod:`cubicweb.goa.goaconfig`
-=============================
-
-.. automodule:: cubicweb.goa.goaconfig
- :members:
-
-:mod:`cubicweb.goa.rqlinterpreter`
-==================================
-
-.. automodule:: cubicweb.goa.rqlinterpreter
- :members:
-
-:mod:`cubicweb.goa.dbmyams`
-===========================
-
-.. automodule:: cubicweb.goa.dbmyams
- :members:
-
-:mod:`cubicweb.goa.db`
-======================
-
-.. automodule:: cubicweb.goa.db
- :members:
-
-:mod:`cubicweb.goa.goactl`
-==========================
-
-.. automodule:: cubicweb.goa.goactl
- :members:
-
-:mod:`cubicweb.goa.goavreg`
-===========================
-
-.. automodule:: cubicweb.goa.goavreg
- :members:
-
-:mod:`cubicweb.goa`
-===================
-
-.. automodule:: cubicweb.goa
- :members:
-
-:mod:`cubicweb.goa.gaesource`
-=============================
-
-.. automodule:: cubicweb.goa.gaesource
- :members:
-
-:mod:`cubicweb.goa.dbinit`
-==========================
-
-.. automodule:: cubicweb.goa.dbinit
- :members:
-
-:mod:`cubicweb.goa.testlib`
-===========================
-
-.. automodule:: cubicweb.goa.testlib
- :members:
-
-:mod:`cubicweb.goa.appobjects.dbmgmt`
-=====================================
-
-.. automodule:: cubicweb.goa.appobjects.dbmgmt
- :members:
-
-:mod:`cubicweb.goa.appobjects.gauthservice`
-===========================================
-
-.. automodule:: cubicweb.goa.appobjects.gauthservice
- :members:
-
-:mod:`cubicweb.goa.appobjects.sessions`
-=======================================
-
-.. automodule:: cubicweb.goa.appobjects.sessions
- :members:
-
-:mod:`cubicweb.goa.appobjects`
-==============================
-
-.. automodule:: cubicweb.goa.appobjects
- :members:
-
-:mod:`cubicweb.goa.appobjects.components`
-=========================================
-
-.. automodule:: cubicweb.goa.appobjects.components
- :members:
-
-:mod:`cubicweb.goa.tools.laxctl`
-================================
-
-.. automodule:: cubicweb.goa.tools.laxctl
- :members:
-
-:mod:`cubicweb.goa.tools.generate_schema_img`
-=============================================
-
-.. automodule:: cubicweb.goa.tools.generate_schema_img
- :members:
-
-:mod:`cubicweb.goa.tools`
-=========================
-
-.. automodule:: cubicweb.goa.tools
- :members:
-
-:mod:`cubicweb.goa.tools.i18n`
-==============================
-
-.. automodule:: cubicweb.goa.tools.i18n
- :members:
-
-:mod:`cubicweb.goa.overrides.mttransforms`
-==========================================
-
-.. automodule:: cubicweb.goa.overrides.mttransforms
- :members:
-
-:mod:`cubicweb.goa.overrides.rqlannotation`
-===========================================
-
-.. automodule:: cubicweb.goa.overrides.rqlannotation
- :members:
-
-:mod:`cubicweb.goa.overrides.toolsutils`
-========================================
-
-.. automodule:: cubicweb.goa.overrides.toolsutils
- :members:
-
-:mod:`cubicweb.goa.overrides`
-=============================
-
-.. automodule:: cubicweb.goa.overrides
- :members:
-
-:mod:`cubicweb.goa.overrides.server__init__`
-============================================
-
-.. automodule:: cubicweb.goa.overrides.server__init__
- :members:
-
-:mod:`cubicweb.goa.overrides.server_utils`
-==========================================
-
-.. automodule:: cubicweb.goa.overrides.server_utils
- :members:
-
-:mod:`cubicweb.common.mttransforms`
-===================================
-
-.. automodule:: cubicweb.common.mttransforms
- :members:
-
-:mod:`cubicweb.common.utils`
-============================
-
-.. automodule:: cubicweb.common.utils
- :members:
-
-:mod:`cubicweb.common.schema`
-=============================
-
-.. automodule:: cubicweb.common.schema
- :members:
-
-:mod:`cubicweb.common.tal`
-==========================
-
-.. automodule:: cubicweb.common.tal
- :members:
-
-:mod:`cubicweb.common.appobject`
-================================
-
-.. automodule:: cubicweb.common.appobject
- :members:
-
-:mod:`cubicweb.common.migration`
-================================
-
-.. automodule:: cubicweb.common.migration
- :members:
-
-:mod:`cubicweb.common.rest`
-===========================
-
-.. automodule:: cubicweb.common.rest
- :members:
-
-:mod:`cubicweb.common.html4zope`
-================================
-
-.. automodule:: cubicweb.common.html4zope
- :members:
-
-:mod:`cubicweb.common.view`
-===========================
-
-.. automodule:: cubicweb.common.view
- :members:
-
-:mod:`cubicweb.common.selectors`
-================================
-
-.. automodule:: cubicweb.common.selectors
- :members:
-
-:mod:`cubicweb.common.entity`
-=============================
-
-.. automodule:: cubicweb.common.entity
- :members:
-
-:mod:`cubicweb.common.mail`
-===========================
-
-.. automodule:: cubicweb.common.mail
- :members:
-
-:mod:`cubicweb.common.mixins`
-=============================
-
-.. automodule:: cubicweb.common.mixins
- :members:
-
-:mod:`cubicweb.common`
-======================
-
-.. automodule:: cubicweb.common
- :members:
-
-:mod:`cubicweb.common.uilib`
-============================
-
-.. automodule:: cubicweb.common.uilib
- :members:
-
-:mod:`cubicweb.common.registerers`
-==================================
-
-.. automodule:: cubicweb.common.registerers
- :members:
-
-:mod:`cubicweb.common.i18n`
-===========================
-
-.. automodule:: cubicweb.common.i18n
- :members:
-
-:mod:`cubicweb.entities.schemaobjs`
-===================================
-
-.. automodule:: cubicweb.entities.schemaobjs
- :members:
-
-:mod:`cubicweb.entities.wfobjs`
-===============================
-
-.. automodule:: cubicweb.entities.wfobjs
- :members:
-
-:mod:`cubicweb.entities`
-========================
-
-.. automodule:: cubicweb.entities
- :members:
-
-:mod:`cubicweb.entities.authobjs`
-=================================
-
-.. automodule:: cubicweb.entities.authobjs
- :members:
-
-:mod:`cubicweb.entities.lib`
-============================
-
-.. automodule:: cubicweb.entities.lib
- :members:
-
-:mod:`cubicweb.server.server`
-=============================
-
-.. automodule:: cubicweb.server.server
- :members:
-
-:mod:`cubicweb.server.utils`
-============================
-
-.. automodule:: cubicweb.server.utils
- :members:
-
-:mod:`cubicweb.server.checkintegrity`
-=====================================
-
-.. automodule:: cubicweb.server.checkintegrity
- :members:
-
-:mod:`cubicweb.server.rqlrewrite`
-=================================
-
-.. automodule:: cubicweb.server.rqlrewrite
- :members:
-
-:mod:`cubicweb.server.rqlannotation`
-====================================
-
-.. automodule:: cubicweb.server.rqlannotation
- :members:
-
-:mod:`cubicweb.server.hooks`
-============================
-
-.. automodule:: cubicweb.server.hooks
- :members:
-
-:mod:`cubicweb.server.hooksmanager`
-===================================
-
-.. automodule:: cubicweb.server.hooksmanager
- :members:
-
-:mod:`cubicweb.server.securityhooks`
-====================================
-
-.. automodule:: cubicweb.server.securityhooks
- :members:
-
-:mod:`cubicweb.server.schemahooks`
-==================================
-
-.. automodule:: cubicweb.server.schemahooks
- :members:
-
-:mod:`cubicweb.server.session`
-==============================
-
-.. automodule:: cubicweb.server.session
- :members:
-
-:mod:`cubicweb.server.serverctl`
-================================
-
-.. automodule:: cubicweb.server.serverctl
- :members:
-
-:mod:`cubicweb.server.serverconfig`
-===================================
-
-.. automodule:: cubicweb.server.serverconfig
- :members:
-
-:mod:`cubicweb.server.pool`
-===========================
-
-.. automodule:: cubicweb.server.pool
- :members:
-
-:mod:`cubicweb.server.mssteps`
-==============================
-
-.. automodule:: cubicweb.server.mssteps
- :members:
-
-:mod:`cubicweb.server.hookhelper`
-=================================
-
-.. automodule:: cubicweb.server.hookhelper
- :members:
-
-:mod:`cubicweb.server`
-======================
-
-.. automodule:: cubicweb.server
- :members:
-
-:mod:`cubicweb.server.sqlutils`
-===============================
-
-.. automodule:: cubicweb.server.sqlutils
- :members:
-
-:mod:`cubicweb.server.schemaserial`
-===================================
-
-.. automodule:: cubicweb.server.schemaserial
- :members:
-
-:mod:`cubicweb.server.repository`
-=================================
-
-.. automodule:: cubicweb.server.repository
- :members:
-
-:mod:`cubicweb.server.ssplanner`
-================================
-
-.. automodule:: cubicweb.server.ssplanner
- :members:
-
-:mod:`cubicweb.server.msplanner`
-================================
-
-.. automodule:: cubicweb.server.msplanner
- :members:
-
-:mod:`cubicweb.server.querier`
-==============================
-
-.. automodule:: cubicweb.server.querier
- :members:
-
-:mod:`cubicweb.server.migractions`
-==================================
-
-.. automodule:: cubicweb.server.migractions
- :members:
-
-:mod:`cubicweb.server.sources.rql2sql`
-======================================
-
-.. automodule:: cubicweb.server.sources.rql2sql
- :members:
-
-:mod:`cubicweb.server.sources.ldapuser`
-=======================================
-
-.. automodule:: cubicweb.server.sources.ldapuser
- :members:
-
-:mod:`cubicweb.server.sources`
-==============================
-
-.. automodule:: cubicweb.server.sources
- :members:
-
-:mod:`cubicweb.server.sources.pyrorql`
-======================================
-
-.. automodule:: cubicweb.server.sources.pyrorql
- :members:
-
-:mod:`cubicweb.server.sources.native`
-=====================================
-
-.. automodule:: cubicweb.server.sources.native
- :members:
-
-:mod:`cubicweb.server.sources.extlite`
-======================================
-
-.. automodule:: cubicweb.server.sources.extlite
- :members:
-
-:mod:`cubicweb.devtools.devctl`
-===============================
-
-.. automodule:: cubicweb.devtools.devctl
- :members:
-
-:mod:`cubicweb.devtools.pkginfo`
-================================
-
-.. automodule:: cubicweb.devtools.pkginfo
- :members:
-
-:mod:`cubicweb.devtools.migrtest`
-=================================
-
-.. automodule:: cubicweb.devtools.migrtest
- :members:
-
-:mod:`cubicweb.devtools.htmlparser`
-===================================
-
-.. automodule:: cubicweb.devtools.htmlparser
- :members:
-
-:mod:`cubicweb.devtools`
-========================
-
-.. automodule:: cubicweb.devtools
- :members:
-
-:mod:`cubicweb.devtools.fill`
-=============================
-
-.. automodule:: cubicweb.devtools.fill
- :members:
-
-:mod:`cubicweb.devtools._apptest`
-=================================
-
-.. automodule:: cubicweb.devtools._apptest
- :members:
-
-:mod:`cubicweb.devtools.stresstester`
-=====================================
-
-.. automodule:: cubicweb.devtools.stresstester
- :members:
-
-:mod:`cubicweb.devtools.fake`
-=============================
-
-.. automodule:: cubicweb.devtools.fake
- :members:
-
-:mod:`cubicweb.devtools.apptest`
-================================
-
-.. automodule:: cubicweb.devtools.apptest
- :members:
-
-:mod:`cubicweb.devtools.livetest`
-=================================
-
-.. automodule:: cubicweb.devtools.livetest
- :members:
-
-:mod:`cubicweb.devtools.testlib`
-================================
-
-.. automodule:: cubicweb.devtools.testlib
- :members:
-
-:mod:`cubicweb.devtools.repotest`
-=================================
-
-.. automodule:: cubicweb.devtools.repotest
- :members:
-
-:mod:`cubicweb.devtools.cwtwill`
-================================
-
-.. automodule:: cubicweb.devtools.cwtwill
- :members:
-
-:mod:`cubicweb.misc.cwdesklets.rqlsensor`
-=========================================
-
-.. automodule:: cubicweb.misc.cwdesklets.rqlsensor
- :members:
-
-:mod:`cubicweb.embedded.mx`
-===========================
-
-.. automodule:: cubicweb.embedded.mx
- :members:
-
-:mod:`cubicweb.embedded.mx.DateTime.mxDateTime_python`
-======================================================
-
-.. automodule:: cubicweb.embedded.mx.DateTime.mxDateTime_python
- :members:
-
-:mod:`cubicweb.embedded.mx.DateTime.ARPA`
-=========================================
-
-.. automodule:: cubicweb.embedded.mx.DateTime.ARPA
- :members:
-
-:mod:`cubicweb.embedded.mx.DateTime.ISO`
-========================================
-
-.. automodule:: cubicweb.embedded.mx.DateTime.ISO
- :members:
-
-:mod:`cubicweb.embedded.mx.DateTime.Parser`
-===========================================
-
-.. automodule:: cubicweb.embedded.mx.DateTime.Parser
- :members:
-
-:mod:`cubicweb.embedded.mx.DateTime`
-====================================
-
-.. automodule:: cubicweb.embedded.mx.DateTime
- :members:
-
-:mod:`cubicweb.embedded.mx.DateTime.Timezone`
-=============================================
-
-.. automodule:: cubicweb.embedded.mx.DateTime.Timezone
- :members:
-
-:mod:`cubicweb.embedded.mx.DateTime.DateTime`
-=============================================
-
-.. automodule:: cubicweb.embedded.mx.DateTime.DateTime
- :members:
-
-:mod:`indexer`
-==============
-
-.. automodule:: indexer
- :members:
-
-:mod:`indexer.indexable_objects`
-================================
-
-.. automodule:: indexer.indexable_objects
- :members:
-
-:mod:`indexer.search`
-=====================
-
-.. automodule:: indexer.search
- :members:
-
-:mod:`indexer.query_objects`
-============================
-
-.. automodule:: indexer.query_objects
- :members:
-
-:mod:`indexer._exceptions`
-==========================
-
-.. automodule:: indexer._exceptions
- :members:
-
-:mod:`indexer.setup`
-====================
-
-.. automodule:: indexer.setup
- :members:
-
-:mod:`indexer.query`
-====================
-
-.. automodule:: indexer.query
- :members:
-
-:mod:`logilab`
-==============
-
-.. automodule:: logilab
- :members:
-
-:mod:`logilab.constraint.propagation`
-=====================================
-
-.. automodule:: logilab.constraint.propagation
- :members:
-
-:mod:`logilab.constraint.psyco_wrapper`
-=======================================
-
-.. automodule:: logilab.constraint.psyco_wrapper
- :members:
-
-:mod:`logilab.constraint.fd`
-============================
-
-.. automodule:: logilab.constraint.fd
- :members:
-
-:mod:`logilab.constraint.fi`
-============================
-
-.. automodule:: logilab.constraint.fi
- :members:
-
-:mod:`logilab.constraint`
-=========================
-
-.. automodule:: logilab.constraint
- :members:
-
-:mod:`logilab.constraint.setup`
-===============================
-
-.. automodule:: logilab.constraint.setup
- :members:
-
-:mod:`logilab.constraint.interfaces`
-====================================
-
-.. automodule:: logilab.constraint.interfaces
- :members:
-
-:mod:`logilab.constraint.distributors`
-======================================
-
-.. automodule:: logilab.constraint.distributors
- :members:
-
-:mod:`logilab.common.clcommands`
-================================
-
-.. automodule:: logilab.common.clcommands
- :members:
-
-:mod:`logilab.common.table`
-===========================
-
-.. automodule:: logilab.common.table
- :members:
-
-:mod:`logilab.common.interface`
-===============================
-
-.. automodule:: logilab.common.interface
- :members:
-
-:mod:`logilab.common.logger`
-============================
-
-.. automodule:: logilab.common.logger
- :members:
-
-:mod:`logilab.common.cli`
-=========================
-
-.. automodule:: logilab.common.cli
- :members:
-
-:mod:`logilab.common.xmlrpcutils`
-=================================
-
-.. automodule:: logilab.common.xmlrpcutils
- :members:
-
-:mod:`logilab.common.corbautils`
-================================
-
-.. automodule:: logilab.common.corbautils
- :members:
-
-:mod:`logilab.common.cache`
-===========================
-
-.. automodule:: logilab.common.cache
- :members:
-
-:mod:`logilab.common.astutils`
-==============================
-
-.. automodule:: logilab.common.astutils
- :members:
-
-:mod:`logilab.common.daemon`
-============================
-
-.. automodule:: logilab.common.daemon
- :members:
-
-:mod:`logilab.common.tree`
-==========================
-
-.. automodule:: logilab.common.tree
- :members:
-
-:mod:`logilab.common.textutils`
-===============================
-
-.. automodule:: logilab.common.textutils
- :members:
-
-:mod:`logilab.common.modutils`
-==============================
-
-.. automodule:: logilab.common.modutils
- :members:
-
-:mod:`logilab.common.fileutils`
-===============================
-
-.. automodule:: logilab.common.fileutils
- :members:
-
-:mod:`logilab.common.patricia`
-==============================
-
-.. automodule:: logilab.common.patricia
- :members:
-
-:mod:`logilab.common.date`
-==========================
-
-.. automodule:: logilab.common.date
- :members:
-
-:mod:`logilab.common.optparser`
-===============================
-
-.. automodule:: logilab.common.optparser
- :members:
-
-:mod:`logilab.common.twisted_distutils`
-=======================================
-
-.. automodule:: logilab.common.twisted_distutils
- :members:
-
-:mod:`logilab.common.decorators`
-================================
-
-.. automodule:: logilab.common.decorators
- :members:
-
-:mod:`logilab.common.db`
-========================
-
-.. automodule:: logilab.common.db
- :members:
-
-:mod:`logilab.common.deprecation`
-=================================
-
-.. automodule:: logilab.common.deprecation
- :members:
-
-:mod:`logilab.common.tasksqueue`
-================================
-
-.. automodule:: logilab.common.tasksqueue
- :members:
-
-:mod:`logilab.common.changelog`
-===============================
-
-.. automodule:: logilab.common.changelog
- :members:
-
-:mod:`logilab.common.shellutils`
-================================
-
-.. automodule:: logilab.common.shellutils
- :members:
-
-:mod:`logilab.common.sqlgen`
-============================
-
-.. automodule:: logilab.common.sqlgen
- :members:
-
-:mod:`logilab.common.optik_ext`
-===============================
-
-.. automodule:: logilab.common.optik_ext
- :members:
-
-:mod:`logilab.common.configuration`
-===================================
-
-.. automodule:: logilab.common.configuration
- :members:
-
-:mod:`logilab.common.visitor`
-=============================
-
-.. automodule:: logilab.common.visitor
- :members:
-
-:mod:`logilab.common.pytest`
-============================
-
-.. automodule:: logilab.common.pytest
- :members:
-
-:mod:`logilab.common`
-=====================
-
-.. automodule:: logilab.common
- :members:
-
-:mod:`logilab.common.setup`
-===========================
-
-.. automodule:: logilab.common.setup
- :members:
-
-:mod:`logilab.common.logservice`
-================================
-
-.. automodule:: logilab.common.logservice
- :members:
-
-:mod:`logilab.common.debugger`
-==============================
-
-.. automodule:: logilab.common.debugger
- :members:
-
-:mod:`logilab.common.html`
-==========================
-
-.. automodule:: logilab.common.html
- :members:
-
-:mod:`logilab.common.vcgutils`
-==============================
-
-.. automodule:: logilab.common.vcgutils
- :members:
-
-:mod:`logilab.common.compat`
-============================
-
-.. automodule:: logilab.common.compat
- :members:
-
-:mod:`logilab.common.logging_ext`
-=================================
-
-.. automodule:: logilab.common.logging_ext
- :members:
-
-:mod:`logilab.common.umessage`
-==============================
-
-.. automodule:: logilab.common.umessage
- :members:
-
-:mod:`logilab.common.proc`
-==========================
-
-.. automodule:: logilab.common.proc
- :members:
-
-:mod:`logilab.common.monclient`
-===============================
-
-.. automodule:: logilab.common.monclient
- :members:
-
-:mod:`logilab.common.bind`
-==========================
-
-.. automodule:: logilab.common.bind
- :members:
-
-:mod:`logilab.common.graph`
-===========================
-
-.. automodule:: logilab.common.graph
- :members:
-
-:mod:`logilab.common.testlib`
-=============================
-
-.. automodule:: logilab.common.testlib
- :members:
-
-:mod:`logilab.common.contexts`
-==============================
-
-.. automodule:: logilab.common.contexts
- :members:
-
-:mod:`logilab.common.adbh`
-==========================
-
-.. automodule:: logilab.common.adbh
- :members:
-
-:mod:`logilab.common.pdf_ext`
-=============================
-
-.. automodule:: logilab.common.pdf_ext
- :members:
-
-:mod:`logilab.common.monserver`
-===============================
-
-.. automodule:: logilab.common.monserver
- :members:
-
-:mod:`logilab.common.ureports.nodes`
-====================================
-
-.. automodule:: logilab.common.ureports.nodes
- :members:
-
-:mod:`logilab.common.ureports`
-==============================
-
-.. automodule:: logilab.common.ureports
- :members:
-
-:mod:`logilab.common.ureports.html_writer`
-==========================================
-
-.. automodule:: logilab.common.ureports.html_writer
- :members:
-
-:mod:`logilab.common.ureports.text_writer`
-==========================================
-
-.. automodule:: logilab.common.ureports.text_writer
- :members:
-
-:mod:`logilab.common.ureports.docbook_writer`
-=============================================
-
-.. automodule:: logilab.common.ureports.docbook_writer
- :members:
-
-:mod:`logilab.mtconverter.engine`
-=================================
-
-.. automodule:: logilab.mtconverter.engine
- :members:
-
-:mod:`logilab.mtconverter.transform`
-====================================
-
-.. automodule:: logilab.mtconverter.transform
- :members:
-
-:mod:`logilab.mtconverter`
-==========================
-
-.. automodule:: logilab.mtconverter
- :members:
-
-:mod:`logilab.mtconverter.setup`
-================================
-
-.. automodule:: logilab.mtconverter.setup
- :members:
-
-:mod:`logilab.mtconverter.transforms.html2text`
-===============================================
-
-.. automodule:: logilab.mtconverter.transforms.html2text
- :members:
-
-:mod:`logilab.mtconverter.transforms.cmdtransforms`
-===================================================
-
-.. automodule:: logilab.mtconverter.transforms.cmdtransforms
- :members:
-
-:mod:`logilab.mtconverter.transforms.python`
-============================================
-
-.. automodule:: logilab.mtconverter.transforms.python
- :members:
-
-:mod:`logilab.mtconverter.transforms.pygmentstransforms`
-========================================================
-
-.. automodule:: logilab.mtconverter.transforms.pygmentstransforms
- :members:
-
-:mod:`logilab.mtconverter.transforms`
-=====================================
-
-.. automodule:: logilab.mtconverter.transforms
- :members:
-
-:mod:`logilab.mtconverter.transforms.piltransforms`
-===================================================
-
-.. automodule:: logilab.mtconverter.transforms.piltransforms
- :members:
-
-:mod:`logilab.devtools.cvstatus`
-================================
-
-.. automodule:: logilab.devtools.cvstatus
- :members:
-
-:mod:`logilab.devtools.changelog`
-=================================
-
-.. automodule:: logilab.devtools.changelog
- :members:
-
-:mod:`logilab.devtools`
-=======================
-
-.. automodule:: logilab.devtools
- :members:
-
-:mod:`logilab.devtools.setup`
-=============================
-
-.. automodule:: logilab.devtools.setup
- :members:
-
-:mod:`logilab.devtools.cvslog`
-==============================
-
-.. automodule:: logilab.devtools.cvslog
- :members:
-
-:mod:`logilab.devtools.lgp.utils`
-=================================
-
-.. automodule:: logilab.devtools.lgp.utils
- :members:
-
-:mod:`logilab.devtools.lgp.tag`
-===============================
-
-.. automodule:: logilab.devtools.lgp.tag
- :members:
-
-:mod:`logilab.devtools.lgp.setupinfo`
-=====================================
-
-.. automodule:: logilab.devtools.lgp.setupinfo
- :members:
-
-:mod:`logilab.devtools.lgp.changelog`
-=====================================
-
-.. automodule:: logilab.devtools.lgp.changelog
- :members:
-
-:mod:`logilab.devtools.lgp.preparedist`
-=======================================
-
-.. automodule:: logilab.devtools.lgp.preparedist
- :members:
-
-:mod:`logilab.devtools.lgp.build`
-=================================
-
-.. automodule:: logilab.devtools.lgp.build
- :members:
-
-:mod:`logilab.devtools.lgp.clean`
-=================================
-
-.. automodule:: logilab.devtools.lgp.clean
- :members:
-
-:mod:`logilab.devtools.lgp`
-===========================
-
-.. automodule:: logilab.devtools.lgp
- :members:
-
-:mod:`logilab.devtools.lgp.setup`
-=================================
-
-.. automodule:: logilab.devtools.lgp.setup
- :members:
-
-:mod:`logilab.devtools.lgp.check`
-=================================
-
-.. automodule:: logilab.devtools.lgp.check
- :members:
-
-:mod:`logilab.devtools.lgp.exceptions`
-======================================
-
-.. automodule:: logilab.devtools.lgp.exceptions
- :members:
-
-:mod:`logilab.devtools.templates`
-=================================
-
-.. automodule:: logilab.devtools.templates
- :members:
-
-:mod:`logilab.devtools.templates.setup`
-=======================================
-
-.. automodule:: logilab.devtools.templates.setup
- :members:
-
-:mod:`logilab.devtools.lib.coverage`
-====================================
-
-.. automodule:: logilab.devtools.lib.coverage
- :members:
-
-:mod:`logilab.devtools.lib.manifest`
-====================================
-
-.. automodule:: logilab.devtools.lib.manifest
- :members:
-
-:mod:`logilab.devtools.lib.pkginfo`
-===================================
-
-.. automodule:: logilab.devtools.lib.pkginfo
- :members:
-
-:mod:`logilab.devtools.lib`
-===========================
-
-.. automodule:: logilab.devtools.lib
- :members:
-
-:mod:`logilab.devtools.vcslib.cvsparse`
-=======================================
-
-.. automodule:: logilab.devtools.vcslib.cvsparse
- :members:
-
-:mod:`logilab.devtools.vcslib.svn`
-==================================
-
-.. automodule:: logilab.devtools.vcslib.svn
- :members:
-
-:mod:`logilab.devtools.vcslib.node`
-===================================
-
-.. automodule:: logilab.devtools.vcslib.node
- :members:
-
-:mod:`logilab.devtools.vcslib`
-==============================
-
-.. automodule:: logilab.devtools.vcslib
- :members:
-
-:mod:`logilab.devtools.vcslib.interfaces`
-=========================================
-
-.. automodule:: logilab.devtools.vcslib.interfaces
- :members:
-
-:mod:`logilab.devtools.vcslib.cvs`
-==================================
-
-.. automodule:: logilab.devtools.vcslib.cvs
- :members:
-
-:mod:`logilab.devtools.vcslib.hg`
-=================================
-
-.. automodule:: logilab.devtools.vcslib.hg
- :members:
-
-:mod:`rql.nodes`
-================
-
-.. automodule:: rql.nodes
- :members:
-
-:mod:`rql.undo`
-===============
-
-.. automodule:: rql.undo
- :members:
-
-:mod:`rql.utils`
-================
-
-.. automodule:: rql.utils
- :members:
-
-:mod:`rql.base`
-===============
-
-.. automodule:: rql.base
- :members:
-
-:mod:`rql.analyze`
-==================
-
-.. automodule:: rql.analyze
- :members:
-
-:mod:`rql._exceptions`
-======================
-
-.. automodule:: rql._exceptions
- :members:
-
-:mod:`rql.compare`
-==================
-
-.. automodule:: rql.compare
- :members:
-
-:mod:`rql.stmts`
-================
-
-.. automodule:: rql.stmts
- :members:
-
-:mod:`rql.parser_main`
-======================
-
-.. automodule:: rql.parser_main
- :members:
-
-:mod:`rql.stcheck`
-==================
-
-.. automodule:: rql.stcheck
- :members:
-
-:mod:`rql.parser`
-=================
-
-.. automodule:: rql.parser
- :members:
-
-:mod:`rql`
-==========
-
-.. automodule:: rql
- :members:
-
-:mod:`rql.setup`
-================
-
-.. automodule:: rql.setup
- :members:
-
-:mod:`rql.interfaces`
-=====================
-
-.. automodule:: rql.interfaces
- :members:
-
-:mod:`rql.editextensions`
-=========================
-
-.. automodule:: rql.editextensions
- :members:
-
-:mod:`rql.fol`
-==============
-
-.. automodule:: rql.fol
- :members:
-
-:mod:`rqlgen`
-=============
-
-.. automodule:: rqlgen
- :members:
-
-:mod:`yams.schema`
-==================
-
-.. automodule:: yams.schema
- :members:
-
-:mod:`yams.reader`
-==================
-
-.. automodule:: yams.reader
- :members:
-
-:mod:`yams.schema2sql`
-======================
-
-.. automodule:: yams.schema2sql
- :members:
-
-:mod:`yams._exceptions`
-=======================
-
-.. automodule:: yams._exceptions
- :members:
-
-:mod:`yams.sqlreader`
-=====================
-
-.. automodule:: yams.sqlreader
- :members:
-
-:mod:`yams.schema2dot`
-======================
-
-.. automodule:: yams.schema2dot
- :members:
-
-:mod:`yams`
-===========
-
-.. automodule:: yams
- :members:
-
-:mod:`yams.setup`
-=================
-
-.. automodule:: yams.setup
- :members:
-
-:mod:`yams.interfaces`
-======================
-
-.. automodule:: yams.interfaces
- :members:
-
-:mod:`yams.buildobjs`
-=====================
-
-.. automodule:: yams.buildobjs
- :members:
-
-:mod:`yams.constraints`
-=======================
-
-.. automodule:: yams.constraints
- :members:
--- a/doc/book/en/D060-mercurial.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-.. -*- coding: utf-8 -*-
-
-.. _MercurialPresentation:
-
-Introducing Mercurial
-=====================
-
-Introduction
-````````````
-Mercurial_ manages a distributed repository containing revisions
-trees (each revision indicates the changes required to obtain the
-next, and so on). Locally, we have a repository containing revisions
-tree, and a working directory. It is possible
-to put in its working directory, one of the versions of its local repository,
-modify and then push it in its repository.
-It is also possible to get revisions from another repository or to export
-its own revisions from the local repository to another repository.
-
-.. _Mercurial: http://www.selenic.com/mercurial/
-
-In contrast to CVS/Subversion, we usually create a repository by
-project to manage.
-
-In a collaborative development, we usually create a central repository
-accessible to all developers of the project. These central repository is used
-as a reference. According to its needs, then everyone can have a local repository,
-that you will have to synchronize with the central repository from time to time.
-
-
-Major commands
-``````````````
-* Create a local repository::
-
- hg clone ssh://myhost//home/src/repo
-
-* See the contents of the local repository (graphical tool in Tk)::
-
- hgview
-
-* Add a sub-directory or file in the current directory::
-
- hg add subdir
-
-* Move to the working directory a specific revision (or last
- revision) from the local repository::
-
- hg update [identifier-revision]
- hg up [identifier-revision]
-
-* Get in its local repository, the tree of revisions contained in a
- remote repository (this does not change the local directory)::
-
- hg pull ssh://myhost//home/src/repo
- hg pull -u ssh://myhost//home/src/repo # equivalent to pull + update
-
-* See what are the heads of branches of the local repository if a `pull`
- returned a new branch::
-
- hg heads
-
-* Submit the working directory in the local repository (and create a new
- revision)::
-
- hg commit
- hg ci
-
-* Merge with the mother revision of local directory, another revision from
- the local respository (the new revision will be then two mothers
- revisions)::
-
- hg merge identifier-revision
-
-* Export to a remote repository, the tree of revisions in its content
- local respository (this does not change the local directory)::
-
- hg push ssh://myhost//home/src/repo
-
-* See what local revisions are not in another repository::
-
- hg outgoing ssh://myhost//home/src/repo
-
-* See what are the revisions of a repository not found locally::
-
- hg incoming ssh://myhost//home/src/repo
-
-* See what is the revision of the local repository which has been taken out
- from the working directory and amended::
-
- hg parent
-
-* See the differences between the working directory and the mother revision
- of the local repository, possibly to submit them in the local repository::
-
- hg diff
- hg commit-tool
- hg ct
-
-
-Best Practices
-``````````````
-* Remember to `hg pull -u` regularly, and particularly before
- a `hg commit`.
-
-* Remember to `hg push` when your repository contains a version
- relatively stable of your changes.
-
-* If a `hg pull -u` created a new branch head:
-
- 1. find its identifier with `hg head`
- 2. merge with `hg merge`
- 3. `hg ci`
- 4. `hg push`
-
-Installation of the forest extension
-````````````````````````````````````
-
-Set up the forest extension by getting a copy of the sources
-from http://hg.akoha.org/hgforest/ and adding the following
-lines to your ``~/.hgrc``: ::
-
- [extensions]
- hgext.forest=
- # or, if forest.py is not in the hgext dir:
- # forest=/path/to/forest.py
-
-
-More information
-````````````````
-
-For more information about Mercurial, please refer to the Mercurial project online documentation_.
-
-.. _documentation: http://www.selenic.com/mercurial/wiki/
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/book/en/D060-modules-stdlib.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -0,0 +1,158 @@
+.. -*- coding: utf-8 -*-
+
+================
+Standard library
+================
+
+:mod:`cubes.addressbook`
+========================
+
+.. automodule:: cubes.addressbook
+ :members:
+
+:mod:`cubes.basket`
+========================
+
+.. automodule:: cubes.basket
+ :members:
+
+:mod:`cubes.blog`
+========================
+
+.. automodule:: cubes.blog
+ :members:
+
+:mod:`cubes.book`
+========================
+
+.. automodule:: cubes.book
+ :members:
+
+:mod:`cubes.comment`
+========================
+
+.. automodule:: cubes.comment
+ :members:
+
+:mod:`cubes.company`
+========================
+
+.. automodule:: cubes.company
+ :members:
+
+
+:mod:`cubes.conference`
+========================
+
+.. automodule:: cubes.conference
+ :members:
+
+:mod:`cubes.email`
+========================
+
+.. automodule:: cubes.email
+ :members:
+
+:mod:`cubes.event`
+========================
+
+.. automodule:: cubes.event
+ :members:
+
+:mod:`cubes.expense`
+========================
+
+.. automodule:: cubes.expense
+ :members:
+
+
+:mod:`cubes.file`
+========================
+
+.. automodule:: cubes.file
+ :members:
+
+:mod:`cubes.folder`
+========================
+
+.. automodule:: cubes.folder
+ :members:
+
+:mod:`cubes.i18ncontent`
+========================
+
+.. automodule:: cubes.i18ncontent
+ :members:
+
+:mod:`cubes.invoice`
+========================
+
+.. automodule:: cubes.invoice
+ :members:
+
+:mod:`cubes.keyword`
+========================
+
+.. automodule:: cubes.keyword
+ :members:
+
+:mod:`cubes.link`
+========================
+
+.. automodule:: cubes.link
+ :members:
+
+:mod:`cubes.mailinglist`
+========================
+
+.. automodule:: cubes.mailinglist
+ :members:
+
+:mod:`cubes.person`
+========================
+
+.. automodule:: cubes.person
+ :members:
+
+:mod:`cubes.shopcart`
+========================
+
+.. automodule:: cubes.shopcart
+ :members:
+
+:mod:`cubes.skillmat`
+========================
+
+.. automodule:: cubes.skillmat
+ :members:
+
+:mod:`cubes.tag`
+========================
+
+.. automodule:: cubes.tag
+ :members:
+
+:mod:`cubes.task`
+========================
+
+.. automodule:: cubes.task
+ :members:
+
+:mod:`cubes.workcase`
+========================
+
+.. automodule:: cubes.workcase
+ :members:
+
+:mod:`cubes.workorder`
+========================
+
+.. automodule:: cubes.workorder
+ :members:
+
+:mod:`cubes.zone`
+========================
+
+.. automodule:: cubes.zone
+ :members:
+
--- a/doc/book/en/D070-cookbook.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-.. -*- coding: utf-8 -*-
-
-Cook book
-=========
-
-We gathered together some of our tricks and scripts that could make
-life easier.
-
-
-* How to import LDAP users in `CubicWeb`?
-
- Here is a very usefull script which enables you to import LDAP users
- into your `CubicWeb` application by running the following: ::
-
-
- import os
- import pwd
- import sys
-
- from logilab.common.db import get_connection
-
- def getlogin():
- """avoid usinng os.getlogin() because of strange tty / stdin problems
- (man 3 getlogin)
- Another solution would be to use $LOGNAME, $USER or $USERNAME
- """
- return pwd.getpwuid(os.getuid())[0]
-
-
- try:
- database = sys.argv[1]
- except IndexError:
- print 'USAGE: python ldap2system.py <database>'
- sys.exit(1)
-
- if raw_input('update %s db ? [y/n]: ' % database).strip().lower().startswith('y'):
- cnx = get_connection(user=getlogin(), database=database)
- cursor = cnx.cursor()
-
- insert = ('INSERT INTO euser (creation_date, eid, modification_date, login, firstname, surname, last_login_time, upassword) '
- "VALUES (%(mtime)s, %(eid)s, %(mtime)s, %(login)s, %(firstname)s, %(surname)s, %(mtime)s, './fqEz5LeZnT6');")
- update = "UPDATE entities SET source='system' WHERE eid=%(eid)s;"
- cursor.execute("SELECT eid,type,source,extid,mtime FROM entities WHERE source!='system'")
- for eid, type, source, extid, mtime in cursor.fetchall():
- if type != 'EUser':
- print "don't know what to do with entity type", type
- continue
- if source != 'ldapuser':
- print "don't know what to do with source type", source
- continue
- ldapinfos = dict(x.strip().split('=') for x in extid.split(','))
- login = ldapinfos['uid']
- firstname = ldapinfos['uid'][0].upper()
- surname = ldapinfos['uid'][1:].capitalize()
- if login != 'jcuissinat':
- args = dict(eid=eid, type=type, source=source, login=login,
- firstname=firstname, surname=surname, mtime=mtime)
- print args
- cursor.execute(insert, args)
- cursor.execute(update, args)
-
- cnx.commit()
- cnx.close()
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/book/en/D070-modules-cbw-api.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -0,0 +1,1961 @@
+.. -*- coding: utf-8 -*-
+
+============
+CubicWeb API
+============
+
+:mod:`cubicweb.hercule`
+=======================
+
+.. automodule:: cubicweb.hercule
+ :members:
+
+:mod:`cubicweb.cwctl`
+=====================
+
+.. automodule:: cubicweb.cwctl
+ :members:
+
+:mod:`cubicweb.schema`
+======================
+
+.. automodule:: cubicweb.schema
+ :members:
+
+:mod:`cubicweb.cwconfig`
+========================
+
+.. automodule:: cubicweb.cwconfig
+ :members:
+
+:mod:`cubicweb.schemaviewer`
+============================
+
+.. automodule:: cubicweb.schemaviewer
+ :members:
+
+:mod:`cubicweb._exceptions`
+===========================
+
+.. automodule:: cubicweb._exceptions
+ :members:
+
+:mod:`cubicweb.dbapi`
+=====================
+
+.. automodule:: cubicweb.dbapi
+ :members:
+
+:mod:`cubicweb.toolsutils`
+==========================
+
+.. automodule:: cubicweb.toolsutils
+ :members:
+
+:mod:`cubicweb.cwvreg`
+======================
+
+.. automodule:: cubicweb.cwvreg
+ :members:
+
+:mod:`cubicweb.md5crypt`
+========================
+
+.. automodule:: cubicweb.md5crypt
+ :members:
+
+:mod:`cubicweb.rset`
+====================
+
+.. automodule:: cubicweb.rset
+ :members:
+
+:mod:`cubicweb`
+===============
+
+.. automodule:: cubicweb
+ :members:
+
+:mod:`cubicweb.setup`
+=====================
+
+.. automodule:: cubicweb.setup
+ :members:
+
+:mod:`cubicweb.gettext`
+=======================
+
+.. automodule:: cubicweb.gettext
+ :members:
+
+:mod:`cubicweb.interfaces`
+==========================
+
+.. automodule:: cubicweb.interfaces
+ :members:
+
+:mod:`cubicweb.vregistry`
+=========================
+
+.. automodule:: cubicweb.vregistry
+ :members:
+
+:mod:`cubicweb.web.httpcache`
+=============================
+
+.. automodule:: cubicweb.web.httpcache
+ :members:
+
+:mod:`cubicweb.web.webconfig`
+=============================
+
+.. automodule:: cubicweb.web.webconfig
+ :members:
+
+:mod:`cubicweb.web.request`
+===========================
+
+.. automodule:: cubicweb.web.request
+ :members:
+
+:mod:`cubicweb.web._exceptions`
+===============================
+
+.. automodule:: cubicweb.web._exceptions
+ :members:
+
+:mod:`cubicweb.web.webctl`
+==========================
+
+.. automodule:: cubicweb.web.webctl
+ :members:
+
+:mod:`cubicweb.web.application`
+===============================
+
+.. automodule:: cubicweb.web.application
+ :members:
+
+:mod:`cubicweb.web.controller`
+==============================
+
+.. automodule:: cubicweb.web.controller
+ :members:
+
+:mod:`cubicweb.web.widgets`
+===========================
+
+.. automodule:: cubicweb.web.widgets
+ :members:
+
+:mod:`cubicweb.web.htmlwidgets`
+===============================
+
+.. automodule:: cubicweb.web.htmlwidgets
+ :members:
+
+:mod:`cubicweb.web`
+===================
+
+.. automodule:: cubicweb.web
+ :members:
+
+:mod:`cubicweb.web.form`
+========================
+
+.. automodule:: cubicweb.web.form
+ :members:
+
+:mod:`cubicweb.web.box`
+=======================
+
+.. automodule:: cubicweb.web.box
+ :members:
+
+:mod:`cubicweb.web.component`
+=============================
+
+.. automodule:: cubicweb.web.component
+ :members:
+
+:mod:`cubicweb.web.action`
+==========================
+
+.. automodule:: cubicweb.web.action
+ :members:
+
+:mod:`cubicweb.web.facet`
+=========================
+
+.. automodule:: cubicweb.web.facet
+ :members:
+
+:mod:`cubicweb.web.views.plots`
+===============================
+
+.. automodule:: cubicweb.web.views.plots
+ :members:
+
+:mod:`cubicweb.web.views.error`
+===============================
+
+.. automodule:: cubicweb.web.views.error
+ :members:
+
+:mod:`cubicweb.web.views.magicsearch`
+=====================================
+
+.. automodule:: cubicweb.web.views.magicsearch
+ :members:
+
+:mod:`cubicweb.web.views.basetemplates`
+=======================================
+
+.. automodule:: cubicweb.web.views.basetemplates
+ :members:
+
+:mod:`cubicweb.web.views.idownloadable`
+=======================================
+
+.. automodule:: cubicweb.web.views.idownloadable
+ :members:
+
+:mod:`cubicweb.web.views.ajaxedit`
+==================================
+
+.. automodule:: cubicweb.web.views.ajaxedit
+ :members:
+
+:mod:`cubicweb.web.views.wfentities`
+====================================
+
+.. automodule:: cubicweb.web.views.wfentities
+ :members:
+
+:mod:`cubicweb.web.views.navigation`
+====================================
+
+.. automodule:: cubicweb.web.views.navigation
+ :members:
+
+:mod:`cubicweb.web.views.schemaentities`
+========================================
+
+.. automodule:: cubicweb.web.views.schemaentities
+ :members:
+
+:mod:`cubicweb.web.views.treeview`
+==================================
+
+.. automodule:: cubicweb.web.views.treeview
+ :members:
+
+:mod:`cubicweb.web.views.startup`
+=================================
+
+.. automodule:: cubicweb.web.views.startup
+ :members:
+
+:mod:`cubicweb.web.views.iprogress`
+===================================
+
+.. automodule:: cubicweb.web.views.iprogress
+ :members:
+
+:mod:`cubicweb.web.views.euser`
+===============================
+
+.. automodule:: cubicweb.web.views.euser
+ :members:
+
+:mod:`cubicweb.web.views.facets`
+================================
+
+.. automodule:: cubicweb.web.views.facets
+ :members:
+
+:mod:`cubicweb.web.views.emailaddress`
+======================================
+
+.. automodule:: cubicweb.web.views.emailaddress
+ :members:
+
+:mod:`cubicweb.web.views.sessions`
+==================================
+
+.. automodule:: cubicweb.web.views.sessions
+ :members:
+
+:mod:`cubicweb.web.views.timetable`
+===================================
+
+.. automodule:: cubicweb.web.views.timetable
+ :members:
+
+:mod:`cubicweb.web.views.timeline`
+==================================
+
+.. automodule:: cubicweb.web.views.timeline
+ :members:
+
+:mod:`cubicweb.web.views.baseviews`
+===================================
+
+.. automodule:: cubicweb.web.views.baseviews
+ :members:
+
+:mod:`cubicweb.web.views.boxes`
+===============================
+
+.. automodule:: cubicweb.web.views.boxes
+ :members:
+
+:mod:`cubicweb.web.views.old_calendar`
+======================================
+
+.. automodule:: cubicweb.web.views.old_calendar
+ :members:
+
+:mod:`cubicweb.web.views.card`
+==============================
+
+.. automodule:: cubicweb.web.views.card
+ :members:
+
+:mod:`cubicweb.web.views.ibreadcrumbs`
+======================================
+
+.. automodule:: cubicweb.web.views.ibreadcrumbs
+ :members:
+
+:mod:`cubicweb.web.views.basecontrollers`
+=========================================
+
+.. automodule:: cubicweb.web.views.basecontrollers
+ :members:
+
+:mod:`cubicweb.web.views.embedding`
+===================================
+
+.. automodule:: cubicweb.web.views.embedding
+ :members:
+
+:mod:`cubicweb.web.views.actions`
+=================================
+
+.. automodule:: cubicweb.web.views.actions
+ :members:
+
+:mod:`cubicweb.web.views.editcontroller`
+========================================
+
+.. automodule:: cubicweb.web.views.editcontroller
+ :members:
+
+:mod:`cubicweb.web.views.debug`
+===============================
+
+.. automodule:: cubicweb.web.views.debug
+ :members:
+
+:mod:`cubicweb.web.views.urlpublishing`
+=======================================
+
+.. automodule:: cubicweb.web.views.urlpublishing
+ :members:
+
+:mod:`cubicweb.web.views.baseforms`
+===================================
+
+.. automodule:: cubicweb.web.views.baseforms
+ :members:
+
+:mod:`cubicweb.web.views.urlrewrite`
+====================================
+
+.. automodule:: cubicweb.web.views.urlrewrite
+ :members:
+
+:mod:`cubicweb.web.views.massmailing`
+=====================================
+
+.. automodule:: cubicweb.web.views.massmailing
+ :members:
+
+:mod:`cubicweb.web.views`
+=========================
+
+.. automodule:: cubicweb.web.views
+ :members:
+
+:mod:`cubicweb.web.views.eproperties`
+=====================================
+
+.. automodule:: cubicweb.web.views.eproperties
+ :members:
+
+:mod:`cubicweb.web.views.tabs`
+==============================
+
+.. automodule:: cubicweb.web.views.tabs
+ :members:
+
+:mod:`cubicweb.web.views.vcard`
+===============================
+
+.. automodule:: cubicweb.web.views.vcard
+ :members:
+
+:mod:`cubicweb.web.views.wdoc`
+==============================
+
+.. automodule:: cubicweb.web.views.wdoc
+ :members:
+
+:mod:`cubicweb.web.views.authentication`
+========================================
+
+.. automodule:: cubicweb.web.views.authentication
+ :members:
+
+:mod:`cubicweb.web.views.tableview`
+===================================
+
+.. automodule:: cubicweb.web.views.tableview
+ :members:
+
+:mod:`cubicweb.web.views.management`
+====================================
+
+.. automodule:: cubicweb.web.views.management
+ :members:
+
+:mod:`cubicweb.web.views.igeocodable`
+=====================================
+
+.. automodule:: cubicweb.web.views.igeocodable
+ :members:
+
+:mod:`cubicweb.web.views.xbel`
+==============================
+
+.. automodule:: cubicweb.web.views.xbel
+ :members:
+
+:mod:`cubicweb.web.views.bookmark`
+==================================
+
+.. automodule:: cubicweb.web.views.bookmark
+ :members:
+
+:mod:`cubicweb.web.views.apacherewrite`
+=======================================
+
+.. automodule:: cubicweb.web.views.apacherewrite
+ :members:
+
+:mod:`cubicweb.web.views.dynimages`
+===================================
+
+.. automodule:: cubicweb.web.views.dynimages
+ :members:
+
+:mod:`cubicweb.web.views.searchrestriction`
+===========================================
+
+.. automodule:: cubicweb.web.views.searchrestriction
+ :members:
+
+:mod:`cubicweb.web.views.basecomponents`
+========================================
+
+.. automodule:: cubicweb.web.views.basecomponents
+ :members:
+
+:mod:`cubicweb.web.views.calendar`
+==================================
+
+.. automodule:: cubicweb.web.views.calendar
+ :members:
+
+:mod:`cubicweb.sobjects.supervising`
+====================================
+
+.. automodule:: cubicweb.sobjects.supervising
+ :members:
+
+:mod:`cubicweb.sobjects.hooks`
+==============================
+
+.. automodule:: cubicweb.sobjects.hooks
+ :members:
+
+:mod:`cubicweb.sobjects.email`
+==============================
+
+.. automodule:: cubicweb.sobjects.email
+ :members:
+
+:mod:`cubicweb.sobjects`
+========================
+
+.. automodule:: cubicweb.sobjects
+ :members:
+
+:mod:`cubicweb.sobjects.notification`
+=====================================
+
+.. automodule:: cubicweb.sobjects.notification
+ :members:
+
+:mod:`cubicweb.wsgi.request`
+============================
+
+.. automodule:: cubicweb.wsgi.request
+ :members:
+
+:mod:`cubicweb.wsgi`
+====================
+
+.. automodule:: cubicweb.wsgi
+ :members:
+
+:mod:`cubicweb.wsgi.handler`
+============================
+
+.. automodule:: cubicweb.wsgi.handler
+ :members:
+
+:mod:`cubicweb.etwist.server`
+=============================
+
+.. automodule:: cubicweb.etwist.server
+ :members:
+
+:mod:`cubicweb.etwist.request`
+==============================
+
+.. automodule:: cubicweb.etwist.request
+ :members:
+
+:mod:`cubicweb.etwist.twconfig`
+===============================
+
+.. automodule:: cubicweb.etwist.twconfig
+ :members:
+
+:mod:`cubicweb.etwist`
+======================
+
+.. automodule:: cubicweb.etwist
+ :members:
+
+:mod:`cubicweb.etwist.twctl`
+============================
+
+.. automodule:: cubicweb.etwist.twctl
+ :members:
+
+:mod:`cubicweb.goa.goaconfig`
+=============================
+
+.. automodule:: cubicweb.goa.goaconfig
+ :members:
+
+:mod:`cubicweb.goa.rqlinterpreter`
+==================================
+
+.. automodule:: cubicweb.goa.rqlinterpreter
+ :members:
+
+:mod:`cubicweb.goa.dbmyams`
+===========================
+
+.. automodule:: cubicweb.goa.dbmyams
+ :members:
+
+:mod:`cubicweb.goa.db`
+======================
+
+.. automodule:: cubicweb.goa.db
+ :members:
+
+:mod:`cubicweb.goa.goactl`
+==========================
+
+.. automodule:: cubicweb.goa.goactl
+ :members:
+
+:mod:`cubicweb.goa.goavreg`
+===========================
+
+.. automodule:: cubicweb.goa.goavreg
+ :members:
+
+:mod:`cubicweb.goa`
+===================
+
+.. automodule:: cubicweb.goa
+ :members:
+
+:mod:`cubicweb.goa.gaesource`
+=============================
+
+.. automodule:: cubicweb.goa.gaesource
+ :members:
+
+:mod:`cubicweb.goa.dbinit`
+==========================
+
+.. automodule:: cubicweb.goa.dbinit
+ :members:
+
+:mod:`cubicweb.goa.testlib`
+===========================
+
+.. automodule:: cubicweb.goa.testlib
+ :members:
+
+:mod:`cubicweb.goa.appobjects.dbmgmt`
+=====================================
+
+.. automodule:: cubicweb.goa.appobjects.dbmgmt
+ :members:
+
+:mod:`cubicweb.goa.appobjects.gauthservice`
+===========================================
+
+.. automodule:: cubicweb.goa.appobjects.gauthservice
+ :members:
+
+:mod:`cubicweb.goa.appobjects.sessions`
+=======================================
+
+.. automodule:: cubicweb.goa.appobjects.sessions
+ :members:
+
+:mod:`cubicweb.goa.appobjects`
+==============================
+
+.. automodule:: cubicweb.goa.appobjects
+ :members:
+
+:mod:`cubicweb.goa.appobjects.components`
+=========================================
+
+.. automodule:: cubicweb.goa.appobjects.components
+ :members:
+
+:mod:`cubicweb.goa.tools.laxctl`
+================================
+
+.. automodule:: cubicweb.goa.tools.laxctl
+ :members:
+
+:mod:`cubicweb.goa.tools.generate_schema_img`
+=============================================
+
+.. automodule:: cubicweb.goa.tools.generate_schema_img
+ :members:
+
+:mod:`cubicweb.goa.tools`
+=========================
+
+.. automodule:: cubicweb.goa.tools
+ :members:
+
+:mod:`cubicweb.goa.tools.i18n`
+==============================
+
+.. automodule:: cubicweb.goa.tools.i18n
+ :members:
+
+:mod:`cubicweb.goa.overrides.mttransforms`
+==========================================
+
+.. automodule:: cubicweb.goa.overrides.mttransforms
+ :members:
+
+:mod:`cubicweb.goa.overrides.rqlannotation`
+===========================================
+
+.. automodule:: cubicweb.goa.overrides.rqlannotation
+ :members:
+
+:mod:`cubicweb.goa.overrides.toolsutils`
+========================================
+
+.. automodule:: cubicweb.goa.overrides.toolsutils
+ :members:
+
+:mod:`cubicweb.goa.overrides`
+=============================
+
+.. automodule:: cubicweb.goa.overrides
+ :members:
+
+:mod:`cubicweb.goa.overrides.server__init__`
+============================================
+
+.. automodule:: cubicweb.goa.overrides.server__init__
+ :members:
+
+:mod:`cubicweb.goa.overrides.server_utils`
+==========================================
+
+.. automodule:: cubicweb.goa.overrides.server_utils
+ :members:
+
+:mod:`cubicweb.common.mttransforms`
+===================================
+
+.. automodule:: cubicweb.common.mttransforms
+ :members:
+
+:mod:`cubicweb.common.utils`
+============================
+
+.. automodule:: cubicweb.common.utils
+ :members:
+
+:mod:`cubicweb.common.schema`
+=============================
+
+.. automodule:: cubicweb.common.schema
+ :members:
+
+:mod:`cubicweb.common.tal`
+==========================
+
+.. automodule:: cubicweb.common.tal
+ :members:
+
+:mod:`cubicweb.common.appobject`
+================================
+
+.. automodule:: cubicweb.common.appobject
+ :members:
+
+:mod:`cubicweb.common.migration`
+================================
+
+.. automodule:: cubicweb.common.migration
+ :members:
+
+:mod:`cubicweb.common.rest`
+===========================
+
+.. automodule:: cubicweb.common.rest
+ :members:
+
+:mod:`cubicweb.common.html4zope`
+================================
+
+.. automodule:: cubicweb.common.html4zope
+ :members:
+
+:mod:`cubicweb.common.view`
+===========================
+
+.. automodule:: cubicweb.common.view
+ :members:
+
+:mod:`cubicweb.common.selectors`
+================================
+
+.. automodule:: cubicweb.common.selectors
+ :members:
+
+:mod:`cubicweb.common.entity`
+=============================
+
+.. automodule:: cubicweb.common.entity
+ :members:
+
+:mod:`cubicweb.common.mail`
+===========================
+
+.. automodule:: cubicweb.common.mail
+ :members:
+
+:mod:`cubicweb.common.mixins`
+=============================
+
+.. automodule:: cubicweb.common.mixins
+ :members:
+
+:mod:`cubicweb.common`
+======================
+
+.. automodule:: cubicweb.common
+ :members:
+
+:mod:`cubicweb.common.uilib`
+============================
+
+.. automodule:: cubicweb.common.uilib
+ :members:
+
+:mod:`cubicweb.common.registerers`
+==================================
+
+.. automodule:: cubicweb.common.registerers
+ :members:
+
+:mod:`cubicweb.common.i18n`
+===========================
+
+.. automodule:: cubicweb.common.i18n
+ :members:
+
+:mod:`cubicweb.entities.schemaobjs`
+===================================
+
+.. automodule:: cubicweb.entities.schemaobjs
+ :members:
+
+:mod:`cubicweb.entities.wfobjs`
+===============================
+
+.. automodule:: cubicweb.entities.wfobjs
+ :members:
+
+:mod:`cubicweb.entities`
+========================
+
+.. automodule:: cubicweb.entities
+ :members:
+
+:mod:`cubicweb.entities.authobjs`
+=================================
+
+.. automodule:: cubicweb.entities.authobjs
+ :members:
+
+:mod:`cubicweb.entities.lib`
+============================
+
+.. automodule:: cubicweb.entities.lib
+ :members:
+
+:mod:`cubicweb.server.server`
+=============================
+
+.. automodule:: cubicweb.server.server
+ :members:
+
+:mod:`cubicweb.server.utils`
+============================
+
+.. automodule:: cubicweb.server.utils
+ :members:
+
+:mod:`cubicweb.server.checkintegrity`
+=====================================
+
+.. automodule:: cubicweb.server.checkintegrity
+ :members:
+
+:mod:`cubicweb.server.rqlrewrite`
+=================================
+
+.. automodule:: cubicweb.server.rqlrewrite
+ :members:
+
+:mod:`cubicweb.server.rqlannotation`
+====================================
+
+.. automodule:: cubicweb.server.rqlannotation
+ :members:
+
+:mod:`cubicweb.server.hooks`
+============================
+
+.. automodule:: cubicweb.server.hooks
+ :members:
+
+:mod:`cubicweb.server.hooksmanager`
+===================================
+
+.. automodule:: cubicweb.server.hooksmanager
+ :members:
+
+:mod:`cubicweb.server.securityhooks`
+====================================
+
+.. automodule:: cubicweb.server.securityhooks
+ :members:
+
+:mod:`cubicweb.server.schemahooks`
+==================================
+
+.. automodule:: cubicweb.server.schemahooks
+ :members:
+
+:mod:`cubicweb.server.session`
+==============================
+
+.. automodule:: cubicweb.server.session
+ :members:
+
+:mod:`cubicweb.server.serverctl`
+================================
+
+.. automodule:: cubicweb.server.serverctl
+ :members:
+
+:mod:`cubicweb.server.serverconfig`
+===================================
+
+.. automodule:: cubicweb.server.serverconfig
+ :members:
+
+:mod:`cubicweb.server.pool`
+===========================
+
+.. automodule:: cubicweb.server.pool
+ :members:
+
+:mod:`cubicweb.server.mssteps`
+==============================
+
+.. automodule:: cubicweb.server.mssteps
+ :members:
+
+:mod:`cubicweb.server.hookhelper`
+=================================
+
+.. automodule:: cubicweb.server.hookhelper
+ :members:
+
+:mod:`cubicweb.server`
+======================
+
+.. automodule:: cubicweb.server
+ :members:
+
+:mod:`cubicweb.server.sqlutils`
+===============================
+
+.. automodule:: cubicweb.server.sqlutils
+ :members:
+
+:mod:`cubicweb.server.schemaserial`
+===================================
+
+.. automodule:: cubicweb.server.schemaserial
+ :members:
+
+:mod:`cubicweb.server.repository`
+=================================
+
+.. automodule:: cubicweb.server.repository
+ :members:
+
+:mod:`cubicweb.server.ssplanner`
+================================
+
+.. automodule:: cubicweb.server.ssplanner
+ :members:
+
+:mod:`cubicweb.server.msplanner`
+================================
+
+.. automodule:: cubicweb.server.msplanner
+ :members:
+
+:mod:`cubicweb.server.querier`
+==============================
+
+.. automodule:: cubicweb.server.querier
+ :members:
+
+:mod:`cubicweb.server.migractions`
+==================================
+
+.. automodule:: cubicweb.server.migractions
+ :members:
+
+:mod:`cubicweb.server.sources.rql2sql`
+======================================
+
+.. automodule:: cubicweb.server.sources.rql2sql
+ :members:
+
+:mod:`cubicweb.server.sources.ldapuser`
+=======================================
+
+.. automodule:: cubicweb.server.sources.ldapuser
+ :members:
+
+:mod:`cubicweb.server.sources`
+==============================
+
+.. automodule:: cubicweb.server.sources
+ :members:
+
+:mod:`cubicweb.server.sources.pyrorql`
+======================================
+
+.. automodule:: cubicweb.server.sources.pyrorql
+ :members:
+
+:mod:`cubicweb.server.sources.native`
+=====================================
+
+.. automodule:: cubicweb.server.sources.native
+ :members:
+
+:mod:`cubicweb.server.sources.extlite`
+======================================
+
+.. automodule:: cubicweb.server.sources.extlite
+ :members:
+
+:mod:`cubicweb.devtools.devctl`
+===============================
+
+.. automodule:: cubicweb.devtools.devctl
+ :members:
+
+:mod:`cubicweb.devtools.pkginfo`
+================================
+
+.. automodule:: cubicweb.devtools.pkginfo
+ :members:
+
+:mod:`cubicweb.devtools.migrtest`
+=================================
+
+.. automodule:: cubicweb.devtools.migrtest
+ :members:
+
+:mod:`cubicweb.devtools.htmlparser`
+===================================
+
+.. automodule:: cubicweb.devtools.htmlparser
+ :members:
+
+:mod:`cubicweb.devtools`
+========================
+
+.. automodule:: cubicweb.devtools
+ :members:
+
+:mod:`cubicweb.devtools.fill`
+=============================
+
+.. automodule:: cubicweb.devtools.fill
+ :members:
+
+:mod:`cubicweb.devtools._apptest`
+=================================
+
+.. automodule:: cubicweb.devtools._apptest
+ :members:
+
+:mod:`cubicweb.devtools.stresstester`
+=====================================
+
+.. automodule:: cubicweb.devtools.stresstester
+ :members:
+
+:mod:`cubicweb.devtools.fake`
+=============================
+
+.. automodule:: cubicweb.devtools.fake
+ :members:
+
+:mod:`cubicweb.devtools.apptest`
+================================
+
+.. automodule:: cubicweb.devtools.apptest
+ :members:
+
+:mod:`cubicweb.devtools.livetest`
+=================================
+
+.. automodule:: cubicweb.devtools.livetest
+ :members:
+
+:mod:`cubicweb.devtools.testlib`
+================================
+
+.. automodule:: cubicweb.devtools.testlib
+ :members:
+
+:mod:`cubicweb.devtools.repotest`
+=================================
+
+.. automodule:: cubicweb.devtools.repotest
+ :members:
+
+:mod:`cubicweb.devtools.cwtwill`
+================================
+
+.. automodule:: cubicweb.devtools.cwtwill
+ :members:
+
+:mod:`cubicweb.misc.cwdesklets.rqlsensor`
+=========================================
+
+.. automodule:: cubicweb.misc.cwdesklets.rqlsensor
+ :members:
+
+:mod:`cubicweb.embedded.mx`
+===========================
+
+.. automodule:: cubicweb.embedded.mx
+ :members:
+
+:mod:`cubicweb.embedded.mx.DateTime.mxDateTime_python`
+======================================================
+
+.. automodule:: cubicweb.embedded.mx.DateTime.mxDateTime_python
+ :members:
+
+:mod:`cubicweb.embedded.mx.DateTime.ARPA`
+=========================================
+
+.. automodule:: cubicweb.embedded.mx.DateTime.ARPA
+ :members:
+
+:mod:`cubicweb.embedded.mx.DateTime.ISO`
+========================================
+
+.. automodule:: cubicweb.embedded.mx.DateTime.ISO
+ :members:
+
+:mod:`cubicweb.embedded.mx.DateTime.Parser`
+===========================================
+
+.. automodule:: cubicweb.embedded.mx.DateTime.Parser
+ :members:
+
+:mod:`cubicweb.embedded.mx.DateTime`
+====================================
+
+.. automodule:: cubicweb.embedded.mx.DateTime
+ :members:
+
+:mod:`cubicweb.embedded.mx.DateTime.Timezone`
+=============================================
+
+.. automodule:: cubicweb.embedded.mx.DateTime.Timezone
+ :members:
+
+:mod:`cubicweb.embedded.mx.DateTime.DateTime`
+=============================================
+
+.. automodule:: cubicweb.embedded.mx.DateTime.DateTime
+ :members:
+
+:mod:`indexer`
+==============
+
+.. automodule:: indexer
+ :members:
+
+:mod:`indexer.indexable_objects`
+================================
+
+.. automodule:: indexer.indexable_objects
+ :members:
+
+:mod:`indexer.search`
+=====================
+
+.. automodule:: indexer.search
+ :members:
+
+:mod:`indexer.query_objects`
+============================
+
+.. automodule:: indexer.query_objects
+ :members:
+
+:mod:`indexer._exceptions`
+==========================
+
+.. automodule:: indexer._exceptions
+ :members:
+
+:mod:`indexer.setup`
+====================
+
+.. automodule:: indexer.setup
+ :members:
+
+:mod:`indexer.query`
+====================
+
+.. automodule:: indexer.query
+ :members:
+
+:mod:`logilab`
+==============
+
+.. automodule:: logilab
+ :members:
+
+:mod:`logilab.constraint.propagation`
+=====================================
+
+.. automodule:: logilab.constraint.propagation
+ :members:
+
+:mod:`logilab.constraint.psyco_wrapper`
+=======================================
+
+.. automodule:: logilab.constraint.psyco_wrapper
+ :members:
+
+:mod:`logilab.constraint.fd`
+============================
+
+.. automodule:: logilab.constraint.fd
+ :members:
+
+:mod:`logilab.constraint.fi`
+============================
+
+.. automodule:: logilab.constraint.fi
+ :members:
+
+:mod:`logilab.constraint`
+=========================
+
+.. automodule:: logilab.constraint
+ :members:
+
+:mod:`logilab.constraint.setup`
+===============================
+
+.. automodule:: logilab.constraint.setup
+ :members:
+
+:mod:`logilab.constraint.interfaces`
+====================================
+
+.. automodule:: logilab.constraint.interfaces
+ :members:
+
+:mod:`logilab.constraint.distributors`
+======================================
+
+.. automodule:: logilab.constraint.distributors
+ :members:
+
+:mod:`logilab.common.clcommands`
+================================
+
+.. automodule:: logilab.common.clcommands
+ :members:
+
+:mod:`logilab.common.table`
+===========================
+
+.. automodule:: logilab.common.table
+ :members:
+
+:mod:`logilab.common.interface`
+===============================
+
+.. automodule:: logilab.common.interface
+ :members:
+
+:mod:`logilab.common.logger`
+============================
+
+.. automodule:: logilab.common.logger
+ :members:
+
+:mod:`logilab.common.cli`
+=========================
+
+.. automodule:: logilab.common.cli
+ :members:
+
+:mod:`logilab.common.xmlrpcutils`
+=================================
+
+.. automodule:: logilab.common.xmlrpcutils
+ :members:
+
+:mod:`logilab.common.corbautils`
+================================
+
+.. automodule:: logilab.common.corbautils
+ :members:
+
+:mod:`logilab.common.cache`
+===========================
+
+.. automodule:: logilab.common.cache
+ :members:
+
+:mod:`logilab.common.astutils`
+==============================
+
+.. automodule:: logilab.common.astutils
+ :members:
+
+:mod:`logilab.common.daemon`
+============================
+
+.. automodule:: logilab.common.daemon
+ :members:
+
+:mod:`logilab.common.tree`
+==========================
+
+.. automodule:: logilab.common.tree
+ :members:
+
+:mod:`logilab.common.textutils`
+===============================
+
+.. automodule:: logilab.common.textutils
+ :members:
+
+:mod:`logilab.common.modutils`
+==============================
+
+.. automodule:: logilab.common.modutils
+ :members:
+
+:mod:`logilab.common.fileutils`
+===============================
+
+.. automodule:: logilab.common.fileutils
+ :members:
+
+:mod:`logilab.common.patricia`
+==============================
+
+.. automodule:: logilab.common.patricia
+ :members:
+
+:mod:`logilab.common.date`
+==========================
+
+.. automodule:: logilab.common.date
+ :members:
+
+:mod:`logilab.common.optparser`
+===============================
+
+.. automodule:: logilab.common.optparser
+ :members:
+
+:mod:`logilab.common.twisted_distutils`
+=======================================
+
+.. automodule:: logilab.common.twisted_distutils
+ :members:
+
+:mod:`logilab.common.decorators`
+================================
+
+.. automodule:: logilab.common.decorators
+ :members:
+
+:mod:`logilab.common.db`
+========================
+
+.. automodule:: logilab.common.db
+ :members:
+
+:mod:`logilab.common.deprecation`
+=================================
+
+.. automodule:: logilab.common.deprecation
+ :members:
+
+:mod:`logilab.common.tasksqueue`
+================================
+
+.. automodule:: logilab.common.tasksqueue
+ :members:
+
+:mod:`logilab.common.changelog`
+===============================
+
+.. automodule:: logilab.common.changelog
+ :members:
+
+:mod:`logilab.common.shellutils`
+================================
+
+.. automodule:: logilab.common.shellutils
+ :members:
+
+:mod:`logilab.common.sqlgen`
+============================
+
+.. automodule:: logilab.common.sqlgen
+ :members:
+
+:mod:`logilab.common.optik_ext`
+===============================
+
+.. automodule:: logilab.common.optik_ext
+ :members:
+
+:mod:`logilab.common.configuration`
+===================================
+
+.. automodule:: logilab.common.configuration
+ :members:
+
+:mod:`logilab.common.visitor`
+=============================
+
+.. automodule:: logilab.common.visitor
+ :members:
+
+:mod:`logilab.common.pytest`
+============================
+
+.. automodule:: logilab.common.pytest
+ :members:
+
+:mod:`logilab.common`
+=====================
+
+.. automodule:: logilab.common
+ :members:
+
+:mod:`logilab.common.setup`
+===========================
+
+.. automodule:: logilab.common.setup
+ :members:
+
+:mod:`logilab.common.logservice`
+================================
+
+.. automodule:: logilab.common.logservice
+ :members:
+
+:mod:`logilab.common.debugger`
+==============================
+
+.. automodule:: logilab.common.debugger
+ :members:
+
+:mod:`logilab.common.html`
+==========================
+
+.. automodule:: logilab.common.html
+ :members:
+
+:mod:`logilab.common.vcgutils`
+==============================
+
+.. automodule:: logilab.common.vcgutils
+ :members:
+
+:mod:`logilab.common.compat`
+============================
+
+.. automodule:: logilab.common.compat
+ :members:
+
+:mod:`logilab.common.logging_ext`
+=================================
+
+.. automodule:: logilab.common.logging_ext
+ :members:
+
+:mod:`logilab.common.umessage`
+==============================
+
+.. automodule:: logilab.common.umessage
+ :members:
+
+:mod:`logilab.common.proc`
+==========================
+
+.. automodule:: logilab.common.proc
+ :members:
+
+:mod:`logilab.common.monclient`
+===============================
+
+.. automodule:: logilab.common.monclient
+ :members:
+
+:mod:`logilab.common.bind`
+==========================
+
+.. automodule:: logilab.common.bind
+ :members:
+
+:mod:`logilab.common.graph`
+===========================
+
+.. automodule:: logilab.common.graph
+ :members:
+
+:mod:`logilab.common.testlib`
+=============================
+
+.. automodule:: logilab.common.testlib
+ :members:
+
+:mod:`logilab.common.contexts`
+==============================
+
+.. automodule:: logilab.common.contexts
+ :members:
+
+:mod:`logilab.common.adbh`
+==========================
+
+.. automodule:: logilab.common.adbh
+ :members:
+
+:mod:`logilab.common.pdf_ext`
+=============================
+
+.. automodule:: logilab.common.pdf_ext
+ :members:
+
+:mod:`logilab.common.monserver`
+===============================
+
+.. automodule:: logilab.common.monserver
+ :members:
+
+:mod:`logilab.common.ureports.nodes`
+====================================
+
+.. automodule:: logilab.common.ureports.nodes
+ :members:
+
+:mod:`logilab.common.ureports`
+==============================
+
+.. automodule:: logilab.common.ureports
+ :members:
+
+:mod:`logilab.common.ureports.html_writer`
+==========================================
+
+.. automodule:: logilab.common.ureports.html_writer
+ :members:
+
+:mod:`logilab.common.ureports.text_writer`
+==========================================
+
+.. automodule:: logilab.common.ureports.text_writer
+ :members:
+
+:mod:`logilab.common.ureports.docbook_writer`
+=============================================
+
+.. automodule:: logilab.common.ureports.docbook_writer
+ :members:
+
+:mod:`logilab.mtconverter.engine`
+=================================
+
+.. automodule:: logilab.mtconverter.engine
+ :members:
+
+:mod:`logilab.mtconverter.transform`
+====================================
+
+.. automodule:: logilab.mtconverter.transform
+ :members:
+
+:mod:`logilab.mtconverter`
+==========================
+
+.. automodule:: logilab.mtconverter
+ :members:
+
+:mod:`logilab.mtconverter.setup`
+================================
+
+.. automodule:: logilab.mtconverter.setup
+ :members:
+
+:mod:`logilab.mtconverter.transforms.html2text`
+===============================================
+
+.. automodule:: logilab.mtconverter.transforms.html2text
+ :members:
+
+:mod:`logilab.mtconverter.transforms.cmdtransforms`
+===================================================
+
+.. automodule:: logilab.mtconverter.transforms.cmdtransforms
+ :members:
+
+:mod:`logilab.mtconverter.transforms.python`
+============================================
+
+.. automodule:: logilab.mtconverter.transforms.python
+ :members:
+
+:mod:`logilab.mtconverter.transforms.pygmentstransforms`
+========================================================
+
+.. automodule:: logilab.mtconverter.transforms.pygmentstransforms
+ :members:
+
+:mod:`logilab.mtconverter.transforms`
+=====================================
+
+.. automodule:: logilab.mtconverter.transforms
+ :members:
+
+:mod:`logilab.mtconverter.transforms.piltransforms`
+===================================================
+
+.. automodule:: logilab.mtconverter.transforms.piltransforms
+ :members:
+
+:mod:`logilab.devtools.cvstatus`
+================================
+
+.. automodule:: logilab.devtools.cvstatus
+ :members:
+
+:mod:`logilab.devtools.changelog`
+=================================
+
+.. automodule:: logilab.devtools.changelog
+ :members:
+
+:mod:`logilab.devtools`
+=======================
+
+.. automodule:: logilab.devtools
+ :members:
+
+:mod:`logilab.devtools.setup`
+=============================
+
+.. automodule:: logilab.devtools.setup
+ :members:
+
+:mod:`logilab.devtools.cvslog`
+==============================
+
+.. automodule:: logilab.devtools.cvslog
+ :members:
+
+:mod:`logilab.devtools.lgp.utils`
+=================================
+
+.. automodule:: logilab.devtools.lgp.utils
+ :members:
+
+:mod:`logilab.devtools.lgp.tag`
+===============================
+
+.. automodule:: logilab.devtools.lgp.tag
+ :members:
+
+:mod:`logilab.devtools.lgp.setupinfo`
+=====================================
+
+.. automodule:: logilab.devtools.lgp.setupinfo
+ :members:
+
+:mod:`logilab.devtools.lgp.changelog`
+=====================================
+
+.. automodule:: logilab.devtools.lgp.changelog
+ :members:
+
+:mod:`logilab.devtools.lgp.preparedist`
+=======================================
+
+.. automodule:: logilab.devtools.lgp.preparedist
+ :members:
+
+:mod:`logilab.devtools.lgp.build`
+=================================
+
+.. automodule:: logilab.devtools.lgp.build
+ :members:
+
+:mod:`logilab.devtools.lgp.clean`
+=================================
+
+.. automodule:: logilab.devtools.lgp.clean
+ :members:
+
+:mod:`logilab.devtools.lgp`
+===========================
+
+.. automodule:: logilab.devtools.lgp
+ :members:
+
+:mod:`logilab.devtools.lgp.setup`
+=================================
+
+.. automodule:: logilab.devtools.lgp.setup
+ :members:
+
+:mod:`logilab.devtools.lgp.check`
+=================================
+
+.. automodule:: logilab.devtools.lgp.check
+ :members:
+
+:mod:`logilab.devtools.lgp.exceptions`
+======================================
+
+.. automodule:: logilab.devtools.lgp.exceptions
+ :members:
+
+:mod:`logilab.devtools.templates`
+=================================
+
+.. automodule:: logilab.devtools.templates
+ :members:
+
+:mod:`logilab.devtools.templates.setup`
+=======================================
+
+.. automodule:: logilab.devtools.templates.setup
+ :members:
+
+:mod:`logilab.devtools.lib.coverage`
+====================================
+
+.. automodule:: logilab.devtools.lib.coverage
+ :members:
+
+:mod:`logilab.devtools.lib.manifest`
+====================================
+
+.. automodule:: logilab.devtools.lib.manifest
+ :members:
+
+:mod:`logilab.devtools.lib.pkginfo`
+===================================
+
+.. automodule:: logilab.devtools.lib.pkginfo
+ :members:
+
+:mod:`logilab.devtools.lib`
+===========================
+
+.. automodule:: logilab.devtools.lib
+ :members:
+
+:mod:`logilab.devtools.vcslib.cvsparse`
+=======================================
+
+.. automodule:: logilab.devtools.vcslib.cvsparse
+ :members:
+
+:mod:`logilab.devtools.vcslib.svn`
+==================================
+
+.. automodule:: logilab.devtools.vcslib.svn
+ :members:
+
+:mod:`logilab.devtools.vcslib.node`
+===================================
+
+.. automodule:: logilab.devtools.vcslib.node
+ :members:
+
+:mod:`logilab.devtools.vcslib`
+==============================
+
+.. automodule:: logilab.devtools.vcslib
+ :members:
+
+:mod:`logilab.devtools.vcslib.interfaces`
+=========================================
+
+.. automodule:: logilab.devtools.vcslib.interfaces
+ :members:
+
+:mod:`logilab.devtools.vcslib.cvs`
+==================================
+
+.. automodule:: logilab.devtools.vcslib.cvs
+ :members:
+
+:mod:`logilab.devtools.vcslib.hg`
+=================================
+
+.. automodule:: logilab.devtools.vcslib.hg
+ :members:
+
+:mod:`rql.nodes`
+================
+
+.. automodule:: rql.nodes
+ :members:
+
+:mod:`rql.undo`
+===============
+
+.. automodule:: rql.undo
+ :members:
+
+:mod:`rql.utils`
+================
+
+.. automodule:: rql.utils
+ :members:
+
+:mod:`rql.base`
+===============
+
+.. automodule:: rql.base
+ :members:
+
+:mod:`rql.analyze`
+==================
+
+.. automodule:: rql.analyze
+ :members:
+
+:mod:`rql._exceptions`
+======================
+
+.. automodule:: rql._exceptions
+ :members:
+
+:mod:`rql.compare`
+==================
+
+.. automodule:: rql.compare
+ :members:
+
+:mod:`rql.stmts`
+================
+
+.. automodule:: rql.stmts
+ :members:
+
+:mod:`rql.parser_main`
+======================
+
+.. automodule:: rql.parser_main
+ :members:
+
+:mod:`rql.stcheck`
+==================
+
+.. automodule:: rql.stcheck
+ :members:
+
+:mod:`rql.parser`
+=================
+
+.. automodule:: rql.parser
+ :members:
+
+:mod:`rql`
+==========
+
+.. automodule:: rql
+ :members:
+
+:mod:`rql.setup`
+================
+
+.. automodule:: rql.setup
+ :members:
+
+:mod:`rql.interfaces`
+=====================
+
+.. automodule:: rql.interfaces
+ :members:
+
+:mod:`rql.editextensions`
+=========================
+
+.. automodule:: rql.editextensions
+ :members:
+
+:mod:`rql.fol`
+==============
+
+.. automodule:: rql.fol
+ :members:
+
+:mod:`rqlgen`
+=============
+
+.. automodule:: rqlgen
+ :members:
+
+:mod:`yams.schema`
+==================
+
+.. automodule:: yams.schema
+ :members:
+
+:mod:`yams.reader`
+==================
+
+.. automodule:: yams.reader
+ :members:
+
+:mod:`yams.schema2sql`
+======================
+
+.. automodule:: yams.schema2sql
+ :members:
+
+:mod:`yams._exceptions`
+=======================
+
+.. automodule:: yams._exceptions
+ :members:
+
+:mod:`yams.sqlreader`
+=====================
+
+.. automodule:: yams.sqlreader
+ :members:
+
+:mod:`yams.schema2dot`
+======================
+
+.. automodule:: yams.schema2dot
+ :members:
+
+:mod:`yams`
+===========
+
+.. automodule:: yams
+ :members:
+
+:mod:`yams.setup`
+=================
+
+.. automodule:: yams.setup
+ :members:
+
+:mod:`yams.interfaces`
+======================
+
+.. automodule:: yams.interfaces
+ :members:
+
+:mod:`yams.buildobjs`
+=====================
+
+.. automodule:: yams.buildobjs
+ :members:
+
+:mod:`yams.constraints`
+=======================
+
+.. automodule:: yams.constraints
+ :members:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/book/en/D080-mercurial.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -0,0 +1,133 @@
+.. -*- coding: utf-8 -*-
+
+.. _MercurialPresentation:
+
+Introducing Mercurial
+=====================
+
+Introduction
+````````````
+Mercurial_ manages a distributed repository containing revisions
+trees (each revision indicates the changes required to obtain the
+next, and so on). Locally, we have a repository containing revisions
+tree, and a working directory. It is possible
+to put in its working directory, one of the versions of its local repository,
+modify and then push it in its repository.
+It is also possible to get revisions from another repository or to export
+its own revisions from the local repository to another repository.
+
+.. _Mercurial: http://www.selenic.com/mercurial/
+
+In contrast to CVS/Subversion, we usually create a repository by
+project to manage.
+
+In a collaborative development, we usually create a central repository
+accessible to all developers of the project. These central repository is used
+as a reference. According to its needs, then everyone can have a local repository,
+that you will have to synchronize with the central repository from time to time.
+
+
+Major commands
+``````````````
+* Create a local repository::
+
+ hg clone ssh://myhost//home/src/repo
+
+* See the contents of the local repository (graphical tool in Tk)::
+
+ hgview
+
+* Add a sub-directory or file in the current directory::
+
+ hg add subdir
+
+* Move to the working directory a specific revision (or last
+ revision) from the local repository::
+
+ hg update [identifier-revision]
+ hg up [identifier-revision]
+
+* Get in its local repository, the tree of revisions contained in a
+ remote repository (this does not change the local directory)::
+
+ hg pull ssh://myhost//home/src/repo
+ hg pull -u ssh://myhost//home/src/repo # equivalent to pull + update
+
+* See what are the heads of branches of the local repository if a `pull`
+ returned a new branch::
+
+ hg heads
+
+* Submit the working directory in the local repository (and create a new
+ revision)::
+
+ hg commit
+ hg ci
+
+* Merge with the mother revision of local directory, another revision from
+ the local respository (the new revision will be then two mothers
+ revisions)::
+
+ hg merge identifier-revision
+
+* Export to a remote repository, the tree of revisions in its content
+ local respository (this does not change the local directory)::
+
+ hg push ssh://myhost//home/src/repo
+
+* See what local revisions are not in another repository::
+
+ hg outgoing ssh://myhost//home/src/repo
+
+* See what are the revisions of a repository not found locally::
+
+ hg incoming ssh://myhost//home/src/repo
+
+* See what is the revision of the local repository which has been taken out
+ from the working directory and amended::
+
+ hg parent
+
+* See the differences between the working directory and the mother revision
+ of the local repository, possibly to submit them in the local repository::
+
+ hg diff
+ hg commit-tool
+ hg ct
+
+
+Best Practices
+``````````````
+* Remember to `hg pull -u` regularly, and particularly before
+ a `hg commit`.
+
+* Remember to `hg push` when your repository contains a version
+ relatively stable of your changes.
+
+* If a `hg pull -u` created a new branch head:
+
+ 1. find its identifier with `hg head`
+ 2. merge with `hg merge`
+ 3. `hg ci`
+ 4. `hg push`
+
+Installation of the forest extension
+````````````````````````````````````
+
+Set up the forest extension by getting a copy of the sources
+from http://hg.akoha.org/hgforest/ and adding the following
+lines to your ``~/.hgrc``: ::
+
+ [extensions]
+ hgext.forest=
+ # or, if forest.py is not in the hgext dir:
+ # forest=/path/to/forest.py
+
+
+More information
+````````````````
+
+For more information about Mercurial, please refer to the Mercurial project online documentation_.
+
+.. _documentation: http://www.selenic.com/mercurial/wiki/
+
--- a/doc/book/en/Z010-beginners.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ b/doc/book/en/Z010-beginners.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -2,11 +2,10 @@
.. _QuickInstall:
-===========================================
Quick Installation of a `CubicWeb` instance
===========================================
-.. include:: C011-installation.en.txt
+.. include:: C010-setup.en.txt
.. include:: Z012-create-instance.en.txt
--- a/doc/book/en/Z012-create-instance.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ b/doc/book/en/Z012-create-instance.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -1,5 +1,6 @@
.. -*- coding: utf-8 -*-
+===============================
Creation of your first instance
===============================
--- a/doc/book/en/Z013-blog-less-ten-minutes.en.txt Wed Apr 22 09:46:13 2009 -0500
+++ b/doc/book/en/Z013-blog-less-ten-minutes.en.txt Thu Apr 30 12:27:32 2009 +0200
@@ -1,86 +1,26 @@
.. -*- coding: utf-8 -*-
-.. BlogTenMinutes:
-
-Have a blog ready in less than ten minutes!
--------------------------------------------
-
-Installation
-~~~~~~~~~~~~
-
-You need to install the following packages::
+.. _BlogTenMinutes:
- cubicweb, cubicweb-blog
-
-The package `cubicweb` is installing the command `cubicweb-ctl` that
-will allow you to create new application.
+Get a Blog running in less than ten minutes!
+--------------------------------------------
-The package `cubicweb-blog` is installing the blogging support for the
-`CubicWeb` framework.
+You need to install the following packages (:ref:`DebianInstallation`)::
-Application creation
-~~~~~~~~~~~~~~~~~~~~
+ cubicweb, cubicweb-dev, cubicweb-blog
Creation and initialization of your application by running::
cubicweb-ctl create blog myblog
-*myblog* is the name of the application you are creating.
-
-*blog* is the name of the component on which your application
-is based.
-
-Application launch
-~~~~~~~~~~~~~~~~~~
-
Your application is now ready to go::
cubicweb-ctl start -D myblog
This is it. Your blog is ready to you. Go to http://localhost:8080 and enjoy!
-
-A little code snapshot from behind the scene
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The component `blog`, referred as a `cube` in the book
-(see :ref:`TermsVocabulary` for a complete definition), defines
-a data model in ``/usr/share/cubicweb/cubes/blog/schema.py``.
-Here is the corresponding Python code::
-
- from cubicweb.schema import format_constraint
-
- class Blog(EntityType):
- title = String(maxsize=50, required=True)
- description_format = String(meta=True, internationalizable=True, maxsize=50,
- default='text/rest', constraints=[format_constraint])
- description = String()
- rss_url = String(maxsize=128, description=_('blog\'s rss url (useful for when using external site such as feedburner)'))
+As a developper, you'll want to know more about how to develop new
+cubes and cutomize the look of your application and this is what we
+talk about now.
- class BlogEntry(EntityType):
- title = String(required=True, fulltextindexed=True, maxsize=256)
- content_format = String(meta=True, internationalizable=True, maxsize=50,
- default='text/rest', constraints=[format_constraint])
- content = String(required=True, fulltextindexed=True)
- entry_of = SubjectRelation('Blog', cardinality='?*')
-
-Two types of entities are defined here: Blog and BlogEntry.
-
-A Blog is defined by a title, a description and its format and a
-RSS URL to provide RSS feed.
-
-A BlogEntry is defined by a title, a content and its format and
-a relation to a Blog, meaning a BlogEntry belongs to a Blog.
-
-
-Next step
-~~~~~~~~~
-
-This was a brief demonstration of the re-usability of cubes and a way
-to show how you can use `CubicWeb` straigth out of the box.
-
-As a developper, you'll want to know more about how to develop new
-cubes and cutomize the views and this is what we talk about now.
-
-
--- a/doc/book/en/index.txt Wed Apr 22 09:46:13 2009 -0500
+++ b/doc/book/en/index.txt Thu Apr 30 12:27:32 2009 +0200
@@ -25,7 +25,7 @@
for semantic web application development that promotes quality, reusability and
efficiency.
-The unbeliever will read the :ref:`Overview`.
+The unbeliever will read the :ref:`Tutorial`.
The hacker will join development at the forge_.
--- a/i18n/es.po Wed Apr 22 09:46:13 2009 -0500
+++ b/i18n/es.po Thu Apr 30 12:27:32 2009 +0200
@@ -5,8 +5,8 @@
msgstr ""
"Project-Id-Version: cubicweb 2.46.0\n"
"PO-Revision-Date: 2008-11-27 07:59+0100\n"
-"Last-Translator: Celso <contact@logilab.fr>\n"
-"Language-Team: fr <contact@logilab.fr>\n"
+"Last-Translator: Celso Flores<jcelsoflores@gmail.com>\n"
+"Language-Team: es <contact@logilab.fr>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -23,7 +23,7 @@
"url: %(url)s\n"
msgstr ""
"\n"
-"%(user)s a cambiado su estado de <%(previous_state)s> hacia <%(current_state)"
+"%(user)s ha cambiado su estado de <%(previous_state)s> hacia <%(current_state)"
"s> por la entidad\n"
"'%(title)s'\n"
"\n"
@@ -33,7 +33,7 @@
#, python-format
msgid " from state %(fromstate)s to state %(tostate)s\n"
-msgstr " de el estado %(fromstate)s hacia el estado %(tostate)s\n"
+msgstr " del estado %(fromstate)s hacia el estado %(tostate)s\n"
#, python-format
msgid "%(cstr)s constraint failed for value %(value)r"
@@ -121,7 +121,7 @@
#, python-format
msgid "%s software version of the database"
-msgstr "version sistema de la base para %s"
+msgstr "versión sistema de la base para %s"
msgid "**"
msgstr "0..n 0..n"
@@ -181,10 +181,10 @@
msgstr "Aplicación"
msgid "Bookmark"
-msgstr "Atajo"
+msgstr "Favorito"
msgid "Bookmark_plural"
-msgstr "Atajos"
+msgstr "Favoritos"
msgid "Boolean"
msgstr "Booleano"
@@ -193,13 +193,13 @@
msgstr "Booleanos"
msgid "Browse by category"
-msgstr "Selecciona por categoría"
+msgstr "Busca por categoría"
msgid "Bytes"
-msgstr "Datos binarios"
+msgstr "Bytes"
msgid "Bytes_plural"
-msgstr "Datos binarios"
+msgstr "Bytes"
msgid "Card"
msgstr "Ficha"
@@ -224,34 +224,34 @@
msgstr "Nivel de debug puesto a %s"
msgid "Decimal"
-msgstr "Número decimal"
+msgstr "Decimal"
msgid "Decimal_plural"
-msgstr "Números decimales"
+msgstr "Decimales"
msgid "Do you want to delete the following element(s) ?"
msgstr "Desea suprimir el(los) elemento(s) siguiente(s)"
msgid "ECache"
-msgstr "Memoria Cache"
+msgstr "Cache"
msgid "ECache_plural"
-msgstr "Memorias Caches"
+msgstr "Caches"
msgid "EConstraint"
-msgstr "Condición"
+msgstr "Restricción"
msgid "EConstraintType"
-msgstr "Tipo de condición"
+msgstr "Tipo de Restricción"
msgid "EConstraintType_plural"
-msgstr "Tipos de condición"
+msgstr "Tipos de Restricción"
msgid "EConstraint_plural"
-msgstr "Condiciones"
+msgstr "Restricciones"
msgid "EEType"
-msgstr "Tipo de entidades"
+msgstr "Tipo de entidad"
msgid "EEType_plural"
msgstr "Tipos de entidades"
@@ -305,10 +305,10 @@
msgstr "Correo Electrónico"
msgid "EmailAddress_plural"
-msgstr "Direcciónes de Correo Electrónico"
+msgstr "Direcciones de Correo Electrónico"
msgid "Entities"
-msgstr "entidades"
+msgstr "Entidades"
msgid "Environment"
msgstr "Ambiente"
@@ -335,22 +335,22 @@
msgstr "Duraciones"
msgid "New Bookmark"
-msgstr "Nuevo Atajo"
+msgstr "Agregar a Favoritos"
msgid "New Card"
-msgstr "Nueva ficha"
+msgstr "Agregar Ficha"
msgid "New ECache"
-msgstr "Nueva memoria cache"
+msgstr "Agregar Cache"
msgid "New EConstraint"
-msgstr "Nueva condición"
+msgstr "Agregar Restricción"
msgid "New EConstraintType"
-msgstr "Nuevo tipo de condición"
+msgstr "Agregar tipo de Restricción"
msgid "New EEType"
-msgstr "Nuevo tipo de entidad"
+msgstr "Agregar tipo de entidad"
msgid "New EFRDef"
msgstr "Nueva definición de relación final"
@@ -362,31 +362,31 @@
msgstr "Nueva definición de relación final"
msgid "New EPermission"
-msgstr "Nueva autorización"
+msgstr "Agregar autorización"
msgid "New EProperty"
-msgstr "Nueva Propiedad"
+msgstr "Agregar Propiedad"
msgid "New ERType"
-msgstr "Nuevo tipo de relación"
+msgstr "Agregar tipo de relación"
msgid "New EUser"
-msgstr "Nuevo usuario"
+msgstr "Agregar usuario"
msgid "New EmailAddress"
-msgstr "Nuevo Email"
+msgstr "Agregar Email"
msgid "New RQLExpression"
-msgstr "Nueva expresión rql"
+msgstr "Agregar expresión rql"
msgid "New State"
-msgstr "Nuevo Estado"
+msgstr "Agregar Estado"
msgid "New TrInfo"
-msgstr "Nueva Información de Transición"
+msgstr "Agregar Información de Transición"
msgid "New Transition"
-msgstr "Nueva transición"
+msgstr "Agregar transición"
msgid "No query has been executed"
msgstr "Ninguna búsqueda ha sido ejecutada"
@@ -422,7 +422,7 @@
msgstr "Relaciones"
msgid "Request"
-msgstr "Búsqueda"
+msgstr "Petición"
#, python-format
msgid "Schema %s"
@@ -435,7 +435,7 @@
msgstr "Servidor"
msgid "Startup views"
-msgstr "Vistas de inicio"
+msgstr "Vistas de Inicio"
msgid "State"
msgstr "Estado"
@@ -444,10 +444,10 @@
msgstr "Estados"
msgid "String"
-msgstr "Cadena de caractéres"
+msgstr "Cadena de caracteres"
msgid "String_plural"
-msgstr "Cadenas de caractéres"
+msgstr "Cadenas de caracteres"
msgid "Subject: "
msgstr "Objeto : "
@@ -474,19 +474,19 @@
msgstr "Este %s"
msgid "This Bookmark"
-msgstr "Este atajo"
+msgstr "Este favorito"
msgid "This Card"
msgstr "Esta Ficha"
msgid "This ECache"
-msgstr "Esta Memoria Cache"
+msgstr "Este Cache"
msgid "This EConstraint"
-msgstr "Esta condición"
+msgstr "Esta Restricción"
msgid "This EConstraintType"
-msgstr "Este tipo de condición"
+msgstr "Este tipo de Restricción"
msgid "This EEType"
msgstr "Este tipo de Entidad"
@@ -553,10 +553,10 @@
msgstr "Utilizado por :"
msgid "What's new?"
-msgstr "Ultimas Noticias"
+msgstr "Lo último en el sitio"
msgid "Workflow history"
-msgstr "Registro de cambios de estado"
+msgstr "Histórico del Workflow"
msgid "You are not connected to an application !"
msgstr "Usted no esta conectado a una aplicación"
@@ -571,7 +571,7 @@
"box, or edit file content online with the widget below."
msgstr ""
"Usted puede proponer un nuevo archivo utilizando el botón\n"
-"\"buscar\" aqui arriba, o eliminar el archivo ya elegido al\n"
+"\"buscar\" aquí arriba, o eliminar el archivo ya elegido al\n"
"seleccionar el cuadro \"soltar archivo adjunto\", o editar el contenido\n"
"del archivo en línea con el componente inferior."
@@ -585,7 +585,7 @@
msgid "You can use any of the following substitutions in your text"
msgstr ""
-"Puede realizar cualquiera de las siguietes sustituciones en el contenido de "
+"Puede realizar cualquiera de las siguientes sustituciones en el contenido de "
"su email."
msgid "You have no access to this view or it's not applyable to current data"
@@ -595,8 +595,8 @@
"You're not authorized to access this page. If you think you should, please "
"contact the site administrator."
msgstr ""
-"Usted no esta autorizado a acceder a esta página. Si Usted cree aue \n"
-"es un error, favor de contactar al administrador del sitio."
+"Usted no esta autorizado a acceder a esta página. Si Usted cree que \n"
+"hay un error, favor de contactar al administrador del sitio."
#, python-format
msgid "[%s supervision] changes summary"
@@ -610,16 +610,16 @@
"be available. This query may use X and U variables that will respectivly "
"represents the current entity and the current user"
msgstr ""
-"una expresión RQL deviendo regresado resultado para que la transición pueda "
+"una expresión RQL que debe haber enviado resultados, para que la transición pueda "
"ser realizada. Esta expresión puede utilizar las variables X y U que "
-"representan respectivamente la entidad en transición y el usuarioactual. "
+"representan respectivamente la entidad en transición y el usuario actual. "
msgid ""
"a card is a textual content used as documentation, reference, procedure "
"reminder"
msgstr ""
"una ficha es un texto utilizado como documentación, referencia, memoria de "
-"procedimiento..."
+"algún procedimiento..."
msgid ""
"a simple cache entity characterized by a name and a validity date. The "
@@ -627,12 +627,16 @@
"invalidate the cache (typically in hooks). Also, checkout the AppRsetObject."
"get_cache() method."
msgstr ""
+"una entidad cache simple caracterizada por un nombre y una fecha correcta. "
+"El sistema objetivo es responsable de actualizar timestamp cuand se necesario "
+"para invalidar el cache (usualmente en hooks).Recomendamos revisar el METODO "
+" AppRsetObject.get_cache()."
msgid "about this site"
-msgstr "Sobre este espacio"
+msgstr "Sobre este Espacio"
msgid "access type"
-msgstr "tipo de acceso"
+msgstr "Tipo de Acceso"
msgid "account state"
msgstr "Estado de la Cuenta"
@@ -650,55 +654,55 @@
msgstr ""
msgid "actions_cancel"
-msgstr "Anular la selección"
+msgstr "Anular"
msgid "actions_cancel_description"
msgstr ""
msgid "actions_copy"
-msgstr "copiar"
+msgstr "Copiar"
msgid "actions_copy_description"
msgstr ""
msgid "actions_delete"
-msgstr "eliminar"
+msgstr "Eliminar"
msgid "actions_delete_description"
msgstr ""
msgid "actions_download_as_owl"
-msgstr ""
+msgstr "Download como OWL"
msgid "actions_download_as_owl_description"
msgstr ""
msgid "actions_edit"
-msgstr "modificar"
+msgstr "Modificar"
msgid "actions_edit_description"
msgstr ""
msgid "actions_embed"
-msgstr "embarcar"
+msgstr "Embarcar"
msgid "actions_embed_description"
msgstr ""
msgid "actions_follow"
-msgstr "seguir"
+msgstr "Seguir"
msgid "actions_follow_description"
msgstr ""
msgid "actions_logout"
-msgstr "desconectarse"
+msgstr "Desconectarse"
msgid "actions_logout_description"
msgstr ""
msgid "actions_manage"
-msgstr "administración del sitio"
+msgstr "Administración del sitio"
msgid "actions_manage_description"
msgstr ""
@@ -710,76 +714,76 @@
msgstr ""
msgid "actions_myinfos"
-msgstr "información personal"
+msgstr "Información personal"
msgid "actions_myinfos_description"
msgstr ""
msgid "actions_myprefs"
-msgstr "preferencias del usuario"
+msgstr "Preferencias del usuario"
msgid "actions_myprefs_description"
msgstr ""
msgid "actions_prefs"
-msgstr "preferencias"
+msgstr "Preferencias"
msgid "actions_prefs_description"
msgstr ""
msgid "actions_schema"
-msgstr "ver el esquema"
+msgstr "Ver el esquema"
msgid "actions_schema_description"
msgstr ""
msgid "actions_select"
-msgstr "seleccionar"
+msgstr "Seleccionar"
msgid "actions_select_description"
msgstr ""
msgid "actions_sendemail"
-msgstr "enviar un email"
+msgstr "Enviar un email"
msgid "actions_sendemail_description"
msgstr ""
msgid "actions_siteconfig"
-msgstr "configuración del sitio"
+msgstr "Configuración del sitio"
msgid "actions_siteconfig_description"
msgstr ""
msgid "actions_view"
-msgstr "ver"
+msgstr "Ver"
msgid "actions_view_description"
msgstr ""
msgid "actions_workflow"
-msgstr "ver el workflow"
+msgstr "Ver el workflow"
msgid "actions_workflow_description"
msgstr ""
msgid "activate"
-msgstr "activar"
+msgstr "Activar"
msgid "activated"
-msgstr "activado"
+msgstr "Activado"
msgid "add"
-msgstr "agregar"
+msgstr "Agregar"
msgid "add Bookmark bookmarked_by EUser object"
-msgstr ""
+msgstr "Agregar a los favoritos "
msgid "add EEType add_permission RQLExpression subject"
-msgstr "Definir una expresión RQL de agregación"
+msgstr "Agregar una autorización"
msgid "add EEType delete_permission RQLExpression subject"
-msgstr "Definir una expresión RQL de eliminación"
+msgstr "Eliminar una autorización"
msgid "add EEType read_permission RQLExpression subject"
msgstr "Definir una expresión RQL de lectura"
@@ -788,137 +792,137 @@
msgstr "Definir una expresión RQL de actualización"
msgid "add EFRDef constrained_by EConstraint subject"
-msgstr "condición"
+msgstr "Restricción"
msgid "add EFRDef relation_type ERType object"
-msgstr "definición de atributo"
+msgstr "Definición de atributo"
msgid "add ENFRDef constrained_by EConstraint subject"
-msgstr "condición"
+msgstr "Restricción"
msgid "add ENFRDef relation_type ERType object"
-msgstr "definición de relación"
+msgstr "Definición de relación"
msgid "add EProperty for_user EUser object"
-msgstr "propiedad"
+msgstr "Agregar Propiedad"
msgid "add ERType add_permission RQLExpression subject"
-msgstr "expresión RQL de agregación"
+msgstr "Agregar expresión RQL de agregación"
msgid "add ERType delete_permission RQLExpression subject"
-msgstr "expresión RQL de eliminación"
+msgstr "Agregar expresión RQL de eliminación"
msgid "add ERType read_permission RQLExpression subject"
-msgstr "expresión RQL de lectura"
+msgstr "Agregar expresión RQL de lectura"
msgid "add EUser in_group EGroup object"
-msgstr "usuario"
+msgstr "Agregar usuario"
msgid "add EUser use_email EmailAddress subject"
-msgstr "agregar email"
+msgstr "Agregar email"
msgid "add State allowed_transition Transition object"
-msgstr "agregar un estado en entrada"
+msgstr "Agregar un estado en entrada"
msgid "add State allowed_transition Transition subject"
-msgstr "agregar una transición en salida"
+msgstr "Agregar una transición en salida"
msgid "add State state_of EEType object"
-msgstr "agregar un estado"
+msgstr "Agregar un estado"
msgid "add Transition condition RQLExpression subject"
-msgstr "agregar una condición"
+msgstr "Agregar una Restricción"
msgid "add Transition destination_state State object"
-msgstr "agregar una transición de entrada"
+msgstr "Agregar una transición de entrada"
msgid "add Transition destination_state State subject"
-msgstr "agregar el estado de salida"
+msgstr "Agregar el estado de salida"
msgid "add Transition transition_of EEType object"
-msgstr "agregar una transición"
+msgstr "Agregar una transición"
msgid "add a Bookmark"
-msgstr "agregar un atajo"
+msgstr "Agregar un Favorito"
msgid "add a Card"
-msgstr "agregar una ficha"
+msgstr "Agregar una ficha"
msgid "add a ECache"
-msgstr "agregar una memoria cache"
+msgstr "Agregar un cache"
msgid "add a EConstraint"
-msgstr "agregar una condición"
+msgstr "Agregar una Restricción"
msgid "add a EConstraintType"
-msgstr "aun tipo de condición"
+msgstr "Agregar un tipo de Restricción"
msgid "add a EEType"
-msgstr "agregar un tipo de entidad"
+msgstr "Agregar un tipo de entidad"
msgid "add a EFRDef"
-msgstr "agregar un tipo de relación"
+msgstr "Agregar un tipo de relación"
msgid "add a EGroup"
-msgstr "agregar un grupo de usuarios"
+msgstr "Agregar un grupo de usuarios"
msgid "add a ENFRDef"
-msgstr "agregar una relación"
+msgstr "Agregar una relación"
msgid "add a EPermission"
-msgstr "agregar una autorización"
+msgstr "Agregar una autorización"
msgid "add a EProperty"
-msgstr "agregar una propiedad"
+msgstr "Agregar una propiedad"
msgid "add a ERType"
-msgstr "agregar un tipo de relación"
+msgstr "Agregar un tipo de relación"
msgid "add a EUser"
-msgstr "agregar un usuario"
+msgstr "Agregar un usuario"
msgid "add a EmailAddress"
-msgstr "agregar un email"
+msgstr "Agregar un email"
msgid "add a RQLExpression"
-msgstr "agregar una expresión rql"
+msgstr "Agregar una expresión rql"
msgid "add a State"
-msgstr "agregar un estado"
+msgstr "Agregar un estado"
msgid "add a TrInfo"
-msgstr "agregar una información de transición"
+msgstr "Agregar una información de transición"
msgid "add a Transition"
-msgstr "agregar una transición"
+msgstr "Agregar una transición"
msgid "add a new permission"
-msgstr "agregar una autorización"
+msgstr "Agregar una autorización"
msgid "add relation"
-msgstr "agregar una relación"
+msgstr "Agregar una relación"
msgid "add_perm"
-msgstr "agregado"
+msgstr "Agregado"
# subject and object forms for each relation type
# (no object form for final relation types)
msgid "add_permission"
-msgstr "autorización para agregar"
+msgstr "Autorización para agregar"
msgid "add_permission_object"
msgstr "tiene la autorización para agregar"
#, python-format
msgid "added %(etype)s #%(eid)s (%(title)s)"
-msgstr "agregado de la entidad %(etype)s #%(eid)s (%(title)s)"
+msgstr "Agregado %(etype)s #%(eid)s (%(title)s)"
#, python-format
msgid ""
"added relation %(rtype)s from %(frometype)s #%(fromeid)s to %(toetype)s #%"
"(toeid)s"
msgstr ""
-"agregado de la relación %(rtype)s de %(frometype)s #%(fromeid)s hacia %"
+"Relación agregada %(rtype)s de %(frometype)s #%(fromeid)s hacia %"
"(toetype)s #%(toeid)s"
msgid "address"
@@ -958,7 +962,7 @@
msgstr "una dirección electrónica asociada a este alias"
msgid "an error occured"
-msgstr "a ocurrido un error"
+msgstr "ha ocurrido un error"
msgid "an error occured while processing your request"
msgstr "un error ocurrió al procesar su demanda"
@@ -973,16 +977,16 @@
msgstr "y/o entre los diferentes valores"
msgid "anonymous"
-msgstr "anónimo"
+msgstr "Anónimo"
msgid "application entities"
-msgstr "entidades de la aplicación"
+msgstr "Entidades de la aplicación"
msgid "application schema"
-msgstr "esquema de la aplicación"
+msgstr "Esquema de la aplicación"
msgid "april"
-msgstr "abril"
+msgstr "Abril"
#, python-format
msgid "at least one relation %(rtype)s is required on %(etype)s (%(eid)s)"
@@ -991,117 +995,117 @@
"otra via la relación %(rtype)s"
msgid "attribute"
-msgstr "atributo"
+msgstr "Atributo"
msgid "august"
-msgstr "agosto"
+msgstr "Agosto"
msgid "authentication failure"
msgstr "Usuario o contraseña incorrecta"
msgid "automatic"
-msgstr "automático"
+msgstr "Automático"
msgid "bad value"
-msgstr "valor erróneo"
+msgstr "Valor erróneo"
msgid "base url"
-msgstr "url de base"
+msgstr "Url de base"
msgid "bookmark has been removed"
-msgstr "el atajo ha sido eliminado"
+msgstr "ha sido eliminado de sus favoritos"
msgid "bookmark this page"
-msgstr "Agregue un atajo a esta página"
+msgstr "Agregar esta página a sus favoritos"
msgid "bookmark this search"
-msgstr "Guarde esta búsqueda"
+msgstr "Guardar esta búsqueda"
msgid "bookmarked_by"
-msgstr "utilizada por"
+msgstr "está en los favoritos de"
msgid "bookmarked_by_object"
-msgstr "tiene como atajo"
+msgstr "selecciona en sus favoritos a"
msgid "bookmarks"
-msgstr "atajos"
+msgstr "Favoritos"
msgid "boxes"
-msgstr "cajas"
+msgstr "Cajas"
msgid "boxes_bookmarks_box"
-msgstr "caja de atajos"
+msgstr "Caja de Favoritos"
msgid "boxes_bookmarks_box_description"
-msgstr "Caja que contiene los atajos del usuario"
+msgstr "Caja que contiene los espacios favoritos del usuario"
msgid "boxes_download_box"
-msgstr ""
+msgstr "Caja de download"
msgid "boxes_download_box_description"
-msgstr ""
+msgstr "Caja que contiene los elementos bajados"
msgid "boxes_edit_box"
-msgstr "caja de acciones"
+msgstr "Caja de acciones"
msgid "boxes_edit_box_description"
msgstr ""
-"caja aue muestra las diferentes acciones posibles sobre los datos presentes"
+"Caja que muestra las diferentes acciones posibles sobre los datos presentes"
msgid "boxes_filter_box"
-msgstr "filtrar"
+msgstr "Filtros"
msgid "boxes_filter_box_description"
msgstr ""
-"caja permitiendo de realizar filtros sobre los resultados de una búsqueda"
+"Caja que permite realizar filtros sobre los resultados de una búsqueda"
msgid "boxes_possible_views_box"
-msgstr "caja de vistas posibles"
+msgstr "Caja de Vistas Posibles"
msgid "boxes_possible_views_box_description"
-msgstr "caja mostrando las vistas posibles para los datos actuales"
+msgstr "Caja mostrando las vistas posibles para los datos actuales"
msgid "boxes_rss"
msgstr "ícono RSS"
msgid "boxes_rss_description"
-msgstr "el ícono RSS permite recuperar las vistas RSS de los datos presentes"
+msgstr "El ícono RSS permite recuperar las vistas RSS de los datos presentes"
msgid "boxes_search_box"
-msgstr "caja de búsqueda"
+msgstr "Caja de búsqueda"
msgid "boxes_search_box_description"
-msgstr "caja con un espacio de búsqueda simple"
+msgstr "Caja con un espacio de búsqueda simple"
msgid "boxes_startup_views_box"
-msgstr "caja de las vistas de inicio"
+msgstr "Caja Vistas de inicio"
msgid "boxes_startup_views_box_description"
-msgstr "caja mostrando las vistas de inicio de la aplicación"
+msgstr "Caja mostrando las vistas de inicio de la aplicación"
msgid "bug report sent"
-msgstr "reporte de error enviado"
+msgstr "Reporte de error enviado"
msgid "button_apply"
-msgstr "aplicar"
+msgstr "Aplicar"
msgid "button_cancel"
-msgstr "anular"
+msgstr "Cancelar"
msgid "button_delete"
-msgstr "eliminar"
+msgstr "Eliminar"
msgid "button_ok"
-msgstr "validar"
+msgstr "Validar"
msgid "button_reset"
-msgstr "anular los cambios"
+msgstr "Cancelar los cambios"
msgid "by"
msgstr "por"
msgid "by relation"
-msgstr "por la relación"
+msgstr "por relación"
msgid "calendar"
msgstr "mostrar un calendario"
@@ -1139,10 +1143,10 @@
"cardinalidad %(card)s"
msgid "cancel select"
-msgstr "anular la selección"
+msgstr "Cancelar la selección"
msgid "cancel this insert"
-msgstr "anular esta inserción"
+msgstr "Cancelar esta inserción"
msgid "canonical"
msgstr "canónico"
@@ -1152,91 +1156,91 @@
#, python-format
msgid "changed state of %(etype)s #%(eid)s (%(title)s)"
-msgstr "cambiar del estado de %(etype)s #%(eid)s (%(title)s)"
+msgstr "Cambiar del estado de %(etype)s #%(eid)s (%(title)s)"
msgid "changes applied"
-msgstr "cambios realizados"
+msgstr "Cambios realizados"
msgid "click on the box to cancel the deletion"
-msgstr "seleccione la zona de edición para anular la eliminación"
+msgstr "Seleccione la zona de edición para cancelar la eliminación"
msgid "comment"
-msgstr "comentario"
+msgstr "Comentario"
msgid "comment:"
-msgstr "comentario :"
+msgstr "Comentario:"
msgid "comment_format"
-msgstr "formato"
+msgstr "Formato"
msgid "components"
-msgstr "componentes"
+msgstr "Componentes"
msgid "components_appliname"
-msgstr "título de la aplicación"
+msgstr "Título de la aplicación"
msgid "components_appliname_description"
-msgstr "muestra el título de la aplicación en el encabezado de la página"
+msgstr "Muestra el título de la aplicación en el encabezado de la página"
msgid "components_applmessages"
-msgstr "mensajes de la aplicación"
+msgstr "Mensajes de la aplicación"
msgid "components_applmessages_description"
-msgstr "muestra los mensajes de la aplicación"
+msgstr "Muestra los mensajes de la aplicación"
msgid "components_breadcrumbs"
-msgstr "hilo de Ariadna"
+msgstr "Ruta de Navegación"
msgid "components_breadcrumbs_description"
msgstr ""
-"muestra un camino que permite identificar el lugar donde se encuentra la "
+"Muestra un camino que permite identificar el lugar donde se encuentra la "
"página en el sitio"
msgid "components_etypenavigation"
-msgstr "filtro por tipo"
+msgstr "Filtro por tipo"
msgid "components_etypenavigation_description"
-msgstr "permite filtrar por tipo de entidad los resultados de búsqueda"
+msgstr "Permite filtrar por tipo de entidad los resultados de búsqueda"
msgid "components_help"
-msgstr "botón de ayuda"
+msgstr "Botón de ayuda"
msgid "components_help_description"
-msgstr "el botón de ayuda, en el encabezado de página"
+msgstr "El botón de ayuda, en el encabezado de página"
msgid "components_loggeduserlink"
-msgstr "liga usuario"
+msgstr "Liga usuario"
msgid "components_loggeduserlink_description"
msgstr ""
-"muestra un enlace hacia el formulario de conexión para los usuarios "
+"Muestra un enlace hacia el formulario de conexión para los usuarios "
"anónimos, o una caja que contiene las ligas propias a el usuarioconectado. "
msgid "components_logo"
-msgstr "logo"
+msgstr "Logo"
msgid "components_logo_description"
-msgstr "el logo de la aplicación, en el encabezado de página"
+msgstr "El logo de la aplicación, en el encabezado de página"
msgid "components_navigation"
-msgstr "navigación por página"
+msgstr "Navigación por página"
msgid "components_navigation_description"
msgstr ""
-"componente aue permite distribuir sobre varias páginas las búsquedas que "
-"arrojan mayores resultados a un número previamente elegido"
+"Componente que permite distribuir sobre varias páginas las búsquedas que "
+"arrojan mayores resultados que un número previamente elegido"
msgid "components_rqlinput"
-msgstr "barra rql"
+msgstr "Barra rql"
msgid "components_rqlinput_description"
-msgstr "la barre de demanda rql, en el encabezado de página"
+msgstr "La barra de demanda rql, en el encabezado de página"
msgid "components_rss_feed_url"
-msgstr ""
+msgstr "RSS FEED URL"
msgid "components_rss_feed_url_description"
-msgstr ""
+msgstr "El espacio para administrar RSS"
msgid "composite"
msgstr "composite"
@@ -1245,82 +1249,82 @@
msgstr "condición"
msgid "condition:"
-msgstr "condición :"
+msgstr "condición:"
msgid "condition_object"
msgstr "condición de"
msgid "confirm password"
-msgstr "confirmar contraseña"
+msgstr "Confirmar contraseña"
msgid "constrained_by"
-msgstr "condicionado por"
+msgstr "Restricción hecha por"
msgid "constrained_by_object"
-msgstr "condición de"
+msgstr "ha restringido"
msgid "constraint factory"
-msgstr "fabrica de condiciones"
+msgstr "FAbrica de restricciones"
msgid "constraints"
-msgstr "condiciones"
+msgstr "Restricciones"
msgid "constraints applying on this relation"
-msgstr "condiciones que se aplican a esta relación"
+msgstr "Restricciones que se aplican a esta relación"
msgid "content"
-msgstr "contenido"
+msgstr "Contenido"
msgid "content_format"
-msgstr "formato"
+msgstr "Formato"
msgid "contentnavigation"
-msgstr "composantes contextuales"
+msgstr "Componentes contextuales"
msgid "contentnavigation_breadcrumbs"
-msgstr "hilo de Ariadna"
+msgstr "Ruta de Navegación"
msgid "contentnavigation_breadcrumbs_description"
-msgstr "muestra un camino que permite localizar la página actual en el sitio"
+msgstr "Muestra un camino que permite localizar la página actual en el sitio"
msgid "contentnavigation_prevnext"
msgstr "Elemento anterior / siguiente"
msgid "contentnavigation_prevnext_description"
msgstr ""
-"muestra las ligas que permiten pasar de una entidad a otra en lasentidades "
+"Muestra las ligas que permiten pasar de una entidad a otra en lasentidades "
"que implementan la interface \"anterior/siguiente\"."
msgid "contentnavigation_seealso"
-msgstr "vea también"
+msgstr "Vea también"
msgid "contentnavigation_seealso_description"
msgstr ""
-"sección aue muestra las entidades ligadas por la relación \"vea también\" , "
+"sección que muestra las entidades ligadas por la relación \"vea también\" , "
"si la entidad soporta esta relación."
msgid "contentnavigation_wfhistory"
-msgstr "histórico del workflow."
+msgstr "Histórico del workflow."
msgid "contentnavigation_wfhistory_description"
msgstr ""
-"sección que ofrece el reporte histórico del workflow para las entidades que "
+"Sección que ofrece el reporte histórico del workflow para las entidades que "
"posean un workflow."
msgid "context"
-msgstr "contexto"
+msgstr "Contexto"
msgid "context where this box should be displayed"
-msgstr "contexto en el cual la caja debe aparecer en el sistema"
+msgstr "Contexto en el cual la caja debe aparecer en el sistema"
msgid "context where this component should be displayed"
-msgstr "contexto en el cual el componente debe aparecer en el sistema"
+msgstr "Contexto en el cual el componente debe aparecer en el sistema"
msgid "control subject entity's relations order"
-msgstr "controla el orden de relaciones de la entidad sujeto"
+msgstr "Controla el orden de relaciones de la entidad sujeto"
msgid "copy"
-msgstr "copiar"
+msgstr "Copiar"
msgid "copy edition"
msgstr "Edición de una copia"
@@ -1329,66 +1333,66 @@
"core relation giving to a group the permission to add an entity or relation "
"type"
msgstr ""
-"relación sistema que otorga a un grupo la autorización de agregar unaentidad "
+"Relación sistema que otorga a un grupo la autorización de agregar una entidad "
"o una relación"
msgid ""
"core relation giving to a group the permission to delete an entity or "
"relation type"
msgstr ""
-"relación sistema que otorga a un grupo la autorización de eliminar una "
+"Relación sistema que otorga a un grupo la autorización de eliminar una "
"entidad o relación"
msgid ""
"core relation giving to a group the permission to read an entity or relation "
"type"
msgstr ""
-"relación sistema que otorga a un grupo la autorización de leer una entidad o "
+"Relación sistema que otorga a un grupo la autorización de leer una entidad o "
"una relación "
msgid "core relation giving to a group the permission to update an entity type"
msgstr ""
-"relación sistema que otorga a un grupo la autorización de actualizar una "
+"Relación sistema que otorga a un grupo la autorización de actualizar una "
"entidad"
msgid "core relation indicating a user's groups"
msgstr ""
-"relación sistema que indica los grupos a los cuales pertenece un usuario"
+"Relación sistema que indica los grupos a los cuales pertenece un usuario"
msgid ""
"core relation indicating owners of an entity. This relation implicitly put "
"the owner into the owners group for the entity"
msgstr ""
-"relación sistema que indica el(los) propietario(s) de una entidad. Esta "
+"Relación sistema que indica el(los) propietario(s) de una entidad. Esta "
"relación pone de manera implícita al propietario en el grupo de propietarios "
-"por una entidad"
+"de una entidad"
msgid "core relation indicating the original creator of an entity"
-msgstr "relación sistema que indica el creador de una entidad."
+msgstr "Relación sistema que indica el creador de una entidad."
msgid "core relation indicating the type of an entity"
-msgstr "relación sistema que indica el tipo de entidad"
+msgstr "Relación sistema que indica el tipo de entidad"
msgid ""
"core relation indicating the types (including specialized types) of an entity"
msgstr ""
-"relación sistema indicando los tipos (incluídos los tipos padres) de una "
+"Relación sistema indicando los tipos (incluídos los tipos padres) de una "
"entidad"
msgid "cost"
-msgstr "costo"
+msgstr "Costo"
msgid "could not connect to the SMTP server"
-msgstr "imposible de conectarse al servidor SMTP"
+msgstr "Imposible de conectarse al servidor SMTP"
msgid "create an index for quick search on this attribute"
-msgstr "crear un índice para accelerar las búsquedas sobre este atributo"
+msgstr "Crear un índice para accelerar las búsquedas sobre este atributo"
msgid "create an index page"
-msgstr "crear una página de inicio"
+msgstr "Crear una página de inicio"
msgid "created on"
-msgstr "creado el"
+msgstr "Creado el"
msgid "created_by"
msgstr "creado por"
@@ -1397,50 +1401,51 @@
msgstr "ha creado"
msgid "creating Bookmark (Bookmark bookmarked_by EUser %(linkto)s)"
-msgstr ""
+msgstr "Creando Favorito"
msgid "creating EConstraint (EFRDef %(linkto)s constrained_by EConstraint)"
-msgstr "creación condicionada por el atributo %(linkto)s"
+msgstr "Creación condicionada por el atributo %(linkto)s"
msgid "creating EConstraint (ENFRDef %(linkto)s constrained_by EConstraint)"
-msgstr "creación condicionada por la relación %(linkto)s"
+msgstr "Creación condicionada por la relación %(linkto)s"
msgid "creating EFRDef (EFRDef relation_type ERType %(linkto)s)"
-msgstr "creación atributo %(linkto)s"
+msgstr "Creación del atributo %(linkto)s"
msgid "creating ENFRDef (ENFRDef relation_type ERType %(linkto)s)"
-msgstr "creación relación %(linkto)s"
+msgstr "Creación de la relación %(linkto)s"
msgid "creating EProperty (EProperty for_user EUser %(linkto)s)"
-msgstr "creación de una propiedad por el usuario %(linkto)s"
+msgstr "Creación de una propiedad por el usuario %(linkto)s"
msgid "creating EUser (EUser in_group EGroup %(linkto)s)"
-msgstr "creación de un usuario para agregar al grupo %(linkto)s"
+msgstr "Creación de un usuario para agregar al grupo %(linkto)s"
msgid "creating EmailAddress (EUser %(linkto)s use_email EmailAddress)"
-msgstr "creación de una dirección electrónica para el usuario %(linkto)s"
+msgstr "Creación de una dirección electrónica para el usuario %(linkto)s"
msgid "creating RQLExpression (EEType %(linkto)s add_permission RQLExpression)"
msgstr ""
-"creación de una expresión RQL para la autorización de agregar %(linkto)s"
+"Creación de una expresión RQL para la autorización de agregar %(linkto)s"
msgid ""
"creating RQLExpression (EEType %(linkto)s delete_permission RQLExpression)"
msgstr ""
-"creación de una expresión RQL para la autorización de eliminar %(linkto)s"
+"Creación de una expresión RQL para la autorización de eliminar %(linkto)s"
msgid ""
"creating RQLExpression (EEType %(linkto)s read_permission RQLExpression)"
-msgstr "creación de una expresión RQL para la autorización de leer %(linkto)s"
+msgstr ""
+"Creación de una expresión RQL para la autorización de leer %(linkto)s"
msgid ""
"creating RQLExpression (EEType %(linkto)s update_permission RQLExpression)"
msgstr ""
-"creación de una expresión RQL para la autorización de actualizar %(linkto)s"
+"Creación de una expresión RQL para autorizar actualizar %(linkto)s"
msgid "creating RQLExpression (ERType %(linkto)s add_permission RQLExpression)"
msgstr ""
-"creación de una expresión RQL para la autorización de agregar relaciones %"
+"Creación de una expresión RQL para la autorización de agregar relaciones %"
"(linkto)s"
msgid ""
@@ -1452,90 +1457,90 @@
msgid ""
"creating RQLExpression (ERType %(linkto)s read_permission RQLExpression)"
msgstr ""
-"creación de una expresión RQL para autorizar la lectura de relaciones %"
+"Creación de una expresión RQL para autorizar la lectura de relaciones %"
"(linkto)s"
msgid "creating RQLExpression (Transition %(linkto)s condition RQLExpression)"
-msgstr "creación de una expresión RQL para la transición %(linkto)s"
+msgstr "Creación de una expresión RQL para la transición %(linkto)s"
msgid "creating State (State allowed_transition Transition %(linkto)s)"
-msgstr "creación de un estado que pueda ir hacia la transición %(linkto)s"
+msgstr "Creación de un estado que pueda ir hacia la transición %(linkto)s"
msgid "creating State (State state_of EEType %(linkto)s)"
-msgstr "creación de un estado por el tipo %(linkto)s"
+msgstr "Creación de un estado por el tipo %(linkto)s"
msgid "creating State (Transition %(linkto)s destination_state State)"
-msgstr "creación de un estado destinación de la transición %(linkto)s"
+msgstr "Creación de un estado destinación de la transición %(linkto)s"
msgid "creating Transition (State %(linkto)s allowed_transition Transition)"
-msgstr "creación de una transición autorizada desde el estado %(linkto)s"
+msgstr "Creación de una transición autorizada desde el estado %(linkto)s"
msgid "creating Transition (Transition destination_state State %(linkto)s)"
-msgstr "creación de un transición hacia el estado %(linkto)s"
+msgstr "Creación de un transición hacia el estado %(linkto)s"
msgid "creating Transition (Transition transition_of EEType %(linkto)s)"
-msgstr "creación de una transición para el tipo %(linkto)s"
+msgstr "Creación de una transición para el tipo %(linkto)s"
msgid "creation"
-msgstr "creación"
+msgstr "Creación"
msgid "creation time of an entity"
-msgstr "fecha de creación de una entidad"
+msgstr "Fecha de creación de una entidad"
msgid "creation_date"
msgstr "fecha de creación"
msgid "cstrtype"
-msgstr "tipo de condición"
+msgstr "Tipo de condición"
msgid "cstrtype_object"
msgstr "utilizado por"
msgid "csv entities export"
-msgstr "exportar entidades en csv"
+msgstr "Exportar entidades en csv"
msgid "csv export"
-msgstr "exportar CSV"
+msgstr "Exportar CSV"
#, python-format
msgid "currently attached file: %s"
msgstr ""
msgid "data directory url"
-msgstr "url del repertorio de datos"
+msgstr "Url del repertorio de datos"
msgid "date"
-msgstr "fecha"
+msgstr "Fecha"
msgid "deactivate"
-msgstr "desactivar"
+msgstr "Desactivar"
msgid "deactivated"
-msgstr "desactivado"
+msgstr "Desactivado"
msgid "december"
-msgstr "diciembre"
+msgstr "Diciembre"
msgid "default"
-msgstr "valor por default"
+msgstr "Valor por defecto"
msgid "default text format for rich text fields."
-msgstr "formato de texto como opción por defecto para los campos texto"
+msgstr "Formato de texto como opción por defecto para los campos texto"
msgid "defaultval"
-msgstr "valor por defecto"
+msgstr "Valor por defecto"
msgid "define a CubicWeb user"
-msgstr "define un usuario CubicWeb"
+msgstr "Define un usuario CubicWeb"
msgid "define a CubicWeb users group"
-msgstr "define un grupo de usuarios CubicWeb"
+msgstr "Define un grupo de usuarios CubicWeb"
msgid ""
"define a final relation: link a final relation type from a non final entity "
"to a final entity type. used to build the application schema"
msgstr ""
-"define una relación no final: liga un tipo de relación no final desde una "
+"Define una relación no final: liga un tipo de relación no final desde una "
"entidad hacia un tipo de entidad no final. Utilizada para construir el "
"esquema de la aplicación"
@@ -1543,76 +1548,76 @@
"define a non final relation: link a non final relation type from a non final "
"entity to a non final entity type. used to build the application schema"
msgstr ""
-"define una relación 'atributo', utilizada para construir el esquema dela "
+"Define una relación 'atributo', utilizada para construir el esquema dela "
"aplicación"
msgid "define a relation type, used to build the application schema"
msgstr ""
-"define un tipo de relación, utilizada para construir el esquema de la "
+"Define un tipo de relación, utilizada para construir el esquema de la "
"aplicación"
msgid "define a rql expression used to define permissions"
msgstr "Expresión RQL utilizada para definir los derechos de acceso"
msgid "define a schema constraint"
-msgstr "define una condición de esquema"
+msgstr "Define una condición de esquema"
msgid "define a schema constraint type"
-msgstr "define un tipo de condición de esquema"
+msgstr "Define un tipo de condición de esquema"
msgid "define an entity type, used to build the application schema"
msgstr ""
-"define un tipo de entidad, utilizada para construir el esquema de la "
+"Define un tipo de entidad, utilizada para construir el esquema de la "
"aplicación"
msgid ""
"defines what's the property is applied for. You must select this first to be "
"able to set value"
msgstr ""
-"define a que se aplica la propiedad . Usted debe seleccionar esto antes de "
+"Define a que se aplica la propiedad . Usted debe seleccionar esto antes de "
"poder fijar un valor"
msgid "delete"
-msgstr "eliminar"
+msgstr "Eliminar"
msgid "delete this bookmark"
-msgstr "eliminar este atajo"
+msgstr "Eliminar este favorito"
msgid "delete this permission"
-msgstr "eliminar esta autorización"
+msgstr "Eliminar esta autorización"
msgid "delete this relation"
-msgstr "eliminar estar relación"
+msgstr "Eliminar esta relación"
msgid "delete_perm"
-msgstr "eliminar"
+msgstr "Eliminar"
msgid "delete_permission"
-msgstr "autorización de eliminar"
+msgstr "Autorización de eliminar"
msgid "delete_permission_object"
msgstr "posee la autorización de eliminar"
#, python-format
msgid "deleted %(etype)s #%(eid)s (%(title)s)"
-msgstr "eliminación de la entidad %(etype)s #%(eid)s (%(title)s)"
+msgstr "Eliminación de la entidad %(etype)s #%(eid)s (%(title)s)"
#, python-format
msgid ""
"deleted relation %(rtype)s from %(frometype)s #%(fromeid)s to %(toetype)s #%"
"(toeid)s"
msgstr ""
-"eliminación de la relación %(rtype)s de %(frometype)s #%(fromeid)s hacia %"
+"Eliminación de la relación %(rtype)s de %(frometype)s #%(fromeid)s hacia %"
"(toetype)s #%(toeid)s"
msgid "depends on the constraint type"
-msgstr "depende del tipo de condición"
+msgstr "Depende del tipo de condición"
msgid "description"
-msgstr "descripción"
+msgstr "Descripción"
msgid "description_format"
-msgstr "formato"
+msgstr "Formato"
msgid "destination state for this transition"
msgstr "Estado destino para esta transición"
@@ -1624,334 +1629,334 @@
msgstr "Estado destino"
msgid "destination_state_object"
-msgstr "destino de"
+msgstr "Destino de"
#, python-format
msgid "detach attached file %s"
-msgstr ""
+msgstr "Quitar archivo adjunto %s"
msgid "detailed schema view"
-msgstr "vista detallada del esquema"
+msgstr "Vista detallada del esquema"
msgid "display order of the action"
-msgstr "orden de aparición de la acción"
+msgstr "Orden de aparición de la acción"
msgid "display order of the box"
-msgstr "orden de aparición de la caja"
+msgstr "Orden de aparición de la caja"
msgid "display order of the component"
-msgstr "orden de aparición del componente"
+msgstr "Orden de aparición del componente"
msgid "display the action or not"
-msgstr "mostrar la acción o no"
+msgstr "Mostrar la acción o no"
msgid "display the box or not"
-msgstr "mostrar la caja o no"
+msgstr "Mostrar la caja o no"
msgid "display the component or not"
-msgstr "mostrar el componente o no"
+msgstr "Mostrar el componente o no"
msgid ""
"distinct label to distinguate between other permission entity of the same "
"name"
msgstr ""
-"etiqueta que permite distinguir esta autorización de otras que posean el "
+"Etiqueta que permite distinguir esta autorización de otras que posean el "
"mismo nombre"
msgid "download"
-msgstr "descargar"
+msgstr "Descargar"
msgid "download icon"
msgstr "ícono de descarga"
msgid "download schema as owl"
-msgstr ""
+msgstr "Descargar esquema en OWL"
msgid "edit bookmarks"
-msgstr "editar los atajos"
+msgstr "Editar favoritos"
msgid "edit the index page"
-msgstr "editar la página de inicio"
+msgstr "Modificar la página de inicio"
msgid "editable-table"
-msgstr "tabla modificable"
+msgstr "Tabla modificable"
msgid "edition"
-msgstr "edición"
+msgstr "Edición"
msgid "eid"
msgstr "eid"
msgid "element copied"
-msgstr "elemeto copiado"
+msgstr "Elemento copiado"
msgid "element created"
-msgstr "elemento creado"
+msgstr "Elemento creado"
msgid "element edited"
-msgstr "elemento editado"
+msgstr "Elemento editado"
msgid "email address to use for notification"
-msgstr "dirección electrónica a utilizarse para notificar"
+msgstr "Dirección electrónica a utilizarse para notificar"
msgid "emails successfully sent"
-msgstr "mensajes enviados con éxito"
+msgstr "Mensajes enviados con éxito"
msgid "embed"
-msgstr "incrustrado"
+msgstr "Incrustrado"
msgid "embedding this url is forbidden"
-msgstr "la inclusión de este url esta prohibida"
+msgstr "La inclusión de este url esta prohibida"
msgid "entities deleted"
-msgstr "entidades eliminadas"
+msgstr "Entidades eliminadas"
msgid "entity deleted"
-msgstr "entidad eliminada"
+msgstr "Entidad eliminada"
msgid "entity type"
-msgstr "tipo de entidad"
+msgstr "Tipo de entidad"
msgid ""
"entity type that may be used to construct some advanced security "
"configuration"
msgstr ""
-"tipo de entidqd utilizada para definir una configuración de seguridad "
+"Tipo de entidad utilizada para definir una configuración de seguridad "
"avanzada"
msgid "entity types which may use this state"
-msgstr "tipo de entidades que pueden utilizar este estado"
+msgstr "Tipo de entidades que pueden utilizar este estado"
msgid "entity types which may use this transition"
-msgstr "entidades que pueden utilizar esta transición"
+msgstr "Entidades que pueden utilizar esta transición"
msgid "error while embedding page"
-msgstr "error durante la inclusión de la página"
+msgstr "Error durante la inclusión de la página"
#, python-format
msgid "error while handling __method: %s"
-msgstr "error ocurrido durante el tratamiento del formulario (%s)"
+msgstr "Error ocurrido durante el tratamiento del formulario (%s)"
msgid "error while publishing ReST text"
msgstr ""
-"se ha producido un error durante la interpretación del texto en formatoReST"
+"Se ha producido un error durante la interpretación del texto en formatoReST"
#, python-format
msgid "error while querying source %s, some data may be missing"
msgstr ""
-"un error ha ocurrido al interrogar %s, es posible que los \n"
+"Un error ha ocurrido al interrogar %s, es posible que los \n"
"datos visibles se encuentren incompletos"
msgid "eta_date"
msgstr "fecha de fin"
msgid "expected:"
-msgstr "previsto :"
+msgstr "Previsto :"
msgid "expression"
-msgstr "expresión"
+msgstr "Expresión"
msgid "exprtype"
-msgstr "tipo de la expresión"
+msgstr "Tipo de la expresión"
msgid "external page"
-msgstr "página externa"
+msgstr "Página externa"
msgid "facetbox"
-msgstr "caja de facetas"
+msgstr "Caja de facetas"
msgid "facets_created_by-facet"
msgstr "faceta \"creada por\""
msgid "facets_created_by-facet_description"
-msgstr ""
+msgstr "faceta creado por"
msgid "facets_etype-facet"
msgstr "faceta \"es de tipo\""
msgid "facets_etype-facet_description"
-msgstr ""
+msgstr "faceta es de tipo"
msgid "facets_has_text-facet"
msgstr "faceta \"contiene el texto\""
msgid "facets_has_text-facet_description"
-msgstr ""
+msgstr "faceta contiene el texto"
msgid "facets_in_group-facet"
msgstr "faceta \"forma parte del grupo\""
msgid "facets_in_group-facet_description"
-msgstr ""
+msgstr "faceta en grupo"
msgid "facets_in_state-facet"
msgstr "faceta \"en el estado\""
msgid "facets_in_state-facet_description"
-msgstr ""
+msgstr "faceta en el estado"
msgid "february"
-msgstr "febrero"
+msgstr "Febrero"
msgid "file tree view"
-msgstr ""
+msgstr "File Vista Arborescencia"
msgid "final"
-msgstr "final"
+msgstr "Final"
msgid "firstname"
-msgstr "nombre"
+msgstr "Nombre"
msgid "foaf"
-msgstr ""
+msgstr "Amigo de un Amigo, FOAF"
msgid "follow"
-msgstr "seguir la liga"
+msgstr "Seguir la liga"
msgid "for_user"
-msgstr "para el usuario"
+msgstr "Para el usuario"
msgid "for_user_object"
-msgstr "utiliza las propiedades"
+msgstr "Utiliza las propiedades"
msgid "friday"
-msgstr "viernes"
+msgstr "Viernes"
msgid "from"
-msgstr "de"
+msgstr "De"
msgid "from_entity"
-msgstr "de la entidad"
+msgstr "De la entidad"
msgid "from_entity_object"
-msgstr "relación sujeto"
+msgstr "Relación sujeto"
msgid "from_state"
-msgstr "de el estado"
+msgstr "De el estado"
msgid "from_state_object"
-msgstr "transiciones desde este estado"
+msgstr "Transiciones desde este estado"
msgid "full text or RQL query"
-msgstr "texto de búsqueda o demanda RQL"
+msgstr "Texto de búsqueda o demanda RQL"
msgid "fulltext_container"
-msgstr "contenedor de texto indexado"
+msgstr "Contenedor de texto indexado"
msgid "fulltextindexed"
-msgstr "indexación de texto"
+msgstr "Indexación de texto"
msgid "generic plot"
-msgstr "trazado de curbas estándares"
+msgstr "Trazado de curbas estándares"
msgid "go back to the index page"
-msgstr "regresar a la página de inicio"
+msgstr "Regresar a la página de inicio"
msgid "granted to groups"
-msgstr "otorgado a los grupos"
+msgstr "Otorgado a los grupos"
msgid "graphical representation of the application'schema"
-msgstr "representación gráfica del esquema de la aplicación"
+msgstr "Representación gráfica del esquema de la aplicación"
#, python-format
msgid "graphical schema for %s"
-msgstr "gráfica del esquema por %s"
+msgstr "Gráfica del esquema por %s"
#, python-format
msgid "graphical workflow for %s"
-msgstr "gráfica del workflow por %s"
+msgstr "Gráfica del workflow por %s"
msgid "group in which a user should be to be allowed to pass this transition"
-msgstr "grupo en el cual el usuario debe estar para poder pasar la transición"
+msgstr "Grupo en el cual el usuario debe estar para poder pasar la transición"
msgid "groups"
-msgstr "grupos"
+msgstr "Grupos"
msgid "groups allowed to add entities/relations of this type"
-msgstr "grupos autorizados a agregar entidades/relaciones de este tipo"
+msgstr "Grupos autorizados a agregar entidades/relaciones de este tipo"
msgid "groups allowed to delete entities/relations of this type"
-msgstr "grupos autorizados a eliminar entidades/relaciones de este tipo"
+msgstr "Grupos autorizados a eliminar entidades/relaciones de este tipo"
msgid "groups allowed to read entities/relations of this type"
-msgstr "grupos autorizados a leer entidades/relaciones de este tipo"
+msgstr "Grupos autorizados a leer entidades/relaciones de este tipo"
msgid "groups allowed to update entities of this type"
-msgstr "grupos autorizados a actualizar entidades de este tipo"
+msgstr "Grupos autorizados a actualizar entidades de este tipo"
msgid "groups grant permissions to the user"
-msgstr "los grupos otorgan las autorizaciones al usuario"
+msgstr "Los grupos otorgan las autorizaciones al usuario"
msgid "groups to which the permission is granted"
-msgstr "grupos quienes tienen otorgada esta autorización"
+msgstr "Grupos quienes tienen otorgada esta autorización"
msgid "groups:"
-msgstr "grupos :"
+msgstr "Grupos :"
msgid "guests"
-msgstr "invitados"
+msgstr "Invitados"
msgid "hCalendar"
msgstr "hCalendar"
msgid "has_text"
-msgstr "contiene el texto"
+msgstr "Contiene el texto"
msgid "help"
-msgstr "ayuda"
+msgstr "Ayuda"
msgid "hide filter form"
-msgstr "esconder el filtro"
+msgstr "Esconder el filtro"
msgid "hide meta-data"
-msgstr "esconder los meta-datos"
+msgstr "Esconder los meta-datos"
msgid "home"
-msgstr "inicio"
+msgstr "Inicio"
msgid ""
"how to format date and time in the ui (\"man strftime\" for format "
"description)"
msgstr ""
-"como formatear la fecha en la interface (\"man strftime\" por la descripción "
+"Como formatear la fecha en la interface (\"man strftime\" por la descripción "
"del formato)"
msgid "how to format date in the ui (\"man strftime\" for format description)"
msgstr ""
-"como formatear la fecha en la interface (\"man strftime\" por la descripción "
+"Como formatear la fecha en la interface (\"man strftime\" por la descripción "
"del formato)"
msgid "how to format float numbers in the ui"
-msgstr "como formatear los números flotantes en la interface"
+msgstr "Como formatear los números flotantes en la interface"
msgid "how to format time in the ui (\"man strftime\" for format description)"
msgstr ""
-"como formatear la hora en la interface (\"man strftime\" por la descripción "
+"Como formatear la hora en la interface (\"man strftime\" por la descripción "
"del formato)"
msgid "html class of the component"
-msgstr "clase HTML de este componente"
+msgstr "Clase HTML de este componente"
msgid "htmlclass"
-msgstr "clase html"
+msgstr "Clase html"
msgid "i18n_login_popup"
-msgstr "identificarse"
+msgstr "Identificarse"
msgid "i18nprevnext_next"
-msgstr "siguiente"
+msgstr "Siguiente"
msgid "i18nprevnext_previous"
-msgstr "anterior"
+msgstr "Anterior"
msgid "i18nprevnext_up"
-msgstr "padre"
+msgstr "Padre"
msgid "iCalendar"
msgstr "iCalendar"
msgid "id of main template used to render pages"
-msgstr "id del template principal"
+msgstr "ID del template principal"
msgid "identical_to"
msgstr "idéntico a"
@@ -1966,23 +1971,23 @@
"if full text content of subject/object entity should be added to other side "
"entity (the container)."
msgstr ""
-"si el texto indexado de la entidad sujeto/objeto debe ser agregado a la "
+"Si el texto indexado de la entidad sujeto/objeto debe ser agregado a la "
"entidad a el otro extremo de la relación (el contenedor)."
msgid "image"
-msgstr "imagen"
+msgstr "Imagen"
msgid "in memory entity schema"
-msgstr "esquema de la entidad en memoria"
+msgstr "Esquema de la entidad en memoria"
msgid "in memory relation schema"
-msgstr "esquema de la relación en memoria"
+msgstr "Esquema de la relación en memoria"
msgid "in_group"
-msgstr "en el grupo"
+msgstr "En el grupo"
msgid "in_group_object"
-msgstr "miembros"
+msgstr "Miembros"
msgid "in_state"
msgstr "estado"
@@ -1991,67 +1996,67 @@
msgstr "estado de"
msgid "incontext"
-msgstr "en el contexto"
+msgstr "En el contexto"
#, python-format
msgid "incorrect value (%(value)s) for type \"%(type)s\""
msgstr "valor %(value)s incorrecto para el tipo \"%(type)s\""
msgid "index"
-msgstr "índice"
+msgstr "Indice"
msgid "index this attribute's value in the plain text index"
-msgstr "indexar el valor de este atributo en el índice de texto simple"
+msgstr "Indexar el valor de este atributo en el índice de texto simple"
msgid "indexed"
-msgstr "indexado"
+msgstr "Indexado"
msgid "indicate the current state of an entity"
-msgstr "indica el estado actual de una entidad"
+msgstr "Indica el estado actual de una entidad"
msgid ""
"indicate which state should be used by default when an entity using states "
"is created"
msgstr ""
-"indica cual estado deberá ser utilizado por defecto al crear una entidad"
+"Indica cual estado deberá ser utilizado por defecto al crear una entidad"
#, python-format
msgid "initial estimation %s"
-msgstr "estimación inicial %s"
+msgstr "Estimación inicial %s"
msgid "initial state for entities of this type"
-msgstr "estado inicial para las entidades de este tipo"
+msgstr "Estado inicial para las entidades de este tipo"
msgid "initial_state"
msgstr "estado inicial"
msgid "initial_state_object"
-msgstr "estado inicial de"
+msgstr "es el estado inicial de"
msgid "inlined"
-msgstr "puesto en línea"
+msgstr "Puesto en línea"
msgid "inlined view"
-msgstr "vista incluída (en línea)"
+msgstr "Vista incluída (en línea)"
msgid "internationalizable"
-msgstr "internacionalizable"
+msgstr "Internacionalizable"
#, python-format
msgid "invalid action %r"
-msgstr "acción %r invalida"
+msgstr "Acción %r invalida"
msgid "invalid date"
-msgstr "esta fecha no es válida"
+msgstr "Esta fecha no es válida"
msgid "is"
-msgstr "de tipo"
+msgstr "es"
msgid "is it an application entity type or not ?"
-msgstr "es una entidad aplicativa o no ?"
+msgstr "Es un Tipo de entidad en la aplicación o no ?"
msgid "is it an application relation type or not ?"
-msgstr "es una relación aplicativa o no ?"
+msgstr "Es una relación aplicativa o no ?"
msgid ""
"is the subject/object entity of the relation composed of the other ? This "
@@ -2061,53 +2066,53 @@
"ser así, el destruir el composite destruirá de igual manera sus componentes "
msgid "is this attribute's value translatable"
-msgstr "es el valor de este atributo traducible ?"
+msgstr "Es el valor de este atributo traducible ?"
msgid "is this relation equivalent in both direction ?"
-msgstr "es esta relación equivalente en los ambos sentidos ?"
+msgstr "Es esta relación equivalente en los ambos sentidos ?"
msgid ""
"is this relation physically inlined? you should know what you're doing if "
"you are changing this!"
msgstr ""
-"es esta relación puesta en línea en la base de datos ? Usted debe saber lo "
+"Es esta relación puesta en línea en la base de datos ? Usted debe saber lo "
"que hace si cambia esto !"
msgid "is_instance_of"
msgstr "es una instancia de"
msgid "is_instance_of_object"
-msgstr "tipo de"
+msgstr "tiene como instancias"
msgid "is_object"
msgstr "tiene por instancia"
msgid "january"
-msgstr "enero"
+msgstr "Enero"
msgid "july"
-msgstr "julio"
+msgstr "Julio"
msgid "june"
-msgstr "junio"
+msgstr "Junio"
msgid "label"
-msgstr "etiqueta"
+msgstr "Etiqueta"
msgid "language of the user interface"
-msgstr "idioma para la interface del usuario"
+msgstr "Idioma para la interface del usuario"
msgid "last connection date"
-msgstr "última fecha de conexión"
+msgstr "Ultima fecha de conexión"
msgid "last_login_time"
-msgstr "última fecha de conexión"
+msgstr "Ultima fecha de conexión"
msgid "latest modification time of an entity"
-msgstr "fecha de la última modificación de una entidad "
+msgstr "Fecha de la última modificación de una entidad "
msgid "latest update on"
-msgstr "última actualización"
+msgstr "actualizado el"
msgid "left"
msgstr "izquierda"
@@ -2116,7 +2121,7 @@
"link a property to the user which want this property customization. Unless "
"you're a site manager, this relation will be handled automatically."
msgstr ""
-"liga una propiedad a el usuario que desea esta personalización. A menos que "
+"Liga una propiedad a el usuario que desea esta personalización. Salvo que "
"usted sea un administrador del sistema, esta relación es gestionada "
"automáticamente."
@@ -2127,214 +2132,215 @@
msgstr "liga una definición de relación a su tipo de relación"
msgid "link a relation definition to its subject entity type"
-msgstr "lie une dÈfinition de relation ‡ son type d'entitÈ sujet"
+msgstr "liga una definición de relación a su tipo de entidad"
msgid "link a state to one or more entity type"
-msgstr "lier un Ètat ‡ une ou plusieurs entitÈs"
+msgstr "liga un estado a una o mas entidades"
msgid "link a transition information to its object"
-msgstr "liÈ une enregistrement de transition vers l'objet associÈ"
+msgstr "liga una transcion de informacion a los objetos asociados"
msgid "link a transition to one or more entity type"
-msgstr "lie une transition ‡ un ou plusieurs types d'entitÈs"
+msgstr "liga una transición a una o mas tipos de entidad"
msgid ""
"link a transition to one or more rql expression allowing to go through this "
"transition"
msgstr ""
+"liga una transición a una o mas expresiones RQL permitiendo que funcione"
msgid "link to each item in"
-msgstr "lier vers chaque ÈlÈment dans"
+msgstr "ligar hacia cada elemento en"
msgid "list"
-msgstr "liste"
+msgstr "Lista"
msgid "loading"
-msgstr ""
+msgstr "Cargando"
msgid "log in"
-msgstr "s'identifier"
+msgstr "Identificarse"
msgid "login"
-msgstr "identifiant"
+msgstr "Clave de acesso"
msgid "login_action"
-msgstr "identifiez vous"
+msgstr "Ingresa tus datos"
msgid "logout"
-msgstr "se dÈconnecter"
+msgstr "Desconectarse"
#, python-format
msgid "loop in %(rel)s relation (%(eid)s)"
-msgstr "boucle dÈtectÈe en parcourant la relation %(rel)s de l'entitÈ #%(eid)s"
+msgstr "loop detectado en %(rel)s de la entidad #%(eid)s"
msgid "main informations"
-msgstr "Informations gÈnÈrales"
+msgstr "Informaciones Generales"
msgid "mainvars"
-msgstr "variables principales"
+msgstr "Principales variables"
msgid "manage"
-msgstr "gestion du site"
+msgstr "Administracion del Sitio"
msgid "manage bookmarks"
-msgstr "gÈrer les signets"
+msgstr "Administra tus favoritos"
msgid "manage permissions"
-msgstr ""
+msgstr "Administración de Autorizaciones"
msgid "manage security"
-msgstr "gestion de la sÈcuritÈ"
+msgstr "Administración de la Seguridad"
msgid "managers"
-msgstr "administrateurs"
+msgstr "editores"
msgid "march"
-msgstr "mars"
+msgstr "Marzo"
msgid "maximum number of characters in short description"
-msgstr "nombre maximum de caractËres dans les descriptions courtes"
+msgstr "Numero maximo de caracteres en las descripciones cortas"
msgid "maximum number of entities to display in related combo box"
-msgstr "nombre maximum d'entitÈs ‡ afficher dans les listes dÈroulantes"
+msgstr "Numero maximo de entidades a mostrar en las listas dinamicas"
msgid "maximum number of objects displayed by page of results"
-msgstr "nombre maximum d'entitÈs affichÈes par pages"
+msgstr "Numero maximo de objetos mostrados por pagina de resultados"
msgid "maximum number of related entities to display in the primary view"
-msgstr "nombre maximum d'entitÈs liÈes ‡ afficher dans la vue primaire"
+msgstr "Numero maximo de entidades ligadas a mostrar en la vista primaria"
msgid "may"
-msgstr "mai"
+msgstr "Mayo"
msgid "meta"
-msgstr "mÈta"
+msgstr "Meta"
msgid "milestone"
-msgstr "jalon"
+msgstr "Milestone"
#, python-format
msgid "missing parameters for entity %s"
-msgstr "paramËtres manquants pour l'entitÈ %s"
+msgstr "Parametros faltantes a la entidad %s"
msgid "modification_date"
-msgstr "date de modification"
+msgstr "Fecha de modificacion"
msgid "modify"
-msgstr "modifier"
+msgstr "Modificar"
msgid "monday"
-msgstr "lundi"
+msgstr "Lundi"
msgid "more actions"
-msgstr "plus d'actions"
+msgstr "mas acciones"
msgid "multiple edit"
-msgstr "Èdition multiple"
+msgstr "Edicion multiple"
msgid "my custom search"
-msgstr "ma recherche personnalisÈe"
+msgstr "Mi busqueda personalizada"
msgid "name"
-msgstr "nom"
+msgstr "Nombre"
msgid "name of the cache"
-msgstr "nom du cache applicatif"
+msgstr "Nombre del Cache"
msgid ""
"name of the main variables which should be used in the selection if "
"necessary (comma separated)"
msgstr ""
-"nom des variables principaes qui devrait Ítre utilisÈes dans la sÈlection si "
-"nÈcessaire (les sÈparer par des virgules)"
+"Nombre de las variables principales que deberian se utilizadas en la selección"
+"de ser necesario (separarlas con comas)"
msgid "name or identifier of the permission"
-msgstr "nom (identifiant) de la permission"
+msgstr "Nombre o indentificador de la autorización"
msgid "navbottom"
-msgstr "bas de page"
+msgstr "Pie de pagina"
msgid "navcontentbottom"
-msgstr "bas de page du contenu principal"
+msgstr "Pie de pagina del contenido principal"
msgid "navcontenttop"
-msgstr "haut de page"
+msgstr "Encabezado"
msgid "navigation"
-msgstr "navigation"
+msgstr "Navegación"
msgid "navtop"
-msgstr "haut de page du contenu principal"
+msgstr "Encabezado del contenido principal"
msgid "new"
-msgstr "nouveau"
+msgstr "Nuevo"
msgid "next_results"
-msgstr "rÈsultats suivants"
+msgstr "Siguientes resultados"
msgid "no"
-msgstr "non"
+msgstr "no"
msgid "no associated epermissions"
-msgstr "aucune permission spÈcifique n'est dÈfinie"
+msgstr "permisos no asociados"
msgid "no possible transition"
-msgstr "aucune transition possible"
+msgstr "transición no posible"
msgid "no related project"
-msgstr "pas de projet rattachÈ"
+msgstr "no hay proyecto relacionado"
msgid "no selected entities"
-msgstr "pas d'entitÈ sÈlectionnÈe"
+msgstr "no hay entidades seleccionadas"
#, python-format
msgid "no such entity type %s"
-msgstr "le type d'entitÈ '%s' n'existe pas"
+msgstr "el tipo de entidad '%s' no existe"
msgid "no version information"
-msgstr "pas d'information de version"
+msgstr "no información de version"
msgid "not authorized"
-msgstr "non autorisÈ"
+msgstr "no autorizado"
msgid "not selected"
-msgstr ""
+msgstr "no seleccionado"
msgid "not specified"
-msgstr "non spÈcifiÈ"
+msgstr "no especificado"
msgid "not the initial state for this entity"
-msgstr "n'est pas l'Ètat initial pour cette entitÈ"
+msgstr "no el estado inicial para esta entidad"
msgid "nothing to edit"
-msgstr "rien ‡ Èditer"
+msgstr "nada que editar"
msgid "november"
-msgstr "novembre"
+msgstr "noviembre"
msgid "object"
-msgstr "objet"
+msgstr "objeto"
msgid "october"
-msgstr "octobre"
+msgstr "octubre"
msgid "one month"
-msgstr "un mois"
+msgstr "un mes"
msgid "one week"
-msgstr "une semaine"
+msgstr "una semana"
msgid "oneline"
-msgstr "une ligne"
+msgstr "una linea"
msgid "only select queries are authorized"
-msgstr "seules les requÍtes de sÈlections sont autorisÈes"
+msgstr "solo estan permitidas consultas de lectura"
msgid "order"
-msgstr "ordre"
+msgstr "orden"
msgid "ordernum"
-msgstr "ordre"
+msgstr "orden"
msgid "owl"
msgstr ""
@@ -2343,178 +2349,177 @@
msgstr ""
msgid "owned_by"
-msgstr "appartient ‡"
+msgstr "pertenece a"
msgid "owned_by_object"
-msgstr "possËde"
+msgstr "pertenece al objeto"
msgid "owners"
-msgstr "propriÈtaires"
+msgstr "proprietarios"
msgid "ownership"
-msgstr "propriÈtÈ"
+msgstr "pertenencia"
msgid "ownerships have been changed"
-msgstr "les droits de propriÈtÈ ont ÈtÈ modifiÈs"
+msgstr "la pertenencia ha sido modificada"
msgid "pageid-not-found"
msgstr ""
-"des donnÈes nÈcessaires semblent expirÈes, veuillez recharger la page et "
-"recommencer."
+"pagina no encontrada."
msgid "password"
-msgstr "mot de passe"
+msgstr "Clave de acceso"
msgid "password and confirmation don't match"
-msgstr "le mot de passe et la confirmation sont diffÈrents"
+msgstr "La clave de acceso y la confirmación no concuerdan"
msgid "path"
-msgstr "chemin"
+msgstr "Ruta"
msgid "permission"
-msgstr "permission"
+msgstr "Permiso"
msgid "permissions for this entity"
-msgstr "permissions pour cette entitÈ"
+msgstr "Permisos para esta entidad"
msgid "personnal informations"
-msgstr "informations personnelles"
+msgstr "Información personal"
msgid "pick existing bookmarks"
-msgstr "rÈcupÈrer des signets existants"
+msgstr "Seleccione los favoritos existentes"
msgid "pkey"
-msgstr "clÈ"
+msgstr ""
msgid "planned_delivery"
-msgstr ""
+msgstr "entrega planeada"
msgid "please correct errors below"
-msgstr "veuillez corriger les erreurs ci-dessous"
+msgstr "Favor de corregir errores"
msgid "please correct the following errors:"
-msgstr "veuillez corriger les erreurs suivantes :"
+msgstr "Favor de corregir los siguientes errores :"
msgid "possible views"
-msgstr "vues possibles"
+msgstr "Vistas posibles"
msgid "preferences"
-msgstr "prÈfÈrences"
+msgstr "Preferencias"
msgid "previous_results"
-msgstr "rÈsultats prÈcÈdents"
+msgstr "Resultados anteriores"
msgid "primary"
-msgstr "primaire"
+msgstr "Primaria"
msgid "primary_email"
-msgstr "adresse email principale"
+msgstr "Dirección de email principal"
msgid "primary_email_object"
-msgstr "adresse email principale (object)"
+msgstr "Dirección de email principal (objeto)"
msgid "progress"
-msgstr "avancement"
+msgstr "Avance"
msgid "progress bar"
-msgstr "barre d'avancement"
+msgstr "Barra de progreso de avance"
msgid "project"
-msgstr "projet"
+msgstr "Proyecto"
msgid "read"
-msgstr "lecture"
+msgstr "Lectura"
msgid "read_perm"
-msgstr "lecture"
+msgstr "Lectura"
msgid "read_permission"
-msgstr "permission de lire"
+msgstr "Permiso de lectura"
msgid "read_permission_object"
-msgstr "a la permission de lire"
+msgstr "Objeto_permiso_lectura"
#, python-format
msgid "relation %(relname)s of %(ent)s"
-msgstr "relation %(relname)s de %(ent)s"
+msgstr "relación %(relname)s de %(ent)s"
msgid "relation_type"
-msgstr "type de relation"
+msgstr "tipo de relación"
msgid "relation_type_object"
-msgstr "dÈfinition"
+msgstr "Definición"
msgid "relations deleted"
-msgstr "relations supprimÈes"
+msgstr "Relaciones eliminadas"
msgid "relative url of the bookmarked page"
-msgstr "url relative de la page"
+msgstr "Url relativa de la pagina"
msgid "remove this Bookmark"
-msgstr "supprimer ce signet"
+msgstr "Eliminar este Favorito"
msgid "remove this Card"
-msgstr "supprimer cette fiche"
+msgstr "Eliminar esta Ficha"
msgid "remove this ECache"
-msgstr "supprimer ce cache applicatif"
+msgstr "Eliminar esta cache de aplicación"
msgid "remove this EConstraint"
-msgstr "supprimer cette contrainte"
+msgstr "Eliminar esta restricción"
msgid "remove this EConstraintType"
-msgstr "supprimer ce type de contrainte"
+msgstr "Eliminar este tipo de restricción"
msgid "remove this EEType"
-msgstr "supprimer ce type d'entitÈ"
+msgstr "Eliminar este tipo de entidad"
msgid "remove this EFRDef"
-msgstr "supprimer cet attribut"
+msgstr "Eliminar este atributo"
msgid "remove this EGroup"
-msgstr "supprimer ce groupe"
+msgstr "Eliminar este grupo"
msgid "remove this ENFRDef"
-msgstr "supprimer cette relation"
+msgstr "Eliminar esta relación"
msgid "remove this EPermission"
-msgstr "supprimer cette permission"
+msgstr "Eliminar este permiso"
msgid "remove this EProperty"
-msgstr "supprimer cette propriÈtÈ"
+msgstr "Eliminar esta propiedad"
msgid "remove this ERType"
-msgstr "supprimer cette dÈfinition de relation"
+msgstr "Eliminar esta definición de relación"
msgid "remove this EUser"
-msgstr "supprimer cet utilisateur"
+msgstr "Eliminar este usuario"
msgid "remove this EmailAddress"
-msgstr "supprimer cette adresse email"
+msgstr "Eliminar este correo electronico"
msgid "remove this RQLExpression"
-msgstr "supprimer cette expression rql"
+msgstr "Eliminar esta expresión RQL"
msgid "remove this State"
-msgstr "supprimer cet Ètat"
+msgstr "Eliminar este estado"
msgid "remove this TrInfo"
-msgstr "retirer cette information de transition"
+msgstr "Eliminar información de esta transición"
msgid "remove this Transition"
-msgstr "supprimer cette transition"
+msgstr "Eliminar esta transición"
msgid "require_group"
-msgstr "nÈcessite le groupe"
+msgstr "Requiere_grupo"
msgid "require_group_object"
-msgstr "‡ les droits"
+msgstr "Objeto_grupo_requerido"
msgid "required attribute"
-msgstr "attribut requis"
+msgstr "Atributo requerido"
msgid "required field"
-msgstr "champ requis"
+msgstr "Campo requerido"
msgid ""
"restriction part of a rql query. For entity rql expression, X and U are "
@@ -2522,460 +2527,458 @@
"relation rql expression, S, O and U are predefined respectivly to the "
"current relation'subject, object and to the request user. "
msgstr ""
-"partie restriction de la requÍte rql. Pour une expression s'appliquant ‡ une "
-"entitÈ, X et U sont respectivement prÈfÈfinis ‡ l'entitÈ et ‡ l'utilisateur "
-"courant. Pour une expression s'appliquant ‡ une relation, S, O et U sont "
-"respectivement prÈfÈfinis au sujet/objet de la relation et ‡ l'utilisateur "
-"courant."
+"restriction part of a rql query. For entity rql expression, X and U are "
+"predefined respectivly to the current object and to the request user. For "
+"relation rql expression, S, O and U are predefined respectivly to the "
+"current relation'subject, object and to the request user. "
msgid "revert changes"
-msgstr "annuler les changements"
+msgstr "Revertir cambios"
msgid "right"
-msgstr "droite"
+msgstr "Derecha"
msgid "rql expression allowing to add entities/relations of this type"
msgstr ""
-"expression RQL donnant le droit d'ajouter des entitÈs/relations de ce type"
+"expresion RQL permitiendo agregar entidades/relaciones de este tipo"
msgid "rql expression allowing to delete entities/relations of this type"
msgstr ""
-"expression RQL donnant le droit de supprimer des entitÈs/relations de ce type"
+"expresion RQL permitiendo eliminar entidades/relaciones de este tipo"
msgid "rql expression allowing to read entities/relations of this type"
msgstr ""
-"expression RQL donnant le droit de lire des entitÈs/relations de ce type"
+"expresion RQL permitiendo leer entidades/relaciones de este tipo"
msgid "rql expression allowing to update entities of this type"
msgstr ""
-"expression RQL donnant le droit de modifier des entitÈs/relations de ce type"
+"expresion RQL permitiendo actualizar entidades de este tipo"
msgid "rql expressions"
-msgstr "conditions rql"
+msgstr "expresiones rql"
msgid "rss"
msgstr "RSS"
msgid "sample format"
-msgstr "exemple"
+msgstr "ejemplo"
msgid "saturday"
-msgstr "samedi"
+msgstr "sabado"
msgid "schema entities"
-msgstr "entitÈs dÈfinissant le schÈma"
+msgstr "entidades del esquema"
msgid "schema's permissions definitions"
-msgstr "permissions dÈfinies dans le schÈma"
+msgstr "definiciones de permisos del esquema"
msgid "search"
-msgstr "rechercher"
+msgstr "buscar"
msgid "search for association"
-msgstr "rechercher pour associer"
+msgstr "buscar por asociación"
msgid "searching for"
-msgstr "Recherche de"
+msgstr "buscando "
msgid "secondary"
-msgstr "secondaire"
+msgstr "secundario"
msgid "security"
-msgstr "sÈcuritÈ"
+msgstr "seguridad"
msgid "see them all"
-msgstr "les voir toutes"
+msgstr "Ver todos"
msgid "select"
-msgstr "sÈlectionner"
+msgstr "Seleccionar"
msgid "select a"
-msgstr "sÈlectionner un"
+msgstr "seleccione un"
msgid "select a relation"
-msgstr "sÈlectionner une relation"
+msgstr "seleccione una relación"
msgid "select this entity"
-msgstr "sÈlectionner cette entitÈ"
+msgstr "seleccionar esta entidad"
msgid "selected"
-msgstr ""
+msgstr "seleccionado"
msgid "semantic description of this attribute"
-msgstr "description sÈmantique de cet attribut"
+msgstr "descripción semantica de este atributo"
msgid "semantic description of this entity type"
-msgstr "description sÈmantique de ce type d'entitÈ"
+msgstr "descripción semantica de este tipo de entidad"
msgid "semantic description of this relation"
-msgstr "description sÈmantique de cette relation"
+msgstr "descripción semantica de esta relación"
msgid "semantic description of this relation type"
-msgstr "description sÈmantique de ce type de relation"
+msgstr "descripción semantica de este tipo de relación"
msgid "semantic description of this state"
-msgstr "description sÈmantique de cet Ètat"
+msgstr "descripción semantica de este estado"
msgid "semantic description of this transition"
-msgstr "description sÈmantique de cette transition"
+msgstr "descripcion semantica de esta transición"
msgid "send email"
-msgstr "envoyer un courriel"
+msgstr "enviar email"
msgid "september"
-msgstr "septembre"
+msgstr "septiembre"
msgid "server debug information"
-msgstr "informations de dÈboguage serveur"
+msgstr "server debug information"
msgid "server information"
-msgstr "informations serveur"
+msgstr "server information"
msgid ""
"should html fields being edited using fckeditor (a HTML WYSIWYG editor). "
"You should also select text/html as default text format to actually get "
"fckeditor."
msgstr ""
-"indique si les champs HTML doivent Ítre Èditer avec fckeditor (un\n"
-"Èditer HTML WYSIWYG). Il est Ègalement conseill'de choisir text/html\n"
-"comme format de texte par dÈfaut pour pouvoir utiliser fckeditor."
+"indique si los campos deberan ser editados usando fckeditor (un\n"
+"editor HTML WYSIWYG). Debera tambien elegir text/html\n"
+"como formato de texto por default para poder utilizar fckeditor."
#, python-format
msgid "show %s results"
-msgstr "montrer %s rÈsultats"
+msgstr "mostrar %s resultados"
msgid "show advanced fields"
-msgstr "montrer les champs avancÈs"
+msgstr "mostrar campos avanzados"
msgid "show filter form"
msgstr "afficher le filtre"
msgid "show meta-data"
-msgstr "afficher les mÈta-donnÈes"
+msgstr "mostrar meta-data"
msgid "site configuration"
-msgstr "configuration du site"
+msgstr "configuracion del sitio"
msgid "site documentation"
-msgstr "documentation du site"
+msgstr "documentacion del sitio"
msgid "site schema"
-msgstr "schÈma du site"
+msgstr "esquema del sitio"
msgid "site title"
-msgstr "titre du site"
+msgstr "titulo del sitio"
msgid "site-wide property can't be set for user"
-msgstr "une propriÈtÈ spÈcifique au site ne peut Ítre propre ‡ un utilisateur"
+msgstr "una propiedad especifica para el sitio no puede establecerse para el usuario"
msgid "sorry, the server is unable to handle this query"
-msgstr "dÈsolÈ, le serveur ne peut traiter cette requÍte"
+msgstr "lo sentimos, el servidor no puede manejar esta consulta"
msgid "specializes"
-msgstr "dÈrive de"
+msgstr "derivado de"
msgid "specializes_object"
-msgstr "parent de"
+msgstr "objeto_derivado"
msgid "startup views"
-msgstr "vues de dÈpart"
+msgstr "vistas de inicio"
msgid "state"
-msgstr "Ètat"
+msgstr "estado"
msgid "state_of"
-msgstr "Ètat de"
+msgstr "estado_de"
msgid "state_of_object"
-msgstr "a pour Ètat"
+msgstr "objeto_estado_de"
msgid "status change"
-msgstr "changer l'Ètat"
+msgstr "cambio de estatus"
msgid "status changed"
-msgstr "changement d'Ètat"
+msgstr "estatus cambiado"
#, python-format
msgid "status will change from %(st1)s to %(st2)s"
-msgstr "l'entitÈ passera de l'Ètat %(st1)s ‡ l'Ètat %(st2)s"
+msgstr "estatus cambiara de %(st1)s a %(st2)s"
msgid "subject"
-msgstr "sujet"
+msgstr "sujeto"
msgid "subject/object cardinality"
-msgstr "cardinalitÈ sujet/objet"
+msgstr "cardinalidad sujeto/objeto"
msgid "sunday"
-msgstr "dimanche"
+msgstr "domingo"
msgid "surname"
-msgstr "nom"
+msgstr "apellido"
msgid "symetric"
-msgstr "symÈtrique"
+msgstr "simetrico"
msgid "synopsis"
-msgstr "synopsis"
+msgstr "sinopsis"
msgid "system entities"
-msgstr "entitÈs systËmes"
+msgstr "entidades de sistema"
msgid "table"
-msgstr "table"
+msgstr "tabla"
msgid "tablefilter"
-msgstr "filtre de tableau"
+msgstr "filtro de tabla"
msgid "task progression"
-msgstr "avancement de la t‚che"
+msgstr "progreso de la tarea"
msgid "text"
msgstr "text"
msgid "text/cubicweb-page-template"
-msgstr "contenu dynamique"
+msgstr "text/cubicweb-page-template"
msgid "text/html"
msgstr "html"
msgid "text/plain"
-msgstr "texte pur"
+msgstr "text/plain"
msgid "text/rest"
-msgstr "ReST"
+msgstr "text/rest"
msgid "the prefered email"
-msgstr "l'adresse Èlectronique principale"
+msgstr "dirección principal de email"
#, python-format
msgid "the value \"%s\" is already used, use another one"
-msgstr "la valeur \"%s\" est dÈj‡ utilisÈe, veuillez utiliser une autre valeur"
+msgstr "el valor \"%s\" ya esta en uso, favor de utilizar otro"
msgid "this action is not reversible!"
msgstr ""
-"Attention ! Cette opÈration va dÈtruire les donnÈes de faÁon irrÈversible."
+"esta acción es irreversible!."
msgid "this entity is currently owned by"
-msgstr "cette entitÈ appartient ‡"
+msgstr "esta entidad es propiedad de"
msgid "this resource does not exist"
-msgstr "cette ressource est introuvable"
+msgstr "este recurso no existe"
msgid "thursday"
-msgstr "jeudi"
+msgstr "jueves"
msgid "timestamp"
-msgstr "date"
+msgstr "fecha"
msgid "timestamp of the latest source synchronization."
-msgstr "date de la derniËre synchronisation avec la source."
+msgstr "fecha de la ultima sincronización de la fuente."
msgid "timetable"
-msgstr "emploi du temps"
+msgstr "tabla de tiempos"
msgid "title"
-msgstr "titre"
+msgstr "titulo"
msgid "to"
-msgstr "‡"
+msgstr "a"
msgid "to associate with"
-msgstr "pour associer ‡"
+msgstr "a asociar con"
msgid "to_entity"
-msgstr "vers l'entitÈ"
+msgstr "hacia entidad"
msgid "to_entity_object"
-msgstr "relation objet"
+msgstr "hacia entidad objeto"
msgid "to_state"
-msgstr "vers l'Ètat"
+msgstr "hacia el estado"
msgid "to_state_object"
-msgstr "transitions vers cette Ètat"
+msgstr "hacia objeto estado"
msgid "todo_by"
-msgstr "‡ faire par"
+msgstr "a hacer por"
msgid "transition is not allowed"
-msgstr "transition non permise"
+msgstr "transition no permitida"
msgid "transition_of"
-msgstr "transition de"
+msgstr "transicion de"
msgid "transition_of_object"
-msgstr "a pour transition"
+msgstr "objeto de transición"
msgid "tree view"
msgstr ""
msgid "tuesday"
-msgstr "mardi"
+msgstr "martes"
msgid "type"
msgstr "type"
msgid "ui"
-msgstr "propriÈtÈs gÈnÈriques de l'interface"
+msgstr "interfaz de usuario"
msgid "unaccessible"
-msgstr "inaccessible"
+msgstr "inaccesible"
msgid "unauthorized value"
-msgstr "valeur non autorisÈe"
+msgstr "valor no permitido"
msgid "unique identifier used to connect to the application"
-msgstr "identifiant unique utilisÈ pour se connecter ‡ l'application"
+msgstr "identificador unico utilizado para conectar a la aplicación"
msgid "unknown external entity"
-msgstr "entitÈ (externe) introuvable"
+msgstr "entidad externa desconocida"
msgid "unknown property key"
-msgstr "clÈ de propriÈtÈ inconnue"
+msgstr "propiedad desconocida"
msgid "upassword"
-msgstr "mot de passe"
+msgstr "clave de acceso"
msgid "update"
-msgstr "modification"
+msgstr "modificación"
msgid "update_perm"
-msgstr "modification"
+msgstr "modificación"
msgid "update_permission"
-msgstr "permission de modification"
+msgstr "Permiso de modificación"
msgid "update_permission_object"
-msgstr "‡ la permission de modifier"
+msgstr "objeto de autorización de modificaciones"
#, python-format
msgid "updated %(etype)s #%(eid)s (%(title)s)"
-msgstr "modification de l'entitÈ %(etype)s #%(eid)s (%(title)s)"
+msgstr "actualización de la entidad %(etype)s #%(eid)s (%(title)s)"
msgid "use template languages"
-msgstr "utiliser les langages de template"
+msgstr "utilizar plantillas de lenguaje"
msgid ""
"use to define a transition from one or multiple states to a destination "
"states in workflow's definitions."
msgstr ""
-"utiliser dans une dÈfinition de processus pour ajouter une transition depuis "
-"un ou plusieurs Ètats vers un Ètat de destination."
+"utilizado para definir una transición desde uno o multiples estados hacia uno o varios estados destino "
+"en las definiciones del workflow"
msgid "use_email"
-msgstr "adresse Èlectronique"
+msgstr "correo electrónico"
msgid "use_email_object"
-msgstr "adresse utilisÈe par"
+msgstr "objeto email utilizado"
msgid "use_template_format"
-msgstr "utilisation du format 'cubicweb template'"
+msgstr "utilización del formato 'cubicweb template'"
msgid ""
"used for cubicweb configuration. Once a property has been created you can't "
"change the key."
msgstr ""
-"utilisÈ pour la configuration de l'application. Une fois qu'une propriÈtÈ a "
-"ÈtÈ crÈÈe, vous ne pouvez plus changez la clÈ associÈe"
+"utilizado para la configuración de cubicweb. Una vez que la propiedad ha sido creada no "
+"puede cambiar la llave"
msgid ""
"used to associate simple states to an entity type and/or to define workflows"
-msgstr "associe les Ètats ‡ un type d'entitÈ pour dÈfinir un workflow"
+msgstr "utilizado para asociar estados simples a un tipo de entidad y/o para definir workflows"
msgid "used to grant a permission to a group"
-msgstr "utiliser pour donner une permission ‡ un groupe"
+msgstr "utilizado para otorgar permisos a un grupo"
#, python-format
msgid ""
"user %s has made the following change(s):\n"
"\n"
msgstr ""
-"l'utilisateur %s a effectuÈ le(s) changement(s) suivant(s):\n"
+"el usuario %s ha efectuado los siguentes cambios:\n"
"\n"
msgid ""
"user for which this property is applying. If this relation is not set, the "
"property is considered as a global property"
msgstr ""
-"utilisateur a qui s'applique cette propriÈtÈ. Si cette relation n'est pas "
-"spÈcifiÈe la propriÈtÈ est considÈrÈe comme globale."
+"usuario para el cual aplica esta propiedad. Si no se establece esta relación, la propiedad es considerada como una propiedad global."
msgid "user interface encoding"
-msgstr "encodage utilisÈ dans l'interface utilisateur"
+msgstr "codificación de la interfaz de usuario"
msgid "user preferences"
-msgstr "prÈfÈrences utilisateur"
+msgstr "preferencias del usuario"
msgid "users"
-msgstr "utilisateurs"
+msgstr "usuarios"
msgid "users using this bookmark"
-msgstr "utilisateurs utilisant ce signet"
+msgstr "usuarios en este favorito"
msgid "validate modifications on selected items"
-msgstr "valider les modifications apportÈes aux ÈlÈments sÈlectionnÈs"
+msgstr "valida modificaciones sobre elementos seleccionados"
msgid "validating..."
-msgstr "chargement en cours ..."
+msgstr "validando ..."
msgid "value"
-msgstr "valeur"
+msgstr "valor"
msgid "value associated to this key is not editable manually"
-msgstr "la valeur associÈe ‡ cette clÈ n'est pas Èditable manuellement"
+msgstr "el valor asociado a este elemento no es editable manualmente"
msgid "vcard"
msgstr "vcard"
msgid "view"
-msgstr "voir"
+msgstr "ver"
msgid "view all"
-msgstr "voir tous"
+msgstr "ver todos"
msgid "view detail for this entity"
-msgstr "voir les dÈtails de cette entitÈ"
+msgstr "ver detalle de esta entidad"
msgid "view workflow"
-msgstr "voir les Ètats possibles"
+msgstr "ver workflow"
msgid "views"
-msgstr "vues"
+msgstr "vistas"
msgid "visible"
msgstr "visible"
msgid "wednesday"
-msgstr "mercredi"
+msgstr "miercoles"
msgid "week"
msgstr "sem."
#, python-format
msgid "welcome %s !"
-msgstr "bienvenue %s !"
+msgstr "bienvenido %s !"
msgid "wf_info_for"
-msgstr "historique de"
+msgstr "historial de"
msgid "wf_info_for_object"
-msgstr "historique des transitions"
+msgstr "historial de transiciones"
msgid ""
"when multiple addresses are equivalent (such as python-projects@logilab.org "
"and python-projects@lists.logilab.org), set this to true on one of them "
"which is the preferred form."
msgstr ""
-"quand plusieurs adresses sont Èquivalentes (comme python-projects@logilab."
-"org et python-projects@lists.logilab.org), mettez cette propriÈtÈ ‡ vrai sur "
-"l'une d'entre-elle qui sera la forme canonique"
+"cuando multiples direcciones de correo son equivalentes (como python-projects@logilab.org "
+"y python-projects@lists.logilab.org), establecer esto como verdadero en una de ellas "
+"es la forma preferida "
msgid "wikiid"
-msgstr "identifiant wiki"
+msgstr "identificador wiki"
#, python-format
msgid "workflow for %s"
-msgstr "workflow pour %s"
+msgstr "workflow para %s"
msgid "xbel"
msgstr "xbel"
@@ -2987,10 +2990,10 @@
msgstr ""
msgid "yes"
-msgstr "oui"
+msgstr "si"
msgid "you have been logged out"
-msgstr "vous avez ÈtÈ dÈconnectÈ"
+msgstr "ha terminado la sesion"
#~ msgid "%s constraint failed"
#~ msgstr "La contrainte %s n'est pas satisfaite"
--- a/schemas/base.py Wed Apr 22 09:46:13 2009 -0500
+++ b/schemas/base.py Thu Apr 30 12:27:32 2009 +0200
@@ -328,6 +328,6 @@
'delete': ('managers',),
}
- name = String(required=True, unique=True, indexed=True,
+ name = String(required=True, unique=True, indexed=True, maxsize=128,
description=_('name of the cache'))
timestamp = Datetime(default='NOW')
--- a/skeleton/__pkginfo__.py.tmpl Wed Apr 22 09:46:13 2009 -0500
+++ b/skeleton/__pkginfo__.py.tmpl Thu Apr 30 12:27:32 2009 +0200
@@ -31,7 +31,8 @@
def listdir(dirpath):
return [join(dirpath, fname) for fname in _listdir(dirpath)
if fname[0] != '.' and not fname.endswith('.pyc')
- and not fname.endswith('~')]
+ and not fname.endswith('~')
+ and not isdir(join(dirpath, fname))]¶
from glob import glob
try:
--- a/web/views/baseviews.py Wed Apr 22 09:46:13 2009 -0500
+++ b/web/views/baseviews.py Thu Apr 30 12:27:32 2009 +0200
@@ -158,7 +158,7 @@
self.render_entity_metadata(entity)
# entity's attributes and relations, excluding meta data
# if the entity isn't meta itself
- boxes = self._preinit_side_related(entity) or siderelations
+ boxes = self._preinit_side_related(entity, siderelations)
if boxes:
self.w(u'<table width="100%"><tr><td width="75%">')
self.w(u'<div>')
@@ -244,34 +244,37 @@
continue
self._render_related_entities(entity, rschema, value)
- def render_entity_relations(self, entity, siderelations):
- if hasattr(self, 'get_side_boxes_defs'):
- return
- eschema = entity.e_schema
- maxrelated = self.req.property_value('navigation.related-limit')
- for rschema, targetschemas, x in self.iter_relations(entity):
- try:
- related = entity.related(rschema.type, x, limit=maxrelated+1)
- except Unauthorized:
- continue
- if not related:
- continue
- if self.is_side_related(rschema, eschema):
- siderelations.append((rschema, related, x))
- continue
- self._render_related_entities(entity, rschema, related, x)
-
- def _preinit_side_related(self, entity):
+ def _preinit_side_related(self, entity, siderelations):
self._sideboxes = None
+ self._related_entities = []
if hasattr(self, 'get_side_boxes_defs'):
self._sideboxes = [(label, rset) for label, rset in self.get_side_boxes_defs(entity)
if rset]
+ else:
+ eschema = entity.e_schema
+ maxrelated = self.req.property_value('navigation.related-limit')
+ for rschema, targetschemas, x in self.iter_relations(entity):
+ try:
+ related = entity.related(rschema.type, x, limit=maxrelated+1)
+ except Unauthorized:
+ continue
+ if not related:
+ continue
+ if self.is_side_related(rschema, eschema):
+ siderelations.append((rschema, related, x))
+ continue
+ self._related_entities.append((rschema, related, x))
self._boxes_in_context = list(self.vreg.possible_vobjects('boxes', self.req, self.rset,
row=self.row, view=self,
context='incontext'))
- return self._sideboxes or self._boxes_in_context
+ return self._sideboxes or self._boxes_in_context or self._related_entities or siderelations
-
+ def render_entity_relations(self, entity, siderelations):
+ if self._related_entities:
+ for rschema, related, x in self._related_entities:
+ self._render_related_entities(entity, rschema, related, x)
+
+
def render_side_related(self, entity, siderelations):
"""display side related relations:
non-meta in a first step, meta in a second step
@@ -330,8 +333,7 @@
value += '</div>'
label = display_name(self.req, rschema.type, role)
self.field(label, value, show_label=show_label, w=self.w, tr=False)
-
-
+
class SideBoxView(EntityView):
"""side box usually displaying some related entities in a primary view"""
id = 'sidebox'
@@ -427,7 +429,7 @@
self.w(u'#%s - ' % entity.eid)
if entity.modification_date != entity.creation_date:
self.w(u'<span>%s</span> ' % _('latest update on'))
- self.w(u'<span class="value">%s</span>, '
+ self.w(u'<span class="value">%s</span>, ;'
% self.format_date(entity.modification_date))
# entities from external source may not have a creation date (eg ldap)
if entity.creation_date:
@@ -435,7 +437,7 @@
self.w(u'<span class="value">%s</span>'
% self.format_date(entity.creation_date))
if entity.creator:
- self.w(u' <span>%s</span> ' % _('by'))
+ self.w(u' <span>%s</span> ' % _('by'))
self.w(u'<span class="value">%s</span>' % entity.creator.name())
self.w(u'</div>')
@@ -690,10 +692,9 @@
req = self.req
self.w(u'<?xml version="1.0" encoding="%s"?>\n' % req.encoding)
self.w(u'''<rss version="2.0"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
->''')
- self.w(u' <channel rdf:about="%s">\n' % html_escape(req.url()))
+>\n''')
+ self.w(u' <channel>\n')
self.w(u' <title>%s RSS Feed</title>\n' % html_escape(self.page_title()))
self.w(u' <description>%s</description>\n' % html_escape(req.form.get('vtitle', '')))
params = req.form.copy()
@@ -721,7 +722,8 @@
def cell_call(self, row, col):
entity = self.complete_entity(row, col)
- self.w(u'<item rdf:about="%s">\n' % html_escape(entity.absolute_url()))
+ self.w(u'<item>\n')
+ self.w(u'<guid isPermaLink="true">%s</guid>\n' % html_escape(entity.absolute_url()))
self.render_title_link(entity)
self._marker('description', html_escape(entity.dc_description()))
self._marker('dc:date', entity.dc_date(self.date_format))
@@ -734,13 +736,9 @@
def render_entity_creator(self, entity):
if entity.creator:
- self._marker('dc:creator', entity.creator.name())
- email = entity.creator.get_email()
- if email:
- self.w(u'<author>')
- self.w(email)
- self.w(u'</author>')
-
+ self._marker('dc:creator', entity.dc_creator())
+
+
def _marker(self, marker, value):
if value:
self.w(u' <%s>%s</%s>\n' % (marker, html_escape(value), marker))