# HG changeset patch # User Sandrine Ribeau # Date 1226546393 28800 # Node ID e5cd878dc79691e3733b1d1c6597d30390c11bbc # Parent 537ad3e8e4619ffa2a0d2c0621ddd9164dd38ecb Add images folder to share images between book/fr and book/en. Wrote a brief introduction on how to quickly run a simple blog application. Fix naming issues for Sphinx. diff -r 537ad3e8e461 -r e5cd878dc796 doc/book/fr/chap_fondements_cubicweb.txt --- a/doc/book/fr/chap_fondements_cubicweb.txt Thu Nov 13 02:38:34 2008 +0100 +++ b/doc/book/fr/chap_fondements_cubicweb.txt Wed Nov 12 19:19:53 2008 -0800 @@ -20,7 +20,7 @@ *schéma* le schéma définit le modèle de données d'une application sous forme - d'entités et de relations, grâce à la biblithèque `yams`_. C'est + d'entités et de relations, grâce à la bibliothèque `yams`_. C'est l'élément central d'une application. Il est initialement défini sur le système de fichiers et est stocké dans la base de données lors de la création d'une instance. `CubicWeb` fournit un certain nombres de diff -r 537ad3e8e461 -r e5cd878dc796 doc/book/fr/conf.py --- a/doc/book/fr/conf.py Thu Nov 13 02:38:34 2008 +0100 +++ b/doc/book/fr/conf.py Wed Nov 12 19:19:53 2008 -0800 @@ -32,7 +32,7 @@ source_suffix = '.txt' # The master toctree document. -master_doc = 'index' +master_doc = 'index.fr' # General substitutions. project = 'Cubicweb' diff -r 537ad3e8e461 -r e5cd878dc796 doc/book/fr/index-content.fr.txt --- a/doc/book/fr/index-content.fr.txt Thu Nov 13 02:38:34 2008 +0100 +++ b/doc/book/fr/index-content.fr.txt Wed Nov 12 19:19:53 2008 -0800 @@ -6,28 +6,27 @@ .. toctree:: :maxdepth: 1 - devmanual_fr/chap_fondements_cubicweb.txt - devmanual_fr/chap_mise_en_place_environnement.txt - devmanual_fr/chap_configuration_instance.txt - devmanual_fr/chap_definition_schema.txt - devmanual_fr/chap_definition_workflows.txt - devmanual_fr/chap_visualisation_donnees.txt - devmanual_fr/chap_manipulation_donnees.txt - devmanual_fr/chap_ui_gestion_formulaire.txt - devmanual_fr/chap_ui_js_json.txt - devmanual_fr/chap_autres_composants_ui.txt - devmanual_fr/chap_securite.txt - devmanual_fr/chap_serveur_crochets.txt - devmanual_fr/chap_serveur_notification.txt - - devmanual_fr/chap_rql.txt - devmanual_fr/chap_migration.txt - devmanual_fr/chap_tests.txt - devmanual_fr/chap_i18n.txt - devmanual_fr/gae.txt + chap_fondements_cubicweb.txt + chap_mise_en_place_environnement.txt + chap_configuration_instance.txt + chap_definition_schema.txt + chap_definition_workflows.txt + chap_visualisation_donnees.txt + chap_manipulation_donnees.txt + chap_ui_gestion_formulaire.txt + chap_ui_js_json.txt + chap_autres_composants_ui.txt + chap_securite.txt + chap_serveur_crochets.txt + chap_serveur_notification.txt + chap_rql.txt + chap_migration.txt + chap_tests.txt + chap_i18n.txt + gae.txt - tutmanual_fr/tut-create-app.fr.txt - devmanual_fr/references.txt + tut-create-app.fr.txt + references.txt diff -r 537ad3e8e461 -r e5cd878dc796 doc/book/fr/index.fr.txt --- a/doc/book/fr/index.fr.txt Thu Nov 13 02:38:34 2008 +0100 +++ b/doc/book/fr/index.fr.txt Wed Nov 12 19:19:53 2008 -0800 @@ -37,7 +37,7 @@ .. toctree:: :maxdepth: 1 - index-content.txt + index-content.fr.txt FAQ diff -r 537ad3e8e461 -r e5cd878dc796 doc/book/fr/introduction.fr.txt --- a/doc/book/fr/introduction.fr.txt Thu Nov 13 02:38:34 2008 +0100 +++ b/doc/book/fr/introduction.fr.txt Wed Nov 12 19:19:53 2008 -0800 @@ -17,10 +17,184 @@ LDAP et des systèmes de gestion de versions tels que subversion. -L'interface utilisateur de Logilab SDW a été spécialement conçue pour laisser à l'utilisateur final toute latitude pour sélectionner puis présenter les données. Elle permet d'explorer aisément la base de connaissances et d'afficher les résultats avec la présentation la mieux adaptée à la tâche en cours. La flexibilité de cette interface redonne à l'utilisateur le contrôle de paramètres d'affichage et de présentation qui sont habituellement réservés aux développeurs. +L'interface utilisateur de Logilab SDW a été spécialement conçue pour laisser +à l'utilisateur final toute latitude pour sélectionner puis présenter les données. +Elle permet d'explorer aisément la base de connaissances et d'afficher les +résultats avec la présentation la mieux adaptée à la tâche en cours. +La flexibilité de cette interface redonne à l'utilisateur le contrôle de +paramètres d'affichage et de présentation qui sont habituellement réservés +aux développeurs. En 2008, `CubicWeb` a été porté pour un nouveau type de source: le datastore de GoogleAppEngine_. .. _GoogleAppEngine: http://code.google.com/appengine/ + +Créez votre cube +---------------- + +Après avoir installé votre environement de développement `CubicWeb`, vous pouvez +commencer à construire votre premier cube: :: + + cubicweb-ctl newcube blog + +Cela va créer dans ``/path/to/forest/cubes`` une répertoire contenant :: + + blog/ + | + |-- data/ + | |-- cubes.blog.css + | |-- cubes.blog.js + | |-- external_resources + | + |-- debian/ + | |-- changelog + | |-- compat + | |-- control + | |-- copyright + | |-- cubicweb-blog.prerm + | |-- rules + | + |-- entities.py + | + |-- i18n/ + | |-- en.po + | |-- fr.po + | + |-- __init__.py + | + |-- MANIFEST.in + | + |-- migration/ + | |-- postcreate.py + | |-- precreate.py + | + |-- __pkginfo__.py + | + |-- schema.py + | + |-- setup.py + | + |-- site_cubicweb.py + | + |-- sobjects.py + | + |-- test/ + | |-- data/ + | |-- bootstrap_cubes + | |-- pytestconf.py + | |-- realdb_test_blog.py + | |-- test_blog.py + | + |-- views.py + +Toute modification apportée à votre modele de données devra +etre effectue dans ce répertoire. + + +Créez votre instance +-------------------- + +:: + + cubicweb-ctl create blogdemo + +Cette commande va créer un répertoire ``~/etc/cubicweb.d/blogdemo`` +contenant tous les fichiers de configuration nécessaire au lancement +de votre application web. + +Définissez votre schéma de données +---------------------------------- + +Votre modele de données est défini dans le fichier ``schema.py`` de votre cube +``blog`` comme suit. + +:: + + from cubicweb.schema import format_constraint + class Blog(EntityType): + title = String(maxsize=50, required=True) + description = String() + + class BlogEntry(EntityType): + title = String(required=True, fulltextindexed=True, maxsize=256) + content_format = String(meta=True, internationalizable=True, maxsize=50, + default='text/rest', constraints=[format_constraint]) + content = String(required=True, fulltextindexed=True) + entry_of = SubjectRelation('Blog', cardinality='?*') + + + +Définissez les vues de vos données +---------------------------------- + +Les vues correspondantes au modele de données sont définies dans ``views.py`` +de votre cube ``blog``. + +:: + + __docformat__ = "restructuredtext en" + + from mx.DateTime import DateTime + from logilab.mtconverter import html_escape + + from cubicweb.common.uilib import text_cut + from cubicweb.common.view import EntityView + from cubicweb.web.views import baseviews + from cubicweb.web.views.boxes import BoxTemplate, BoxHtml + from cubicweb.web.views.calendar import MONTHNAMES + from cubicweb.web.htmlwidgets import BoxLink, BoxWidget + + + class BlogPrimaryView(baseviews.PrimaryView): + accepts = ('Blog',) + skip_attrs = baseviews.PrimaryView.skip_attrs + ('title',) + + def render_entity_title(self, entity): + self.w(u'

