itws un intranet/extranet
       en python
  basé sur itools/iKaaro


Luis Belmar-Letelier luis@itaapy.com


          PyCONFr 2010
itws introduction

   Pouquoi nous aimons Python ?
     ⁍…
     ⁍ ça finis en « on »
     ⁍ L'introspection que fournis le language
   Vous en voulez encore plus ?
     ⁍ L'introspection des données de votre CMS ?
     ⁍ dans l'espace (DB en arbre)
     ⁍ et dans le temps (ACID by Git)
                          OuaaaaaOu
                                                    2 / 18
itws trois couches de python

                             itools → iKaaro → itws

itws
   from ikaaro.folder import Folder



ikaaro
   from itools.web import get_context, BaseView

itools




                                                  3 / 18
itws trois couches de python

                                 itools → iKaaro → itws
    Plan

   itools les librairies des modules de base
   iKaaro des briques de CMS
   itws
     ⁍ intranet
    ⁍ extranet



                                                      4 / 18
itws trois couches de python

                                itools → iKaaro → itws

   itools les librairies des modules de base
     ⁍ vfs, datatypes, rest, workflow, language de
       template STL, base de donnée versionnée
       avec git
   iKaaro des briques de CMS
   itws intranet/extranet




                                                     5 / 18
itws trois couches de python

                               itools → iKaaro → itws
   itools les librairies des modules de base
   iKaaro des briques de CMS
     ⁍ autoform, access control, language
       negociation, multi-site (site farm), user
       managment,
    ⁍ automatic relative links managment
   itws intranet/extranet




                                                    6 / 18
itws trois couches de python

                                itools → iKaaro → itws

   itools les librairies des modules de base
   iKaaro des briques de CMS
   itws intranet/extranet
     ⁍ intranet
    ⁍ extranet




                                                     7 / 18
itws : intranet/extranet sans coder

                               itws : intranet / extranet
   itws
     ⁍ un iKaaro peux contenir N itws
         ->permettant le déploiement « websites farm »
    ⁍   gestion des utilisateurs, mutualisé sur tous les
        websites itws d'un iKaaro
    ⁍ organisation arborescence des données.
    ⁍ base de donnée hétérogène versionnéee par git
    ⁍ Puissance d'introspection des données


                                                        8 / 18
itws : intranet/extranet sans coder

                                itws : intranet / extranet
   itws un intranet
     ⁍ GED indexation puissante avec Xapian
    ⁍ Tracker configurable
    ⁍ wiki générant de l'ODT
    ⁍ modules suplémentaires
         CRM rudimentaire
         e-commerce
   itws un extranet


                                                         9 / 18
itws : intranet/extranet sans coder

                             itws : intranet / extranet
   itws est aussi un extranet permettant de déployer
    sans coder un site web moderne
     ⁍ News Folder (Blog), Agrégateur de flux RSS
    ⁍ Banners, Slideshow SEO friendly
    ⁍ moderne -> boites configurables, twitter,
      googleMap, OpenStreetMap, remontée de
      news/blog, RSS sortant, Tags cloud, SEO, CSS
      éditable, workflow 3 états, TinyMCE pour le
      HTML, banners, gestion des users, contact form,
      menus configurable.


                                                      10 / 18
itws: Depuis quand ? Quel
                 volume ?
   itws
     ⁍ first commit 2007-07-16 -> 3 years ago
    ⁍ 1.596 commits
    ⁍ 12.608 lines of python code
    ⁍ 2.012 lines of xml templates
   iKaaro
     ⁍ first commit on git 2007-11-14
    ⁍   2.339 commits
    ⁍   19.828 lines of python code
    ⁍   3.117 lines of xml templates


                                                11 / 18
itws: Depuis quand ? Quel
                volume ?
   itools
     ⁍ first commit on git/arch 2004-06-01
    ⁍ 4.891 commits
    ⁍ 38.219 lines of python code




                                             12 / 18
Ils travaillent tous les jours ;)

Module     from            Commits      Nb python
                                        lines
itws       3 last years       1.596          2.012

ikaaro     3 last years       2.339          19.828

itools     6 last years       4.891          38.219



itws + ikaaro   3.6 commits par jours pendant 3 ans
itools          2.3 commits par jours pendant 6 ans




                                                      13 / 18
Historique : il y à 7 ans

   En 2003 commence une « Sortie de Zope »
    ⁍ Garder le bon du jambon
    ⁍ Changer le reste pièce par pièce
         ZPT → STL (fast, fast, fast)
         Zcatalog → itools.lucent, itools.catalog
         Zcatalog → itools.xapian
         ZODB → itools.database
         HTTP → libsoup
         Zpublisher → modèle de handler



                                                     14 / 18
Plus d'architecture

   Voir la conf de Juan David
    ⁍ Demain dimanche 29 août
    ⁍ « Une base de donnés versionnée en Python :
      itools.database »




                                                15 / 18
Encore plus de fonctionnalités


   Encore plus loin dans l'application métier
    ⁍ Salle Agora, Sylvain Taverne
    ⁍ « Perfect-Sale: un e-commerce en python »




                                                  16 / 18
Démo

   Jouer avec le code d'iKaaro:
    ⁍   http://tutoriels.itaapy.com/wiki/tutoriel-ikaaro-0.62
   Description fonctionnelle
    ⁍ http://www.itaapy.com/nos-solutions/itws
   Slideshow
    ⁍ http://www.itaapy.com/.../itws-en-images
   Démo en ligne
    ⁍ http://itws.demo.itaapy.com




                                                                17 / 18
