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 + + +