doc/book/fr/introduction.fr.txt
changeset 54 e5cd878dc796
parent 51 8c5de7159cab
child 71 69a4bf8f5e49
equal deleted inserted replaced
53:537ad3e8e461 54:e5cd878dc796
    15 Entièrement développée en Python, `CubicWeb` publie des données provenant
    15 Entièrement développée en Python, `CubicWeb` publie des données provenant
    16 de plusieurs sources telles que des bases de données SQL, des répertoire 
    16 de plusieurs sources telles que des bases de données SQL, des répertoire 
    17 LDAP et des systèmes de gestion de versions tels que subversion. 
    17 LDAP et des systèmes de gestion de versions tels que subversion. 
    18 
    18 
    19 
    19 
    20 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.
    20 L'interface utilisateur de Logilab SDW a été spécialement conçue pour laisser 
       
    21 à l'utilisateur final toute latitude pour sélectionner puis présenter les données. 
       
    22 Elle permet d'explorer aisément la base de connaissances et d'afficher les 
       
    23 résultats avec la présentation la mieux adaptée à la tâche en cours. 
       
    24 La flexibilité de cette interface redonne à l'utilisateur le contrôle de 
       
    25 paramètres d'affichage et de présentation qui sont habituellement réservés 
       
    26 aux développeurs.
    21 
    27 
    22 En 2008, `CubicWeb` a été porté pour un nouveau type de source: le datastore 
    28 En 2008, `CubicWeb` a été porté pour un nouveau type de source: le datastore 
    23 de GoogleAppEngine_.
    29 de GoogleAppEngine_.
    24 
    30 
    25 .. _GoogleAppEngine: http://code.google.com/appengine/
    31 .. _GoogleAppEngine: http://code.google.com/appengine/
    26 
    32 
       
    33 
       
    34 Créez votre cube
       
    35 ----------------
       
    36 
       
    37 Après avoir installé votre environement de développement `CubicWeb`, vous pouvez
       
    38 commencer à construire votre premier cube: ::
       
    39 
       
    40   cubicweb-ctl newcube blog
       
    41 
       
    42 Cela va créer dans ``/path/to/forest/cubes`` une répertoire contenant ::
       
    43 
       
    44   blog/
       
    45   |
       
    46   |-- data/
       
    47   |   |-- cubes.blog.css
       
    48   |   |-- cubes.blog.js  
       
    49   |   |-- external_resources
       
    50   |
       
    51   |-- debian/
       
    52   |   |-- changelog
       
    53   |   |-- compat
       
    54   |   |-- control
       
    55   |   |-- copyright
       
    56   |   |-- cubicweb-blog.prerm
       
    57   |   |-- rules
       
    58   |
       
    59   |-- entities.py
       
    60   |
       
    61   |-- i18n/
       
    62   |   |-- en.po
       
    63   |   |-- fr.po
       
    64   |
       
    65   |-- __init__.py
       
    66   |
       
    67   |-- MANIFEST.in
       
    68   |
       
    69   |-- migration/
       
    70   |   |-- postcreate.py
       
    71   |   |-- precreate.py
       
    72   |
       
    73   |-- __pkginfo__.py
       
    74   |
       
    75   |-- schema.py
       
    76   |
       
    77   |-- setup.py
       
    78   |
       
    79   |-- site_cubicweb.py
       
    80   |
       
    81   |-- sobjects.py
       
    82   |
       
    83   |-- test/
       
    84   |   |-- data/
       
    85   |       |-- bootstrap_cubes
       
    86   |   |-- pytestconf.py
       
    87   |   |-- realdb_test_blog.py
       
    88   |   |-- test_blog.py
       
    89   |
       
    90   |-- views.py
       
    91 
       
    92 Toute modification apportée à votre modele de données devra
       
    93 etre effectue dans ce répertoire. 
       
    94 
       
    95 
       
    96 Créez votre instance
       
    97 --------------------
       
    98 
       
    99 ::
       
   100   
       
   101   cubicweb-ctl create blogdemo
       
   102 
       
   103 Cette commande va créer un répertoire ``~/etc/cubicweb.d/blogdemo``
       
   104 contenant tous les fichiers de configuration nécessaire au lancement
       
   105 de votre application web.
       
   106 
       
   107 Définissez votre schéma de données
       
   108 ----------------------------------
       
   109 
       
   110 Votre modele de données est défini dans le fichier ``schema.py`` de votre cube
       
   111 ``blog`` comme suit.
       
   112 
       
   113 ::
       
   114 
       
   115   from cubicweb.schema import format_constraint
       
   116   class Blog(EntityType):
       
   117     title = String(maxsize=50, required=True)
       
   118     description = String()
       
   119 
       
   120   class BlogEntry(EntityType):
       
   121     title = String(required=True, fulltextindexed=True, maxsize=256)
       
   122     content_format = String(meta=True, internationalizable=True, maxsize=50,
       
   123                             default='text/rest', constraints=[format_constraint])
       
   124     content = String(required=True, fulltextindexed=True)
       
   125     entry_of = SubjectRelation('Blog', cardinality='?*') 
       
   126 
       
   127 
       
   128 
       
   129 Définissez les vues de vos données
       
   130 ----------------------------------
       
   131 
       
   132 Les vues correspondantes au modele de données sont définies dans ``views.py``
       
   133 de votre cube ``blog``.
       
   134 
       
   135 :: 
       
   136 
       
   137   __docformat__ = "restructuredtext en"
       
   138 
       
   139   from mx.DateTime import DateTime
       
   140   from logilab.mtconverter import html_escape
       
   141 
       
   142   from cubicweb.common.uilib import text_cut
       
   143   from cubicweb.common.view import EntityView
       
   144   from cubicweb.web.views import baseviews
       
   145   from cubicweb.web.views.boxes import BoxTemplate, BoxHtml
       
   146   from cubicweb.web.views.calendar import MONTHNAMES
       
   147   from cubicweb.web.htmlwidgets import BoxLink, BoxWidget
       
   148 
       
   149 
       
   150   class BlogPrimaryView(baseviews.PrimaryView):
       
   151     accepts = ('Blog',)
       
   152     skip_attrs = baseviews.PrimaryView.skip_attrs + ('title',)
       
   153 
       
   154     def render_entity_title(self, entity):
       
   155         self.w(u'<h1>%s</h1>' % html_escape(entity.dc_title()))
       
   156 
       
   157     def render_entity_relations(self, entity, siderelations):
       
   158         rset = entity.related('entry_of', 'object')
       
   159         self.pagination(self.req, rset, self.w)
       
   160         self.wview('list', rset, 'null', title='')
       
   161     
       
   162 
       
   163   class BlogEntryPrimaryView(baseviews.PrimaryView):
       
   164     accepts = ('BlogEntry',)
       
   165     skip_attrs = baseviews.PrimaryView.skip_attrs + ('title',)
       
   166     show_attr_label = False
       
   167 
       
   168     def render_entity_title(self, entity):
       
   169         self.w(u'<h1>%s</h1>' % html_escape(entity.dc_title()))
       
   170 
       
   171     def content_format(self, entity):
       
   172         return entity.view('reledit', rtype='content_format')
       
   173 
       
   174 
       
   175 Bienvenue dans votre application web
       
   176 ------------------------------------
       
   177 
       
   178 Lancez votre application en exécutant : ::
       
   179 
       
   180   cubicweb-ctl start -D blogdemo
       
   181 
       
   182 
       
   183 Vous pouvez à présent accéder a votre application web vous permettant de
       
   184 créer des blogs et d'y poster des messages en visitant l'URL http://localhost:8080/.
       
   185 Un premier formulaire d'authentification va vous être proposé. Par défaut,
       
   186 l'application n'autorisera pas d'utilisateur anonyme à accéder a votre 
       
   187 application. Vous devrez donc utiliser l'utilisateur administrateur que
       
   188 vous aurez crée lors de l'initialisation de votre base de données via
       
   189 ``cubicweb-ctl create``.
       
   190 
       
   191 .. image:: ../images/login-form.png
       
   192 
       
   193 
       
   194 Une fois authentifié, vous pouvez commencer à jouer avec votre
       
   195 application. Bravo !
       
   196 
       
   197 .. image:: ../images/blog-demo-first-page.png
       
   198 
       
   199 
       
   200