Questions




            18 / 18

Pyconfr 2010-itws

  • 1.
    itws un intranet/extranet en python basé sur itools/iKaaro Luis Belmar-Letelier luis@itaapy.com PyCONFr 2010
  • 2.
    itws introduction  Pouquoi nous aimons Python ? ⁍… ⁍ ça finis en « on » ⁍ L'introspection que fournis le language  Vous en voulez encore plus ? ⁍ L'introspection des données de votre CMS ? ⁍ dans l'espace (DB en arbre) ⁍ et dans le temps (ACID by Git) OuaaaaaOu 2 / 18
  • 3.
    itws trois couchesde python  itools → iKaaro → itws itws from ikaaro.folder import Folder ikaaro from itools.web import get_context, BaseView itools 3 / 18
  • 4.
    itws trois couchesde python  itools → iKaaro → itws Plan  itools les librairies des modules de base  iKaaro des briques de CMS  itws ⁍ intranet ⁍ extranet 4 / 18
  • 5.
    itws trois couchesde python  itools → iKaaro → itws  itools les librairies des modules de base ⁍ vfs, datatypes, rest, workflow, language de template STL, base de donnée versionnée avec git  iKaaro des briques de CMS  itws intranet/extranet 5 / 18
  • 6.
    itws trois couchesde python  itools → iKaaro → itws  itools les librairies des modules de base  iKaaro des briques de CMS ⁍ autoform, access control, language negociation, multi-site (site farm), user managment, ⁍ automatic relative links managment  itws intranet/extranet 6 / 18
  • 7.
    itws trois couchesde python  itools → iKaaro → itws  itools les librairies des modules de base  iKaaro des briques de CMS  itws intranet/extranet ⁍ intranet ⁍ extranet 7 / 18
  • 8.
    itws : intranet/extranetsans coder  itws : intranet / extranet  itws ⁍ un iKaaro peux contenir N itws  ->permettant le déploiement « websites farm » ⁍ gestion des utilisateurs, mutualisé sur tous les websites itws d'un iKaaro ⁍ organisation arborescence des données. ⁍ base de donnée hétérogène versionnéee par git ⁍ Puissance d'introspection des données 8 / 18
  • 9.
    itws : intranet/extranetsans coder  itws : intranet / extranet  itws un intranet ⁍ GED indexation puissante avec Xapian ⁍ Tracker configurable ⁍ wiki générant de l'ODT ⁍ modules suplémentaires  CRM rudimentaire  e-commerce  itws un extranet 9 / 18
  • 10.
    itws : intranet/extranetsans coder  itws : intranet / extranet  itws est aussi un extranet permettant de déployer sans coder un site web moderne ⁍ News Folder (Blog), Agrégateur de flux RSS ⁍ Banners, Slideshow SEO friendly ⁍ moderne -> boites configurables, twitter, googleMap, OpenStreetMap, remontée de news/blog, RSS sortant, Tags cloud, SEO, CSS éditable, workflow 3 états, TinyMCE pour le HTML, banners, gestion des users, contact form, menus configurable. 10 / 18
  • 11.
    itws: Depuis quand? Quel volume ?  itws ⁍ first commit 2007-07-16 -> 3 years ago ⁍ 1.596 commits ⁍ 12.608 lines of python code ⁍ 2.012 lines of xml templates  iKaaro ⁍ first commit on git 2007-11-14 ⁍ 2.339 commits ⁍ 19.828 lines of python code ⁍ 3.117 lines of xml templates 11 / 18
  • 12.
    itws: Depuis quand? Quel volume ?  itools ⁍ first commit on git/arch 2004-06-01 ⁍ 4.891 commits ⁍ 38.219 lines of python code 12 / 18
  • 13.
    Ils travaillent tousles jours ;) Module from Commits Nb python lines itws 3 last years 1.596 2.012 ikaaro 3 last years 2.339 19.828 itools 6 last years 4.891 38.219 itws + ikaaro 3.6 commits par jours pendant 3 ans itools 2.3 commits par jours pendant 6 ans 13 / 18
  • 14.
    Historique : ily à 7 ans  En 2003 commence une « Sortie de Zope » ⁍ Garder le bon du jambon ⁍ Changer le reste pièce par pièce  ZPT → STL (fast, fast, fast)  Zcatalog → itools.lucent, itools.catalog  Zcatalog → itools.xapian  ZODB → itools.database  HTTP → libsoup  Zpublisher → modèle de handler 14 / 18
  • 15.
    Plus d'architecture  Voir la conf de Juan David ⁍ Demain dimanche 29 août ⁍ « Une base de donnés versionnée en Python : itools.database » 15 / 18
  • 16.
    Encore plus defonctionnalités  Encore plus loin dans l'application métier ⁍ Salle Agora, Sylvain Taverne ⁍ « Perfect-Sale: un e-commerce en python » 16 / 18
  • 17.
    Démo  Jouer avec le code d'iKaaro: ⁍ http://tutoriels.itaapy.com/wiki/tutoriel-ikaaro-0.62  Description fonctionnelle ⁍ http://www.itaapy.com/nos-solutions/itws  Slideshow ⁍ http://www.itaapy.com/.../itws-en-images  Démo en ligne ⁍ http://itws.demo.itaapy.com 17 / 18
  • 18.
    Questions 18 / 18