[doc] Restructure the documentation

  • Create a new index file
  • Move the sphinx configuration files do the documentation root
  • Move book/README to dev/documenting.rst
  • Move book/mode_plan.py to tools/
  • Move book/en/images to images
  • Move book/en/* to book/
  • Move changelogs to changes/*
  • Adapt the Makefile
  • Add a title to the javascript api index

Related to #4832808

authorChristophe de Vienne <christophe@unlish.com>
changeseta7a910d3165a
branchdefault
phasedraft
hiddenyes
parent revision#8e04ab5582d9 [web/views/formrenderer] do not use `cubicweb:target` attribute on form (closes #5534074)
child revision#d5d163bb8948 [doc] Insert the dev docs in the toc
files modified by this revision
.hgignore
doc/3.14.rst
doc/3.15.rst
doc/3.16.rst
doc/3.17.rst
doc/3.18.rst
doc/3.19.rst
doc/3.20.rst
doc/Makefile
doc/_static/cubicweb.png
doc/_static/logilab.png
doc/_static/sphinx-default.css
doc/_templates/layout.html
doc/_themes/cubicweb/layout.html
doc/_themes/cubicweb/static/cubicweb.css_t
doc/_themes/cubicweb/static/cubicweb.ico
doc/_themes/cubicweb/static/logo-cubicweb-small.svg
doc/_themes/cubicweb/static/logo-cubicweb.svg
doc/_themes/cubicweb/theme.conf
doc/book/MERGE_ME-tut-create-app.en.txt
doc/book/MERGE_ME-tut-create-gae-app.en.txt
doc/book/README
doc/book/additionnal_services/index.rst
doc/book/additionnal_services/undo.rst
doc/book/admin/additional-tips.rst
doc/book/admin/config.rst
doc/book/admin/create-instance.rst
doc/book/admin/cubicweb-ctl.rst
doc/book/admin/index.rst
doc/book/admin/instance-config.rst
doc/book/admin/ldap.rst
doc/book/admin/migration.rst
doc/book/admin/multisources.rst
doc/book/admin/pyro.rst
doc/book/admin/rql-logs.rst
doc/book/admin/setup-windows.rst
doc/book/admin/setup.rst
doc/book/admin/site-config.rst
doc/book/annexes/depends.rst
doc/book/annexes/docstrings-conventions.rst
doc/book/annexes/faq.rst
doc/book/annexes/index.rst
doc/book/annexes/mercurial.rst
doc/book/annexes/rql/Graph-ex.gif
doc/book/annexes/rql/debugging.rst
doc/book/annexes/rql/implementation.rst
doc/book/annexes/rql/index.rst
doc/book/annexes/rql/intro.rst
doc/book/annexes/rql/language.rst
doc/book/devrepo/cubes/available-cubes.rst
doc/book/devrepo/cubes/cc-newcube.rst
doc/book/devrepo/cubes/index.rst
doc/book/devrepo/cubes/layout.rst
doc/book/devrepo/dataimport.rst
doc/book/devrepo/datamodel/baseschema.rst
doc/book/devrepo/datamodel/define-workflows.rst
doc/book/devrepo/datamodel/definition.rst
doc/book/devrepo/datamodel/index.rst
doc/book/devrepo/datamodel/metadata.rst
doc/book/devrepo/devcore/dbapi.rst
doc/book/devrepo/devcore/index.rst
doc/book/devrepo/devcore/reqbase.rst
doc/book/devrepo/entityclasses/adapters.rst
doc/book/devrepo/entityclasses/application-logic.rst
doc/book/devrepo/entityclasses/data-as-objects.rst
doc/book/devrepo/entityclasses/index.rst
doc/book/devrepo/entityclasses/load-sort.rst
doc/book/devrepo/fti.rst
doc/book/devrepo/index.rst
doc/book/devrepo/migration.rst
doc/book/devrepo/profiling.rst
doc/book/devrepo/repo/hooks.rst
doc/book/devrepo/repo/index.rst
doc/book/devrepo/repo/notifications.rst
doc/book/devrepo/repo/sessions.rst
doc/book/devrepo/repo/tasks.rst
doc/book/devrepo/testing.rst
doc/book/devrepo/vreg.rst
doc/book/devweb/ajax.rst
doc/book/devweb/controllers.rst
doc/book/devweb/css.rst
doc/book/devweb/edition/dissection.rst
doc/book/devweb/edition/editcontroller.rst
doc/book/devweb/edition/examples.rst
doc/book/devweb/edition/form.rst
doc/book/devweb/edition/index.rst
doc/book/devweb/facets.rst
doc/book/devweb/httpcaching.rst
doc/book/devweb/index.rst
doc/book/devweb/internationalization.rst
doc/book/devweb/js.rst
doc/book/devweb/property.rst
doc/book/devweb/publisher.rst
doc/book/devweb/request.rst
doc/book/devweb/resource.rst
doc/book/devweb/rtags.rst
doc/book/devweb/searchbar.rst
doc/book/devweb/views/basetemplates.rst
doc/book/devweb/views/baseviews.rst
doc/book/devweb/views/boxes.rst
doc/book/devweb/views/breadcrumbs.rst
doc/book/devweb/views/idownloadable.rst
doc/book/devweb/views/index.rst
doc/book/devweb/views/primary.rst
doc/book/devweb/views/reledit.rst
doc/book/devweb/views/startup.rst
doc/book/devweb/views/table.rst
doc/book/devweb/views/urlpublish.rst
doc/book/devweb/views/views.rst
doc/book/devweb/views/wdoc.rst
doc/book/devweb/views/xmlrss.rst
doc/book/en/.static/cubicweb.png
doc/book/en/.static/logilab.png
doc/book/en/.static/sphinx-default.css
doc/book/en/.templates/layout.html
doc/book/en/MERGE_ME-tut-create-app.en.txt
doc/book/en/MERGE_ME-tut-create-gae-app.en.txt
doc/book/en/_themes/cubicweb/layout.html
doc/book/en/_themes/cubicweb/static/cubicweb.css_t
doc/book/en/_themes/cubicweb/static/cubicweb.ico
doc/book/en/_themes/cubicweb/static/logo-cubicweb-small.svg
doc/book/en/_themes/cubicweb/static/logo-cubicweb.svg
doc/book/en/_themes/cubicweb/theme.conf
doc/book/en/additionnal_services/index.rst
doc/book/en/additionnal_services/undo.rst
doc/book/en/admin/additional-tips.rst
doc/book/en/admin/config.rst
doc/book/en/admin/create-instance.rst
doc/book/en/admin/cubicweb-ctl.rst
doc/book/en/admin/index.rst
doc/book/en/admin/instance-config.rst
doc/book/en/admin/ldap.rst
doc/book/en/admin/migration.rst
doc/book/en/admin/multisources.rst
doc/book/en/admin/rql-logs.rst
doc/book/en/admin/setup-windows.rst
doc/book/en/admin/setup.rst
doc/book/en/admin/site-config.rst
doc/book/en/annexes/depends.rst
doc/book/en/annexes/docstrings-conventions.rst
doc/book/en/annexes/faq.rst
doc/book/en/annexes/index.rst
doc/book/en/annexes/mercurial.rst
doc/book/en/annexes/rql/Graph-ex.gif
doc/book/en/annexes/rql/debugging.rst
doc/book/en/annexes/rql/implementation.rst
doc/book/en/annexes/rql/index.rst
doc/book/en/annexes/rql/intro.rst
doc/book/en/annexes/rql/language.rst
doc/book/en/conf.py
doc/book/en/devrepo/cubes/available-cubes.rst
doc/book/en/devrepo/cubes/cc-newcube.rst
doc/book/en/devrepo/cubes/index.rst
doc/book/en/devrepo/cubes/layout.rst
doc/book/en/devrepo/dataimport.rst
doc/book/en/devrepo/datamodel/baseschema.rst
doc/book/en/devrepo/datamodel/define-workflows.rst
doc/book/en/devrepo/datamodel/definition.rst
doc/book/en/devrepo/datamodel/index.rst
doc/book/en/devrepo/datamodel/metadata.rst
doc/book/en/devrepo/devcore/index.rst
doc/book/en/devrepo/devcore/reqbase.rst
doc/book/en/devrepo/entityclasses/adapters.rst
doc/book/en/devrepo/entityclasses/application-logic.rst
doc/book/en/devrepo/entityclasses/data-as-objects.rst
doc/book/en/devrepo/entityclasses/index.rst
doc/book/en/devrepo/entityclasses/load-sort.rst
doc/book/en/devrepo/fti.rst
doc/book/en/devrepo/index.rst
doc/book/en/devrepo/migration.rst
doc/book/en/devrepo/profiling.rst
doc/book/en/devrepo/repo/hooks.rst
doc/book/en/devrepo/repo/index.rst
doc/book/en/devrepo/repo/notifications.rst
doc/book/en/devrepo/repo/sessions.rst
doc/book/en/devrepo/repo/tasks.rst
doc/book/en/devrepo/testing.rst
doc/book/en/devrepo/vreg.rst
doc/book/en/devweb/ajax.rst
doc/book/en/devweb/controllers.rst
doc/book/en/devweb/css.rst
doc/book/en/devweb/edition/dissection.rst
doc/book/en/devweb/edition/editcontroller.rst
doc/book/en/devweb/edition/examples.rst
doc/book/en/devweb/edition/form.rst
doc/book/en/devweb/edition/index.rst
doc/book/en/devweb/facets.rst
doc/book/en/devweb/httpcaching.rst
doc/book/en/devweb/index.rst
doc/book/en/devweb/internationalization.rst
doc/book/en/devweb/js.rst
doc/book/en/devweb/property.rst
doc/book/en/devweb/publisher.rst
doc/book/en/devweb/request.rst
doc/book/en/devweb/resource.rst
doc/book/en/devweb/rtags.rst
doc/book/en/devweb/searchbar.rst
doc/book/en/devweb/views/basetemplates.rst
doc/book/en/devweb/views/baseviews.rst
doc/book/en/devweb/views/boxes.rst
doc/book/en/devweb/views/breadcrumbs.rst
doc/book/en/devweb/views/idownloadable.rst
doc/book/en/devweb/views/index.rst
doc/book/en/devweb/views/primary.rst
doc/book/en/devweb/views/reledit.rst
doc/book/en/devweb/views/startup.rst
doc/book/en/devweb/views/table.rst
doc/book/en/devweb/views/urlpublish.rst
doc/book/en/devweb/views/views.rst
doc/book/en/devweb/views/wdoc.rst
doc/book/en/devweb/views/xmlrss.rst
doc/book/en/images/03-transitions-view_en.png
doc/book/en/images/archi_globale.png
doc/book/en/images/archi_globale_en.png
doc/book/en/images/breadcrumbs_header.png
doc/book/en/images/facet_date_range.png
doc/book/en/images/facet_has_image.png
doc/book/en/images/facet_overview.png
doc/book/en/images/facet_range.png
doc/book/en/images/lax-book_00-login_en.png
doc/book/en/images/lax-book_01-start_en.png
doc/book/en/images/lax-book_02-cookie-values_en.png
doc/book/en/images/lax-book_02-create-blog_en.png
doc/book/en/images/lax-book_03-list-one-blog_en.png
doc/book/en/images/lax-book_03-site-config-panel_en.png
doc/book/en/images/lax-book_03-state-submitted_en.png
doc/book/en/images/lax-book_03-transitions-view_en.png
doc/book/en/images/lax-book_04-detail-one-blog_en.png
doc/book/en/images/lax-book_05-list-two-blog_en.png
doc/book/en/images/lax-book_06-add-relation-entryof_en.png
doc/book/en/images/lax-book_06-main-template-logo_en.png
doc/book/en/images/lax-book_07-detail-one-blogentry_en.png
doc/book/en/images/lax-book_08-schema_en.png
doc/book/en/images/lax-book_09-new-view-blogentry_en.png
doc/book/en/images/lax-book_10-blog-with-two-entries_en.png
doc/book/en/images/main_template.png
doc/book/en/images/main_template.svg
doc/book/en/images/main_template_layout.png
doc/book/en/images/primaryview_template.png
doc/book/en/images/primaryview_template.svg
doc/book/en/images/request_session.png
doc/book/en/images/request_session.svg
doc/book/en/images/server-class-diagram.png
doc/book/en/images/tutos-base_blog-form_en.png
doc/book/en/images/tutos-base_blog-primary-after-post-creation_en.png
doc/book/en/images/tutos-base_blog-primary_en.png
doc/book/en/images/tutos-base_blogs-list_en.png
doc/book/en/images/tutos-base_form-generic-relations_en.png
doc/book/en/images/tutos-base_index_en.png
doc/book/en/images/tutos-base_login-form_en.png
doc/book/en/images/tutos-base_myblog-blogentry-taggable-commentable-primary_en.png
doc/book/en/images/tutos-base_myblog-community-custom-primary_en.png
doc/book/en/images/tutos-base_myblog-community-default-primary_en.png
doc/book/en/images/tutos-base_myblog-community-taggable-primary_en.png
doc/book/en/images/tutos-base_myblog-custom-footer_en.png
doc/book/en/images/tutos-base_myblog-schema_en.png
doc/book/en/images/tutos-base_myblog-siteinfo_en.png
doc/book/en/images/tutos-base_schema_en.png
doc/book/en/images/tutos-base_siteconfig_en.png
doc/book/en/images/tutos-base_user-menu_en.png
doc/book/en/images/tutos-photowebsite_background-image.png
doc/book/en/images/tutos-photowebsite_boxes.png
doc/book/en/images/tutos-photowebsite_breadcrumbs.png
doc/book/en/images/tutos-photowebsite_facets.png
doc/book/en/images/tutos-photowebsite_grey-box.png
doc/book/en/images/tutos-photowebsite_index-after.png
doc/book/en/images/tutos-photowebsite_index-before.png
doc/book/en/images/tutos-photowebsite_login-box.png
doc/book/en/images/tutos-photowebsite_prevnext.png
doc/book/en/images/tutos-photowebsite_ui1.png
doc/book/en/images/tutos-photowebsite_ui2.png
doc/book/en/images/tutos-photowebsite_ui3.png
doc/book/en/images/undo_history-view_w600.png
doc/book/en/images/undo_mesage_w600.png
doc/book/en/images/undo_startup-link_w600.png
doc/book/en/images/views-table-filter-shadow.png
doc/book/en/images/views-table-filter.png
doc/book/en/images/views-table-shadow.png
doc/book/en/images/views-table.png
doc/book/en/index.rst
doc/book/en/intro/concepts.rst
doc/book/en/intro/history.rst
doc/book/en/intro/index.rst
doc/book/en/makefile
doc/book/en/tutorials/advanced/index.rst
doc/book/en/tutorials/advanced/part01_create-cube.rst
doc/book/en/tutorials/advanced/part02_security.rst
doc/book/en/tutorials/advanced/part03_bfss.rst
doc/book/en/tutorials/advanced/part04_ui-base.rst
doc/book/en/tutorials/advanced/part05_ui-advanced.rst
doc/book/en/tutorials/base/blog-in-five-minutes.rst
doc/book/en/tutorials/base/conclusion.rst
doc/book/en/tutorials/base/customizing-the-application.rst
doc/book/en/tutorials/base/discovering-the-ui.rst
doc/book/en/tutorials/base/index.rst
doc/book/en/tutorials/index.rst
doc/book/en/tutorials/textreports/index.rst
doc/book/en/tutorials/tools/windmill.rst
doc/book/index.rst
doc/book/intro/concepts.rst
doc/book/intro/history.rst
doc/book/intro/index.rst
doc/book/mode_plan.py
doc/changes/3.14.rst
doc/changes/3.15.rst
doc/changes/3.16.rst
doc/changes/3.17.rst
doc/changes/3.18.rst
doc/changes/3.19.rst
doc/changes/3.20.rst
doc/changes/index.rst
doc/conf.py
doc/dev/documenting.rst
doc/images/03-transitions-view_en.png
doc/images/archi_globale.png
doc/images/archi_globale_en.png
doc/images/breadcrumbs_header.png
doc/images/facet_date_range.png
doc/images/facet_has_image.png
doc/images/facet_overview.png
doc/images/facet_range.png
doc/images/lax-book_00-login_en.png
doc/images/lax-book_01-start_en.png
doc/images/lax-book_02-cookie-values_en.png
doc/images/lax-book_02-create-blog_en.png
doc/images/lax-book_03-list-one-blog_en.png
doc/images/lax-book_03-site-config-panel_en.png
doc/images/lax-book_03-state-submitted_en.png
doc/images/lax-book_03-transitions-view_en.png
doc/images/lax-book_04-detail-one-blog_en.png
doc/images/lax-book_05-list-two-blog_en.png
doc/images/lax-book_06-add-relation-entryof_en.png
doc/images/lax-book_06-main-template-logo_en.png
doc/images/lax-book_07-detail-one-blogentry_en.png
doc/images/lax-book_08-schema_en.png
doc/images/lax-book_09-new-view-blogentry_en.png
doc/images/lax-book_10-blog-with-two-entries_en.png
doc/images/main_template.png
doc/images/main_template.svg
doc/images/main_template_layout.png
doc/images/primaryview_template.png
doc/images/primaryview_template.svg
doc/images/request_session.png
doc/images/request_session.svg
doc/images/server-class-diagram.png
doc/images/tutos-base_blog-form_en.png
doc/images/tutos-base_blog-primary-after-post-creation_en.png
doc/images/tutos-base_blog-primary_en.png
doc/images/tutos-base_blogs-list_en.png
doc/images/tutos-base_form-generic-relations_en.png
doc/images/tutos-base_index_en.png
doc/images/tutos-base_login-form_en.png
doc/images/tutos-base_myblog-blogentry-taggable-commentable-primary_en.png
doc/images/tutos-base_myblog-community-custom-primary_en.png
doc/images/tutos-base_myblog-community-default-primary_en.png
doc/images/tutos-base_myblog-community-taggable-primary_en.png
doc/images/tutos-base_myblog-custom-footer_en.png
doc/images/tutos-base_myblog-schema_en.png
doc/images/tutos-base_myblog-siteinfo_en.png
doc/images/tutos-base_schema_en.png
doc/images/tutos-base_siteconfig_en.png
doc/images/tutos-base_user-menu_en.png
doc/images/tutos-photowebsite_background-image.png
doc/images/tutos-photowebsite_boxes.png
doc/images/tutos-photowebsite_breadcrumbs.png
doc/images/tutos-photowebsite_facets.png
doc/images/tutos-photowebsite_grey-box.png
doc/images/tutos-photowebsite_index-after.png
doc/images/tutos-photowebsite_index-before.png
doc/images/tutos-photowebsite_login-box.png
doc/images/tutos-photowebsite_prevnext.png
doc/images/tutos-photowebsite_ui1.png
doc/images/tutos-photowebsite_ui2.png
doc/images/tutos-photowebsite_ui3.png
doc/images/undo_history-view_w600.png
doc/images/undo_mesage_w600.png
doc/images/undo_startup-link_w600.png
doc/images/views-table-filter-shadow.png
doc/images/views-table-filter.png
doc/images/views-table-shadow.png
doc/images/views-table.png
doc/index.rst
doc/tools/mode_plan.py
doc/tools/pyjsrest.py
doc/tutorials/advanced/index.rst
doc/tutorials/advanced/part01_create-cube.rst
doc/tutorials/advanced/part02_security.rst
doc/tutorials/advanced/part03_bfss.rst
doc/tutorials/advanced/part04_ui-base.rst
doc/tutorials/advanced/part05_ui-advanced.rst
doc/tutorials/base/blog-in-five-minutes.rst
doc/tutorials/base/conclusion.rst
doc/tutorials/base/customizing-the-application.rst
doc/tutorials/base/discovering-the-ui.rst
doc/tutorials/base/index.rst
doc/tutorials/index.rst
doc/tutorials/textreports/index.rst
doc/tutorials/tools/windmill.rst
# HG changeset patch
# User Christophe de Vienne <christophe@unlish.com>
# Date 1420751466 -3600
# Thu Jan 08 22:11:06 2015 +0100
# Node ID a7a910d3165a344ae96ed85f8fe4722a5d07b99d
# Parent 8e04ab5582d9c79f206e7a1a57525296e4105e31
[doc] Restructure the documentation

* Create a new index file
* Move the sphinx configuration files do the documentation root
* Move book/README to dev/documenting.rst
* Move book/mode_plan.py to tools/
* Move book/en/images to images
* Move book/en/* to book/
* Move changelogs to changes/*
* Adapt the Makefile
* Add a title to the javascript api index

Related to #4832808

diff --git a/.hgignore b/.hgignore
@@ -13,9 +13,8 @@
1  syntax: regexp
2  .*/data/database/.*\.sqlite
3  .*/data/database/.*\.config
4  .*/data/database/tmpdb.*
5  .*/data/ldapdb/.*
6 -^doc/html/
7 -^doc/doctrees/
8 -^doc/book/en/devweb/js_api/
9 +^doc/_build
10 +^doc/js_api/
11  data/pgdb/
diff --git a/doc/Makefile b/doc/Makefile
@@ -0,0 +1,88 @@
12 +SRC=.
13 +
14 +# You can set these sphinx variables from the command line.
15 +SPHINXOPTS    =
16 +SPHINXBUILD   = sphinx-build
17 +PAPER         =
18 +#BUILDDIR      = build
19 +BUILDDIR      = _build
20 +CWDIR         = ..
21 +JSDIR         = ${CWDIR}/web/data
22 +JSTORST       = tools/pyjsrest.py
23 +BUILDJS       = js_api
24 +
25 +# Internal variables for sphinx
26 +PAPEROPT_a4     = -D latex_paper_size=a4
27 +PAPEROPT_letter = -D latex_paper_size=letter
28 +ALLSPHINXOPTS   = -d ${BUILDDIR}/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
29 +
30 +
31 +
32 +.PHONY: help clean html web pickle htmlhelp latex changes linkcheck
33 +
34 +help:
35 +	@echo "Please use \`make <target>' where <target> is one of"
36 +	@echo "  all       to make standalone HTML files, developer manual and API doc"
37 +	@echo "  html      to make standalone HTML files"
38 +	@echo "---  "
39 +	@echo "  pickle    to make pickle files (usable by e.g. sphinx-web)"
40 +	@echo "  htmlhelp  to make HTML files and a HTML help project"
41 +	@echo "  latex     to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
42 +	@echo "  changes   to make an overview over all changed/added/deprecated items"
43 +	@echo "  linkcheck to check all external links for integrity"
44 +
45 +clean:
46 +	rm -f *.html
47 +	-rm -rf ${BUILDDIR}/html ${BUILDDIR}/doctrees
48 +	-rm -rf ${BUILDJS}
49 +
50 +all: html
51 +
52 +# run sphinx ###
53 +html: js
54 +	mkdir -p ${BUILDDIR}/html ${BUILDDIR}/doctrees
55 +	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) ${BUILDDIR}/html
56 +	@echo
57 +	@echo "Build finished. The HTML pages are in ${BUILDDIR}/html."
58 +
59 +js:
60 +	mkdir -p ${BUILDJS}
61 +	$(JSTORST) -p ${JSDIR} -o ${BUILDJS}
62 +
63 +pickle:
64 +	mkdir -p ${BUILDDIR}/pickle ${BUILDDIR}/doctrees
65 +	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) ${BUILDDIR}/pickle
66 +	@echo
67 +	@echo "Build finished; now you can process the pickle files or run"
68 +	@echo "  sphinx-web ${BUILDDIR}/pickle"
69 +	@echo "to start the sphinx-web server."
70 +
71 +web: pickle
72 +
73 +htmlhelp:
74 +	mkdir -p ${BUILDDIR}/htmlhelp ${BUILDDIR}/doctrees
75 +	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) ${BUILDDIR}/htmlhelp
76 +	@echo
77 +	@echo "Build finished; now you can run HTML Help Workshop with the" \
78 +	      ".hhp project file in ${BUILDDIR}/htmlhelp."
79 +
80 +latex:
81 +	mkdir -p ${BUILDDIR}/latex ${BUILDDIR}/doctrees
82 +	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) ${BUILDDIR}/latex
83 +	@echo
84 +	@echo "Build finished; the LaTeX files are in ${BUILDDIR}/latex."
85 +	@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
86 +	      "run these through (pdf)latex."
87 +
88 +changes:
89 +	mkdir -p ${BUILDDIR}/changes ${BUILDDIR}/doctrees
90 +	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) ${BUILDDIR}/changes
91 +	@echo
92 +	@echo "The overview file is in ${BUILDDIR}/changes."
93 +
94 +linkcheck:
95 +	mkdir -p ${BUILDDIR}/linkcheck ${BUILDDIR}/doctrees
96 +	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) ${BUILDDIR}/linkcheck
97 +	@echo
98 +	@echo "Link check complete; look for any errors in the above output " \
99 +	      "or in ${BUILDDIR}/linkcheck/output.txt."
diff --git a/doc/book/en/.static/cubicweb.png b/doc/_static/cubicweb.png
diff --git a/doc/book/en/.static/logilab.png b/doc/_static/logilab.png
diff --git a/doc/book/en/.static/sphinx-default.css b/doc/_static/sphinx-default.css
diff --git a/doc/book/en/.templates/layout.html b/doc/_templates/layout.html
diff --git a/doc/book/en/_themes/cubicweb/layout.html b/doc/_themes/cubicweb/layout.html
diff --git a/doc/book/en/_themes/cubicweb/static/cubicweb.css_t b/doc/_themes/cubicweb/static/cubicweb.css_t
diff --git a/doc/book/en/_themes/cubicweb/static/cubicweb.ico b/doc/_themes/cubicweb/static/cubicweb.ico
diff --git a/doc/book/en/_themes/cubicweb/static/logo-cubicweb-small.svg b/doc/_themes/cubicweb/static/logo-cubicweb-small.svg
diff --git a/doc/book/en/_themes/cubicweb/static/logo-cubicweb.svg b/doc/_themes/cubicweb/static/logo-cubicweb.svg
diff --git a/doc/book/en/_themes/cubicweb/theme.conf b/doc/_themes/cubicweb/theme.conf
diff --git a/doc/book/en/MERGE_ME-tut-create-app.en.txt b/doc/book/MERGE_ME-tut-create-app.en.txt
diff --git a/doc/book/en/MERGE_ME-tut-create-gae-app.en.txt b/doc/book/MERGE_ME-tut-create-gae-app.en.txt
diff --git a/doc/book/en/additionnal_services/index.rst b/doc/book/additionnal_services/index.rst
diff --git a/doc/book/en/additionnal_services/undo.rst b/doc/book/additionnal_services/undo.rst
diff --git a/doc/book/en/admin/additional-tips.rst b/doc/book/admin/additional-tips.rst
diff --git a/doc/book/en/admin/config.rst b/doc/book/admin/config.rst
diff --git a/doc/book/en/admin/create-instance.rst b/doc/book/admin/create-instance.rst
diff --git a/doc/book/en/admin/cubicweb-ctl.rst b/doc/book/admin/cubicweb-ctl.rst
diff --git a/doc/book/en/admin/index.rst b/doc/book/admin/index.rst
diff --git a/doc/book/en/admin/instance-config.rst b/doc/book/admin/instance-config.rst
diff --git a/doc/book/en/admin/ldap.rst b/doc/book/admin/ldap.rst
diff --git a/doc/book/en/admin/migration.rst b/doc/book/admin/migration.rst
diff --git a/doc/book/en/admin/multisources.rst b/doc/book/admin/multisources.rst
diff --git a/doc/book/admin/pyro.rst b/doc/book/admin/pyro.rst
@@ -0,0 +1,62 @@
100 +.. _UsingPyro:
101 +
102 +Working with a distributed client (using Pyro)
103 +==============================================
104 +
105 +In some circumstances, it is practical to split the repository and
106 +web-client parts of the application for load-balancing reasons. Or
107 +one wants to access the repository from independant scripts to consult
108 +or update the database.
109 +
110 +Prerequisites
111 +-------------
112 +
113 +For this to work, several steps have to be taken in order.
114 +
115 +You must first ensure that the appropriate software is installed and
116 +running (see :ref:`ConfigEnv`)::
117 +
118 +  pyro-nsd -x -p 6969
119 +
120 +Then you have to set appropriate options in your configuration. For
121 +instance::
122 +
123 +  pyro-server=yes
124 +  pyro-ns-host=localhost:6969
125 +
126 +  pyro-instance-id=myinstancename
127 +
128 +Connect to the CubicWeb repository from a python script
129 +-------------------------------------------------------
130 +
131 +Assuming pyro-nsd is running and your instance is configured with ``pyro-server=yes``,
132 +you will be able to use :mod:`cubicweb.dbapi` api to initiate the connection.
133 +
134 +.. note::
135 +    Regardless of whether your instance is pyro activated or not, you can still
136 +    achieve this by using cubicweb-ctl shell scripts in a simpler way, as by default
137 +    it creates a repository 'in-memory' instead of connecting through pyro. That
138 +    also means you've to be on the host where the instance is running.
139 +
140 +Finally, the client (for instance a python script) must connect specifically
141 +as in the following example code:
142 +
143 +.. sourcecode:: python
144 +
145 +    from cubicweb import dbapi
146 +
147 +    cnx = dbapi.connect(database='instance-id', user='admin', password='admin')
148 +    cnx.load_appobjects()
149 +    cur = cnx.cursor()
150 +    for name in (u'Personal', u'Professional', u'Computers'):
151 +        cur.execute('INSERT Tag T: T name %(n)s', {'n': name})
152 +    cnx.commit()
153 +
154 +Calling :meth:`cubicweb.dbapi.load_appobjects`, will populate the
155 +cubicweb registries (see :ref:`VRegistryIntro`) with the application
156 +objects installed on the host where the script runs. You'll then be
157 +allowed to use the ORM goodies and custom entity methods and views. Of
158 +course this is optional, without it you can still get the repository
159 +data through the connection but in a roughly way: only RQL cursors
160 +will be available, e.g. you can't even build entity objects from the
161 +result set.
diff --git a/doc/book/en/admin/rql-logs.rst b/doc/book/admin/rql-logs.rst
diff --git a/doc/book/en/admin/setup-windows.rst b/doc/book/admin/setup-windows.rst
diff --git a/doc/book/en/admin/setup.rst b/doc/book/admin/setup.rst
diff --git a/doc/book/en/admin/site-config.rst b/doc/book/admin/site-config.rst
diff --git a/doc/book/en/annexes/depends.rst b/doc/book/annexes/depends.rst
diff --git a/doc/book/en/annexes/docstrings-conventions.rst b/doc/book/annexes/docstrings-conventions.rst
diff --git a/doc/book/en/annexes/faq.rst b/doc/book/annexes/faq.rst
diff --git a/doc/book/en/annexes/index.rst b/doc/book/annexes/index.rst
diff --git a/doc/book/en/annexes/mercurial.rst b/doc/book/annexes/mercurial.rst
diff --git a/doc/book/en/annexes/rql/Graph-ex.gif b/doc/book/annexes/rql/Graph-ex.gif
diff --git a/doc/book/en/annexes/rql/debugging.rst b/doc/book/annexes/rql/debugging.rst
diff --git a/doc/book/en/annexes/rql/implementation.rst b/doc/book/annexes/rql/implementation.rst
diff --git a/doc/book/en/annexes/rql/index.rst b/doc/book/annexes/rql/index.rst
diff --git a/doc/book/en/annexes/rql/intro.rst b/doc/book/annexes/rql/intro.rst
diff --git a/doc/book/en/annexes/rql/language.rst b/doc/book/annexes/rql/language.rst
diff --git a/doc/book/en/devrepo/cubes/available-cubes.rst b/doc/book/devrepo/cubes/available-cubes.rst
diff --git a/doc/book/en/devrepo/cubes/cc-newcube.rst b/doc/book/devrepo/cubes/cc-newcube.rst
diff --git a/doc/book/en/devrepo/cubes/index.rst b/doc/book/devrepo/cubes/index.rst
diff --git a/doc/book/en/devrepo/cubes/layout.rst b/doc/book/devrepo/cubes/layout.rst
diff --git a/doc/book/en/devrepo/dataimport.rst b/doc/book/devrepo/dataimport.rst
diff --git a/doc/book/en/devrepo/datamodel/baseschema.rst b/doc/book/devrepo/datamodel/baseschema.rst
diff --git a/doc/book/en/devrepo/datamodel/define-workflows.rst b/doc/book/devrepo/datamodel/define-workflows.rst
diff --git a/doc/book/en/devrepo/datamodel/definition.rst b/doc/book/devrepo/datamodel/definition.rst
diff --git a/doc/book/en/devrepo/datamodel/index.rst b/doc/book/devrepo/datamodel/index.rst
diff --git a/doc/book/en/devrepo/datamodel/metadata.rst b/doc/book/devrepo/datamodel/metadata.rst
diff --git a/doc/book/devrepo/devcore/dbapi.rst b/doc/book/devrepo/devcore/dbapi.rst
@@ -0,0 +1,133 @@
162 +.. _dbapi:
163 +
164 +Python/RQL API
165 +~~~~~~~~~~~~~~
166 +
167 +The Python API developped to interface with RQL is inspired from the standard db-api,
168 +with a Connection object having the methods cursor, rollback and commit essentially.
169 +The most important method is the `execute` method of a cursor.
170 +
171 +.. sourcecode:: python
172 +
173 +   execute(rqlstring, args=None, build_descr=True)
174 +
175 +:rqlstring: the RQL query to execute (unicode)
176 +:args: if the query contains substitutions, a dictionary containing the values to use
177 +
178 +The `Connection` object owns the methods `commit` and `rollback`. You
179 +*should never need to use them* during the development of the web
180 +interface based on the *CubicWeb* framework as it determines the end
181 +of the transaction depending on the query execution success. They are
182 +however useful in other contexts such as tests or custom controllers.
183 +
184 +.. note::
185 +
186 +  If a query generates an error related to security (:exc:`Unauthorized`) or to
187 +  integrity (:exc:`ValidationError`), the transaction can still continue but you
188 +  won't be able to commit it, a rollback will be necessary to start a new
189 +  transaction.
190 +
191 +  Also, a rollback is automatically done if an error occurs during commit.
192 +
193 +.. note::
194 +
195 +   A :exc:`ValidationError` has a `entity` attribute. In CubicWeb,
196 +   this atttribute is set to the entity's eid (not a reference to the
197 +   entity itself).
198 +
199 +Executing RQL queries from a view or a hook
200 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
201 +
202 +When you're within code of the web interface, the db-api like connexion is
203 +handled by the request object. You should not have to access it directly, but
204 +use the `execute` method directly available on the request, eg:
205 +
206 +.. sourcecode:: python
207 +
208 +   rset = self._cw.execute(rqlstring, kwargs)
209 +
210 +Similarly, on the server side (eg in hooks), there is no db-api connexion (since
211 +you're directly inside the data-server), so you'll have to use the execute method
212 +of the session object.
213 +
214 +
215 +Proper usage of `.execute`
216 +~~~~~~~~~~~~~~~~~~~~~~~~~~
217 +
218 +Let's say you want to get T which is in configuration C, this translates to:
219 +
220 +.. sourcecode:: python
221 +
222 +   self._cw.execute('Any T WHERE T in_conf C, C eid %s' % entity.eid)
223 +
224 +But it must be written in a syntax that will benefit from the use
225 +of a cache on the RQL server side:
226 +
227 +.. sourcecode:: python
228 +
229 +   self._cw.execute('Any T WHERE T in_conf C, C eid %(x)s', {'x': entity.eid})
230 +
231 +The syntax tree is built once for the "generic" RQL and can be re-used
232 +with a number of different eids. There rql IN operator is an exception
233 +to this rule.
234 +
235 +.. sourcecode:: python
236 +
237 +   self._cw.execute('Any T WHERE T in_conf C, C name IN (%s)'
238 +                    % ','.join(['foo', 'bar']))
239 +
240 +Alternativelly, some of the common data related to an entity can be
241 +obtained from the `entity.related()` method (which is used under the
242 +hood by the orm when you use attribute access notation on an entity to
243 +get a relation. The initial request would then be translated to:
244 +
245 +.. sourcecode:: python
246 +
247 +   entity.related('in_conf', 'object')
248 +
249 +Additionnaly this benefits from the fetch_attrs policy (see
250 +:ref:`FetchAttrs`) eventually defined on the class element, which says
251 +which attributes must be also loaded when the entity is loaded through
252 +the orm.
253 +
254 +
255 +.. _resultset:
256 +
257 +The `ResultSet` API
258 +~~~~~~~~~~~~~~~~~~~
259 +
260 +ResultSet instances are a very commonly manipulated object. They have
261 +a rich API as seen below, but we would like to highlight a bunch of
262 +methods that are quite useful in day-to-day practice:
263 +
264 +* `__str__()` (applied by `print`) gives a very useful overview of both
265 +  the underlying RQL expression and the data inside; unavoidable for
266 +  debugging purposes
267 +
268 +* `printable_rql()` produces back a well formed RQL expression as a
269 +  string; it is very useful to build views
270 +
271 +* `entities()` returns a generator on all entities of the result set
272 +
273 +* `get_entity(row, col)` gets the entity at row, col coordinates; one
274 +  of the most used result set method
275 +
276 +.. autoclass:: cubicweb.rset.ResultSet
277 +   :members:
278 +
279 +
280 +The `Cursor` and `Connection` API
281 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
282 +
283 +The whole cursor API is developped below.
284 +
285 +.. note::
286 +
287 +  In practice you'll usually use the `.execute` method on the _cw object of
288 +  appobjects. Usage of other methods is quite rare.
289 +
290 +.. autoclass:: cubicweb.dbapi.Cursor
291 +   :members:
292 +
293 +.. autoclass:: cubicweb.dbapi.Connection
294 +   :members:
diff --git a/doc/book/en/devrepo/devcore/index.rst b/doc/book/devrepo/devcore/index.rst
diff --git a/doc/book/en/devrepo/devcore/reqbase.rst b/doc/book/devrepo/devcore/reqbase.rst
diff --git a/doc/book/en/devrepo/entityclasses/adapters.rst b/doc/book/devrepo/entityclasses/adapters.rst
diff --git a/doc/book/en/devrepo/entityclasses/application-logic.rst b/doc/book/devrepo/entityclasses/application-logic.rst
diff --git a/doc/book/en/devrepo/entityclasses/data-as-objects.rst b/doc/book/devrepo/entityclasses/data-as-objects.rst
diff --git a/doc/book/en/devrepo/entityclasses/index.rst b/doc/book/devrepo/entityclasses/index.rst
diff --git a/doc/book/en/devrepo/entityclasses/load-sort.rst b/doc/book/devrepo/entityclasses/load-sort.rst
diff --git a/doc/book/en/devrepo/fti.rst b/doc/book/devrepo/fti.rst
diff --git a/doc/book/en/devrepo/index.rst b/doc/book/devrepo/index.rst
diff --git a/doc/book/en/devrepo/migration.rst b/doc/book/devrepo/migration.rst
diff --git a/doc/book/en/devrepo/profiling.rst b/doc/book/devrepo/profiling.rst
diff --git a/doc/book/en/devrepo/repo/hooks.rst b/doc/book/devrepo/repo/hooks.rst
diff --git a/doc/book/en/devrepo/repo/index.rst b/doc/book/devrepo/repo/index.rst
diff --git a/doc/book/en/devrepo/repo/notifications.rst b/doc/book/devrepo/repo/notifications.rst
diff --git a/doc/book/en/devrepo/repo/sessions.rst b/doc/book/devrepo/repo/sessions.rst
diff --git a/doc/book/en/devrepo/repo/tasks.rst b/doc/book/devrepo/repo/tasks.rst
diff --git a/doc/book/en/devrepo/testing.rst b/doc/book/devrepo/testing.rst
diff --git a/doc/book/en/devrepo/vreg.rst b/doc/book/devrepo/vreg.rst
diff --git a/doc/book/en/devweb/ajax.rst b/doc/book/devweb/ajax.rst
diff --git a/doc/book/en/devweb/controllers.rst b/doc/book/devweb/controllers.rst
diff --git a/doc/book/en/devweb/css.rst b/doc/book/devweb/css.rst
diff --git a/doc/book/en/devweb/edition/dissection.rst b/doc/book/devweb/edition/dissection.rst
diff --git a/doc/book/en/devweb/edition/editcontroller.rst b/doc/book/devweb/edition/editcontroller.rst
diff --git a/doc/book/en/devweb/edition/examples.rst b/doc/book/devweb/edition/examples.rst
diff --git a/doc/book/en/devweb/edition/form.rst b/doc/book/devweb/edition/form.rst
diff --git a/doc/book/en/devweb/edition/index.rst b/doc/book/devweb/edition/index.rst
diff --git a/doc/book/en/devweb/facets.rst b/doc/book/devweb/facets.rst
diff --git a/doc/book/en/devweb/httpcaching.rst b/doc/book/devweb/httpcaching.rst
diff --git a/doc/book/en/devweb/index.rst b/doc/book/devweb/index.rst
diff --git a/doc/book/en/devweb/internationalization.rst b/doc/book/devweb/internationalization.rst
diff --git a/doc/book/en/devweb/js.rst b/doc/book/devweb/js.rst
diff --git a/doc/book/en/devweb/property.rst b/doc/book/devweb/property.rst
diff --git a/doc/book/en/devweb/publisher.rst b/doc/book/devweb/publisher.rst
diff --git a/doc/book/en/devweb/request.rst b/doc/book/devweb/request.rst
diff --git a/doc/book/en/devweb/resource.rst b/doc/book/devweb/resource.rst
diff --git a/doc/book/en/devweb/rtags.rst b/doc/book/devweb/rtags.rst
diff --git a/doc/book/en/devweb/searchbar.rst b/doc/book/devweb/searchbar.rst
diff --git a/doc/book/en/devweb/views/basetemplates.rst b/doc/book/devweb/views/basetemplates.rst
diff --git a/doc/book/en/devweb/views/baseviews.rst b/doc/book/devweb/views/baseviews.rst
diff --git a/doc/book/en/devweb/views/boxes.rst b/doc/book/devweb/views/boxes.rst
diff --git a/doc/book/en/devweb/views/breadcrumbs.rst b/doc/book/devweb/views/breadcrumbs.rst
diff --git a/doc/book/en/devweb/views/idownloadable.rst b/doc/book/devweb/views/idownloadable.rst
diff --git a/doc/book/en/devweb/views/index.rst b/doc/book/devweb/views/index.rst
diff --git a/doc/book/en/devweb/views/primary.rst b/doc/book/devweb/views/primary.rst
diff --git a/doc/book/en/devweb/views/reledit.rst b/doc/book/devweb/views/reledit.rst
diff --git a/doc/book/en/devweb/views/startup.rst b/doc/book/devweb/views/startup.rst
diff --git a/doc/book/en/devweb/views/table.rst b/doc/book/devweb/views/table.rst
diff --git a/doc/book/en/devweb/views/urlpublish.rst b/doc/book/devweb/views/urlpublish.rst
diff --git a/doc/book/en/devweb/views/views.rst b/doc/book/devweb/views/views.rst
diff --git a/doc/book/en/devweb/views/wdoc.rst b/doc/book/devweb/views/wdoc.rst
diff --git a/doc/book/en/devweb/views/xmlrss.rst b/doc/book/devweb/views/xmlrss.rst
diff --git a/doc/book/en/conf.py b/doc/book/en/conf.py
@@ -1,225 +0,0 @@
295 -# -*- coding: utf-8 -*-
296 -# copyright 2003-2014 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
297 -# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
298 -#
299 -# This file is part of CubicWeb.
300 -#
301 -# CubicWeb is free software: you can redistribute it and/or modify it under the
302 -# terms of the GNU Lesser General Public License as published by the Free
303 -# Software Foundation, either version 2.1 of the License, or (at your option)
304 -# any later version.
305 -#
306 -# CubicWeb is distributed in the hope that it will be useful, but WITHOUT
307 -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
308 -# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
309 -# details.
310 -#
311 -# You should have received a copy of the GNU Lesser General Public License along
312 -# with CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
313 -"""
314 -
315 -"""
316 -#
317 -# Cubicweb documentation build configuration file, created by
318 -# sphinx-quickstart on Fri Oct 31 09:10:36 2008.
319 -#
320 -# This file is execfile()d with the current directory set to its containing dir.
321 -#
322 -# The contents of this file are pickled, so don't put values in the namespace
323 -# that aren't pickleable (module imports are okay, they're removed automatically).
324 -#
325 -# All configuration values have a default value; values that are commented out
326 -# serve to show the default value.
327 -
328 -from os import path as osp
329 -
330 -path = __file__
331 -path = osp.dirname(path) #./doc/book/en
332 -path = osp.dirname(path) #./doc/book/
333 -path = osp.dirname(path) #./doc/
334 -path = osp.dirname(path) #./
335 -path = osp.join(path,'__pkginfo__.py') #./__pkginfo__.py
336 -cw = {}
337 -execfile(path,{},cw)
338 -
339 -# If your extensions are in another directory, add it here. If the directory
340 -# is relative to the documentation root, use os.path.abspath to make it
341 -# absolute, like shown here.
342 -#sys.path.append(os.path.abspath('some/directory'))
343 -
344 -# General configuration
345 -# ---------------------
346 -
347 -# Add any Sphinx extension module names here, as strings. They can be extensions
348 -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
349 -extensions = [
350 -  'sphinx.ext.autodoc', 
351 -  'sphinx.ext.viewcode',
352 -  'logilab.common.sphinx_ext',
353 -  ]
354 -
355 -autoclass_content = 'both'
356 -
357 -# Add any paths that contain templates here, relative to this directory.
358 -#templates_path = []
359 -
360 -# The suffix of source filenames.
361 -source_suffix = '.rst'
362 -
363 -# The master toctree document.
364 -master_doc = 'index'
365 -
366 -# General substitutions.
367 -project = 'CubicWeb'
368 -copyright = '2001-2014, Logilab'
369 -
370 -# The default replacements for |version| and |release|, also used in various
371 -# other places throughout the built documents.
372 -#
373 -# The short X.Y version.
374 -version = '.'.join(str(n) for n in cw['numversion'][:2])
375 -# The full version, including alpha/beta/rc tags.
376 -release = cw['version']
377 -
378 -# There are two options for replacing |today|: either, you set today to some
379 -# non-false value, then it is used:
380 -#today = ''
381 -# Else, today_fmt is used as the format for a strftime call.
382 -today_fmt = '%B %d, %Y'
383 -
384 -# List of documents that shouldn't be included in the build.
385 -unused_docs = []
386 -
387 -# List of directories, relative to source directories, that shouldn't be searched
388 -# for source files.
389 -#exclude_dirs = []
390 -
391 -# The reST default role (used for this markup: `text`) to use for all documents.
392 -#default_role = None
393 -
394 -# If true, '()' will be appended to :func: etc. cross-reference text.
395 -#add_function_parentheses = True
396 -
397 -# If true, the current module name will be prepended to all description
398 -# unit titles (such as .. function::).
399 -#add_module_names = True
400 -
401 -# If true, sectionauthor and moduleauthor directives will be shown in the
402 -# output. They are ignored by default.
403 -#show_authors = False
404 -
405 -# The name of the Pygments (syntax highlighting) style to use.
406 -pygments_style = 'sphinx'
407 -
408 -
409 -# Options for HTML output
410 -# -----------------------
411 -
412 -# The style sheet to use for HTML and HTML Help pages. A file of that name
413 -# must exist either in Sphinx' static/ path, or in one of the custom paths
414 -# given in html_static_path.
415 -#html_style = 'sphinx-default.css'
416 -
417 -# The name for this set of Sphinx documents.  If None, it defaults to
418 -# "<project> v<release> documentation".
419 -html_title = '%s %s' % (project, release)
420 -
421 -html_theme_path = ['_themes']
422 -html_theme = 'cubicweb'
423 -
424 -# A shorter title for the navigation bar.  Default is the same as html_title.
425 -#html_short_title = None
426 -
427 -# The name of an image file (within the static path) to place at the top of
428 -# the sidebar.
429 -#html_logo = None
430 -
431 -# The name of an image file (within the static path) to use as favicon of the
432 -# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
433 -# pixels large.
434 -#html_favicon = None
435 -
436 -# Add any paths that contain custom static files (such as style sheets) here,
437 -# relative to this directory. They are copied after the builtin static files,
438 -# so a file named "default.css" will overwrite the builtin "default.css".
439 -html_static_path = ['.static']
440 -
441 -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
442 -# using the given strftime format.
443 -html_last_updated_fmt = '%b %d, %Y'
444 -
445 -# If true, SmartyPants will be used to convert quotes and dashes to
446 -# typographically correct entities.
447 -#html_use_smartypants = True
448 -
449 -# Custom sidebar templates, maps document names to template names.
450 -#html_sidebars = {}
451 -
452 -# Additional templates that should be rendered to pages, maps page names to
453 -# template names.
454 -#html_additional_pages = {}
455 -
456 -# If false, no module index is generated.
457 -html_use_modindex = True
458 -
459 -# If false, no index is generated.
460 -#html_use_index = True
461 -
462 -# If true, the index is split into individual pages for each letter.
463 -#html_split_index = False
464 -
465 -# If true, the reST sources are included in the HTML build as _sources/<name>.
466 -#html_copy_source = True
467 -
468 -# If true, an OpenSearch description file will be output, and all pages will
469 -# contain a <link> tag referring to it.  The value of this option must be the
470 -# base URL from which the finished HTML is served.
471 -#html_use_opensearch = ''
472 -
473 -# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
474 -html_file_suffix = '.html'
475 -
476 -# Output file base name for HTML help builder.
477 -htmlhelp_basename = 'Cubicwebdoc'
478 -
479 -
480 -# Options for LaTeX output
481 -# ------------------------
482 -
483 -# The paper size ('letter' or 'a4').
484 -#latex_paper_size = 'letter'
485 -
486 -# The font size ('10pt', '11pt' or '12pt').
487 -#latex_font_size = '10pt'
488 -
489 -# Grouping the document tree into LaTeX files. List of tuples
490 -# (source start file, target name, title, author, document class [howto/manual]).
491 -latex_documents = [
492 -  ('index', 'Cubicweb.tex', 'Cubicweb Documentation',
493 -   'Logilab', 'manual'),
494 -]
495 -
496 -# The name of an image file (relative to this directory) to place at the top of
497 -# the title page.
498 -#latex_logo = None
499 -
500 -# For "manual" documents, if this is true, then toplevel headings are parts,
501 -# not chapters.
502 -#latex_use_parts = False
503 -
504 -# Additional stuff for the LaTeX preamble.
505 -#latex_preamble = ''
506 -
507 -# Documents to append as an appendix to all manuals.
508 -#latex_appendices = []
509 -
510 -# If false, no module index is generated.
511 -#latex_use_modindex = True
512 -
513 -#aafig_format = dict(latex='pdf', html='svg', text=None)
514 -
515 -rst_epilog = """
516 -.. |cubicweb| replace:: *CubicWeb*
517 -.. |yams| replace:: *Yams*
518 -.. |rql| replace:: *RQL*
519 -"""
diff --git a/doc/book/en/images/03-transitions-view_en.png b/doc/book/en/images/03-transitions-view_en.png
diff --git a/doc/book/en/images/archi_globale.png b/doc/book/en/images/archi_globale.png
diff --git a/doc/book/en/images/archi_globale_en.png b/doc/book/en/images/archi_globale_en.png
diff --git a/doc/book/en/images/breadcrumbs_header.png b/doc/book/en/images/breadcrumbs_header.png
diff --git a/doc/book/en/images/facet_date_range.png b/doc/book/en/images/facet_date_range.png
diff --git a/doc/book/en/images/facet_has_image.png b/doc/book/en/images/facet_has_image.png
diff --git a/doc/book/en/images/facet_overview.png b/doc/book/en/images/facet_overview.png
diff --git a/doc/book/en/images/facet_range.png b/doc/book/en/images/facet_range.png
diff --git a/doc/book/en/images/lax-book_00-login_en.png b/doc/book/en/images/lax-book_00-login_en.png
diff --git a/doc/book/en/images/lax-book_01-start_en.png b/doc/book/en/images/lax-book_01-start_en.png
diff --git a/doc/book/en/images/lax-book_02-cookie-values_en.png b/doc/book/en/images/lax-book_02-cookie-values_en.png
diff --git a/doc/book/en/images/lax-book_02-create-blog_en.png b/doc/book/en/images/lax-book_02-create-blog_en.png
diff --git a/doc/book/en/images/lax-book_03-list-one-blog_en.png b/doc/book/en/images/lax-book_03-list-one-blog_en.png
diff --git a/doc/book/en/images/lax-book_03-site-config-panel_en.png b/doc/book/en/images/lax-book_03-site-config-panel_en.png
diff --git a/doc/book/en/images/lax-book_03-state-submitted_en.png b/doc/book/en/images/lax-book_03-state-submitted_en.png
diff --git a/doc/book/en/images/lax-book_03-transitions-view_en.png b/doc/book/en/images/lax-book_03-transitions-view_en.png
diff --git a/doc/book/en/images/lax-book_04-detail-one-blog_en.png b/doc/book/en/images/lax-book_04-detail-one-blog_en.png
diff --git a/doc/book/en/images/lax-book_05-list-two-blog_en.png b/doc/book/en/images/lax-book_05-list-two-blog_en.png
diff --git a/doc/book/en/images/lax-book_06-add-relation-entryof_en.png b/doc/book/en/images/lax-book_06-add-relation-entryof_en.png
diff --git a/doc/book/en/images/lax-book_06-main-template-logo_en.png b/doc/book/en/images/lax-book_06-main-template-logo_en.png
diff --git a/doc/book/en/images/lax-book_07-detail-one-blogentry_en.png b/doc/book/en/images/lax-book_07-detail-one-blogentry_en.png
diff --git a/doc/book/en/images/lax-book_08-schema_en.png b/doc/book/en/images/lax-book_08-schema_en.png
diff --git a/doc/book/en/images/lax-book_09-new-view-blogentry_en.png b/doc/book/en/images/lax-book_09-new-view-blogentry_en.png
diff --git a/doc/book/en/images/lax-book_10-blog-with-two-entries_en.png b/doc/book/en/images/lax-book_10-blog-with-two-entries_en.png
diff --git a/doc/book/en/images/main_template.png b/doc/book/en/images/main_template.png
diff --git a/doc/book/en/images/main_template.svg b/doc/book/en/images/main_template.svg
@@ -1,207 +0,0 @@
520 -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
521 -<!-- Created with Inkscape (http://www.inkscape.org/) -->
522 -<svg
523 -   xmlns:dc="http://purl.org/dc/elements/1.1/"
524 -   xmlns:cc="http://creativecommons.org/ns#"
525 -   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
526 -   xmlns:svg="http://www.w3.org/2000/svg"
527 -   xmlns="http://www.w3.org/2000/svg"
528 -   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
529 -   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
530 -   width="1036.6421"
531 -   height="845.07812"
532 -   id="svg2"
533 -   sodipodi:version="0.32"
534 -   inkscape:version="0.46"
535 -   sodipodi:docname="main_template.svg"
536 -   inkscape:output_extension="org.inkscape.output.svg.inkscape"
537 -   version="1.0"
538 -   inkscape:export-filename="/home/auc/cw/doc/book/en/images/main_template.png"
539 -   inkscape:export-xdpi="60.659016"
540 -   inkscape:export-ydpi="60.659016">
541 -  <defs
542 -     id="defs4">
543 -    <inkscape:perspective
544 -       sodipodi:type="inkscape:persp3d"
545 -       inkscape:vp_x="0 : 526.18109 : 1"
546 -       inkscape:vp_y="0 : 1000 : 0"
547 -       inkscape:vp_z="744.09448 : 526.18109 : 1"
548 -       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
549 -       id="perspective10" />
550 -  </defs>
551 -  <sodipodi:namedview
552 -     id="base"
553 -     pagecolor="#ffffff"
554 -     bordercolor="#666666"
555 -     borderopacity="1.0"
556 -     inkscape:pageopacity="0.0"
557 -     inkscape:pageshadow="2"
558 -     inkscape:zoom="0.80355603"
559 -     inkscape:cx="510.91495"
560 -     inkscape:cy="422.53906"
561 -     inkscape:document-units="px"
562 -     inkscape:current-layer="layer1"
563 -     showgrid="false"
564 -     inkscape:window-width="925"
565 -     inkscape:window-height="1168"
566 -     inkscape:window-x="0"
567 -     inkscape:window-y="0"
568 -     inkscape:snap-bbox="true" />
569 -  <metadata
570 -     id="metadata7">
571 -    <rdf:RDF>
572 -      <cc:Work
573 -         rdf:about="">
574 -        <dc:format>image/svg+xml</dc:format>
575 -        <dc:type
576 -           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
577 -      </cc:Work>
578 -    </rdf:RDF>
579 -  </metadata>
580 -  <g
581 -     inkscape:label="Calque 1"
582 -     inkscape:groupmode="layer"
583 -     id="layer1"
584 -     transform="translate(162.2968,90.697922)">
585 -    <rect
586 -       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.775;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
587 -       id="rect2439"
588 -       width="854.37006"
589 -       height="698.2019"
590 -       x="20.307629"
591 -       y="-20.575344" />
592 -    <rect
593 -       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.775;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
594 -       id="rect3301"
595 -       width="816.3457"
596 -       height="508.15628"
597 -       x="31.751091"
598 -       y="96.33345" />
599 -    <g
600 -       id="g3220"
601 -       transform="matrix(1.0035394,0,0,1,0.5745006,0)">
602 -      <rect
603 -         y="-89.447922"
604 -         x="-161.0468"
605 -         height="55.714287"
606 -         width="1031.1713"
607 -         id="rect3240"
608 -         style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.50000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
609 -      <text
610 -         id="text3264"
611 -         y="-51.771908"
612 -         x="757.85767"
613 -         style="font-size:23.38711166px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
614 -         xml:space="preserve"><tspan
615 -           id="tspan3266"
616 -           y="-51.771908"
617 -           x="757.85767"
618 -           sodipodi:role="line">header</tspan></text>
619 -    </g>
620 -    <rect
621 -       style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.775;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
622 -       id="rect3270"
623 -       width="167.87744"
624 -       height="707.71222"
625 -       x="-160.02441"
626 -       y="-24.671618" />
627 -    <g
628 -       id="g2434"
629 -       transform="matrix(0.975467,0,0,1,0.6942419,-3.6587365)">
630 -      <rect
631 -         y="35.365849"
632 -         x="29.548275"
633 -         height="55.714287"
634 -         width="842.59979"
635 -         id="rect3279"
636 -         style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
637 -      <text
638 -         id="text3281"
639 -         y="72.885193"
640 -         x="681.65283"
641 -         style="font-size:23.38711166px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
642 -         xml:space="preserve"><tspan
643 -           id="tspan3283"
644 -           y="72.885193"
645 -           x="681.65283"
646 -           sodipodi:role="line">contentheader</tspan></text>
647 -    </g>
648 -    <g
649 -       id="g3170"
650 -       transform="matrix(1.0023324,0,0,1,-2.0421673,-10.976211)">
651 -      <rect
652 -         y="698.6355"
653 -         x="-158.28485"
654 -         height="55.714287"
655 -         width="1032.5997"
656 -         id="rect3285"
657 -         style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
658 -      <text
659 -         id="text3287"
660 -         y="736.52045"
661 -         x="770.28204"
662 -         style="font-size:23.38711166px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
663 -         xml:space="preserve"><tspan
664 -           id="tspan3289"
665 -           y="736.52045"
666 -           x="770.28204"
667 -           sodipodi:role="line">footer</tspan></text>
668 -    </g>
669 -    <g
670 -       id="g3211" />
671 -    <g
672 -       id="g3215"
673 -       transform="matrix(0.9712065,0,0,1,0.7659296,-17.074106)">
674 -      <rect
675 -         style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
676 -         id="rect3291"
677 -         width="844.62012"
678 -         height="55.714287"
679 -         x="27.850754"
680 -         y="629.88562" />
681 -      <text
682 -         id="text3293"
683 -         y="666.60339"
684 -         x="692.85773"
685 -         style="font-size:23.38711166px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
686 -         xml:space="preserve"><tspan
687 -           id="tspan3295"
688 -           y="666.60339"
689 -           x="692.85773"
690 -           sodipodi:role="line">contentfooter</tspan></text>
691 -    </g>
692 -    <text
693 -       xml:space="preserve"
694 -       style="font-size:23.38711166px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
695 -       x="-143.67273"
696 -       y="20.58094"
697 -       id="text3297"
698 -       sodipodi:linespacing="125%"><tspan
699 -         sodipodi:role="line"
700 -         id="tspan2432"
701 -         x="-143.67273"
702 -         y="20.58094">left column</tspan></text>
703 -    <text
704 -       transform="scale(0.9876573,1.0124969)"
705 -       id="text3175"
706 -       y="12.071429"
707 -       x="721.0575"
708 -       style="font-size:23.09845161px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
709 -       xml:space="preserve"><tspan
710 -         id="tspan3177"
711 -         y="12.071429"
712 -         x="721.0575"
713 -         sodipodi:role="line">contentcol</tspan></text>
714 -    <text
715 -       transform="scale(0.9876573,1.0124969)"
716 -       id="text3179"
717 -       y="126.27104"
718 -       x="701.45959"
719 -       style="font-size:23.09845161px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
720 -       xml:space="preserve"><tspan
721 -         id="tspan3181"
722 -         y="126.27104"
723 -         x="701.45959"
724 -         sodipodi:role="line">contentmain</tspan></text>
725 -  </g>
726 -</svg>
diff --git a/doc/book/en/images/main_template_layout.png b/doc/book/en/images/main_template_layout.png
diff --git a/doc/book/en/images/primaryview_template.png b/doc/book/en/images/primaryview_template.png
diff --git a/doc/book/en/images/primaryview_template.svg b/doc/book/en/images/primaryview_template.svg
@@ -1,285 +0,0 @@
727 -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
728 -<!-- Created with Inkscape (http://www.inkscape.org/) -->
729 -<svg
730 -   xmlns:dc="http://purl.org/dc/elements/1.1/"
731 -   xmlns:cc="http://creativecommons.org/ns#"
732 -   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
733 -   xmlns:svg="http://www.w3.org/2000/svg"
734 -   xmlns="http://www.w3.org/2000/svg"
735 -   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
736 -   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
737 -   width="1036.6421"
738 -   height="845.07812"
739 -   id="svg2"
740 -   sodipodi:version="0.32"
741 -   inkscape:version="0.46"
742 -   sodipodi:docname="primaryview_template.svg"
743 -   inkscape:output_extension="org.inkscape.output.svg.inkscape"
744 -   version="1.0"
745 -   inkscape:export-filename="/home/steph/local/fcubicweb/cubicweb/doc/book/en/images/primaryview_template.png"
746 -   inkscape:export-xdpi="43.451603"
747 -   inkscape:export-ydpi="43.451603">
748 -  <defs
749 -     id="defs4">
750 -    <inkscape:perspective
751 -       sodipodi:type="inkscape:persp3d"
752 -       inkscape:vp_x="0 : 526.18109 : 1"
753 -       inkscape:vp_y="0 : 1000 : 0"
754 -       inkscape:vp_z="744.09448 : 526.18109 : 1"
755 -       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
756 -       id="perspective10" />
757 -  </defs>
758 -  <sodipodi:namedview
759 -     id="base"
760 -     pagecolor="#ffffff"
761 -     bordercolor="#666666"
762 -     borderopacity="1.0"
763 -     inkscape:pageopacity="0.0"
764 -     inkscape:pageshadow="2"
765 -     inkscape:zoom="0.9357135"
766 -     inkscape:cx="518.32104"
767 -     inkscape:cy="337.0428"
768 -     inkscape:document-units="px"
769 -     inkscape:current-layer="layer1"
770 -     showgrid="false"
771 -     inkscape:window-width="1307"
772 -     inkscape:window-height="1168"
773 -     inkscape:window-x="0"
774 -     inkscape:window-y="0" />
775 -  <metadata
776 -     id="metadata7">
777 -    <rdf:RDF>
778 -      <cc:Work
779 -         rdf:about="">
780 -        <dc:format>image/svg+xml</dc:format>
781 -        <dc:type
782 -           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
783 -      </cc:Work>
784 -    </rdf:RDF>
785 -  </metadata>
786 -  <g
787 -     inkscape:label="Calque 1"
788 -     inkscape:groupmode="layer"
789 -     id="layer1"
790 -     transform="translate(162.2968,90.697922)">
791 -    <g
792 -       id="g3869"
793 -       transform="matrix(1,0,0,1.0373644,0,-72.039777)"
794 -       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
795 -       inkscape:export-xdpi="60.912449"
796 -       inkscape:export-ydpi="60.912449">
797 -      <rect
798 -         y="-15.840891"
799 -         x="-159.08963"
800 -         height="770.11017"
801 -         width="1033.0049"
802 -         id="rect3301"
803 -         style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.90144825;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
804 -      <text
805 -         id="text3865"
806 -         y="19.784882"
807 -         x="-150.07172"
808 -         style="font-size:28.67479324px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
809 -         xml:space="preserve"><tspan
810 -           id="tspan3867"
811 -           y="19.784882"
812 -           x="-150.07172"
813 -           sodipodi:role="line">contentmain</tspan></text>
814 -    </g>
815 -    <rect
816 -       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.45654476;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
817 -       id="rect2383"
818 -       width="772.32111"
819 -       height="43.888428"
820 -       x="-131.1837"
821 -       y="86.559296"
822 -       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
823 -       inkscape:export-xdpi="60.912449"
824 -       inkscape:export-ydpi="60.912449" />
825 -    <text
826 -       xml:space="preserve"
827 -       style="font-size:16px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr;line-height:125%"
828 -       x="-122.69418"
829 -       y="115.50363"
830 -       id="text2385"
831 -       sodipodi:linespacing="125%"
832 -       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
833 -       inkscape:export-xdpi="60.912449"
834 -       inkscape:export-ydpi="60.912449"><tspan
835 -         sodipodi:role="line"
836 -         x="-122.69418"
837 -         y="115.50363"
838 -         id="tspan3163">navcontenttop</tspan></text>
839 -    <rect
840 -       style="fill:#ffd5d5;fill-rule:evenodd;stroke:#000000;stroke-width:3.06523442;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
841 -       id="rect3167"
842 -       width="770.26868"
843 -       height="203.16078"
844 -       x="-125.88269"
845 -       y="172.90417"
846 -       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
847 -       inkscape:export-xdpi="60.912449"
848 -       inkscape:export-ydpi="60.912449" />
849 -    <text
850 -       xml:space="preserve"
851 -       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
852 -       x="348.26724"
853 -       y="205.34305"
854 -       id="text3169"
855 -       sodipodi:linespacing="125%"
856 -       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
857 -       inkscape:export-xdpi="60.912449"
858 -       inkscape:export-ydpi="60.912449"><tspan
859 -         sodipodi:role="line"
860 -         x="348.26724"
861 -         y="205.34305"
862 -         id="tspan3171">render_entity_attributes()</tspan></text>
863 -    <rect
864 -       style="fill:#ffd5d5;fill-rule:evenodd;stroke:#000000;stroke-width:3.06523442;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
865 -       id="rect3173"
866 -       width="769.93549"
867 -       height="237.84663"
868 -       x="-125.03326"
869 -       y="391.32156"
870 -       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
871 -       inkscape:export-xdpi="60.912449"
872 -       inkscape:export-ydpi="60.912449" />
873 -    <text
874 -       xml:space="preserve"
875 -       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
876 -       x="360.99954"
877 -       y="428.38055"
878 -       id="text3175"
879 -       sodipodi:linespacing="125%"
880 -       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
881 -       inkscape:export-xdpi="60.912449"
882 -       inkscape:export-ydpi="60.912449"><tspan
883 -         sodipodi:role="line"
884 -         x="360.99954"
885 -         y="428.38055"
886 -         id="tspan3177">render_entity_relations()</tspan></text>
887 -    <rect
888 -       style="fill:#ffd5d5;fill-rule:evenodd;stroke:#000000;stroke-width:2.15903592;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
889 -       id="rect3185"
890 -       width="178.93939"
891 -       height="612.36584"
892 -       x="667.10443"
893 -       y="84.64225"
894 -       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
895 -       inkscape:export-xdpi="60.912449"
896 -       inkscape:export-ydpi="60.912449" />
897 -    <text
898 -       xml:space="preserve"
899 -       style="font-size:22px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr;line-height:125%"
900 -       x="105.32364"
901 -       y="-810.65997"
902 -       id="text3187"
903 -       transform="matrix(0,1,-1,0,0,0)"
904 -       sodipodi:linespacing="125%"
905 -       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
906 -       inkscape:export-xdpi="60.912449"
907 -       inkscape:export-ydpi="60.912449"><tspan
908 -         sodipodi:role="line"
909 -         id="tspan2408">render_side_boxes()</tspan></text>
910 -    <rect
911 -       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:3.0652349;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
912 -       id="rect3191"
913 -       width="771.97766"
914 -       height="55.647793"
915 -       x="-127.80586"
916 -       y="642.0293"
917 -       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
918 -       inkscape:export-xdpi="60.912449"
919 -       inkscape:export-ydpi="60.912449" />
920 -    <text
921 -       xml:space="preserve"
922 -       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
923 -       x="-121.22153"
924 -       y="674.1748"
925 -       id="text3181"
926 -       sodipodi:linespacing="125%"
927 -       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
928 -       inkscape:export-xdpi="60.912449"
929 -       inkscape:export-ydpi="60.912449"><tspan
930 -         sodipodi:role="line"
931 -         x="-121.22153"
932 -         y="674.1748"
933 -         id="tspan3183">navcontentbottom</tspan></text>
934 -    <rect
935 -       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.68198514;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
936 -       id="rect3881"
937 -       width="986.90503"
938 -       height="45.800392"
939 -       x="-128.34428"
940 -       y="-31.574066"
941 -       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
942 -       inkscape:export-xdpi="60.912449"
943 -       inkscape:export-ydpi="60.912449" />
944 -    <text
945 -       xml:space="preserve"
946 -       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
947 -       x="355.60541"
948 -       y="-2.7424495"
949 -       id="text3883"
950 -       sodipodi:linespacing="125%"
951 -       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
952 -       inkscape:export-xdpi="60.912449"
953 -       inkscape:export-ydpi="60.912449"><tspan
954 -         sodipodi:role="line"
955 -         x="355.60541"
956 -         y="-2.7424495"
957 -         id="tspan3885">render_entity_toolbox(), render_entity_title()</tspan></text>
958 -    <rect
959 -       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.68198514;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
960 -       id="rect3890"
961 -       width="986.90503"
962 -       height="45.800392"
963 -       x="-128.87863"
964 -       y="19.723684"
965 -       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
966 -       inkscape:export-xdpi="60.912449"
967 -       inkscape:export-ydpi="60.912449" />
968 -    <text
969 -       xml:space="preserve"
970 -       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
971 -       x="565.71027"
972 -       y="50.135612"
973 -       id="text3892"
974 -       sodipodi:linespacing="125%"
975 -       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
976 -       inkscape:export-xdpi="60.912449"
977 -       inkscape:export-ydpi="60.912449"><tspan
978 -         sodipodi:role="line"
979 -         x="565.71027"
980 -         y="50.135612"
981 -         id="tspan3894">render_entity_summary()</tspan></text>
982 -    <text
983 -       xml:space="preserve"
984 -       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
985 -       x="87.154541"
986 -       y="114.2578"
987 -       id="text3899"
988 -       sodipodi:linespacing="125%"
989 -       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
990 -       inkscape:export-xdpi="60.912449"
991 -       inkscape:export-ydpi="60.912449"><tspan
992 -         sodipodi:role="line"
993 -         id="tspan3903"
994 -         x="87.154541"
995 -         y="114.2578">content_navigation_components('navcontenttop')</tspan></text>
996 -    <text
997 -       xml:space="preserve"
998 -       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
999 -       x="88.46772"
1000 -       y="675.71582"
1001 -       id="text2410"
1002 -       sodipodi:linespacing="125%"
1003 -       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
1004 -       inkscape:export-xdpi="60.912449"
1005 -       inkscape:export-ydpi="60.912449"><tspan
1006 -         sodipodi:role="line"
1007 -         id="tspan2412"
1008 -         x="88.46772"
1009 -         y="675.71582">content_navigation_components('navcontenttop')</tspan></text>
1010 -  </g>
1011 -</svg>
diff --git a/doc/book/en/images/request_session.png b/doc/book/en/images/request_session.png
diff --git a/doc/book/en/images/request_session.svg b/doc/book/en/images/request_session.svg
@@ -1,206 +0,0 @@
1012 -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1013 -<!-- Created with Inkscape (http://www.inkscape.org/) -->
1014 -
1015 -<svg
1016 -   xmlns:dc="http://purl.org/dc/elements/1.1/"
1017 -   xmlns:cc="http://creativecommons.org/ns#"
1018 -   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
1019 -   xmlns:svg="http://www.w3.org/2000/svg"
1020 -   xmlns="http://www.w3.org/2000/svg"
1021 -   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
1022 -   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
1023 -   width="85.960938"
1024 -   height="12.382812"
1025 -   id="svg2"
1026 -   version="1.1"
1027 -   inkscape:version="0.48.3.1 r9886"
1028 -   sodipodi:docname="request_session.svg">
1029 -  <defs
1030 -     id="defs4">
1031 -    <marker
1032 -       inkscape:stockid="Arrow1Lend"
1033 -       orient="auto"
1034 -       refY="0.0"
1035 -       refX="0.0"
1036 -       id="Arrow1Lend"
1037 -       style="overflow:visible;">
1038 -      <path
1039 -         id="path3822"
1040 -         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
1041 -         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
1042 -         transform="scale(0.8) rotate(180) translate(12.5,0)" />
1043 -    </marker>
1044 -  </defs>
1045 -  <sodipodi:namedview
1046 -     id="base"
1047 -     pagecolor="#ffffff"
1048 -     bordercolor="#666666"
1049 -     borderopacity="1.0"
1050 -     inkscape:pageopacity="0.0"
1051 -     inkscape:pageshadow="2"
1052 -     inkscape:zoom="0.98994949"
1053 -     inkscape:cx="25.928992"
1054 -     inkscape:cy="-185.87004"
1055 -     inkscape:document-units="px"
1056 -     inkscape:current-layer="layer1"
1057 -     showgrid="false"
1058 -     fit-margin-top="0"
1059 -     fit-margin-left="0"
1060 -     fit-margin-right="0"
1061 -     fit-margin-bottom="0"
1062 -     inkscape:window-width="958"
1063 -     inkscape:window-height="1160"
1064 -     inkscape:window-x="0"
1065 -     inkscape:window-y="38"
1066 -     inkscape:window-maximized="0"
1067 -     inkscape:snap-global="true" />
1068 -  <metadata
1069 -     id="metadata7">
1070 -    <rdf:RDF>
1071 -      <cc:Work
1072 -         rdf:about="">
1073 -        <dc:format>image/svg+xml</dc:format>
1074 -        <dc:type
1075 -           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
1076 -        <dc:title />
1077 -      </cc:Work>
1078 -    </rdf:RDF>
1079 -  </metadata>
1080 -  <g
1081 -     inkscape:label="Layer 1"
1082 -     inkscape:groupmode="layer"
1083 -     id="layer1"
1084 -     transform="translate(-263.52249,-495.73373)">
1085 -    <rect
1086 -       style="fill:#ffffff;stroke:#000000;stroke-width:0.92460138;stroke-opacity:1"
1087 -       id="rect3773"
1088 -       width="214.15233"
1089 -       height="184.80336"
1090 -       x="57.578697"
1091 -       y="366.01306" />
1092 -    <rect
1093 -       id="rect2985"
1094 -       width="216.86372"
1095 -       height="183.54575"
1096 -       x="348.50262"
1097 -       y="367.78079"
1098 -       style="fill:#ffffff;stroke:#000000;stroke-width:0.55298227;stroke-opacity:1" />
1099 -    <text
1100 -       xml:space="preserve"
1101 -       style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
1102 -       x="376.7869"
1103 -       y="399.80365"
1104 -       id="text3755"
1105 -       sodipodi:linespacing="125%"><tspan
1106 -         sodipodi:role="line"
1107 -         id="tspan3757"
1108 -         x="376.7869"
1109 -         y="399.80365">Repository</tspan></text>
1110 -    <rect
1111 -       style="fill:#ffffff;stroke:#000000;stroke-opacity:1"
1112 -       id="rect3759"
1113 -       width="144.45181"
1114 -       height="104.04572"
1115 -       x="237.38585"
1116 -       y="423.03714" />
1117 -    <text
1118 -       xml:space="preserve"
1119 -       style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
1120 -       x="262.63968"
1121 -       y="470.51431"
1122 -       id="text3761"
1123 -       sodipodi:linespacing="125%"><tspan
1124 -         sodipodi:role="line"
1125 -         id="tspan3763"
1126 -         x="262.63968"
1127 -         y="470.51431">REPOAPI</tspan></text>
1128 -    <text
1129 -       xml:space="preserve"
1130 -       style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
1131 -       x="262.63968"
1132 -       y="507.88998"
1133 -       id="text3765"
1134 -       sodipodi:linespacing="125%"><tspan
1135 -         sodipodi:role="line"
1136 -         id="tspan3767"
1137 -         x="262.63968"
1138 -         y="507.88998">connection</tspan></text>
1139 -    <text
1140 -       xml:space="preserve"
1141 -       style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
1142 -       x="419.21332"
1143 -       y="509.91025"
1144 -       id="text3769"
1145 -       sodipodi:linespacing="125%"><tspan
1146 -         sodipodi:role="line"
1147 -         id="tspan3771"
1148 -         x="419.21332"
1149 -         y="509.91025">session</tspan></text>
1150 -    <text
1151 -       xml:space="preserve"
1152 -       style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
1153 -       x="102.02541"
1154 -       y="397.78333"
1155 -       id="text3775"
1156 -       sodipodi:linespacing="125%"><tspan
1157 -         sodipodi:role="line"
1158 -         id="tspan3777"
1159 -         x="102.02541"
1160 -         y="397.78333">Client</tspan></text>
1161 -    <text
1162 -       xml:space="preserve"
1163 -       style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
1164 -       x="116.16754"
1165 -       y="507.88995"
1166 -       id="text3779"
1167 -       sodipodi:linespacing="125%"><tspan
1168 -         sodipodi:role="line"
1169 -         id="tspan3781"
1170 -         x="116.16754"
1171 -         y="507.88995">request</tspan></text>
1172 -    <text
1173 -       xml:space="preserve"
1174 -       style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
1175 -       x="361.50729"
1176 -       y="585.89832"
1177 -       id="text3802"
1178 -       sodipodi:linespacing="125%"><tspan
1179 -         sodipodi:role="line"
1180 -         id="tspan3804"
1181 -         x="361.50729"
1182 -         y="585.89832">database </tspan><tspan
1183 -         sodipodi:role="line"
1184 -         x="361.50729"
1185 -         y="605.89832"
1186 -         id="tspan3806">connection</tspan></text>
1187 -    <rect
1188 -       style="fill:#ffffff;stroke:#000000;stroke-width:1.48014534;stroke-opacity:1"
1189 -       id="rect3808"
1190 -       width="192.09367"
1191 -       height="58.095726"
1192 -       x="365.79443"
1193 -       y="621.50018" />
1194 -    <text
1195 -       xml:space="preserve"
1196 -       style="font-size:36px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
1197 -       x="369.5885"
1198 -       y="662.66992"
1199 -       id="text3810"
1200 -       sodipodi:linespacing="125%"><tspan
1201 -         sodipodi:role="line"
1202 -         id="tspan3812"
1203 -         x="369.5885"
1204 -         y="662.66992">Database</tspan></text>
1205 -    <path
1206 -       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none"
1207 -       d="M 197.57252,125.76645 195.76971,55.592808"
1208 -       id="path4260"
1209 -       inkscape:connector-type="polyline"
1210 -       inkscape:connector-curvature="3"
1211 -       inkscape:connection-start="#rect3808"
1212 -       inkscape:connection-start-point="d4"
1213 -       inkscape:connection-end="#rect2985"
1214 -       inkscape:connection-end-point="d4"
1215 -       transform="translate(263.52249,495.73373)" />
1216 -  </g>
1217 -</svg>
diff --git a/doc/book/en/images/server-class-diagram.png b/doc/book/en/images/server-class-diagram.png
diff --git a/doc/book/en/images/tutos-base_blog-form_en.png b/doc/book/en/images/tutos-base_blog-form_en.png
diff --git a/doc/book/en/images/tutos-base_blog-primary-after-post-creation_en.png b/doc/book/en/images/tutos-base_blog-primary-after-post-creation_en.png
diff --git a/doc/book/en/images/tutos-base_blog-primary_en.png b/doc/book/en/images/tutos-base_blog-primary_en.png
diff --git a/doc/book/en/images/tutos-base_blogs-list_en.png b/doc/book/en/images/tutos-base_blogs-list_en.png
diff --git a/doc/book/en/images/tutos-base_form-generic-relations_en.png b/doc/book/en/images/tutos-base_form-generic-relations_en.png
diff --git a/doc/book/en/images/tutos-base_index_en.png b/doc/book/en/images/tutos-base_index_en.png
diff --git a/doc/book/en/images/tutos-base_login-form_en.png b/doc/book/en/images/tutos-base_login-form_en.png
diff --git a/doc/book/en/images/tutos-base_myblog-blogentry-taggable-commentable-primary_en.png b/doc/book/en/images/tutos-base_myblog-blogentry-taggable-commentable-primary_en.png
diff --git a/doc/book/en/images/tutos-base_myblog-community-custom-primary_en.png b/doc/book/en/images/tutos-base_myblog-community-custom-primary_en.png
diff --git a/doc/book/en/images/tutos-base_myblog-community-default-primary_en.png b/doc/book/en/images/tutos-base_myblog-community-default-primary_en.png
diff --git a/doc/book/en/images/tutos-base_myblog-community-taggable-primary_en.png b/doc/book/en/images/tutos-base_myblog-community-taggable-primary_en.png
diff --git a/doc/book/en/images/tutos-base_myblog-custom-footer_en.png b/doc/book/en/images/tutos-base_myblog-custom-footer_en.png
diff --git a/doc/book/en/images/tutos-base_myblog-schema_en.png b/doc/book/en/images/tutos-base_myblog-schema_en.png
diff --git a/doc/book/en/images/tutos-base_myblog-siteinfo_en.png b/doc/book/en/images/tutos-base_myblog-siteinfo_en.png
diff --git a/doc/book/en/images/tutos-base_schema_en.png b/doc/book/en/images/tutos-base_schema_en.png
diff --git a/doc/book/en/images/tutos-base_siteconfig_en.png b/doc/book/en/images/tutos-base_siteconfig_en.png
diff --git a/doc/book/en/images/tutos-base_user-menu_en.png b/doc/book/en/images/tutos-base_user-menu_en.png
diff --git a/doc/book/en/images/tutos-photowebsite_background-image.png b/doc/book/en/images/tutos-photowebsite_background-image.png
diff --git a/doc/book/en/images/tutos-photowebsite_boxes.png b/doc/book/en/images/tutos-photowebsite_boxes.png
diff --git a/doc/book/en/images/tutos-photowebsite_breadcrumbs.png b/doc/book/en/images/tutos-photowebsite_breadcrumbs.png
diff --git a/doc/book/en/images/tutos-photowebsite_facets.png b/doc/book/en/images/tutos-photowebsite_facets.png
diff --git a/doc/book/en/images/tutos-photowebsite_grey-box.png b/doc/book/en/images/tutos-photowebsite_grey-box.png
diff --git a/doc/book/en/images/tutos-photowebsite_index-after.png b/doc/book/en/images/tutos-photowebsite_index-after.png
diff --git a/doc/book/en/images/tutos-photowebsite_index-before.png b/doc/book/en/images/tutos-photowebsite_index-before.png
diff --git a/doc/book/en/images/tutos-photowebsite_login-box.png b/doc/book/en/images/tutos-photowebsite_login-box.png
diff --git a/doc/book/en/images/tutos-photowebsite_prevnext.png b/doc/book/en/images/tutos-photowebsite_prevnext.png
diff --git a/doc/book/en/images/tutos-photowebsite_ui1.png b/doc/book/en/images/tutos-photowebsite_ui1.png
diff --git a/doc/book/en/images/tutos-photowebsite_ui2.png b/doc/book/en/images/tutos-photowebsite_ui2.png
diff --git a/doc/book/en/images/tutos-photowebsite_ui3.png b/doc/book/en/images/tutos-photowebsite_ui3.png
diff --git a/doc/book/en/images/undo_history-view_w600.png b/doc/book/en/images/undo_history-view_w600.png
diff --git a/doc/book/en/images/undo_mesage_w600.png b/doc/book/en/images/undo_mesage_w600.png
diff --git a/doc/book/en/images/undo_startup-link_w600.png b/doc/book/en/images/undo_startup-link_w600.png
diff --git a/doc/book/en/images/views-table-filter-shadow.png b/doc/book/en/images/views-table-filter-shadow.png
diff --git a/doc/book/en/images/views-table-filter.png b/doc/book/en/images/views-table-filter.png
diff --git a/doc/book/en/images/views-table-shadow.png b/doc/book/en/images/views-table-shadow.png
diff --git a/doc/book/en/images/views-table.png b/doc/book/en/images/views-table.png
diff --git a/doc/book/en/index.rst b/doc/book/en/index.rst
@@ -1,74 +0,0 @@
1218 -.. -*- coding: utf-8 -*-
1219 -
1220 -.. _contents:
1221 -
1222 -=====================================================
1223 -|cubicweb| - The Semantic Web is a construction game!
1224 -=====================================================
1225 -
1226 -|cubicweb| is a semantic web application framework, licensed under the LGPL,
1227 -that empowers developers to efficiently build web applications by reusing
1228 -components (called `cubes`) and following the well known object-oriented design
1229 -principles.
1230 -
1231 -Its main features are:
1232 -
1233 -* an engine driven by the explicit :ref:`data model
1234 -  <TutosBaseCustomizingTheApplicationDataModel>` of the application,
1235 -
1236 -* a query language named :ref:`RQL <RQL>` similar to W3C's SPARQL,
1237 -
1238 -* a :ref:`selection+view <TutosBaseCustomizingTheApplicationCustomViews>`
1239 -  mechanism for semi-automatic XHTML/XML/JSON/text generation,
1240 -
1241 -* a library of reusable :ref:`components <Cube>` (data model and views) that
1242 -  fulfill common needs,
1243 -
1244 -* the power and flexibility of the Python_ programming language,
1245 -
1246 -* the reliability of SQL databases, LDAP directories, Subversion and Mercurial
1247 -  for storage backends.
1248 -
1249 -Built since 2000 from an R&D effort still continued, supporting 100,000s of
1250 -daily visits at some production sites, |cubicweb| is a proven end to end solution
1251 -for semantic web application development that promotes quality, reusability and
1252 -efficiency.
1253 -
1254 -The unbeliever will read the :ref:`Tutorials`.
1255 -
1256 -The hacker will join development at the forge_.
1257 -
1258 -The impatient developer will move right away to :ref:`SetUpEnv` then to :ref:`ConfigEnv`.
1259 -
1260 -The chatter lover will join the `jabber forum`_, the `mailing-list`_ and the blog_.
1261 -
1262 -.. _Logilab: http://www.logilab.fr/
1263 -.. _forge: http://www.cubicweb.org/project/
1264 -.. _Python: http://www.python.org/
1265 -.. _`jabber forum`: http://www.logilab.org/blogentry/6718
1266 -.. _`mailing-list`: http://lists.cubicweb.org/mailman/listinfo/cubicweb
1267 -.. _blog: http://www.cubicweb.org/blog/1238
1268 -
1269 -.. toctree::
1270 -   :maxdepth: 2
1271 -
1272 -   intro/index
1273 -   tutorials/index
1274 -
1275 -.. toctree::
1276 -   :maxdepth: 3
1277 -
1278 -   devrepo/index
1279 -   devweb/index
1280 -
1281 -.. toctree::
1282 -   :maxdepth: 2
1283 -
1284 -   admin/index
1285 -   additionnal_services/index
1286 -   annexes/index
1287 -
1288 -See also:
1289 -
1290 -* the :ref:`genindex`,
1291 -* the :ref:`modindex`,
diff --git a/doc/book/en/makefile b/doc/book/en/makefile
@@ -1,88 +0,0 @@
1292 -SRC=.
1293 -
1294 -# You can set these sphinx variables from the command line.
1295 -SPHINXOPTS    =
1296 -SPHINXBUILD   = sphinx-build
1297 -PAPER         =
1298 -#BUILDDIR      = build
1299 -BUILDDIR      = ../..
1300 -CWDIR         = ../../..
1301 -JSDIR         = ${CWDIR}/web/data
1302 -JSTORST       = ${CWDIR}/doc/tools/pyjsrest.py
1303 -BUILDJS       = devweb/js_api
1304 -
1305 -# Internal variables for sphinx
1306 -PAPEROPT_a4     = -D latex_paper_size=a4
1307 -PAPEROPT_letter = -D latex_paper_size=letter
1308 -ALLSPHINXOPTS   = -d ${BUILDDIR}/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
1309 -
1310 -
1311 -
1312 -.PHONY: help clean html web pickle htmlhelp latex changes linkcheck
1313 -
1314 -help:
1315 -	@echo "Please use \`make <target>' where <target> is one of"
1316 -	@echo "  all       to make standalone HTML files, developer manual and API doc"
1317 -	@echo "  html      to make standalone HTML files"
1318 -	@echo "---  "
1319 -	@echo "  pickle    to make pickle files (usable by e.g. sphinx-web)"
1320 -	@echo "  htmlhelp  to make HTML files and a HTML help project"
1321 -	@echo "  latex     to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
1322 -	@echo "  changes   to make an overview over all changed/added/deprecated items"
1323 -	@echo "  linkcheck to check all external links for integrity"
1324 -
1325 -clean:
1326 -	rm -f *.html
1327 -	-rm -rf ${BUILDDIR}/html ${BUILDDIR}/doctrees
1328 -	-rm -rf ${BUILDJS}
1329 -
1330 -all: html
1331 -
1332 -# run sphinx ###
1333 -html: js
1334 -	mkdir -p ${BUILDDIR}/html ${BUILDDIR}/doctrees
1335 -	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) ${BUILDDIR}/html
1336 -	@echo
1337 -	@echo "Build finished. The HTML pages are in ${BUILDDIR}/html."
1338 -
1339 -js:
1340 -	mkdir -p ${BUILDJS}
1341 -	$(JSTORST) -p ${JSDIR} -o ${BUILDJS}
1342 -
1343 -pickle:
1344 -	mkdir -p ${BUILDDIR}/pickle ${BUILDDIR}/doctrees
1345 -	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) ${BUILDDIR}/pickle
1346 -	@echo
1347 -	@echo "Build finished; now you can process the pickle files or run"
1348 -	@echo "  sphinx-web ${BUILDDIR}/pickle"
1349 -	@echo "to start the sphinx-web server."
1350 -
1351 -web: pickle
1352 -
1353 -htmlhelp:
1354 -	mkdir -p ${BUILDDIR}/htmlhelp ${BUILDDIR}/doctrees
1355 -	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) ${BUILDDIR}/htmlhelp
1356 -	@echo
1357 -	@echo "Build finished; now you can run HTML Help Workshop with the" \
1358 -	      ".hhp project file in ${BUILDDIR}/htmlhelp."
1359 -
1360 -latex:
1361 -	mkdir -p ${BUILDDIR}/latex ${BUILDDIR}/doctrees
1362 -	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) ${BUILDDIR}/latex
1363 -	@echo
1364 -	@echo "Build finished; the LaTeX files are in ${BUILDDIR}/latex."
1365 -	@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
1366 -	      "run these through (pdf)latex."
1367 -
1368 -changes:
1369 -	mkdir -p ${BUILDDIR}/changes ${BUILDDIR}/doctrees
1370 -	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) ${BUILDDIR}/changes
1371 -	@echo
1372 -	@echo "The overview file is in ${BUILDDIR}/changes."
1373 -
1374 -linkcheck:
1375 -	mkdir -p ${BUILDDIR}/linkcheck ${BUILDDIR}/doctrees
1376 -	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) ${BUILDDIR}/linkcheck
1377 -	@echo
1378 -	@echo "Link check complete; look for any errors in the above output " \
1379 -	      "or in ${BUILDDIR}/linkcheck/output.txt."
diff --git a/doc/book/index.rst b/doc/book/index.rst
@@ -0,0 +1,2 @@
1380 +.. -*- coding: utf-8 -*-
1381 +
diff --git a/doc/book/en/intro/concepts.rst b/doc/book/intro/concepts.rst
diff --git a/doc/book/en/intro/history.rst b/doc/book/intro/history.rst
diff --git a/doc/book/en/intro/index.rst b/doc/book/intro/index.rst
diff --git a/doc/3.14.rst b/doc/changes/3.14.rst
diff --git a/doc/3.15.rst b/doc/changes/3.15.rst
diff --git a/doc/3.16.rst b/doc/changes/3.16.rst
diff --git a/doc/3.17.rst b/doc/changes/3.17.rst
diff --git a/doc/3.18.rst b/doc/changes/3.18.rst
diff --git a/doc/3.19.rst b/doc/changes/3.19.rst
diff --git a/doc/3.20.rst b/doc/changes/3.20.rst
diff --git a/doc/changes/index.rst b/doc/changes/index.rst
@@ -0,0 +1,13 @@
1382 +Changes
1383 +-------
1384 +
1385 +.. toctree::
1386 +    :maxdepth: 1
1387 +
1388 +    3.14
1389 +    3.15
1390 +    3.16
1391 +    3.17
1392 +    3.18
1393 +    3.19
1394 +    3.20
diff --git a/doc/conf.py b/doc/conf.py
@@ -0,0 +1,223 @@
1395 +# -*- coding: utf-8 -*-
1396 +# copyright 2003-2014 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
1397 +# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
1398 +#
1399 +# This file is part of CubicWeb.
1400 +#
1401 +# CubicWeb is free software: you can redistribute it and/or modify it under the
1402 +# terms of the GNU Lesser General Public License as published by the Free
1403 +# Software Foundation, either version 2.1 of the License, or (at your option)
1404 +# any later version.
1405 +#
1406 +# CubicWeb is distributed in the hope that it will be useful, but WITHOUT
1407 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
1408 +# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
1409 +# details.
1410 +#
1411 +# You should have received a copy of the GNU Lesser General Public License along
1412 +# with CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
1413 +"""
1414 +
1415 +"""
1416 +#
1417 +# Cubicweb documentation build configuration file, created by
1418 +# sphinx-quickstart on Fri Oct 31 09:10:36 2008.
1419 +#
1420 +# This file is execfile()d with the current directory set to its containing dir.
1421 +#
1422 +# The contents of this file are pickled, so don't put values in the namespace
1423 +# that aren't pickleable (module imports are okay, they're removed automatically).
1424 +#
1425 +# All configuration values have a default value; values that are commented out
1426 +# serve to show the default value.
1427 +
1428 +from os import path as osp
1429 +
1430 +path = __file__
1431 +path = osp.dirname(path)  # ./doc
1432 +path = osp.dirname(path)  # ./
1433 +path = osp.join(path, '__pkginfo__.py')  # ./__pkginfo__.py
1434 +cw = {}
1435 +execfile(path, {}, cw)
1436 +
1437 +# If your extensions are in another directory, add it here. If the directory
1438 +# is relative to the documentation root, use os.path.abspath to make it
1439 +# absolute, like shown here.
1440 +#sys.path.append(os.path.abspath('some/directory'))
1441 +
1442 +# General configuration
1443 +# ---------------------
1444 +
1445 +# Add any Sphinx extension module names here, as strings. They can be extensions
1446 +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
1447 +extensions = [
1448 +  'sphinx.ext.autodoc', 
1449 +  'sphinx.ext.viewcode',
1450 +  'logilab.common.sphinx_ext',
1451 +  ]
1452 +
1453 +autoclass_content = 'both'
1454 +
1455 +# Add any paths that contain templates here, relative to this directory.
1456 +#templates_path = []
1457 +
1458 +# The suffix of source filenames.
1459 +source_suffix = '.rst'
1460 +
1461 +# The master toctree document.
1462 +master_doc = 'index'
1463 +
1464 +# General substitutions.
1465 +project = 'CubicWeb'
1466 +copyright = '2001-2014, Logilab'
1467 +
1468 +# The default replacements for |version| and |release|, also used in various
1469 +# other places throughout the built documents.
1470 +#
1471 +# The short X.Y version.
1472 +version = '.'.join(str(n) for n in cw['numversion'][:2])
1473 +# The full version, including alpha/beta/rc tags.
1474 +release = cw['version']
1475 +
1476 +# There are two options for replacing |today|: either, you set today to some
1477 +# non-false value, then it is used:
1478 +#today = ''
1479 +# Else, today_fmt is used as the format for a strftime call.
1480 +today_fmt = '%B %d, %Y'
1481 +
1482 +# List of documents that shouldn't be included in the build.
1483 +unused_docs = []
1484 +
1485 +# List of directories, relative to source directories, that shouldn't be searched
1486 +# for source files.
1487 +#exclude_dirs = []
1488 +
1489 +# The reST default role (used for this markup: `text`) to use for all documents.
1490 +#default_role = None
1491 +
1492 +# If true, '()' will be appended to :func: etc. cross-reference text.
1493 +#add_function_parentheses = True
1494 +
1495 +# If true, the current module name will be prepended to all description
1496 +# unit titles (such as .. function::).
1497 +#add_module_names = True
1498 +
1499 +# If true, sectionauthor and moduleauthor directives will be shown in the
1500 +# output. They are ignored by default.
1501 +#show_authors = False
1502 +
1503 +# The name of the Pygments (syntax highlighting) style to use.
1504 +pygments_style = 'sphinx'
1505 +
1506 +
1507 +# Options for HTML output
1508 +# -----------------------
1509 +
1510 +# The style sheet to use for HTML and HTML Help pages. A file of that name
1511 +# must exist either in Sphinx' static/ path, or in one of the custom paths
1512 +# given in html_static_path.
1513 +#html_style = 'sphinx-default.css'
1514 +
1515 +# The name for this set of Sphinx documents.  If None, it defaults to
1516 +# "<project> v<release> documentation".
1517 +html_title = '%s %s' % (project, release)
1518 +
1519 +html_theme_path = ['_themes']
1520 +html_theme = 'cubicweb'
1521 +
1522 +# A shorter title for the navigation bar.  Default is the same as html_title.
1523 +#html_short_title = None
1524 +
1525 +# The name of an image file (within the static path) to place at the top of
1526 +# the sidebar.
1527 +#html_logo = None
1528 +
1529 +# The name of an image file (within the static path) to use as favicon of the
1530 +# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
1531 +# pixels large.
1532 +#html_favicon = None
1533 +
1534 +# Add any paths that contain custom static files (such as style sheets) here,
1535 +# relative to this directory. They are copied after the builtin static files,
1536 +# so a file named "default.css" will overwrite the builtin "default.css".
1537 +html_static_path = ['.static']
1538 +
1539 +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
1540 +# using the given strftime format.
1541 +html_last_updated_fmt = '%b %d, %Y'
1542 +
1543 +# If true, SmartyPants will be used to convert quotes and dashes to
1544 +# typographically correct entities.
1545 +#html_use_smartypants = True
1546 +
1547 +# Custom sidebar templates, maps document names to template names.
1548 +#html_sidebars = {}
1549 +
1550 +# Additional templates that should be rendered to pages, maps page names to
1551 +# template names.
1552 +#html_additional_pages = {}
1553 +
1554 +# If false, no module index is generated.
1555 +html_use_modindex = True
1556 +
1557 +# If false, no index is generated.
1558 +#html_use_index = True
1559 +
1560 +# If true, the index is split into individual pages for each letter.
1561 +#html_split_index = False
1562 +
1563 +# If true, the reST sources are included in the HTML build as _sources/<name>.
1564 +#html_copy_source = True
1565 +
1566 +# If true, an OpenSearch description file will be output, and all pages will
1567 +# contain a <link> tag referring to it.  The value of this option must be the
1568 +# base URL from which the finished HTML is served.
1569 +#html_use_opensearch = ''
1570 +
1571 +# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
1572 +html_file_suffix = '.html'
1573 +
1574 +# Output file base name for HTML help builder.
1575 +htmlhelp_basename = 'Cubicwebdoc'
1576 +
1577 +
1578 +# Options for LaTeX output
1579 +# ------------------------
1580 +
1581 +# The paper size ('letter' or 'a4').
1582 +#latex_paper_size = 'letter'
1583 +
1584 +# The font size ('10pt', '11pt' or '12pt').
1585 +#latex_font_size = '10pt'
1586 +
1587 +# Grouping the document tree into LaTeX files. List of tuples
1588 +# (source start file, target name, title, author, document class [howto/manual]).
1589 +latex_documents = [
1590 +  ('index', 'Cubicweb.tex', 'Cubicweb Documentation',
1591 +   'Logilab', 'manual'),
1592 +]
1593 +
1594 +# The name of an image file (relative to this directory) to place at the top of
1595 +# the title page.
1596 +#latex_logo = None
1597 +
1598 +# For "manual" documents, if this is true, then toplevel headings are parts,
1599 +# not chapters.
1600 +#latex_use_parts = False
1601 +
1602 +# Additional stuff for the LaTeX preamble.
1603 +#latex_preamble = ''
1604 +
1605 +# Documents to append as an appendix to all manuals.
1606 +#latex_appendices = []
1607 +
1608 +# If false, no module index is generated.
1609 +#latex_use_modindex = True
1610 +
1611 +#aafig_format = dict(latex='pdf', html='svg', text=None)
1612 +
1613 +rst_epilog = """
1614 +.. |cubicweb| replace:: *CubicWeb*
1615 +.. |yams| replace:: *Yams*
1616 +.. |rql| replace:: *RQL*
1617 +"""
diff --git a/doc/book/README b/doc/dev/documenting.rst
diff --git a/doc/images/03-transitions-view_en.png b/doc/images/03-transitions-view_en.png
diff --git a/doc/images/archi_globale.png b/doc/images/archi_globale.png
diff --git a/doc/images/archi_globale_en.png b/doc/images/archi_globale_en.png
diff --git a/doc/images/breadcrumbs_header.png b/doc/images/breadcrumbs_header.png
diff --git a/doc/images/facet_date_range.png b/doc/images/facet_date_range.png
diff --git a/doc/images/facet_has_image.png b/doc/images/facet_has_image.png
diff --git a/doc/images/facet_overview.png b/doc/images/facet_overview.png
diff --git a/doc/images/facet_range.png b/doc/images/facet_range.png
diff --git a/doc/images/lax-book_00-login_en.png b/doc/images/lax-book_00-login_en.png
diff --git a/doc/images/lax-book_01-start_en.png b/doc/images/lax-book_01-start_en.png
diff --git a/doc/images/lax-book_02-cookie-values_en.png b/doc/images/lax-book_02-cookie-values_en.png
diff --git a/doc/images/lax-book_02-create-blog_en.png b/doc/images/lax-book_02-create-blog_en.png
diff --git a/doc/images/lax-book_03-list-one-blog_en.png b/doc/images/lax-book_03-list-one-blog_en.png
diff --git a/doc/images/lax-book_03-site-config-panel_en.png b/doc/images/lax-book_03-site-config-panel_en.png
diff --git a/doc/images/lax-book_03-state-submitted_en.png b/doc/images/lax-book_03-state-submitted_en.png
diff --git a/doc/images/lax-book_03-transitions-view_en.png b/doc/images/lax-book_03-transitions-view_en.png
diff --git a/doc/images/lax-book_04-detail-one-blog_en.png b/doc/images/lax-book_04-detail-one-blog_en.png
diff --git a/doc/images/lax-book_05-list-two-blog_en.png b/doc/images/lax-book_05-list-two-blog_en.png
diff --git a/doc/images/lax-book_06-add-relation-entryof_en.png b/doc/images/lax-book_06-add-relation-entryof_en.png
diff --git a/doc/images/lax-book_06-main-template-logo_en.png b/doc/images/lax-book_06-main-template-logo_en.png
diff --git a/doc/images/lax-book_07-detail-one-blogentry_en.png b/doc/images/lax-book_07-detail-one-blogentry_en.png
diff --git a/doc/images/lax-book_08-schema_en.png b/doc/images/lax-book_08-schema_en.png
diff --git a/doc/images/lax-book_09-new-view-blogentry_en.png b/doc/images/lax-book_09-new-view-blogentry_en.png
diff --git a/doc/images/lax-book_10-blog-with-two-entries_en.png b/doc/images/lax-book_10-blog-with-two-entries_en.png
diff --git a/doc/images/main_template.png b/doc/images/main_template.png
diff --git a/doc/images/main_template.svg b/doc/images/main_template.svg
@@ -0,0 +1,207 @@
1618 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1619 +<!-- Created with Inkscape (http://www.inkscape.org/) -->
1620 +<svg
1621 +   xmlns:dc="http://purl.org/dc/elements/1.1/"
1622 +   xmlns:cc="http://creativecommons.org/ns#"
1623 +   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
1624 +   xmlns:svg="http://www.w3.org/2000/svg"
1625 +   xmlns="http://www.w3.org/2000/svg"
1626 +   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
1627 +   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
1628 +   width="1036.6421"
1629 +   height="845.07812"
1630 +   id="svg2"
1631 +   sodipodi:version="0.32"
1632 +   inkscape:version="0.46"
1633 +   sodipodi:docname="main_template.svg"
1634 +   inkscape:output_extension="org.inkscape.output.svg.inkscape"
1635 +   version="1.0"
1636 +   inkscape:export-filename="/home/auc/cw/doc/book/en/images/main_template.png"
1637 +   inkscape:export-xdpi="60.659016"
1638 +   inkscape:export-ydpi="60.659016">
1639 +  <defs
1640 +     id="defs4">
1641 +    <inkscape:perspective
1642 +       sodipodi:type="inkscape:persp3d"
1643 +       inkscape:vp_x="0 : 526.18109 : 1"
1644 +       inkscape:vp_y="0 : 1000 : 0"
1645 +       inkscape:vp_z="744.09448 : 526.18109 : 1"
1646 +       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
1647 +       id="perspective10" />
1648 +  </defs>
1649 +  <sodipodi:namedview
1650 +     id="base"
1651 +     pagecolor="#ffffff"
1652 +     bordercolor="#666666"
1653 +     borderopacity="1.0"
1654 +     inkscape:pageopacity="0.0"
1655 +     inkscape:pageshadow="2"
1656 +     inkscape:zoom="0.80355603"
1657 +     inkscape:cx="510.91495"
1658 +     inkscape:cy="422.53906"
1659 +     inkscape:document-units="px"
1660 +     inkscape:current-layer="layer1"
1661 +     showgrid="false"
1662 +     inkscape:window-width="925"
1663 +     inkscape:window-height="1168"
1664 +     inkscape:window-x="0"
1665 +     inkscape:window-y="0"
1666 +     inkscape:snap-bbox="true" />
1667 +  <metadata
1668 +     id="metadata7">
1669 +    <rdf:RDF>
1670 +      <cc:Work
1671 +         rdf:about="">
1672 +        <dc:format>image/svg+xml</dc:format>
1673 +        <dc:type
1674 +           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
1675 +      </cc:Work>
1676 +    </rdf:RDF>
1677 +  </metadata>
1678 +  <g
1679 +     inkscape:label="Calque 1"
1680 +     inkscape:groupmode="layer"
1681 +     id="layer1"
1682 +     transform="translate(162.2968,90.697922)">
1683 +    <rect
1684 +       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.775;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1685 +       id="rect2439"
1686 +       width="854.37006"
1687 +       height="698.2019"
1688 +       x="20.307629"
1689 +       y="-20.575344" />
1690 +    <rect
1691 +       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.775;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1692 +       id="rect3301"
1693 +       width="816.3457"
1694 +       height="508.15628"
1695 +       x="31.751091"
1696 +       y="96.33345" />
1697 +    <g
1698 +       id="g3220"
1699 +       transform="matrix(1.0035394,0,0,1,0.5745006,0)">
1700 +      <rect
1701 +         y="-89.447922"
1702 +         x="-161.0468"
1703 +         height="55.714287"
1704 +         width="1031.1713"
1705 +         id="rect3240"
1706 +         style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.50000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
1707 +      <text
1708 +         id="text3264"
1709 +         y="-51.771908"
1710 +         x="757.85767"
1711 +         style="font-size:23.38711166px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
1712 +         xml:space="preserve"><tspan
1713 +           id="tspan3266"
1714 +           y="-51.771908"
1715 +           x="757.85767"
1716 +           sodipodi:role="line">header</tspan></text>
1717 +    </g>
1718 +    <rect
1719 +       style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.775;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1720 +       id="rect3270"
1721 +       width="167.87744"
1722 +       height="707.71222"
1723 +       x="-160.02441"
1724 +       y="-24.671618" />
1725 +    <g
1726 +       id="g2434"
1727 +       transform="matrix(0.975467,0,0,1,0.6942419,-3.6587365)">
1728 +      <rect
1729 +         y="35.365849"
1730 +         x="29.548275"
1731 +         height="55.714287"
1732 +         width="842.59979"
1733 +         id="rect3279"
1734 +         style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
1735 +      <text
1736 +         id="text3281"
1737 +         y="72.885193"
1738 +         x="681.65283"
1739 +         style="font-size:23.38711166px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
1740 +         xml:space="preserve"><tspan
1741 +           id="tspan3283"
1742 +           y="72.885193"
1743 +           x="681.65283"
1744 +           sodipodi:role="line">contentheader</tspan></text>
1745 +    </g>
1746 +    <g
1747 +       id="g3170"
1748 +       transform="matrix(1.0023324,0,0,1,-2.0421673,-10.976211)">
1749 +      <rect
1750 +         y="698.6355"
1751 +         x="-158.28485"
1752 +         height="55.714287"
1753 +         width="1032.5997"
1754 +         id="rect3285"
1755 +         style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
1756 +      <text
1757 +         id="text3287"
1758 +         y="736.52045"
1759 +         x="770.28204"
1760 +         style="font-size:23.38711166px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
1761 +         xml:space="preserve"><tspan
1762 +           id="tspan3289"
1763 +           y="736.52045"
1764 +           x="770.28204"
1765 +           sodipodi:role="line">footer</tspan></text>
1766 +    </g>
1767 +    <g
1768 +       id="g3211" />
1769 +    <g
1770 +       id="g3215"
1771 +       transform="matrix(0.9712065,0,0,1,0.7659296,-17.074106)">
1772 +      <rect
1773 +         style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1774 +         id="rect3291"
1775 +         width="844.62012"
1776 +         height="55.714287"
1777 +         x="27.850754"
1778 +         y="629.88562" />
1779 +      <text
1780 +         id="text3293"
1781 +         y="666.60339"
1782 +         x="692.85773"
1783 +         style="font-size:23.38711166px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
1784 +         xml:space="preserve"><tspan
1785 +           id="tspan3295"
1786 +           y="666.60339"
1787 +           x="692.85773"
1788 +           sodipodi:role="line">contentfooter</tspan></text>
1789 +    </g>
1790 +    <text
1791 +       xml:space="preserve"
1792 +       style="font-size:23.38711166px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
1793 +       x="-143.67273"
1794 +       y="20.58094"
1795 +       id="text3297"
1796 +       sodipodi:linespacing="125%"><tspan
1797 +         sodipodi:role="line"
1798 +         id="tspan2432"
1799 +         x="-143.67273"
1800 +         y="20.58094">left column</tspan></text>
1801 +    <text
1802 +       transform="scale(0.9876573,1.0124969)"
1803 +       id="text3175"
1804 +       y="12.071429"
1805 +       x="721.0575"
1806 +       style="font-size:23.09845161px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
1807 +       xml:space="preserve"><tspan
1808 +         id="tspan3177"
1809 +         y="12.071429"
1810 +         x="721.0575"
1811 +         sodipodi:role="line">contentcol</tspan></text>
1812 +    <text
1813 +       transform="scale(0.9876573,1.0124969)"
1814 +       id="text3179"
1815 +       y="126.27104"
1816 +       x="701.45959"
1817 +       style="font-size:23.09845161px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
1818 +       xml:space="preserve"><tspan
1819 +         id="tspan3181"
1820 +         y="126.27104"
1821 +         x="701.45959"
1822 +         sodipodi:role="line">contentmain</tspan></text>
1823 +  </g>
1824 +</svg>
diff --git a/doc/images/main_template_layout.png b/doc/images/main_template_layout.png
diff --git a/doc/images/primaryview_template.png b/doc/images/primaryview_template.png
diff --git a/doc/images/primaryview_template.svg b/doc/images/primaryview_template.svg
@@ -0,0 +1,285 @@
1825 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1826 +<!-- Created with Inkscape (http://www.inkscape.org/) -->
1827 +<svg
1828 +   xmlns:dc="http://purl.org/dc/elements/1.1/"
1829 +   xmlns:cc="http://creativecommons.org/ns#"
1830 +   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
1831 +   xmlns:svg="http://www.w3.org/2000/svg"
1832 +   xmlns="http://www.w3.org/2000/svg"
1833 +   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
1834 +   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
1835 +   width="1036.6421"
1836 +   height="845.07812"
1837 +   id="svg2"
1838 +   sodipodi:version="0.32"
1839 +   inkscape:version="0.46"
1840 +   sodipodi:docname="primaryview_template.svg"
1841 +   inkscape:output_extension="org.inkscape.output.svg.inkscape"
1842 +   version="1.0"
1843 +   inkscape:export-filename="/home/steph/local/fcubicweb/cubicweb/doc/book/en/images/primaryview_template.png"
1844 +   inkscape:export-xdpi="43.451603"
1845 +   inkscape:export-ydpi="43.451603">
1846 +  <defs
1847 +     id="defs4">
1848 +    <inkscape:perspective
1849 +       sodipodi:type="inkscape:persp3d"
1850 +       inkscape:vp_x="0 : 526.18109 : 1"
1851 +       inkscape:vp_y="0 : 1000 : 0"
1852 +       inkscape:vp_z="744.09448 : 526.18109 : 1"
1853 +       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
1854 +       id="perspective10" />
1855 +  </defs>
1856 +  <sodipodi:namedview
1857 +     id="base"
1858 +     pagecolor="#ffffff"
1859 +     bordercolor="#666666"
1860 +     borderopacity="1.0"
1861 +     inkscape:pageopacity="0.0"
1862 +     inkscape:pageshadow="2"
1863 +     inkscape:zoom="0.9357135"
1864 +     inkscape:cx="518.32104"
1865 +     inkscape:cy="337.0428"
1866 +     inkscape:document-units="px"
1867 +     inkscape:current-layer="layer1"
1868 +     showgrid="false"
1869 +     inkscape:window-width="1307"
1870 +     inkscape:window-height="1168"
1871 +     inkscape:window-x="0"
1872 +     inkscape:window-y="0" />
1873 +  <metadata
1874 +     id="metadata7">
1875 +    <rdf:RDF>
1876 +      <cc:Work
1877 +         rdf:about="">
1878 +        <dc:format>image/svg+xml</dc:format>
1879 +        <dc:type
1880 +           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
1881 +      </cc:Work>
1882 +    </rdf:RDF>
1883 +  </metadata>
1884 +  <g
1885 +     inkscape:label="Calque 1"
1886 +     inkscape:groupmode="layer"
1887 +     id="layer1"
1888 +     transform="translate(162.2968,90.697922)">
1889 +    <g
1890 +       id="g3869"
1891 +       transform="matrix(1,0,0,1.0373644,0,-72.039777)"
1892 +       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
1893 +       inkscape:export-xdpi="60.912449"
1894 +       inkscape:export-ydpi="60.912449">
1895 +      <rect
1896 +         y="-15.840891"
1897 +         x="-159.08963"
1898 +         height="770.11017"
1899 +         width="1033.0049"
1900 +         id="rect3301"
1901 +         style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.90144825;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
1902 +      <text
1903 +         id="text3865"
1904 +         y="19.784882"
1905 +         x="-150.07172"
1906 +         style="font-size:28.67479324px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
1907 +         xml:space="preserve"><tspan
1908 +           id="tspan3867"
1909 +           y="19.784882"
1910 +           x="-150.07172"
1911 +           sodipodi:role="line">contentmain</tspan></text>
1912 +    </g>
1913 +    <rect
1914 +       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.45654476;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1915 +       id="rect2383"
1916 +       width="772.32111"
1917 +       height="43.888428"
1918 +       x="-131.1837"
1919 +       y="86.559296"
1920 +       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
1921 +       inkscape:export-xdpi="60.912449"
1922 +       inkscape:export-ydpi="60.912449" />
1923 +    <text
1924 +       xml:space="preserve"
1925 +       style="font-size:16px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr;line-height:125%"
1926 +       x="-122.69418"
1927 +       y="115.50363"
1928 +       id="text2385"
1929 +       sodipodi:linespacing="125%"
1930 +       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
1931 +       inkscape:export-xdpi="60.912449"
1932 +       inkscape:export-ydpi="60.912449"><tspan
1933 +         sodipodi:role="line"
1934 +         x="-122.69418"
1935 +         y="115.50363"
1936 +         id="tspan3163">navcontenttop</tspan></text>
1937 +    <rect
1938 +       style="fill:#ffd5d5;fill-rule:evenodd;stroke:#000000;stroke-width:3.06523442;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1939 +       id="rect3167"
1940 +       width="770.26868"
1941 +       height="203.16078"
1942 +       x="-125.88269"
1943 +       y="172.90417"
1944 +       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
1945 +       inkscape:export-xdpi="60.912449"
1946 +       inkscape:export-ydpi="60.912449" />
1947 +    <text
1948 +       xml:space="preserve"
1949 +       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
1950 +       x="348.26724"
1951 +       y="205.34305"
1952 +       id="text3169"
1953 +       sodipodi:linespacing="125%"
1954 +       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
1955 +       inkscape:export-xdpi="60.912449"
1956 +       inkscape:export-ydpi="60.912449"><tspan
1957 +         sodipodi:role="line"
1958 +         x="348.26724"
1959 +         y="205.34305"
1960 +         id="tspan3171">render_entity_attributes()</tspan></text>
1961 +    <rect
1962 +       style="fill:#ffd5d5;fill-rule:evenodd;stroke:#000000;stroke-width:3.06523442;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1963 +       id="rect3173"
1964 +       width="769.93549"
1965 +       height="237.84663"
1966 +       x="-125.03326"
1967 +       y="391.32156"
1968 +       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
1969 +       inkscape:export-xdpi="60.912449"
1970 +       inkscape:export-ydpi="60.912449" />
1971 +    <text
1972 +       xml:space="preserve"
1973 +       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
1974 +       x="360.99954"
1975 +       y="428.38055"
1976 +       id="text3175"
1977 +       sodipodi:linespacing="125%"
1978 +       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
1979 +       inkscape:export-xdpi="60.912449"
1980 +       inkscape:export-ydpi="60.912449"><tspan
1981 +         sodipodi:role="line"
1982 +         x="360.99954"
1983 +         y="428.38055"
1984 +         id="tspan3177">render_entity_relations()</tspan></text>
1985 +    <rect
1986 +       style="fill:#ffd5d5;fill-rule:evenodd;stroke:#000000;stroke-width:2.15903592;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1987 +       id="rect3185"
1988 +       width="178.93939"
1989 +       height="612.36584"
1990 +       x="667.10443"
1991 +       y="84.64225"
1992 +       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
1993 +       inkscape:export-xdpi="60.912449"
1994 +       inkscape:export-ydpi="60.912449" />
1995 +    <text
1996 +       xml:space="preserve"
1997 +       style="font-size:22px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr;line-height:125%"
1998 +       x="105.32364"
1999 +       y="-810.65997"
2000 +       id="text3187"
2001 +       transform="matrix(0,1,-1,0,0,0)"
2002 +       sodipodi:linespacing="125%"
2003 +       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
2004 +       inkscape:export-xdpi="60.912449"
2005 +       inkscape:export-ydpi="60.912449"><tspan
2006 +         sodipodi:role="line"
2007 +         id="tspan2408">render_side_boxes()</tspan></text>
2008 +    <rect
2009 +       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:3.0652349;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
2010 +       id="rect3191"
2011 +       width="771.97766"
2012 +       height="55.647793"
2013 +       x="-127.80586"
2014 +       y="642.0293"
2015 +       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
2016 +       inkscape:export-xdpi="60.912449"
2017 +       inkscape:export-ydpi="60.912449" />
2018 +    <text
2019 +       xml:space="preserve"
2020 +       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
2021 +       x="-121.22153"
2022 +       y="674.1748"
2023 +       id="text3181"
2024 +       sodipodi:linespacing="125%"
2025 +       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
2026 +       inkscape:export-xdpi="60.912449"
2027 +       inkscape:export-ydpi="60.912449"><tspan
2028 +         sodipodi:role="line"
2029 +         x="-121.22153"
2030 +         y="674.1748"
2031 +         id="tspan3183">navcontentbottom</tspan></text>
2032 +    <rect
2033 +       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.68198514;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
2034 +       id="rect3881"
2035 +       width="986.90503"
2036 +       height="45.800392"
2037 +       x="-128.34428"
2038 +       y="-31.574066"
2039 +       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
2040 +       inkscape:export-xdpi="60.912449"
2041 +       inkscape:export-ydpi="60.912449" />
2042 +    <text
2043 +       xml:space="preserve"
2044 +       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
2045 +       x="355.60541"
2046 +       y="-2.7424495"
2047 +       id="text3883"
2048 +       sodipodi:linespacing="125%"
2049 +       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
2050 +       inkscape:export-xdpi="60.912449"
2051 +       inkscape:export-ydpi="60.912449"><tspan
2052 +         sodipodi:role="line"
2053 +         x="355.60541"
2054 +         y="-2.7424495"
2055 +         id="tspan3885">render_entity_toolbox(), render_entity_title()</tspan></text>
2056 +    <rect
2057 +       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.68198514;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
2058 +       id="rect3890"
2059 +       width="986.90503"
2060 +       height="45.800392"
2061 +       x="-128.87863"
2062 +       y="19.723684"
2063 +       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
2064 +       inkscape:export-xdpi="60.912449"
2065 +       inkscape:export-ydpi="60.912449" />
2066 +    <text
2067 +       xml:space="preserve"
2068 +       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
2069 +       x="565.71027"
2070 +       y="50.135612"
2071 +       id="text3892"
2072 +       sodipodi:linespacing="125%"
2073 +       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
2074 +       inkscape:export-xdpi="60.912449"
2075 +       inkscape:export-ydpi="60.912449"><tspan
2076 +         sodipodi:role="line"
2077 +         x="565.71027"
2078 +         y="50.135612"
2079 +         id="tspan3894">render_entity_summary()</tspan></text>
2080 +    <text
2081 +       xml:space="preserve"
2082 +       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
2083 +       x="87.154541"
2084 +       y="114.2578"
2085 +       id="text3899"
2086 +       sodipodi:linespacing="125%"
2087 +       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
2088 +       inkscape:export-xdpi="60.912449"
2089 +       inkscape:export-ydpi="60.912449"><tspan
2090 +         sodipodi:role="line"
2091 +         id="tspan3903"
2092 +         x="87.154541"
2093 +         y="114.2578">content_navigation_components('navcontenttop')</tspan></text>
2094 +    <text
2095 +       xml:space="preserve"
2096 +       style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
2097 +       x="88.46772"
2098 +       y="675.71582"
2099 +       id="text2410"
2100 +       sodipodi:linespacing="125%"
2101 +       inkscape:export-filename="/home/auc/src/fcw/cubicweb/doc/book/en/images/primaryview_template.png"
2102 +       inkscape:export-xdpi="60.912449"
2103 +       inkscape:export-ydpi="60.912449"><tspan
2104 +         sodipodi:role="line"
2105 +         id="tspan2412"
2106 +         x="88.46772"
2107 +         y="675.71582">content_navigation_components('navcontenttop')</tspan></text>
2108 +  </g>
2109 +</svg>
diff --git a/doc/images/request_session.png b/doc/images/request_session.png
diff --git a/doc/images/request_session.svg b/doc/images/request_session.svg
@@ -0,0 +1,206 @@
2110 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2111 +<!-- Created with Inkscape (http://www.inkscape.org/) -->
2112 +
2113 +<svg
2114 +   xmlns:dc="http://purl.org/dc/elements/1.1/"
2115 +   xmlns:cc="http://creativecommons.org/ns#"
2116 +   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
2117 +   xmlns:svg="http://www.w3.org/2000/svg"
2118 +   xmlns="http://www.w3.org/2000/svg"
2119 +   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
2120 +   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
2121 +   width="85.960938"
2122 +   height="12.382812"
2123 +   id="svg2"
2124 +   version="1.1"
2125 +   inkscape:version="0.48.3.1 r9886"
2126 +   sodipodi:docname="request_session.svg">
2127 +  <defs
2128 +     id="defs4">
2129 +    <marker
2130 +       inkscape:stockid="Arrow1Lend"
2131 +       orient="auto"
2132 +       refY="0.0"
2133 +       refX="0.0"
2134 +       id="Arrow1Lend"
2135 +       style="overflow:visible;">
2136 +      <path
2137 +         id="path3822"
2138 +         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
2139 +         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
2140 +         transform="scale(0.8) rotate(180) translate(12.5,0)" />
2141 +    </marker>
2142 +  </defs>
2143 +  <sodipodi:namedview
2144 +     id="base"
2145 +     pagecolor="#ffffff"
2146 +     bordercolor="#666666"
2147 +     borderopacity="1.0"
2148 +     inkscape:pageopacity="0.0"
2149 +     inkscape:pageshadow="2"
2150 +     inkscape:zoom="0.98994949"
2151 +     inkscape:cx="25.928992"
2152 +     inkscape:cy="-185.87004"
2153 +     inkscape:document-units="px"
2154 +     inkscape:current-layer="layer1"
2155 +     showgrid="false"
2156 +     fit-margin-top="0"
2157 +     fit-margin-left="0"
2158 +     fit-margin-right="0"
2159 +     fit-margin-bottom="0"
2160 +     inkscape:window-width="958"
2161 +     inkscape:window-height="1160"
2162 +     inkscape:window-x="0"
2163 +     inkscape:window-y="38"
2164 +     inkscape:window-maximized="0"
2165 +     inkscape:snap-global="true" />
2166 +  <metadata
2167 +     id="metadata7">
2168 +    <rdf:RDF>
2169 +      <cc:Work
2170 +         rdf:about="">
2171 +        <dc:format>image/svg+xml</dc:format>
2172 +        <dc:type
2173 +           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
2174 +        <dc:title />
2175 +      </cc:Work>
2176 +    </rdf:RDF>
2177 +  </metadata>
2178 +  <g
2179 +     inkscape:label="Layer 1"
2180 +     inkscape:groupmode="layer"
2181 +     id="layer1"
2182 +     transform="translate(-263.52249,-495.73373)">
2183 +    <rect
2184 +       style="fill:#ffffff;stroke:#000000;stroke-width:0.92460138;stroke-opacity:1"
2185 +       id="rect3773"
2186 +       width="214.15233"
2187 +       height="184.80336"
2188 +       x="57.578697"
2189 +       y="366.01306" />
2190 +    <rect
2191 +       id="rect2985"
2192 +       width="216.86372"
2193 +       height="183.54575"
2194 +       x="348.50262"
2195 +       y="367.78079"
2196 +       style="fill:#ffffff;stroke:#000000;stroke-width:0.55298227;stroke-opacity:1" />
2197 +    <text
2198 +       xml:space="preserve"
2199 +       style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
2200 +       x="376.7869"
2201 +       y="399.80365"
2202 +       id="text3755"
2203 +       sodipodi:linespacing="125%"><tspan
2204 +         sodipodi:role="line"
2205 +         id="tspan3757"
2206 +         x="376.7869"
2207 +         y="399.80365">Repository</tspan></text>
2208 +    <rect
2209 +       style="fill:#ffffff;stroke:#000000;stroke-opacity:1"
2210 +       id="rect3759"
2211 +       width="144.45181"
2212 +       height="104.04572"
2213 +       x="237.38585"
2214 +       y="423.03714" />
2215 +    <text
2216 +       xml:space="preserve"
2217 +       style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
2218 +       x="262.63968"
2219 +       y="470.51431"
2220 +       id="text3761"
2221 +       sodipodi:linespacing="125%"><tspan
2222 +         sodipodi:role="line"
2223 +         id="tspan3763"
2224 +         x="262.63968"
2225 +         y="470.51431">REPOAPI</tspan></text>
2226 +    <text
2227 +       xml:space="preserve"
2228 +       style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
2229 +       x="262.63968"
2230 +       y="507.88998"
2231 +       id="text3765"
2232 +       sodipodi:linespacing="125%"><tspan
2233 +         sodipodi:role="line"
2234 +         id="tspan3767"
2235 +         x="262.63968"
2236 +         y="507.88998">connection</tspan></text>
2237 +    <text
2238 +       xml:space="preserve"
2239 +       style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
2240 +       x="419.21332"
2241 +       y="509.91025"
2242 +       id="text3769"
2243 +       sodipodi:linespacing="125%"><tspan
2244 +         sodipodi:role="line"
2245 +         id="tspan3771"
2246 +         x="419.21332"
2247 +         y="509.91025">session</tspan></text>
2248 +    <text
2249 +       xml:space="preserve"
2250 +       style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
2251 +       x="102.02541"
2252 +       y="397.78333"
2253 +       id="text3775"
2254 +       sodipodi:linespacing="125%"><tspan
2255 +         sodipodi:role="line"
2256 +         id="tspan3777"
2257 +         x="102.02541"
2258 +         y="397.78333">Client</tspan></text>
2259 +    <text
2260 +       xml:space="preserve"
2261 +       style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
2262 +       x="116.16754"
2263 +       y="507.88995"
2264 +       id="text3779"
2265 +       sodipodi:linespacing="125%"><tspan
2266 +         sodipodi:role="line"
2267 +         id="tspan3781"
2268 +         x="116.16754"
2269 +         y="507.88995">request</tspan></text>
2270 +    <text
2271 +       xml:space="preserve"
2272 +       style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
2273 +       x="361.50729"
2274 +       y="585.89832"
2275 +       id="text3802"
2276 +       sodipodi:linespacing="125%"><tspan
2277 +         sodipodi:role="line"
2278 +         id="tspan3804"
2279 +         x="361.50729"
2280 +         y="585.89832">database </tspan><tspan
2281 +         sodipodi:role="line"
2282 +         x="361.50729"
2283 +         y="605.89832"
2284 +         id="tspan3806">connection</tspan></text>
2285 +    <rect
2286 +       style="fill:#ffffff;stroke:#000000;stroke-width:1.48014534;stroke-opacity:1"
2287 +       id="rect3808"
2288 +       width="192.09367"
2289 +       height="58.095726"
2290 +       x="365.79443"
2291 +       y="621.50018" />
2292 +    <text
2293 +       xml:space="preserve"
2294 +       style="font-size:36px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
2295 +       x="369.5885"
2296 +       y="662.66992"
2297 +       id="text3810"
2298 +       sodipodi:linespacing="125%"><tspan
2299 +         sodipodi:role="line"
2300 +         id="tspan3812"
2301 +         x="369.5885"
2302 +         y="662.66992">Database</tspan></text>
2303 +    <path
2304 +       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none"
2305 +       d="M 197.57252,125.76645 195.76971,55.592808"
2306 +       id="path4260"
2307 +       inkscape:connector-type="polyline"
2308 +       inkscape:connector-curvature="3"
2309 +       inkscape:connection-start="#rect3808"
2310 +       inkscape:connection-start-point="d4"
2311 +       inkscape:connection-end="#rect2985"
2312 +       inkscape:connection-end-point="d4"
2313 +       transform="translate(263.52249,495.73373)" />
2314 +  </g>
2315 +</svg>
diff --git a/doc/images/server-class-diagram.png b/doc/images/server-class-diagram.png
diff --git a/doc/images/tutos-base_blog-form_en.png b/doc/images/tutos-base_blog-form_en.png
diff --git a/doc/images/tutos-base_blog-primary-after-post-creation_en.png b/doc/images/tutos-base_blog-primary-after-post-creation_en.png
diff --git a/doc/images/tutos-base_blog-primary_en.png b/doc/images/tutos-base_blog-primary_en.png
diff --git a/doc/images/tutos-base_blogs-list_en.png b/doc/images/tutos-base_blogs-list_en.png
diff --git a/doc/images/tutos-base_form-generic-relations_en.png b/doc/images/tutos-base_form-generic-relations_en.png
diff --git a/doc/images/tutos-base_index_en.png b/doc/images/tutos-base_index_en.png
diff --git a/doc/images/tutos-base_login-form_en.png b/doc/images/tutos-base_login-form_en.png
diff --git a/doc/images/tutos-base_myblog-blogentry-taggable-commentable-primary_en.png b/doc/images/tutos-base_myblog-blogentry-taggable-commentable-primary_en.png
diff --git a/doc/images/tutos-base_myblog-community-custom-primary_en.png b/doc/images/tutos-base_myblog-community-custom-primary_en.png
diff --git a/doc/images/tutos-base_myblog-community-default-primary_en.png b/doc/images/tutos-base_myblog-community-default-primary_en.png
diff --git a/doc/images/tutos-base_myblog-community-taggable-primary_en.png b/doc/images/tutos-base_myblog-community-taggable-primary_en.png
diff --git a/doc/images/tutos-base_myblog-custom-footer_en.png b/doc/images/tutos-base_myblog-custom-footer_en.png
diff --git a/doc/images/tutos-base_myblog-schema_en.png b/doc/images/tutos-base_myblog-schema_en.png
diff --git a/doc/images/tutos-base_myblog-siteinfo_en.png b/doc/images/tutos-base_myblog-siteinfo_en.png
diff --git a/doc/images/tutos-base_schema_en.png b/doc/images/tutos-base_schema_en.png
diff --git a/doc/images/tutos-base_siteconfig_en.png b/doc/images/tutos-base_siteconfig_en.png
diff --git a/doc/images/tutos-base_user-menu_en.png b/doc/images/tutos-base_user-menu_en.png
diff --git a/doc/images/tutos-photowebsite_background-image.png b/doc/images/tutos-photowebsite_background-image.png
diff --git a/doc/images/tutos-photowebsite_boxes.png b/doc/images/tutos-photowebsite_boxes.png
diff --git a/doc/images/tutos-photowebsite_breadcrumbs.png b/doc/images/tutos-photowebsite_breadcrumbs.png
diff --git a/doc/images/tutos-photowebsite_facets.png b/doc/images/tutos-photowebsite_facets.png
diff --git a/doc/images/tutos-photowebsite_grey-box.png b/doc/images/tutos-photowebsite_grey-box.png
diff --git a/doc/images/tutos-photowebsite_index-after.png b/doc/images/tutos-photowebsite_index-after.png
diff --git a/doc/images/tutos-photowebsite_index-before.png b/doc/images/tutos-photowebsite_index-before.png
diff --git a/doc/images/tutos-photowebsite_login-box.png b/doc/images/tutos-photowebsite_login-box.png
diff --git a/doc/images/tutos-photowebsite_prevnext.png b/doc/images/tutos-photowebsite_prevnext.png
diff --git a/doc/images/tutos-photowebsite_ui1.png b/doc/images/tutos-photowebsite_ui1.png
diff --git a/doc/images/tutos-photowebsite_ui2.png b/doc/images/tutos-photowebsite_ui2.png
diff --git a/doc/images/tutos-photowebsite_ui3.png b/doc/images/tutos-photowebsite_ui3.png
diff --git a/doc/images/undo_history-view_w600.png b/doc/images/undo_history-view_w600.png
diff --git a/doc/images/undo_mesage_w600.png b/doc/images/undo_mesage_w600.png
diff --git a/doc/images/undo_startup-link_w600.png b/doc/images/undo_startup-link_w600.png
diff --git a/doc/images/views-table-filter-shadow.png b/doc/images/views-table-filter-shadow.png
diff --git a/doc/images/views-table-filter.png b/doc/images/views-table-filter.png
diff --git a/doc/images/views-table-shadow.png b/doc/images/views-table-shadow.png
diff --git a/doc/images/views-table.png b/doc/images/views-table.png
diff --git a/doc/index.rst b/doc/index.rst
@@ -0,0 +1,111 @@
2316 +=====================================================
2317 +|cubicweb| - The Semantic Web is a construction game!
2318 +=====================================================
2319 +
2320 +|cubicweb| is a semantic web application framework, licensed under the LGPL,
2321 +that empowers developers to efficiently build web applications by reusing
2322 +components (called `cubes`) and following the well known object-oriented design
2323 +principles.
2324 +
2325 +Main Features
2326 +~~~~~~~~~~~~~
2327 +
2328 +* an engine driven by the explicit :ref:`data model
2329 +  <TutosBaseCustomizingTheApplicationDataModel>` of the application,
2330 +
2331 +* a query language named :ref:`RQL <RQL>` similar to W3C's SPARQL,
2332 +
2333 +* a :ref:`selection+view <TutosBaseCustomizingTheApplicationCustomViews>`
2334 +  mechanism for semi-automatic XHTML/XML/JSON/text generation,
2335 +
2336 +* a library of reusable :ref:`components <Cube>` (data model and views) that
2337 +  fulfill common needs,
2338 +
2339 +* the power and flexibility of the Python_ programming language,
2340 +
2341 +* the reliability of SQL databases, LDAP directories, Subversion and Mercurial
2342 +  for storage backends.
2343 +
2344 +Built since 2000 from an R&D effort still continued, supporting 100,000s of
2345 +daily visits at some production sites, |cubicweb| is a proven end to end solution
2346 +for semantic web application development that promotes quality, reusability and
2347 +efficiency.
2348 +
2349 +QuickStart
2350 +~~~~~~~~~~
2351 +
2352 +The impatient developer will move right away to :ref:`SetUpEnv` then to :ref:`ConfigEnv`.
2353 +
2354 +Social
2355 +~~~~~~
2356 +
2357 +*   Chat on the `jabber forum`_
2358 +*   Discuss on the `mailing-list`_
2359 +*   Discover on the `blog`_
2360 +*   Contribute on the forge_
2361 +
2362 +
2363 +.. _Logilab: http://www.logilab.fr/
2364 +.. _forge: http://www.cubicweb.org/project/
2365 +.. _Python: http://www.python.org/
2366 +.. _`jabber forum`: http://www.logilab.org/blogentry/6718
2367 +.. _`mailing-list`: http://lists.cubicweb.org/mailman/listinfo/cubicweb
2368 +.. _blog: http://www.cubicweb.org/blog/1238
2369 +
2370 +
2371 +Narrative Documentation
2372 +~~~~~~~~~~~~~~~~~~~~~~~
2373 +
2374 +A.k.a. "The Book"
2375 +
2376 +.. toctree::
2377 +   :maxdepth: 2
2378 +
2379 +   book/intro/index
2380 +
2381 +.. toctree::
2382 +   :maxdepth: 3
2383 +
2384 +   book/devrepo/index
2385 +   book/devweb/index
2386 +
2387 +.. toctree::
2388 +   :maxdepth: 2
2389 +
2390 +   book/admin/index
2391 +   book/additionnal_services/index
2392 +   book/annexes/index
2393 +
2394 +Tutorial
2395 +~~~~~~~~
2396 +
2397 +We present two tutorials of different levels. The blog building
2398 +tutorial introduces one smoothly to the basic concepts.
2399 +
2400 +Then there is a photo gallery construction tutorial which highlights
2401 +more advanced concepts such as unit tests, security settings,
2402 +migration scripts.
2403 +
2404 +.. toctree::
2405 +   :maxdepth: 1
2406 +   :numbered:
2407 +
2408 +   tutorials/base/index
2409 +   tutorials/advanced/index
2410 +   tutorials/tools/windmill.rst
2411 +   tutorials/textreports/index
2412 +
2413 +
2414 +Reference documentation
2415 +~~~~~~~~~~~~~~~~~~~~~~~
2416 +
2417 +.. toctree::
2418 +    :maxdepth: 1
2419 +
2420 +    js_api/index
2421 +
2422 +Indexes
2423 +~~~~~~~
2424 +
2425 +* the :ref:`genindex`,
2426 +* the :ref:`modindex`,
diff --git a/doc/book/mode_plan.py b/doc/tools/mode_plan.py
diff --git a/doc/tools/pyjsrest.py b/doc/tools/pyjsrest.py
@@ -90,10 +90,13 @@
2427              # save rst file
2428              with open(osp.join(rst_dir, filename) + '.rst', 'wb') as f_rst:
2429                  f_rst.write(rst_content)
2430      stream = open(osp.join(rst_dir, 'index.rst'), 'w')
2431      stream.write('''
2432 +Javascript API
2433 +==============
2434 +
2435  .. toctree::
2436      :maxdepth: 1
2437 
2438  ''')
2439      # first write expected files in order
diff --git a/doc/book/en/tutorials/advanced/index.rst b/doc/tutorials/advanced/index.rst
diff --git a/doc/book/en/tutorials/advanced/part01_create-cube.rst b/doc/tutorials/advanced/part01_create-cube.rst
diff --git a/doc/book/en/tutorials/advanced/part02_security.rst b/doc/tutorials/advanced/part02_security.rst
diff --git a/doc/book/en/tutorials/advanced/part03_bfss.rst b/doc/tutorials/advanced/part03_bfss.rst
diff --git a/doc/book/en/tutorials/advanced/part04_ui-base.rst b/doc/tutorials/advanced/part04_ui-base.rst
diff --git a/doc/book/en/tutorials/advanced/part05_ui-advanced.rst b/doc/tutorials/advanced/part05_ui-advanced.rst
diff --git a/doc/book/en/tutorials/base/blog-in-five-minutes.rst b/doc/tutorials/base/blog-in-five-minutes.rst
diff --git a/doc/book/en/tutorials/base/conclusion.rst b/doc/tutorials/base/conclusion.rst
diff --git a/doc/book/en/tutorials/base/customizing-the-application.rst b/doc/tutorials/base/customizing-the-application.rst
diff --git a/doc/book/en/tutorials/base/discovering-the-ui.rst b/doc/tutorials/base/discovering-the-ui.rst
diff --git a/doc/book/en/tutorials/base/index.rst b/doc/tutorials/base/index.rst
diff --git a/doc/book/en/tutorials/index.rst b/doc/tutorials/index.rst
diff --git a/doc/book/en/tutorials/textreports/index.rst b/doc/tutorials/textreports/index.rst
diff --git a/doc/book/en/tutorials/tools/windmill.rst b/doc/tutorials/tools/windmill.rst