%s

' % html_escape(entity.dc_title())) + + def render_entity_relations(self, entity, siderelations): + rset = entity.related('entry_of', 'object') + self.pagination(self.req, rset, self.w) + self.wview('list', rset, 'null', title='') + + + class BlogEntryPrimaryView(baseviews.PrimaryView): + accepts = ('BlogEntry',) + skip_attrs = baseviews.PrimaryView.skip_attrs + ('title',) + show_attr_label = False + + def render_entity_title(self, entity): + self.w(u'

%s

' % html_escape(entity.dc_title())) + + def content_format(self, entity): + return entity.view('reledit', rtype='content_format') + + +Bienvenue dans votre application web +------------------------------------ + +Lancez votre application en exécutant : :: + + cubicweb-ctl start -D blogdemo + + +Vous pouvez à présent accéder a votre application web vous permettant de +créer des blogs et d'y poster des messages en visitant l'URL http://localhost:8080/. +Un premier formulaire d'authentification va vous être proposé. Par défaut, +l'application n'autorisera pas d'utilisateur anonyme à accéder a votre +application. Vous devrez donc utiliser l'utilisateur administrateur que +vous aurez crée lors de l'initialisation de votre base de données via +``cubicweb-ctl create``. + +.. image:: ../images/login-form.png + + +Une fois authentifié, vous pouvez commencer à jouer avec votre +application. Bravo ! + +.. image:: ../images/blog-demo-first-page.png + + + diff -r 537ad3e8e461 -r e5cd878dc796 doc/book/images/blog-demo-first-page.png Binary file doc/book/images/blog-demo-first-page.png has changed diff -r 537ad3e8e461 -r e5cd878dc796 doc/book/images/login-form.png Binary file doc/book/images/login-form.png has changed