Plonegov projet egov

112
Mohamed OUALI 1 Projet de fin d’étude 2009/2010

description

CommunesPlone gestionnaire de contenu opensource adapté aux contexte marocain PloneGov est l’extension internationale du projet CommunesPlone qui est un projet à l'initiative de communes wallonnes désireuses de diminuer leur dépendance aux fournisseurs informatiques et de retrouver une plus grande indépendance technologique. Pour cela, elles ont choisi de développer un ensemble des outils informatiques et sites internet véritablement adaptés à leurs besoins en ayant recours à des technologies open source. Les outils actuellement proposés dans le cadre du projet CommunesPlone s'appuient sur un logiciel de gestion de contenu (CMS) appelé Plone. Plone est un CMS Open Source, convivial et puissant qui vous permet de facilement ajouter et éditer tout type de contenu via le web, de produire de navigation et de recherche de ce contenu et appliquer la sécurité et de workflow à ce contenu.

Transcript of Plonegov projet egov

Page 1: Plonegov projet egov

Mohamed OUALI 1 Projet de fin d’étude 2009/2010

Page 2: Plonegov projet egov

Mohamed OUALI 2 Projet de fin d’étude 2009/2010

Dédicace

A mes très chers parents,

Aucun mot, aucune dédicace ne peut exprimer mon respect, ma considération et l’amour éternel pour les sacrifices que vous avez consentis pour mon instruction

et mon bien être.

Votre générosité et votre bonneté ont toujours été un exemple pour nous tous.

Trouvez en ce travail le fruit de votre dévouement, de votre patience et l’expression de ma gratitude et mon Profond amour.

Je t’aime papa ; je t’aime maman et sachez que je vous suis très reconnaissant.

A mes très chères sœurs, Vous m’avez toujours soutenu durant toutes mes études, je vous souhaite une vie

pleine de joie de bonheur et de réussite.

A toute ma chère famille, A mes professeurs, A mes chers amis,

A tous ceux qui m’aiment, A tous ceux que j’aime,

A tous ceux qui m’ont aidé de près ou de loin, Je dédie ce travail avec hommage.

Mohamed OUALI

Page 3: Plonegov projet egov

Mohamed OUALI 3 Projet de fin d’étude 2009/2010

Remerciement

Merci à toute personne qui m’a aidé à acheminer à bon port le présent

Projet de Fin d’Études.

Je tiens aussi à remercier mon encadrant externe du projet, Monsieur Abderrahmane ELKAFIL le Directeur de la société NEXTMA, pour son accueil chaleureux, sa disponibilité, sa patience et ses conseils précieux qu'il m’a prodigués tout au long de ce stage.

Mes remerciements sont également adressés, avec tout le respect, au personnel de la société NEXTMA pour leur aide et leur soutien.

Je voudrais également exprimer mes remerciements et mes profondes gratitudes à mon encadrant interne, M. Abdlekbir AFRAITES pour sa sympathie, sa compréhension, ses conseils et son aides pour mener à bien mon travail.

Que messieurs les membres de jury trouvent ici l’expression de mes reconnaissances pour avoir accepté de juger mon travail.

Enfin, mes sincères remerciements, avec tout le respect, à M. Ahmed DERJA le directeur de L’Ecole Nationale des Sciences Appliquées de Safi, à l’ensemble du corps professoral du département Génie informatiques pour m’avoir communiqué leur savoir et leur savoir faire et à tous mes enseignants qui ont assuré ma formation tout au long de ma période d’études.

Page 4: Plonegov projet egov

Mohamed OUALI 4 Projet de fin d’étude 2009/2010

Résumé

PloneGov est l’extension internationale du projet CommunesPlone qui est un projet à l'initiative de communes wallonnes désireuses de diminuer leur dépendance aux fournisseurs informatiques et de retrouver une plus grande indépendance technologique. Pour cela, elles ont choisi de développer un ensemble des outils informatiques et sites internet véritablement adaptés à leurs besoins en ayant recours à des technologies open source.

Les outils actuellement proposés dans le cadre du projet CommunesPlone

s'appuient sur un logiciel de gestion de contenu (CMS) appelé Plone. Plone est un CMS Open Source, convivial et puissant qui vous permet de

facilement ajouter et éditer tout type de contenu via le web, de produire de navigation et de recherche de ce contenu et appliquer la sécurité et de workflow à ce contenu.

NEXTMA, société dans laquelle j’ai effectué mon stage de fin d’études

est une des nouvelles SSLL (Société de Services en Logiciels Libres). Elle propose à ses clients plusieurs solutions Open Source pour les intranets d’entreprise et les gestions de contenu (CMS).

Ma mission au cours de ce stage était, tout d’abord, de prendre en main le

CMS Plone et d’adapter la plateforme offerte par le projet " PloneGov " au contexte marocain. Cette adaptation consiste à réaliser un site web communal et à intégrer quelques outils ou produits développés dans le cadre de ce projet.

En effet, ce projet de fin d’études m’a permis de capitaliser un savoir

faire en matière de CMS, de mieux comprendre comment fonctionne une société de services et comment une SSLL peut vivre du logiciel libre. Mots clés :

PloneGov : l’extension internationale du projet CommunesPlone CMS : Content Management System Site communal Outils CommunesPlone

Page 5: Plonegov projet egov

Mohamed OUALI 5 Projet de fin d’étude 2009/2010

INTRODUCTION……………………………………………………………………….

Chapitre I : CONTEXTE GENERAL DU PROJET : …………………...

I.1 PRESENTATION DE NEXTMA : ………………………………………… 1.1 NEXTMA en Bref : …………………………………………………. 1.2 Prestations et services : ………………………………………………. 1.3 Secteurs d’activités : …………………………………………………

I.2 DEFINITION DES OBJECTIFS DU PROJET : …………………………… I.3 PLANIFICATION DU PROJET : ………………………………………….

Chapitre II : PRESENTATION DU CMS PLONE :………………….

II.1 CONTENT MANAGEMENT SYSTEM (CMS) : ………………………… 1.1Qu'est ce qu'un CMS ? : ………………………………………………. 1.2 Pourquoi les CMS ? : ………………………………………………… 1.3 Principe et fonctionnement : ………………………………………..

1.3.1 Séparation de la forme et du contenu : ……………………. 1.3.2 Structuration des contenus : ……………………………….

1.3.3 Fonctionnement : …………………………………………. II.2 ZOPE ET CMF : ……………………………………………………………. 2.1 ZOPE : ………………………………………………………………. 2.2 CMF : ……………………………………………………………….. II.3 PLONE : ……………………………………………………… 3.1 Définition : …………………………………………….. 3.2 Installation : …………………………………………….

3.3 Premiers pas avec Plone : ……………………………………. Chapitre III : LE PROJET PLONEGOV

III.1. PRESENTATION & OBJECTIFS DU PROJET : …………………….. III.2. HISTORIQUE DU PROJET : …………………………………………. III.3 LE CHOIX DE L’OPEN SOURCE : …………………………………... 3.1 Définition : ………………………………………………………... 3.2 La valeur ajoutée des projets open source : ………………………. III.4 UN PROJET AU CŒUR DE L’EUROPE : …………………………… III.5 ASPECTS TECHNIQUES : …………………………………………… 5.1 Site web : …………………………………………………………. 5.2 Applications métiers : ……………………………………………..

Chapitre IV : REALISATION DU SITE COMMUNAL : ………….

Page 6: Plonegov projet egov

Mohamed OUALI 6 Projet de fin d’étude 2009/2010

IV.1 SITE COMMUNAL : ……………………………………………… 1.1 Obstacles : …………………………………………………… 1.2 Objectifs d’un projet site communal : ……………………….

IV.2 ANALYSE ET CAHIER DES CHARGES : …………………….. 2.1 Analyse de l’existant : ………………………………………….

2.2 Le cahier des charges : ………………………………………… IV.3 CONCEPTION ET REALISATION : ………………………………

3.1 Rassembler les informations à publier : ……………………….. 3.2 Organiser l'information collectée : ……………………………..

3.3 Planifier la future vie du site de la commune : ………………... 3.4 L'aspect présentation : …………………………………………

3.5 Les portlets : annuaire, infos pratique : ……………………….

Chapitre V : LES OUTILS INTEGRES DANS LE SITE : ………

V.1 APPLICATION DE GESTION DES ORGANES DELIBERATOIRES : … 1.1 Description fonctionnelle : ………………………………………… 1.2 Caractéristiques de l'application : …………………………………..

1.2.1 Organisation en groupes : …………………………………. 1.2.2 Rôles prédéfinis : ………………………………………….. 1.2.3 Interface générale : ………………………………………… 1.2.4 Ecrans de gestion d’un point : ……………………………..

1.2.5 Ecrans de gestion d'une séance : ………………………….. 1.2.6 Ecrans de gestion d'un procès­verbal : …………………….

1.3 Installation et configuration de l'application : …………………… 1.3.1 Installation : ………………………………………………. 1.3.2 Panneau de configuration général : ………………………. 1.3.3 Gestion des configurations de séance : …………………...

V.2 CONTACT : …………………………………………………………… V.3. AUTRES MODULES : ………………………………………………..

3.1 Système de géolocalisation : ……………………………………. 3.2 Versionning : …………………………………………………… 3.3 Forum : ………………………………………………………….

CONCLUSION …………………………………………………………....

Page 7: Plonegov projet egov

Mohamed OUALI 7 Projet de fin d’étude 2009/2010

Introduction générale

Le Maroc vient de franchir un pas décisif dans le domaine des technologies d’information et de communication (TIC). Conscient des défis de la société de l’information et des enjeux de l’économie du savoir, le Royaume mise beaucoup plus sur le génie et la richesse de son potentiel humain. En effet, sous l’impulsion Royale, le Maroc vient d’élaborer une stratégie nationale pour la société de l'information et l'économie numérique baptisée "Maroc Numeric 2013". Présentée le 10 Octobre 2009 à Rabat devant Sa Majesté le Roi Mohammed VI, "Maroc Numeric" ambitionne de faire des technologies de l'information (TI) un véritable vecteur de développement humain. Cette stratégie s’assigne également comme objectifs d’augmenter l’accessibilité de l'Internet haut débit aux citoyens, de faciliter l'accès à la connaissance et de rapprocher l'administration des besoins des citoyens en termes d'efficacité, de qualité et de transparence à travers le programme « e­gouvernement ». D’autre part, le projet PloneGov, l’extension du projet CommunesPlone, est un projet né d'un groupe de communes wallonnes qui ont choisi d'avancer ensemble pour développer des outils informatiques répondant à leurs besoins spécifiques. Celles­ci ont ainsi opté pour une base technologique ouverte, Plone, profitant ainsi du savoir­faire et de l'expérience d'une large communauté d'acteurs de par le monde. Bien plus qu'un choix technologique, CommunesPlone s'apparente à un choix philosophique: la collaboration plutôt que l'isolement et la maîtrise plutôt que la dépendance. CommunesPlone, en se basant sur des outils open source, a pour objectif le développement d'applications informatiques par et pour les communes. Autrement dit, les outils développés dans le cadre du projet peuvent être utilisés par qui que soit. En conclusion, l’adaptation de la plateforme PloneGov au contexte marocain, tout le monde peut en tirer des bénéfices.

Le présent rapport est une synthèse des travaux menés dans le cadre de ce projet. Il est réparti en cinq chapitres :

Le premier chapitre intitulé "Contexte général du projet", est consacré à la présentation de l’organisme d’accueil, donner une vue générale sur les objectifs de mon sujet ainsi que le planning suivi durant ce stage.

Le second chapitre présente le CMS "Plone" utilisé.

Page 8: Plonegov projet egov

Mohamed OUALI 8 Projet de fin d’étude 2009/2010

Le troisième chapitre est consacré à la présentation du projet "CommunesPlone".

Le cinquième chapitre traites la démarche suivie et la réalisation d’un site communal.

Le dernier chapitre illustre les outils développés dans le cadre du projet CommunesPlone et intégrés dans le site communal.

Page 9: Plonegov projet egov

Mohamed OUALI 9 Projet de fin d’étude 2009/2010

Chapitre I : CONTEXTE GENERAL DU PROJET

Ce chapitre est une présentation générale du Contexte de mon projet. J’y aborderai :

Présentation de l’organisme d’accueil NEXTMA Définition des objectifs du projet. Planification du projet.

Page 10: Plonegov projet egov

Mohamed OUALI 10 Projet de fin d’étude 2009/2010

I.1 PRESENTATION DE NEXTMA :

1.1 NEXTMA En Bref :

NEXTMA est une Société de Services en Logiciels Libres (SSLL) qui accompagne les entreprises et institutions dans le choix de solutions open source ainsi que dans l'intégration, le développement, l'adaptation aux besoins spécifiques, la maintenance et le support. Afin de bénéficier des meilleures solutions libres dans la gestion des systèmes d'information, NEXTMA offre aux PME marocaines des services qui sont orientés sur le modèle « ONE STOP SHOPPING ». C'est­à­dire en offrant une gamme étendue des services complémentaires sur mesure, car chaque entreprise à sa spécificité, afin qu'elles puissent faire face aux échéances du libre échange et soient à niveau par rapport aux normes de qualité et de performance internationalement reconnues.

1.2 Prestations et services :

NEXTMA offre une large palette de prestations et de services basés sur des composants libres adaptés aux systèmes et aux réseaux des clients. La principale tâche de cette société est d’offrir des solutions sur mesure, en matière de formation et d’assistance, concernant les problématiques relevant des systèmes d’informations, moyennant des outils libres. La gamme de services de NEXTMA est articulée autour de quatre axes majeurs qui permettent d'accompagner les clients durant toutes les phases d'un projet afin d'en assurer sa réussite.

Support En plus des offres de formations. La société propose aux équipes dédiées au développement, des prestations de support d’aide à la maintenance, afin de réduire le temps de résolution des interrogations ou des difficultés que les entreprises pourraient rencontrer lors de la mise en œuvre de certains logiciels.

Conseil

NEXTMA possède une équipe formée de consultants techniques et fonctionnels qui assure soit dans le cadre de projets, soit en amont, des missions de conseil dans les domaines suivants: gestion de contenu, travail collaboratif, dématérialisation des procédures, migration vers le libre, architecture et dimensionnement d'applications basées sur open ERP…etc.

Développement

Page 11: Plonegov projet egov

Mohamed OUALI 11 Projet de fin d’étude 2009/2010

Il constitue le cœur métier de NEXTMA et comprend le développement sur la base de logiciels libres, de portails collaboratifs internet ou intranet, avec des composantes de publication web, de travail collaboratif, de gestion électronique de documents et de workflow.

Formation

L’offre des formations, techniques et fonctionnelles, permet d'accompagner les organisations qui disposent d’équipes opérationnelles capables de mener à bien des projets. Ces formations peuvent être établies sous forme de transferts de compétences, en phases avals des projets.

1.3 Secteurs d’activités :

De part les multiples projets que NEXTMA a mené, elle a acquis un

savoir faire susceptible de lui permettre l’implantation de logiciels libres dans les différents secteurs :

Enterprise Ressource Planning (ERP) : En français Progiciels de Gestion Intégré (PGI). NEXTMA est le partenaire officiel de l’ERP open source Open ERP au Maghreb depuis 2006. Elle adapte celui­ci à la législation marocaine et aux besoins spécifiques des entreprises.

Customer Relationship Management (CRM) : NEXTMA propose l’offre SUGARCRM qui permet la gestion de la

relation client

Business Intelligence (BI) ou informatique décisionnelle.

Intranet des entreprises et gestion des contenus.

Création d’identités visuelles et sites internet institutionnels et e­commerce : La solution proposée est SMARTSHOP qui une solution libre de e­commerce (commerce électronique) qui s'appuie sur le gestionnaire contenu Joomla!

Gestion électronique des documents :

Page 12: Plonegov projet egov

Mohamed OUALI 12 Projet de fin d’étude 2009/2010

Il s’agit d’un système informatisé d'acquisition, classement, stockage, archivage des documents.

I.2 DEFINITION DES OBJECTIFS DU PROJET : PloneGov est l’extension internationale du projet CommunesPlone qui est un projet à l'initiative de communes wallonnes désireuses de diminuer leur dépendance aux fournisseurs informatiques et de retrouver une plus grande indépendance technologique. Pour cela, elles ont choisi de développer un ensemble des outils informatiques et sites internet véritablement adaptés à leurs besoins en ayant recours à des technologies open source. Les outils actuellement proposés dans le cadre du projet CommunesPlone s'appuient sur un logiciel de gestion de contenu convivial appelé Plone.

Mon projet de fin d’étude intitulé " L’adaptation de la plateforme PloneGov au contexte Marocain " a pour objectifs la réalisation des tâches suivantes :

Prise en main du CMS Plone Analyse des portails des villes marocaines existants Proposition et réalisation d’un site communal (démo) Intégration de l’application de gestion des organes délibératoires

dans le site Intégration du système de géolocalisation dans le site Intégrer le multilinguisme dans le site

I.3 PLANIFICATION DU PROJET :

Dans ce qui suit, je vais essayer d’établir la planification de mon projet, qui est scindé en plusieurs tâches. La figure 1.1, représente le planning que j’ai suivi pour réaliser mon stage :

Page 13: Plonegov projet egov

Mohamed OUALI 13 Projet de fin d’étude 2009/2010

Figure 1.1 : Planning du stage

Comme on peut remarquer sur la figure 1.1 mon stage se divise en 5 phases :

Phase1 : Dans cette phase j’ai fait tout ce qui est recherche de documentation et installation des outils (Ubuntu, CMS Plone et ses dépendances). Cette étape a été conclue par une rédaction d’un manuel d’utilisation.

Phase 2 : dans cette étape j’ai fait l’analyse de plusieurs portails des villes, des arrondissements marocains et des communes belges. A la fin de cette phase j’ai proposé un cahier de charge pour notre site communal (démo).

Phase 3 : c’est la phase de réalisation durant laquelle j’ai pu réaliser un site communal à l’aide du CMS Plone.

Phase 4 : durant cette phase j’ai pu intégrer dans le site une application de gestion des organes délibératoires, un système de géolocalisation et autres modules afin d’améliorer les fonctionnalités du site.

Phase 5 : Dans cette dernière phase j’ai rédigé mon rapport de PFE.

Page 14: Plonegov projet egov

Mohamed OUALI 14 Projet de fin d’étude 2009/2010

Chapitre II : PRESENTATION DU CMS PLONE

Dans ce chapitre je présente les Systèmes de Gestion de Contenu en particulier le CMS Plone. Il est réparti comme suit :

Content Management System (CMS) Zope et CMF Plone

Page 15: Plonegov projet egov

Mohamed OUALI 15 Projet de fin d’étude 2009/2010

II.1 CONTENT MANAGEMENT SYSTEM (CMS) :

1.1 Qu'est ce qu'un CMS ?

Les CMS ou Systèmes de Gestion de Contenu sont des outils de conception et de mise à jour de site web dynamique disposant de fonctionnalités de publication. Ils offrent en particulier une interface d'administration destinée à l'administrateur du site pour créer et modifier le contenu et les fonctionnalités du site. Les CMS partagent les fonctionnalités suivantes :

Ils permettent le travail collaboratif sur un même document. Ils fournissent une chaîne de publication (workflow) offrant la possibilité

de mettre en ligne le contenu des documents. Ils permettent de séparer les opérations de gestion de la forme et du

contenu. Ils permettent de structurer le contenu (utilisation de document, FAQ,

blogs, forums, etc.). Certains SGC permettent la gestion de versions. …

Les CMS sont de plus en plus nombreux (qu'ils soient gratuits, Open Source sous licence GNU/GPL ou payants) et offrent de plus en plus de fonctionnalités. Voici quelques uns des CMS les plus connus :

Plone : présenté dans la suite de ce document. Spip : il s’agit d’un outil simple de gestion de contenu développé

en PHP. Il permet la création de rubriques dans lesquelles les rédacteurs peuvent définir du contenu. Le contenu est ensuite validé ou rejeté par un modérateur.

PhpNuke : il s’agit d’un outil de gestion de news en PHP. Il permet de créer des sites semblables à Slashdot.

OpenCMS : il s’agit d’un outil Open Source complexe disposant d’un éditeur WYSIWYG. Il écrit suivant la norme J2EE.

Lutece : il s’agit de l’outil des mairies d’arrondissement développé par la ville de Paris. Il offre un workflow limité et permet la création de pages avec les portlettes.

Zope et CMF : Zope est un serveur d’applications développé en Python orienté gestion de contenu. Son approche base d’objets en font aujourd’hui l’une des solutions les plus puissantes du marché. Afin

Page 16: Plonegov projet egov

Mohamed OUALI 16 Projet de fin d’étude 2009/2010

d’unifier les développements, une librairie additionnelle nommée CMF ajoute les outils de la gestion de contenu.

DotClear Mambo Joomla …

1.2 Pourquoi les CMS ?

La gestion des contenus d’une entreprise ou d’un organisme est

aujourd’hui une problématique fondamentale : la réussite est souvent conditionnée par la qualité de l’informations et plus encore par les échanges d’informations. Les premiers Intranet et Internet développés sont constitués de pages Web écrites avec des outils de conception web. Rapidement, cette gestion de l’information trouve ses limites :

Création de documents limitée : Elle ne peut être réalisée que par les webmasters (ou les personnes maîtrisant les outils de création de pages).

Manque d’organisation : les documents sont organisés au mieux dans des répertoires;

Manque de cohérence : les documents ne sont pas soumis a une charte graphique et ne peuvent parailleurs être stockés sous différents formats.

Pas de moteur de recherche : l’accès à l’information est ainsi difficile.

En plus, le principal problème que rencontrent les administrateurs de sites web est celui de leur administration. L'administration d'un site web peut être décomposée en plusieurs tâches :

l'ajout de contenus, la mise à jour de contenu, la suppression de contenu, la réorganisation des données, la gestion des accès et des autorisations aux pages du site.

Comme on peut le constater, la problématique concernant la gestion des sites web peut vite rendre le travail des administrateurs de ces sites infernal. Enfin, rapidement ces sites sont soit abandonnés car trop difficiles d’accès soit deviennent surchargés par la masse d’informations. De ces constatations, de nombreux CMS sont développés pour répondre à ces problématiques.

1.3 Principe et fonctionnement:

Page 17: Plonegov projet egov

Mohamed OUALI 17 Projet de fin d’étude 2009/2010

1.3.1 Séparation de la forme et du contenu :

Le principe fondamental que respectent tous les CMS est la séparation des opérations de gestion de la forme et du contenu. En effet :

Le contenu est stocké dans une base des données, structurée en tables et en champs. C'est le contenu des champs de la base qui est créé et/ou modifié par le rédacteur, et non pas la page elle même. On parle de site "dynamique".

La présentation est définie dans une « Template ou un gabarit » qui définit la mise en page des pages web (voir annexe 2.1).

Le CMS joue un rôle de frontières entre ces deux mondes (forme et contenu). Lorsqu'un client va demander une page du site au CMS, ce dernier va rechercher les données demandées, ainsi que les gabarits associés et les fusionner ensemble pour rendre la page du site. C'est ce que présente le schéma suivant :

Figure 2.1 : séparation de la forme et du contenu

1.3.2 Structuration des contenus : Pour créer un contenu, tous les CMS adoptent les mêmes étapes :

Page 18: Plonegov projet egov

Mohamed OUALI 18 Projet de fin d’étude 2009/2010

1. Authentification : tous les utilisateurs de l’outil doivent être identifiés.

2. Cette identification peut être utilisée, par la suite, pour définir les droits et les rôles.

3. Création de documents : la création de documents doit être réalisée à travers une interface web.

4. Publication : les documents doivent être visibles dans des espaces déterminés. Par ailleurs, cette opération doit pouvoir être contrôlée. On introduit ici souvent la notion de Workflow.

Après la création, les contenus d'un site sont structurés en articles. Les CMS manipulent ces articles pour constituer les pages d'un site. Chaque page d'un site peut contenir différents articles, et un article peut apparaître dans plusieurs pages. Cette abstraction du contenu permet de manipuler les articles comme des objets.

Figure 2.2 : Manipulation des articles

1.3.3 Fonctionnement :

Maintenant que nous savons ce qui constitue les pages web gérées par un CMS, nous allons voir comment elles sont présentées aux utilisateurs qui les consultent. Ce mécanisme s'effectue en trois étapes :

Page 19: Plonegov projet egov

Mohamed OUALI 19 Projet de fin d’étude 2009/2010

Figure 2.3 : fonctionnement du CMS

1. le Visiteur demande au moteur du CMS une page particulière (ici nommée X)

2. le moteur du CMS récupère le gabarit de la page et les données qu'il contient

3. le moteur du CMS fusionne les données dans le gabarit et renvoie le résultat au visiteur qui les affichera dans son navigateur web.

La gestion de contenu ne doit pas être envisagée dans tous les cas car elle entraîne souvent des modifications dans l’organisation de l’organisme et impose des contraintes importantes. II.2 ZOPE & CMF :

2.1 ZOPE : Zope est un serveur d’applications web libre, Open Source. C’est une plateforme de développement constituée de différentes technologies et langages. Il peut être ainsi caractérisé :

Serveur d’applications atypique. Il ne respecte pas la norme J2EE développée par Sun.

Développé en python : Zope s’appuie sur un langage de script moderne. Toutefois, une partie du code sensible est écrit en C. Le python permet un développement rapide et professionnel.

Basé sur la ZODB : le serveur d’applications s’appuie sur le concept de base d’objets. L’intégration de bases de données tierces est toutefois possible.

Interface Web : tout peut être réalisé depuis un navigateur. Cette approche permet une prise en main rapide de l’outil.

Page 20: Plonegov projet egov

Mohamed OUALI 20 Projet de fin d’étude 2009/2010

Un framework riche Objets typés : les documents sont organisés en type.

2.2 CMF :

Zope est un framework extensible et sa couverture des applications de gestion de contenu est large. Toutefois, de nombreux éditeurs ont développé leurs solutions de CMS. Afin d’offrir une base commune plus large et permettre une meilleure interopérabilité des produits CMS en Zope, Zope Corporation a développé le CMF. Il s’agit d’une architecture de services orientée CMS. Ses principales caractéristiques sont :

Gestion d’un espace membre Gestion d’un processus de création de contenu : le workflow Gestion de l’indexation : un moteur de recherche est intégré Gestion de l’interface graphique : l’outil offre un moyen de définir

différents thèmes disponibles pour les utilisateurs. Gestion de metadonnées : afin d’organiser les documents, il est possible

de créer des données sur les données. Gestion de la syndication : les documents doivent pouvoir être exploités

sur des sites externes.

Zope et CMF constituent ainsi une plateforme idéale pour la création d’applications de CMS. II.3 PLONE : 3.1 Définition : Plone est un système de gestion de contenu web Open Source publié selon les normes de la GNU GPL. Il est construit au dessus du serveur d'application Zope et de son extension CMF. Plone est un produit à destination des utilisateurs finaux ayant pour objectif de simplifier la mise en place d’un outil de gestion de contenu. Il est développé par Alexander Limi, Alan Runyan, Vidar Andersen et par une communauté de développeurs passionnés. 3.2 Installation : Le présent document décrit l’installation de Plone sur les plateformes Linux (en particulier Ubuntu), plateformes de production par excellence pour Plone. De plus, les plateformes windows et MacOS disposent d’un installeur simplifiant à l’extrême cette étape. Plone est un produit Zope. Il est donc nécessaire de disposer d’un serveur Zope opérationnel sur la plateforme utilisée. Les plateformes Linux, Windows et MacOS disposent d’un installeur unifié intégrant Zope, CMF et Plone.

Page 21: Plonegov projet egov

Mohamed OUALI 21 Projet de fin d’étude 2009/2010

Pour mettre en place le système de gestion de contenu (Plone) la procédure d'installation la plus simple est l'utilisation de l'Installateur Unifié (IU). Toutefois, l’installation séparée de chaque composante reste, aussi, possible mais doit respecter un certain ordre.

a. Installation par l’IU :

a.1 Installateur unifié : Le programme d'installation unifiée est un kit d'installation source pour installer python, Zope, Plone et leurs dépendances sur les plateformes de type Linux. Elle a deux composantes principales:

Les paquets source pour Python, Zope, Plone, un couple des bibliothèques du système et certaines bibliothèques Python;

Un script d'installation qui utilise les paquetages pour créer un ready­to­run ou un fichier d'installation. Remarque: La nouvelle installation (Zope / Plone) utilisera sa propre version de Python, et le python installé par l'installateur unifié ne remplacera pas la copie de python de la plateforme utilisée (OS).

a.2 Root ou User installation :

Le script install.sh pour l'installateur unifié peut être exécuté en tant que root (généralement sudo) comme un utilisateur normal. Les principales différences sont les suivantes : En tant que root:

Est le meilleur choix pour une installation de production de Plone. Installation est par défaut dans / usr / local / Plone. Installateur unifié crée un utilisateur ''Plone'', le définit en tant que propri

étaire des fichiers de données et configure Zope pour être exécuté avec l'utilisateur effectif "Plone".

Les programmes et les fichiers de configuration sont la propriété de l'utilisateur root, et ne devrait pas être accessible en écriture par le processus de Zope.

... En tant qu'utilisateur normal:

Installation par défaut est dans $ HOME / Plone. Peut être un bon choix pour tester ou développer une instance ...

Page 22: Plonegov projet egov

Mohamed OUALI 22 Projet de fin d’étude 2009/2010

a.3 Stratégies de configuration de Zope : Le programme d'installation unifié offre deux stratégies différentes pour la configuration de votre Zope :

Le stand-alone instance Zope : est plus simple à comprendre, à intégrer et à contrôler, et est probablement le meilleur choix pour un simple environnement ou un environnement de test.

Un ZEO Client / Serveur : ZEO (Zope Enterprise Objects) vous permet d'avoir plusieurs processus clients Zope (ou des serveurs distincts) qui partagent un objet commun de processus de base de données du serveur.

a.4 Exécution de l'installateur unifié (IU) :

a.4.1 Téléchargement de lU (Installateur Unifié):

Le téléchargement de l’archive de l’installateur unifié peut être fait de deux manière différentes :

­ Via la ligne de commande (Terminal): Se déplacer dans le répertoire où nous souhaitons enregistrer l’archive (par la commande # cd chemin/répertoire) et en tapant la commande suivant :

# wget URL de votre archive

Comme exemple : # wget http://launchpad.net/plone/3.3/3.3.1/+download/Plone3.3.1UnifiedInstaller.tgz

Pour utiliser cette commande il est nécessaire, si on n’a pas l’url de l’archive, de le récupérer en passant la souris sur le lien de l’archive fourni dans le site officiel. ­ A partir du site officiel de plone : http://plone.org/products/plone/releases

a.4.2 Décompressez l'archive : Maintenant, il faut choisir un répertoire de travail commode et décompresser l'archive de l'installateur unifié par : # tar zxf PloneVERSIONUnifiedInstaller.tar.gz Puis, il faut se déplacer dans le répertoire nouvellement créé pour lancer l’installation.

a.4.3 Exécution de « install.sh » :

Page 23: Plonegov projet egov

Mohamed OUALI 23 Projet de fin d’étude 2009/2010

Avant d'exécuter l'installateur il faut s'assurer que les éléments suivants sont installés:

­ gcc, ­ g++, ­ GNU make, ­ GNU tar, ­ bzip2 et gzip.

Si on a choisi l’installation avec les privilèges root, soit "su" pour devenir root ou de faire précéder ces commandes avec "sudo".

ZEO Installation : # . / install.sh Zeo

StandAlone Installation Zope: # ./install.sh standalone

a.4.4 Fin de l’installation :

Si l’installation a réussi, il est préférable de commencer la vérification en suivant les instructions affichées à la fin du processus d'installation (ou dans le fichier README.txt dans le répertoire d'installation). Le fichier README.txt contient des instructions qui suggèrent d'ajuster les ports et le mot de passe administrateur si c'est nécessaire. Pour se connecter à Plone les informations (user/password) fournies à la fin de l'installation et stockées dans fichier "adminPassword.txt" (chemin/.../zeocluster/adminPasswoed.txt) sont nécessaires. Si le début est réussi, en ouvrant un navigateur web et en naviguant sur http://localhost:PORTCHOISI (Si nous testons sur une autre machine, il faut remplacer "localhost" par le nom, ou IP, de notre serveur hôte), nous devrions voir un message de bienvenue de Zope. Pour la version 3 de Plone, un site Plone de test devraient être disponibles à http://localhost:8080/Plone (Pour la version 2, il faut d’abord ajouter le site Plone afin de pouvoir y accéder), et la Zope Management Interface à http://localhost:8080/manage (pour toutes les versions et si on n’a pas changé le port 8080).

a.4.5 A quoi ressemble Plone ? Après avoir ajouté un site Plone à son instance ZOPE, l’utilisateur peut voir son site sous plusieur vue selon son rôle. La figure ci­dessous montre la vue anonyme affichée à un utilisateur non connecté :

Page 24: Plonegov projet egov

Mohamed OUALI 24 Projet de fin d’étude 2009/2010

Figure 2.4 : interface d’un site Plone

b. Installation séparée :

Pour installer chaque composante indépendamment des autres il faut suivre l’ordre suivant : 1. Créer un utilisateur zope et se connecter sous cet utilisateur :

­ # useradd new_user –p password ­ # su new_user 2. Télécharger un binaire Zope-XXX.tgz, le décompresser, lancer le script install puis lancer le script start.py, noter le mot de passe du compte admin et arrêter Zope avec le script stop.py. 3. Télécharger CMF­XXX.tar.gz, le décompresser et déplacer les répertoires CMFCore, CMFDefaut, CMFCalendar et CMFTopic dans lib/python/Product du serveur Zope. 4. Téléchargez Plone­tar.gz, le décompresser et déplacer les répertoires CMFPlone, DCWorkflow et Formulator dans lib/python/Product. 5. Démarrer ensuite Zope pour découvrir Plone.

3.3 Premiers Pas avec Plone :

En suivant les instructions précédentes, il est possible dorénavant de se connecter avec notre navigateur préféré :

­ A la ZMI par l’url suivante : http://mon ip:Port (par défaut 8080). Une page semblable à la figure 2.1 doit apparaître.

Page 25: Plonegov projet egov

Mohamed OUALI 25 Projet de fin d’étude 2009/2010

Figure 2.1 : Page d’accueil de Zope

­ Au site Plone par l’url suivante : http://mon ip:Port/site-plone (un site

ou une instance Plone est générée automatiquement par IU pour la version 3.X.X, alors que pour la version 2.X.X c’est à l’utilisateur de créer son propre instance).

La page de la figure 2.1 n’est nullement spécifique à Plone : il s’agit de la page d’accueil de Zope. Il est ensuite nécessaire de se connecter à la ZMI, l’interface d’administration de Zope. Pour cela, il est possible de cliquer sur le lien Zope Managemement Interface ou d’utiliser l’url http ://mon ip :Port/manage. Le compte admin ainsi que le mot de passe fournit précédemment sont nécessaires. Une page semblable à la figure 2.2 doit apparaître.

Page 26: Plonegov projet egov

Mohamed OUALI 26 Projet de fin d’étude 2009/2010

Figure 2.2 : La ZMI

A. Création d’une instance Plone :

La création d’une instance Plone est réalisée à travers la ZMI. Il suffit de se placer à la racine de Zope et d’ajouter un objet de type ‘‘ Plone Site ’’. Comme le montre les figures :

Figure 2.3 : Ajout d’un site Plone

Page 27: Plonegov projet egov

Mohamed OUALI 27 Projet de fin d’étude 2009/2010

Figure 2.4 : Formulaire d’ajout d’un site Plone

Un formulaire est, composé de quelques champs, ensuite présenté semblable à la figure 2.4 : Les différents champs permettent de paramétrer notre objet Plone :

­ Id : l’identifiant de l’objet. Attention, il s’agit d’un identifiant qui doit être correct d’un point de vue url ;

­ Title : le titre associé à cet objet. Il n’y a pas de restriction ; ­ Membership source : Plone est un site collaboratif qui permet à chaque

utilisateur de s’enregistrer. Les utilisateurs peuvent être stockés dans un objet acl_users local à notre Plone site ou dans l’objet acl_users global. Il est conseillé de laisser la valeur par défaut : create a new user folder ;

­ Description : cette description est utilisée dans certaine page afin d’expliquer le rôle de votre site Plone ;

­ Site Type : il existe deux types de site Plone. Les sites publics où les documents créés par les utilisateurs sont visibles de tous si l’on connaît leurs url et les sites privés où les documents restent privés tant que l’utilisateur ne les a pas rendus publics.

Une fois le formulaire complété, la page d’accueil de Plone est alors présentée :

Page 28: Plonegov projet egov

Mohamed OUALI 28 Projet de fin d’étude 2009/2010

Figure 2.5 : Page d’accueil de Plone

Plone est maintenant déployé, il est donc possible de découvrir son interface et ses nombreuses fonctionnalités.

B. Tour d’horizon de Plone : Cette partie permet de découvrir les fonctionnalités de Plone est de prendre en main l’outil.

B.1 Les utilisateurs :

Un portail ou une application Plone distingue les visiteurs en différentes catégories offrant plus ou moins de fonctionnalités à ces derniers. - Les rôles : Plone est une application de type communautaire, dont on peut distinguer deux principaux acteurs : • Les visiteurs : ces acteurs ne sont pas authentifiés et ne sont pas des producteurs de contenu. Leur unique tâche est la consultation de pages. On leur assigne le rôle anonymous, le rôle le plus limité ; • Les membres : ces acteurs sont identifiés et disposent d’un compte sur le site Plone. Ils peuvent créer de nouveaux contenus, les modifier et publier du contenu selon leurs droits. Ils existent différents rôles leurs offrant plus ou moins de droits. Le rôle member permet de disposer d’un compte sur le site Plone. Le rôle Reviewer offre les droits membres et permet la modération de contenus. Les acteurs Reviewer sont couramment appelés modérateurs. Enfin, le rôle manager est équivalent à root sous Unix et l’utilisateur admin (généré par défaut) dispose de ce rôle. Par ailleurs, la vue du site est différente selon le(s) rôle(s).

- L’authentification : Comme nous l’avons vu précédemment, il existe différents rôles. Pour essayer ces rôles, il convient de fermer le navigateur utilisé. En effet, l’authentification à la ZMI est une authentification HTTP et toutes les instances du navigateur

Page 29: Plonegov projet egov

Mohamed OUALI 29 Projet de fin d’étude 2009/2010

partage cette authentification. C’est pourquoi de nombreux utilisateurs de Zope utilisent deux navigateurs distincts : l’un avec le rôle manager et l’autre pour visualiser avec un autre rôle les modifications apportées. Après avoir fermé et relancé le navigateur, l’url http ://mon ip :8080/site-plone présente le site Plone sous la vue des anonymous.

Figure 2.6 : Vue anonyme du site Plone

Cette vue anonyme permet de visiter les quelques pages fournies par un site Plone par défaut. Il est aussi possible de se connecter à nouveau en tant qu’admin grâce à la portlette d’authentification (cadre bleu à gauche nommé login) ou créer un nouvel utilisateur membre avec le lien nouveau utilisateur ? de ce même slot. Dans ce cas, un formulaire d’inscription est présenté :

Page 30: Plonegov projet egov

Mohamed OUALI 30 Projet de fin d’étude 2009/2010

Figure 2.7 : Formulaire d’inscription

Après l’inscription, un message de bienvenue vous est alors présenté et vous permet de vous connecter sous ce nouvel utilisateur. B.2 Les actions : Cette section a pour objectif de réaliser une présentation fonctionnelle de l’outil Plone.

- Le menu principal : Le menu principal est constitué de divers onglets comme le montre la figure 2.8.

Figure 2.8 : menu principal

Chacun de ces onglets est un lien vers une url : • accueil : la page d’accueil • members : la page listant les membres du site • news : la page des actualités du site • events : la page des événements du site Il s’agit en fait d’actions. Cette notion sera décrite plus longuement dans ce qui suit. - La navigation :

Page 31: Plonegov projet egov

Mohamed OUALI 31 Projet de fin d’étude 2009/2010

La navigation est un aspect indispensable au bon fonctionnement d’un site. Plone offre différents éléments permettant de faciliter la navigation. La breadcrumbs ou barre de navigation est une liste indiquant l’endroit où l’on se trouve sur le site et dont chacun des éléments qui constituent le chemin est cliquable. La figure suivante permet de comprendre immédiatement :

Figure 2.9 : breadcrumbs

Par ailleurs, un autre élément est fourni afin d’offrir un déplacement rapide dans l’arborescence d’un site Plone : la boite (un slot) de navigation. Elle se présente sous la forme suivante :

Figure 2.10 : boite de navigation

B.3 La gestion du contenu : Plone s’appuie sur les concepts Zope pour la gestion de contenu et sa base d’objets. Toutefois, les objets disponibles pour la création de contenu sont distincts de ceux présentés dans la ZMI. - La création de contenu : La création de contenu est une opération disponible aux membres de votre site et celle­ci est limitée à certains espaces. L’espace privilégié pour cette opération est le répertoire mon dossier. Par défaut, Plone fournit les types suivants :

Document : ou page web est le type de contenu le plus utilisé. Il permet de stocker un titre, une description et un texte. Il est possible de lui associer des métadonnées ;

Fichier : le fichier est le document qui permet de placer le plus facilement des fichiers Word ou PDF en téléchargement sur le site ;

Evénement : un événement est un objet caractérisé par sa date. Cet objet s’il est publié apparaît sur le calendrier fourni dans le slot calendrier ;

Actualité : une nouvelle est un objet permettant de définir une actualité. Ces dernières sont visibles au travers de la page news qui les classe par ordre de publication ;

Page 32: Plonegov projet egov

Mohamed OUALI 32 Projet de fin d’étude 2009/2010

Image : juste une image ; Lien : un lien vers une autre page. Il peut être utilisé pour ranger ses

objets. Dossier automatique : ‘Topic’ ou ‘smart folder’ est un thème permet de

définir une page virtuelle offrant un listing des fichiers ou documents sélectionnés au travers de critères définis ;

Dossier : un répertoire. Pour créer un nouveau document, il suffit se placer dans un répertoire où l’on possède des droits suffisants, et de disposer de l’affichage du contenu. Une liste déroulante vous permet alors de choisir un type de contenu comme le montre la figure 2.11.

Figure 2.11 : Ajout d’un élément

- Les rôles locaux : Les rôles locaux sont une fonctionnalité avancée de la ZODB. La ZODB, base d’objets de Zope, dispose de mécanisme de sécurité semblable à un système de fichiers. Ainsi, lorsqu’un répertoire est crée, seul le propriétaire peut créer du contenu et seul un modérateur peut valider les documents. Toutefois, il peut être judicieux pour certaines raisons d’autoriser localement un utilisateur à disposer de droits particuliers. Cette fonctionnalité est apportée par les droits locaux. Les rôles locaux peuvent être définis dans les répertoires. Il suffit de sélectionner l’onglet partage puis de sélectionner les utilisateurs et le rôle qu’on désire leur attribuer. Il est ensuite possible de supprimer les rôles attribués comme le montre la figure2.12:

Page 33: Plonegov projet egov

Mohamed OUALI 33 Projet de fin d’étude 2009/2010

Figure 2.12 : Rôles locaux

Remarque : il existe une interface dans la ZMI permettant de contrôler de manière fine les rôles locaux. - Les métadonnées : Les métadonnées ou les données sur les données sont une caractéristique intéressante de Zope. Il s’agit d’informations que l’on peut attacher au contenu. Les métadonnées peuvent être le titre, l’auteur, la date de création d’un document, etc. Ces informations permettent de caractériser de manière fine les contenus. Elles sont notamment utilisées lors de recherches. Les métadonnées peuvent être définies avec l’onglet propriété d’un document comme le montre la figure 2.13 :

Page 34: Plonegov projet egov

Mohamed OUALI 34 Projet de fin d’étude 2009/2010

Figure 2.13 : les métadonnées

- Le workflow : Le workflow est l’un des points forts de Plone. Tout document peut être en effet être attaché à un workflow. Par défaut, Plone fournit plusieurs worflows :

folder workflow : le workflow des répertoires est un workflow simplifié ;

plone workflow : il s’agit du workflow classique créateur/modérateur.

Les workflows permettent d’associer aux documents des états et de gérer les transitions entre les états. Par défaut, les workflows fournis avec Plone utilisent les états suivants : • Privé : le document n’est accessible qu’à son créateur ; • Visible : le document est accessible si on dispose de son url ; • En attente : le document attend une modération pour être public ; • Public : le document est accessible et rendu visible par un certain nombre d’éléments Le fonctionnement du workflow est simple. Il suffit de sélectionner l’objet puis de choisir l’onglet Etat. Cet onglet présentant l’état de l’objet, permet de choisir une transition et ainsi de faire passer un objet d’un état à un autre. Remarque : Seules les transitions autorisées sont affichées comme le montre la figure 2.14 :

Page 35: Plonegov projet egov

Mohamed OUALI 35 Projet de fin d’étude 2009/2010

Figure 2.14 : transitions autorisés

Ainsi, pour faire apparaître la transition Publish, il faut disposer du droit Review Content. Par ailleurs, le travail de validation est simplifié pour le modérateur. En effet, lorsque ce dernier est connecté, il dispose d’une action nommée pending lui permettant de sélectionner les objets en attente et de les modérer.

C. Les produits Plone : Plone est un produit Zope extensible, c’est une maquette évoluée qu’on peut étendre ses fonctionnalités et ses contenus grâce à l’ajout de nombreux produits. Cependant, ces produits ne sont pas obligatoirement compatibles avec n’importe quelle version de Plone. Pour cela, il est nécessaire, avant de se plonger dans l’installation des produits, de bien lire les fichiers install.txt et Readme.txt. C.1 AddonProducts : Les produits complémentaires ou add­on products sont les produits qu'on peut télécharger, installer et tester gratuitement (sous la licence GPL) comme:

­ Les produits qui peuvent être utilisés pour le traitement des photos, création des galeries photo et l'observation de diaporamas de photos sur les sites Plone : PloneSWFSlideshow, ATPhoto, FriendlyAlbum , etc.

­ Les produits Plone qui peuvent être utilisés pour créer son propre site de partage vidéo et la manipulation du contenu vidéo sur lui comme SevenVideo, ATVideo, etc.

­ Les produits Plone utilisés pour modifier l’apparence, ou le look, de son site web Plone. Ces thèmes sont destinés à rendre le site unique et spéciale: Lite Plone skin, Schools Plone Theme, etc.

­ Les produits Plone qui permettent de créer plusieurs versions d'un même contenu ou de faire un changement à une copie de l'objet de publication, tout en laissant intacte la version originale publiée : PVSForPlone, CMFEditions, StagingAddOn, etc.

­ Les outils qui peuvent être utilisés pour créer son propre skin ou look pour son site plone. Ils mettent en œuvre certaines fonctionnalités visuelles spéciales, changer les couleurs ou des bordures de forme : DIYPloneStyle, Plone Skin Dump , etc.

­ Les outils développés dans le cadre du projet CommunesPlone : PloneMeeting, TeleServices, urban, CPEtatcivil, etc.

Page 36: Plonegov projet egov

Mohamed OUALI 36 Projet de fin d’étude 2009/2010

C.2 Code source :

Le code source des produits développés dans le cadre du projet CommunesPlone est contenu dans un outil de gestion des sources appelé SVN, diminutif de SUBVERSION. Le SVN est accessible à l'adresse http://svn.communesplone. org/svn/ . En utilisant un navigateur internet avec l'adresse susmentionnée, vous pourrez visualiser les produits présents dans le projet ainsi que leur arborescence mais vous ne pourrez pas télécharger globalement un produit. Afin de copier localement un produit et son arborescence, il est nécessaire d'utiliser un client subversion. Sous Linux, vous trouverez parmi tous les packages disponibles, un package nommé "Subversion", à installer (# sudo aptget install subversion). Sur le svn, chaque produit est localisé sous l'adresse : http://svn.communesplone.org/svn/communesplone/ Dans chaque produit, il y a un dossier :

"trunk": qui correspond à la dernière version en cours de développement. "branches": qui correspond à des version particulières ou en cours de

développement. ''tags'' : contenant des versions stables bien définies.

Une fois le client installé, vous devez, dans une fenêtre "invite de commande", vous positionner dans le répertoire Products de votre instance Plone. Pour installer un outil on tape la commande suivante : svn co http://le chemin de l’outil dans le serveur svn/ destination Cette commande correspond au téléchargement du contenu de l'URL dans le répertoire de destination qui sera créé. Pour mettre à jour par la suite un produit, il est nécessaire de se positionner dans le répertoire du produit et de taper la commande : # sudo svn up Une fois un produit copié sur le système de fichiers, on redémarre l'instance et on se rendre dans le panneau de configuration pour installer le produit. C.3 Installation d'un produit : L'installation d'un outil se fait de manière classique via le panneau de configuration de Plone. En sélectionnant Ajout/Suppression de produit dans le menu du panneau de configuration (configuration du site Ajout/Suppression), un écran présente les produits que l'on peut installer et les produits qui le sont déjà.

Page 37: Plonegov projet egov

Mohamed OUALI 37 Projet de fin d’étude 2009/2010

Figure 2.15 : Ajout/suppression des programmes

Il suffit dès lors de cocher la case se trouvant à côté du nom du produit et de cliquer sur le bouton "Installer".

D. L’architecture de Plone : D.1 Les outils :

CMF a introduit le concept des outils. Il en fournit d’ailleurs un grand nombre. Plone s’appuie sur ces outils et introduit quelques nouveaux outils pour simplifier certains concepts. Par ailleurs, il est à noter qu’il existe d’autres produits offrant de nouveaux outils et que la figure ci­dessous ne montre pas tous les outils :

Page 38: Plonegov projet egov

Mohamed OUALI 38 Projet de fin d’étude 2009/2010

Figure 2.16 : outils Plone

­ MailHost :

Est un formulaire permettant de configurer le SMTP qui va être utilisé pour envoyer les emails lors des oublis de mots de passe par exemple.

- Members : Dossier où chaque utilisateur aura son espace personnel *** (si autorisé voir dans la suite du document pour plus d’informations sur la configuration de Plone) ­ acl_users (User Folder) : Dossier contenant la liste des utilisateurs du portail. On ajoute un utilisateur en cliquant sur "Add" on doit alors entrer son nom d’utilisateur (sans espace) son mot de passe et la confirmation de ce dernier. ­ portal_actions (Contains custom tabs and buttons) : Les actions qu’on trouve ici sont celles qui sont appelées par le header des pages : ­ portal_calendar (Controls how Events are shown) : L’onglet intéressant dans cette partie est "Configure". On va pouvoir définir quel type d’objet sera visible dans le calendrier. Pour qu’un type soit vu dans le calendrier (en plus de configurer cet onglet) il faudra remplir les champs début (date de publication) et fin (date d’expiration) de chaque objet que l’on veut voir dans le calendrier. On va aussi choisir si on veut utiliser **** les sessions pour se rappeler des états du calendrier.

Page 39: Plonegov projet egov

Mohamed OUALI 39 Projet de fin d’étude 2009/2010

- portal_catalog (Indexes all content in the site) : Cette partie d’un Site Plone est très utile pour connaître le contenu du site. - L’onglet Contents : Ce dossier contient un objet appelé "Vocabulary" qui est en fait le recensement de tous les mots, numéros... écrits dans les pages du site. - L’onglet Catalog : Cet onglet permet de gérer les items du catalogue du site. En cliquant sur un des items de type /id_du_portail/x/... on obtient une page de renseignements très complets sur cet objet du portail. Ces informations renseignent entre autres sur : le metatype, les dates de création, de parution, d’expiration, le créateur, l’id de l’objet, l’état, la description, le type, le titre, les allowedRolesAndUsers ... - L’onglet Properties : Donne la valeur de title pour l’objet portal_catalog. - L’onglet Indexes : Il présente le résultat de l’indexation, suivant des types par exemple : – les FieldIndex donc les champs (pour le type, les dates d’expiration, de création...), – les mots clés (KeyWordIndex), – les textes (TextIndex) pour les descriptions ... - L’onglet Metadata : Contient les types de données qui vont être cataloguées (vus dans l’onglet Indexes). - L’onglet Find Objects : Permet de trouver des objets et / ou bien de cataloguer des types d’objets suivant des champs correspondant aux types, ids, contenus, droits, permissions... - L’onglet Advanced : Permet la gestion du catalogue en le mettant à jour (réindexation) le nettoyer pour le recréer ensuite. Une partie de cet onglet permet aussi de gérer les "subtransactions". Cela entraine une réduction de la demande en mémoire du catalogue, au détriment de la rapidité de recherche. - L’onglet Undo : Annuler des transactions (les défaire) - L’onglet Security : La sécurité sur l’objet portal_catalog - L’onglet Ownership : L’appartenance de l’objet portal_catalog. - L’onglet Actions : Si l’on veut ajouter des actions possibles correspondant à cet objet portal_catalog.

Page 40: Plonegov projet egov

Mohamed OUALI 40 Projet de fin d’étude 2009/2010

­ portal_memberdata (Handles the available properties on Members) :

Permet de gérer des données sur chaque utilisateur, rajouter des actions de gestion de membres ...

­ portal_membership : - L’onglet Configuration : La partie haute de cet onglet concerne les rôles des membres du portail (manager, reviewer...). La partie basse de cet onglet va autoriser ou non la création lors de l’ajout d’un utilisateur d’un espace réservé à cet utilisateur. - L’onglet Actions : La catégorie de ces actions est "user", c’est à dire qu’elles ne concernent qu’un utilisateur authentifié. - portal_migration : Cet outil sert lorsqu’une nouvelle version de Plone sort. Le reste du temps on a le message que notre objet Plone site est up to date. La procédure en cas de nouvelle version de Plone, est d’extraire de l’archive la nouvelle version. D’arrêter Zope, puis de copier le contenu de CMFPlone­Version, sauf Active Pack si on a un Zope de type 2.6.x, dans chemin_de_Zope/lib/python/Products (afin de remplacer les anciens scripts) et ensuite d’aller dans portail fait sous l’ancienne version de Plone, de se rendre dans portal_migration qui dit cette fois que le portail est out of date et il faudrait cliquer sur upgrader. Remarque : la réussite de la migration dépend aussi de la compatibilité des produits installés avec la nouvelle version de Plone. ­ portal_registration (Handles registration of new users) : Dans cette section on a une seule action par défaut : autoriser ou non l’inscription de nouveaux utilisateurs au portail. Cocher ou décocher la case à gauche de l’interrogation "Visible ?" permet à cette action d’être réalisée dans le portail. ­ portal_skins (Control skin behaviour (search order etc) : Les dossiers de portal_skins sont : - Images : Ce dossier contient les images de Zope (Le logo de Zope que l’on voit dans la ZMI par exemple). - Content :

Page 41: Plonegov projet egov

Mohamed OUALI 41 Projet de fin d’étude 2009/2010

Dans ce dossier on trouve les scripts d’édition dont les noms sont du type "métatype_edit" et des dtml­method pour l’affichage, l’édition des métatypes dans un objet de type CMF Site. - control : Ce dossier contient les scripts et quelques dtml­method correspondant aux actions (folder_cut par exemple) réalisables sur les objets d’un site de type CMF Site. - custom : Ce dossier est spécial. C’est le seul dossier de portal_skins (en dehors de la racine de portal_skins ) où l’on possède le droit d’écriture. C’est donc le seul endroit où l’on va pouvoir créer des objets images, des dossiers, des ZPT (Zope Page Templates), etc. Ce dossier est spécial aussi car pour modifier (customiser / personnaliser) un objet (ZPT, dtmlmethod...) existant, on va ouvrir l’objet à modifier et l’interface de Plone va proposer un bouton appelé customize. A la gauche de ce bouton se trouve une liste déroulant qui permet de choisir l’endroit où va être copié l’objet à modifier. Par défaut cette destination est le répertoire custom. Si l’on crée d’autres répertoires dans custom alors on pourra les choisir comme destination de la copie de l’objet. Ainsi on comprend que pour que la modification d’un objet prenne effet, le dossier custom sera lu avant les autres répertoires de portal_skins. - generic : On va trouver dans ce dossier les formulaires (d’édition, d’ajout, des métadonnées) ainsi que les RSS d’un objet de type CMF Site. - no_css : Ce dossier ne contient qu’un objet stylesheet_properties qui doit correspondre à la version imprimable des pages. - nouvelle : Ce dossier contient deux objets, l’un intitulé nouvelle_stylesheet et l’autre stylesheet_properties. Ils correspondent à des feuilles de styles.**** Les feuilles de styles seront détaillées dans le chapitre "Design du site" dans la section X.2 intitulée "les css". ***. - plone_3rdParty : Contient des objets de type Filesystem Directory View correspondant à des produits Zope intégrables dans un Plone site (CMFCalendar, CMFCollector, CMFTopic, CMFWeblog, CMFWiki, ratings). - plone_content : Dans ce dossier on trouve les ZopePageTemplates correspondant à l’affichage des objets des différents métatypes ainsi que les métatype_edit_form - plone_ecmascript : Les scripts javascripts : plone_formtooltips.jp et plone_javascripts.js. - plone_forms :

Page 42: Plonegov projet egov

Mohamed OUALI 42 Projet de fin d’étude 2009/2010

Dans ce dossier on trouve les ZopePageTemplates d’affichage des objets des différents métatypes ainsi que les actions_form. Par exemple, personalize_form ou bien member_search_form ou encore login_form ... On va aussi trouver un script appelé logged_in (permet le login d’un utilisateur avec getAuthenticatedMember) - plone_images : On va y trouver les objets images : le logo de plone, les metatype_icons ... Toujours la même chose, pour les personnaliser : les ouvrir, cliquer sur Customize (l’objet est alors copié dans le dossier custom, on nous propose d’entrer un titre, de parcourir le contenu d’un disque et d’uploader l’image que l’on souhaite avoir en remplacement). - plone_scripts : Comme son nom l’indique ce dossier contient des scripts python tels que la réalisation d’actions concernant les objets du Plone Site (folder_delete) ainsi que des scripts pour le classement des objets (filter et sort), la création des objets (createObject), la fonction Undo pour l’annulation des modifications effectuées...Ce dossier contient aussi le dossier form_scripts qui lui contient les scripts de validation d’un formulaire d’édition/création d’un objet tel que le validate_id et les scripts servant à l’édition d’un métatype en particulier. - plone_styles : Contient un stylesheet_properties, plonePrint.css, plonePresentation.css, plone.css, ploneNS4.css et des dossiers contenant les mêmes feuilles de styles ainsi que des images de navigation (user, bullet...) sur un autre thème que celui par défaut. - plone_templates : On retrouve entre autres le footer et le header de toutes les pages dans ce répertoire. Dans le header on trouve : – appel de la skin du site – la searchBox – le logo du site – les portal_tabs – les actions de la personnalBar – le chemin de la page en cours Dans le footer on trouve des références à Plone, et un logo plone_powered. Dans ce répertoire, on va aussi avoir les ZopePageTemplates (ZPT) correspondant à " main_template ", " folder_contents ", etc. Ce dossier contient aussi un dossier qui contient les ZopePageTemplates des slots (carrés situés à gauche et à droite du centre de l’affichage du site Plone) tels que news_slot qui va afficher les 5 derniers titres des 5 dernières news comme des liens cliquables. On y trouve aussi un script python

Page 43: Plonegov projet egov

Mohamed OUALI 43 Projet de fin d’étude 2009/2010

"navigation_tree_builder" qui va construire le slot navigation_tree en fonction de ce qui a été configuré dans le dossier portal_properties dans l’espace navtree_properties. - plone_wysiwyg : Il contient wysiwyg_popup et wysiwyg_support. - topic : Ce dossier contient les scripts, ZPT et les dtml­method correspondant à l’ajout, affichage des commentaires (affichés si autorisés). - zpt_calendar : La version du dossier "calendar" mais il est réalisé avec des ZPT et des scripts python. - zpt_content : La version du dossier content mais il est réalisé avec des ZPT et des scripts python. - zpt_control : La version du dossier control mais il est réalisé avec des ZPT et des scripts python. - zpt_forum : Apparait si on a ajouté le produit CMFForum, on y trouve les ZPT et scripts python corespondants. - zpt_generic : La version du dossier generic mais il est réalisé avec des ZPT et des scripts python. ­ portal_undo (Defines actions and functionality related to undo) : Cette partie du Plone Site est utilisée pour défaire les actions réalisées. Dans le premier onglet "Actions" deux actions sont proposées : liste des changements ou bien une annulation rapide de la dernière modification. L’onglet Undo liste toutes les modifications depuis la création du portail. ­ portal_workflow (Contains workflow definitions for your portal) : Cette partie du Site Plone contient les actions correspondant à l’action de relecture puis validation des contenus ... La plus grande partie du workflow intégrée à Plone est déjà paramétrée.

Page 44: Plonegov projet egov

Mohamed OUALI 44 Projet de fin d’étude 2009/2010

Chapitre III : LE PROJET PLONEGOV

Ce chapitre est une présentation générale du projet PloneGov. Il est divisé comme suit :

Présentation et objectifs du projet Historique du projet Le choix de l’open source Un projet au cœur de l’Europe Aspects techniques Sites web Applications métiers

Page 45: Plonegov projet egov

Mohamed OUALI 45 Projet de fin d’étude 2009/2010

III.1. PRESENTATION & OBJECTIFS DU PROJET:

L’Union européenne compte plus de 100.000 villes et communes dont la plupart n’ont ni les ressources budgétaires ni les ressources en terme de compétences pour mettre en place un projet d’e­government. Toutes pourtant sont confrontées aux mêmes types de besoins, aux mêmes difficultés. C’est ce constat qui est à la base du projet PloneGov, un projet qui s’étend déjà au­delà des frontières de l’Union européenne elle­même.

Le projet PloneGov a pour objectif le développement d'applications informatiques par et pour les collectivités locales. Ce projet offre la possibilité aux villes et communes mais également à tous les autres niveaux de pouvoirs publics, par la mutualisation de leurs moyens humains et matériels, de retrouver une plus grande indépendance technologique et de construire des outils véritablement adaptés à leurs besoins.

Le nombre de partenaires impliqués dans le projet PloneGov ne cesse de s’agrandir. Il touche aujourd’hui plus de 100 collectivités. Tirant sa force de son ouverture, PloneGov a tissé des liens de coopération et de mutualisation avec des collectivités locales issues de nombreux pays mais aussi avec des PME actives dans la communauté en Europe, en Afrique et en Amérique latine. Aujourd'hui, de nombreuses applications métiers et web ont été finalisées ou sont en cours de finalisation par les différents partenaires. Grâce à PloneGov, même les plus petites collectivités territoriales sont à même de réduire leurs coûts de fonctionnement, d’améliorer leurs méthodes de travail et leur efficacité et de profiter des avancées de l’e­government en sautant la facture numérique. III.2. HISTORIQUE DU PROJET :

Parti de deux villes, Seneffe et Sambreville, le projet CommunesPlone a connu un agrandissement rapide jusqu’à toucher aujourd’hui plus de 80 villes et communes en Belgique et en France, un gouvernement régional et de nombreuses PME. Plusieurs autres villes, dans différents pays, sont en phase d’évaluation pour intégrer le projet d’ici peu. Le projet reste très dynamique en Wallonie où atteint déjà plus de 30% des collectivités. Le nombre de modules développés ne cessent de croître et touche des domaines aussi variés que la gestion des conseils municipaux, l’authentification par eID, le site communal clé sur porte, le module de co­marquage avec la Région wallonne, les services en ligne, etc. Grâce à l’organisation d’un workshop les 31 mai et 01 juin 07, CommunesPlone a commencé à mutualiser ses développements avec les deux principaux projets d’e­government européens basés sur Plone, UdalPlone et Plonegov.ch. Ces trois projets se dirigent désormais vers un seul, PloneGov. Ce dernier touche, en 2007, 65 municipalités belges, 20 françaises, 18 espagnoles, 2 suisses dont la

Page 46: Plonegov projet egov

Mohamed OUALI 46 Projet de fin d’étude 2009/2010

capitale fédérale, Berne, 1 Argentine et 1 américaine ainsi que les gouvernements de la Région Wallonne et de la Communauté française Wallonie­Bruxelles. Le succès du projet CommunesPlone est le résultat d'une étroite collaboration entre des collectivités territoriales belges et françaises, la communauté Open Source Plone et Zea Partners, un réseau international de PME. Copiant son organisation sur celle des grands projets open source, CommunesPlone est une véritable communauté où toutes les propositions de collaborations sont les bienvenues. Toutes les collectivités sont donc invitées à participer à ce projet dont la structure est extrêmement décentralisée. CommunesPlone est également ouvert à la collaboration avec d’autres projets comme UdalPlone et PloneGov.ch. Un facteur essentiel du succès réside également dans la similarité des besoins entre les acteurs cibles du projet. La plupart des collectivités font en effet face à des besoins extrêmement semblables et les résoudre chacun de son coté peut paraître complètement absurde. III.3 LE CHOIX DE L’OPEN SOURCE :

Une bonne compréhension du modèle de développement open source et des facteurs qui génèrent la valeur ajoutée sont nécessaires pour structurer un projet tout en tenant compte de son potentiel économique. Selon le responsable informatique de sambreville (Joël Lambillotte), le choix a été fait après l’évaluation du marché des solutions propriétaires et open source : les coûts étaient prohibitifs côté ‘propriétaire’, alors que, côté ‘open source’, les coûts étaient intéressants et le CMS Plone a satisfait à tous les tests d’intégration et réussi à séduire plusieurs communes. Définition :

Un logiciel open source est un logiciel qui donne à toute personne qui en possède une copie le droit de l'utiliser, de l'étudier, de le modifier et de le redistribuer. la valeur ajoutée des projets open source :

­ Mutualisation des développements et réutilisation de développements

existants : Une bonne connaissance des développements en cours permet d’éviter de réinventer la roue. Cette coordination technique permet dans de nombreux cas de réutiliser l’équivalent d’années de développement, réduit les coûts et accélère la production de résultats.

Page 47: Plonegov projet egov

Mohamed OUALI 47 Projet de fin d’étude 2009/2010

­ Mise en commun des ressources humaines : Par l’échange de savoir faire, formation réciproque et complémentarité des compétences. Augmenter le potentiel humain demande la réalisation régulière d’activités collectives visant à échanger le savoir faire et ouvrir l’expérience aux nouveaux participants. ­ Qualité de l’intégration : Une intégration de qualité et générique demande une connaissance en profondeur des logiciels. Réaliser une bonne intégration prend du temps et demandes de l’expertise de haut niveau. Cet investissement est rentable car il réduit la quantité de code non générique à maintenir et facilite les migrations du logiciel. ­ Ouverture à la collaboration internationale et facteur d’échelle : De nombreux pouvoirs locaux ont des besoins très similaires. La collaboration avec d’autres régions ouvre un potentiel d’économie d’échelle important et la possibilité d’accéder à des financements. Développer un projet demande d’apporter un soin particulier à la communication et à la circulation d’une information de qualité. ­ Participer activement à une Communauté est un investissement

rentable : Le rapport Flossimpact (impact économique des logiciels libres en Europe ­www.flossimpact.eu) met en évidence que la participation active à une communauté open source apporte un avantage compétitif aux personnes et organisations impliquées. Cette valeur ajoutée est bénéfique autant pour les PME offrant des services basés sur le code que pour les utilisateurs en réduisant leurs coûts de développement et maintenance

III.4 UN PROJET AU CŒUR DE L’EUROPE : Le projet PloneGov s’inscrit à plusieurs titres parmi les objectifs stratégiques de l’Union européenne en matière d’e­government défini par l’i 2010 (société européenne de l'information pour 2010) initiatives. A ce titre, il apporte les avantages de l’économie immatérielle aux petites collectivités qui n’auraient pas pu y prétendre auparavant en l’absence de moyens humains et financiers suffisant :

Ne laisser aucun citoyen a l’arrière : o 100.000 villes et régions : L’Union européenne représente un

gigantesque ensemble de près de 500 millions d’habitants

Page 48: Plonegov projet egov

Mohamed OUALI 48 Projet de fin d’étude 2009/2010

regroupés en 100.000 villes et régions. CommunesPlone est un des rares projets qui s’adresse prioritairement à ces petites collectivités territoriales et qui leur offre la possibilité de rentrer de plain­pied dans l’ère numérique, d’y apporter les bienfaits, notamment économiques, de l’e­gov. En 2008, plus de 25% des communes wallonnes auront déjà adhéré au projet.

o e-inclusion : Le projet est susceptible, par son implication auprès des collectivités territoriales, connues pour leur proximité avec les citoyens, de renforcer de façon significative l’e­inclusion2.

Faire de l’efficacité des services publics une réalité :

o Efficacité : Grâce à CommunesPlone, les petites collectivités territoriales sont à même de réduire leurs coûts de fonctionnement, d’améliorer leurs méthodes de travail et leur efficacité.

o Adaptabilité : La structure technique de Zope et Plone sur lesquels sont basés CommunesPlone permet l’adjonction constante de nouveaux modules interconnectables et interchangeables. Cette flexibilité fournit au projet une adaptabilité hors­norme et une assurance d’être constamment apte à s’adapter aux nouvelles conditions d’évolution technique.

Réunir les partenaires-clé :

o Partenaire des PME : CommunesPlone est un projet qui est mené par et pour les collectivités territoriales. Leurs partenaires naturels sont les petites PME locales qui disposent d’équipes et de méthodes de travail semblables aux leurs. Le projet implique dès lors de nombreuses PME dans plus d’une dizaine d’états en Europe mais aussi dans des pays tiers et notamment ACP. En cela, CommunesPlone favorise l’emploi local.

o Partenaire des communautés open source : Les développeurs de collectivités territoriales impliquées dans le projet CommunesPlone sont en étroite interaction avec les communautés open source. Cette interaction est un important facteur d’innovation, d’efficacité et de dissémination.

o International : CommunesPlone est un projet ouvert à la collaboration internationale qui, par essence, transcende les frontières :

Les partenaires initiaux ont tout intérêt à ce que le projet acquière une dimension internationale et s’enrichisse des expériences de chacun. En effet, plus les contributeurs seront nombreux, plus grand sera le retour sur investissement qu’ils pourront espérer.

Page 49: Plonegov projet egov

Mohamed OUALI 49 Projet de fin d’étude 2009/2010

Rien ne s’oppose à cette internationalisation. En effet, le mode de fonctionnement des collectivités territoriales, au contraire de celui des états, ne diffère pas fondamentalement d’un pays à l’autre.

Les techniciens du projet ont tout intérêt à se tenir au courant de ce qu’il se passe au­delà de leurs frontières. En effet, divers développements menés par d’autres projets peuvent très certainement être réutilisés mais cela implique de pouvoir passer les frontières physiques et psychologiques afin d’aller à la rencontre de ces autres projets. Cette opportunité, les techniciens de CommunesPlone l’ont bien comprise.

o Logique de « bottom up » : CommunesPlone dépasse les frontières mais passe également au­delà des hiérarchies qui divisent généralement les différents niveaux de pouvoirs. Rien ne s’oppose à ce que le projet qui est aujourd’hui principalement destiné aux petites collectivités territoriales ne s’étendent à d’autres niveaux de pouvoirs. Des gouvernements régionaux et leurs parlements, des provinces ont ainsi contacté les gestionnaires du projet pour évaluer la faisabilité d’adapter certaines applications à leurs propres services.

Renforcer la démocratie participative et représentative :

o Démocratie participative : Les outils fournis par CommunesPlone permettent aux collectivités de favoriser sur leur territoire une culture de démocratie participative saine et durable par le biais de l’e-democracy. En effet, elles sont désormais à même de diffuser intégralement et en direct les séances du conseil communal, les procès­verbaux des différents réunions, les ordres du jour, de lancer des forums accessibles à la population, d’assurer la promotion des conseils consultatifs, etc. Internet reste et restera un lien essentiel entre une collectivité et ses citoyens.

o Fracture numérique : Le projet CommunesPlone s’engage dans la lutte contre la fracture numérique en Europe et au­delà :

Le projet CommunesPlone offre la possibilité aux multiples commerces, entreprises, écoles, associations, etc., situés sur le territoire des collectivités participantes de disposer d’une page web regroupées sous une URL commune. L’infrastructure technique permet en effet de créer sans aucune compétence technique particulière une nouvelle page, de la mettre à jour en y ajoutant textes et images, d’y tenir un agenda, etc. afin de combattre directement la fracture

Page 50: Plonegov projet egov

Mohamed OUALI 50 Projet de fin d’étude 2009/2010

numérique et de favoriser la promotion et l’activité de la vie économique et associative locale.

Par l’intermédiaire des coopérations nord­sud établies par les villes et régions, CommunesPlone dispose de la possibilité de combattre la fracture numérique qui risque de renforcer encore les inégalités économiques séparant les sociétés industrialisées des économies émergentes. L’infrastructure développée par CommunesPlone peut en effet être adaptée et installée au profit des collectivités de ces pays sans aucuns frais de licence.

Mettre en place des outils stratégiques a haut impact :

o Carte d’identité électronique : CommunesPlone prend en compte les notions d’e­privacy et d’e­security. Dès l’origine du projet, ses techniciens ont intégré les fonctionnalités offertes par les nouvelles cartes d’identité électroniques belges. L’e­ID permet de sécuriser totalement les connections mais aussi les données personnelles qui pourraient être récoltées sur les utilisateurs. L’e­ID permet un usage éthique de l’Internet en matière de respect de la vie privée.

III.5 ASPECTS TECHNIQUES : Le projet CommunesPlone est construit sur un vaste logiciel, Plone. Il s’agit d’un projet centré sur la création d’un des meilleurs CMS open source et mettant l’accent sur l’aspect démocratique (égalité des chances, méritocratie), sur le style (attractivité, facilité d’utilisation), sur l’adaptabilité (personnalisation de types de contenus, possibilité d’ajout de nombreux modules). D’un point de vue organisationnel, Plone a une forte expérience dans la consultance professionnelle; nombre de ses développeurs travaillant pour des petites entreprises d’intégration. Plone est à 100 % open source. Tous les éléments qui rentrent dans sa construction sont entièrement libres et compatibles avec la licence GPL. Le langage de programmation python est généralement reconnu comme un des environnements les plus productifs et les plus professionnels pour les organisations importantes. Cela fait déjà 9 années que Zope mène le marché des serveurs d’application open source avec la reconnaissance de nombreux ** awards **. Plone s’est implanté quant à lui comme étant le CMS open source leader et comme l’un des produits, open source ou commercial, parmi les plus solides. 5.1 Site web :

Page 51: Plonegov projet egov

Mohamed OUALI 51 Projet de fin d’étude 2009/2010

Le CMS Plone permet de mettre en ligne un site Internet communal avec toutes les fonctionnalités attendues (gestion décentralisée des pages, gestion des photos, outil de sondage, outil de géo localisation, forum, téléchargement de fichiers, moteur de recherche,…). Toutefois, un site Plone ne répond pas nécessairement aux attentes que l’on pourrait avoir pour un site communal tant d’un point de vue graphique que du point de vue de la navigation. Pour permettre à des communes qui découvrent cette technologie de mettre le pied à l’étrier rapidement, Communesplone a conçu un produit site Internet, dénommé CPSkin, orienté site communal. Le produit comprend une interface qui permet de modifier plusieurs propriétés du site (couleur, images). Il comprend une navigation ainsi qu’un graphisme par thème. Une refonte du header du site pour afficher le logo à gauche ainsi qu’un banner illustrant la partie consultée à droite. Le banner peut ainsi changer en fonction des pages consultées. Plusieurs communes utilisent actuellement ce produit grâce auquel un site communal de qualité peut ainsi être mis en ligne en quelques semaines. Remarque : le produit, site communal, compatible avec Plone2.X est CPSkin2 alors que pour Plone 3, CommunesPlone a développé un produit beaucoup plus évolué dénommé CPSkin3. Les figures ci­dessous donnent une idée sur le résultat de l’utilisation de ces deux produits :

Figure 3.4 : site Plon avec CPSkin2

Page 52: Plonegov projet egov

Mohamed OUALI 52 Projet de fin d’étude 2009/2010

Figure 3.5 : site Plone avec CPSkin3

5.2 Applications métiers : CommunesPlone vise à adapter Plone aux besoins spécifiques des communes. Différents modules ont été développés à cet égard comme :

Le guichet virtuel du citoyen : Le produit TeleServices permet au citoyen d'effectuer des demandes en ligne à son administration et permet à l'agent communal de gérer ces demandes. L'application peut être utilisée suivant plusieurs profils d'utilisateurs :

­ le citoyen non connecté, qui peut visualiser une liste des documents ou procédures;

­ le citoyen connecté, qui peut effectuer en ligne de nouvelles demandes et consulter leur suivi ;

­ le rôle d'agent communal, qui permet de traiter les demandes ;

Le principe général est le suivant : ­ Dans un premier temps, le citoyen peut accéder à une liste des documents

ou procédures disponibles dans les différents services de l'administration communale. Cette liste précise pour chaque demande les modalités d'obtention.

­ Pour effectuer une demande en ligne, le citoyen doit préalablement s'inscrire en complétant ses données personnelles (dont son numéro de registre national qui servira de clé unique pour la connexion par carte d'identité électronique). Cette inscription ne doit être effectuée qu'une seule fois.

­ Une fois inscrit, le citoyen peut se connecter soit au moyen d'un identifiant/mot de passe soit au moyen de sa carte d'identité électronique.

Page 53: Plonegov projet egov

Mohamed OUALI 53 Projet de fin d’étude 2009/2010

­ Après s'être connecté, le citoyen peut effectuer de nouvelles demandes à différents services de la commune mais aussi consulter le suivi des demandes déjà introduites. Au cours de son traitement, une demande change en effet de statut suivant les étapes de traitement effectuées.

­ De son côté, l'agent communal responsable du traitement des demandes de son service consulte les nouvelles demandes ou les demandes en cours qui nécessitent un traitement.

­ L'agent au cours du traitement de la demande change son statut suivant les actions qu'il effectue. Il indique par exemple que la demande est en cours de traitement, que la demande est finalisée, que la demande est rejetée, ...

­ Suivant les options choisies par le citoyen, ce dernier sera prévenu du bon traitement de sa demande.

L'intérêt de l'outil est qu'il est possible de le configurer entièrement à travers une interface graphique. Il est donc possible de définir ses propres demandes, avec leurs propres paramètres comme les motifs associées, les modes de réception, le prix, etc...

Figure 6.3 : l’outil TeleServices

La gestion des permis d'urbanisme :

Ce produit dénommé "urban" est un permet de gérer les permis d'urbanisme (bâtir, lotir, notaire, ...) et intègre une fonctionnalité avancée de cartographie. Il permet à une commune de gérer ses permis d'urbanisme comme par exemple :

­ les permis de bâtir (urbanisme)

Page 54: Plonegov projet egov

Mohamed OUALI 54 Projet de fin d’étude 2009/2010

­ les permis de lotir ­ les lettres aux notaires environnement ­ ...

En plus, l'outil intègre des fonctionnalités cartographiques qui permettent :

­ d'obtenir des informations précises (parcelles concernées, rayon de 50m, infos sur les propriétaires d'une parcelle, ...)

­ de lier des recherches de parcelles à une visualisation cartographique ­ ...

Remarque : "urban" est un produit Plone 3 qui nécessite donc l'installation d'une instance Plone 3 et de quelques dépendances.

Gestion des délibérations : Ce produit, dénommé "PloneMeeting", est traité dans le cinquième chapitre.

Autres applications :

Applications Objectifs

Conteneur d'application – Application container

Ce produit est destiné à adapter une instance Plone standard dans le but de simplifier l'interface utilisateur et de

paramétrer cette instance pour y accueillir des applications (Teleservices, College, ...)

Co­marquage – Cobranding

Afficher sur un site un contenu émis par le Portail de la Région Wallonne

BelgianEid AuthPlugin ****

Donner la possibilité aux membres d'un site Plone (et même Zope) de

s'identifier à l'aide de la carte d'identité électronique

Gestion des amendes administratives (en cours de développement) – Fine

management system

Gestion des Sanctions Administratives Communales

Python Open Document (POD) POD est une bibliothèque qui permet de générer facilement des documents

dont le contenu est dynamique.

Page 55: Plonegov projet egov

Mohamed OUALI 55 Projet de fin d’étude 2009/2010

Le projet PloneGov, extension internationale de CommunesPlone, est un projet très puissant conçu pour aider les communes en répondant à leur besoins informatique. Il a remporté plusieurs "awards" (voir annexe 3.1) et a reçu le label "Good Epractice" de la Commission européenne en novembre 2007.

Chapitre IV : REALISATION DU SITE COMMUNAL

Ce chapitre résume les points importants ainsi que la démarche suivie pour la réalisation du site web communal.

Page 56: Plonegov projet egov

Mohamed OUALI 56 Projet de fin d’étude 2009/2010

IV.1 SITE COMMUNAL :

1.1 Obstacles : Les petites et moyennes communes sous­estiment souvent la quantité et la qualité des informations qu’elles pourraient publier sur Internet. La pluparts entre elles s’interrogent encore sur la validité et la faisabilité d’un site internet pour une commune :

­ Internet, pour nous (les communes), ça ne servira à rien : Cela a été entendu, mais de moins en moins souvent maintenant car le "retard" marocain en matière d'équipement informatique et Internet est en train d'être comblé, suite à l'action des différents gouvernements.

­ La commune n'a pas grand chose à publier : au contraire chaque commune a quelque chose d’unique à publier et la quantité d'informations qui peuvent être publiées dans un site Internet d'un village ou d'une ville sont quasiment sans limites.

­ La commune est déjà présente sur un site : C'est bien, mais est­ce vraiment suffisant ?

­ Il y a d'autres priorités : Le site Internet a peu de raisons d'être le projet prioritaire de la commune. Autant en termes d'investissement que d'efforts et de temps à y consacrer, les municipalités ont déjà suffisamment à faire. Mais, cela ne signifie pas qu'il n'y ait pas de place en même temps pour un projet peu couteux, avec des solutions open source, dans le domaine de la communication avec et pour les administrés.

­ C'est trop compliqué : En effet, il y a des choses à apprendre, mais les nouvelles techniques de création de sites (les CMS) permettent à des non­spécialistes de s'initier rapidement à l'essentiel: la publication du contenu.

­ C'est trop cher : avec les outils open source c’est toujours beaucoup moins couteux.

­ On fera un petit site de type personnel : C'est une solution qui trouve rapidement ses limites car la principale difficulté vient du fait qu'il est difficile, voire même impossible, de se partager le travail (les créations et les mises à jour) et donc le risque est de se retrouver avec un site statique qui aura certes la valeur d'un annuaire papier, mais avec peu de mises à jour, et peu d'informations sur les actualités et évènements récents.

­ …

1.2 Objectifs d’un projet site communal :

Page 57: Plonegov projet egov

Mohamed OUALI 57 Projet de fin d’étude 2009/2010

Actuellement, plusieurs communes ne sont pas convaincues de l’utilité et de la nécessité d’un site web communal et par conséquent elles sont absentes sur Internet. Cependant, plusieurs bonnes raisons les invitent à mettre en place leur site internet :

­ La vitrine de votre commune sur Internet : Publier sur Internet, pour une commune et ses habitants c'est partager l'information et montrer qu'on existe pour les habitants, pour ses voisins, et aussi pour le reste du monde.

­ Un rôle de Service (un moyen d'information) : o Pour faire connaître la ville aux nouveaux et futurs habitants ; o garder un contact avec les anciens habitants ; o Mettre en valeur l’histoire, la géographie, l’environnement, la

culture, toutes les particularités souvent méconnues, ainsi que le ou les grands projets de la municipalité ;

o Portail de renseignements (Santé, Transport, Tourisme, …) ; ­ Pour mettre en commun les informations de référence :

Figure 4.1 : les échanges du site communal

Mises à disposition s: • par et pour la municipalité, • par et pour les associations, les acteurs économiques, • pour les résidents (et éventuellement par les résidents) • pour les visiteurs de passage ou de séjour, touristes et affaires • pour les visiteurs du site Internet, cherchant des informations sur la commune.

­ Moyen de communication :

Page 58: Plonegov projet egov

Mohamed OUALI 58 Projet de fin d’étude 2009/2010

Un site communal peut contribuer à rapprocher les élus et les citoyens, les écoles, les associations, tout ce qui concerne la vie de la commune. Il peut devenir le « portail » de référence pour toutes les informations, animations et évènements concernant la commune et ainsi faciliter la vie quotidienne en donnant une visibilité aux associations, aux entreprises, aux artisans et aux commerçants jusqu'à la possibilité de tenir à jour les informations les concernant. En plus, il peut jouer le rôle d’un moyen pour faire participer les habitants de la commune à un nouveau projet.

­ Pour l'activité municipale : Une partie du site peut être réservée aux élus pour communiquer facilement via Internet, en complément des courriels et des forums ou d’autres applications administratives.

III.2 ANALYSE ET CAHIER DE CHARGE :

2.1 Analyse de l’existant : Avant de me lancer dans la conception du site communal, il était nécessaire, voire même indispensable, de faire une étude de l’existant afin de proposer, à cause de l’absence du client, un cahier de charge pour la démo site communal. L’absence du site communal, voire même la notion du site pour une commune, à cause des interrogations citées ci­dessus et d’autres contraintes, m’a obligé d’analyser les sites des arrondissements, les portails des grandes villes marocaines et les sites communaux entrants dans le cadre du projet CommunesPlone:

Exemples de sites analysés :

Portail de la ville de Casablanca :

Le portail de casa est le site officiel de la ville de Casablanca. Les informations, concernant les démarches en ligne, présentées dans notre site communal dans le thème "renseignements" sont prises de ce site.

Page 59: Plonegov projet egov

Mohamed OUALI 59 Projet de fin d’étude 2009/2010

Figure 4.2 : Portail officiel de la ville de Casablanca

Portail de la ville de Fès :

Figure 4.3 : Portail de la ville de Fès

Portail de la ville d’Ifrane :

Page 60: Plonegov projet egov

Mohamed OUALI 60 Projet de fin d’étude 2009/2010

Figure 4.4 : Portail d’Ifrane

Après l’analyse de ces portails j’ai constaté que ces derniers contiennent une quantité très importante d’informations mais :

­ Pas de système de géolocalisation : pour permettre aux habitants, aux touristes et autres de localiser des lieux (des pharmacies de garde, gares de train, etc.)

­ Difficulté de trouver l’information : la navigation n’est pas bien organisée (sous forme de thèmes qui contient des sections) et par conséquence l’internaute est soumis au par hasard dans ses recherches.

­ Le contenu de site n’est pas indexé : l’absence d’un moteur de recherche sur le site rend la recherche très difficile.

­ Manque d’informations : impossible de mettre tout sur un seul portail. D’où, la nécessité d’un site communal pour chaque commune.

­ Pas d’informations sur les projets réalisés, en cours ou programmés (sauf dans le portail d’Ifrane).

­ Les mises à jour est associées au " Webmaster " : personne d’autre, sans connaissances techniques, ne peut contribuer aux mises à jour.

­ …

Sites CommunesPlone : Les sites communaux de ‘Seneffe’ et ‘Sambreville’ rentrent dans le cadre du projet CommunesPlone. Ils sont créés par le CMS Plone et le produit de canevas de site communal CPSkin2 avec des fonctionnalités très évoluées comme le système de géolocalisation qui guide les visiteurs et les permet de localiser des lieux de la commune.

Site communal de Seneffe :

Page 61: Plonegov projet egov

Mohamed OUALI 61 Projet de fin d’étude 2009/2010

Figure 4.5 : site communal de Seneffe

Site communal de Sambreville :

Figure 4.6 : Site communal de Sambreville

Les sites communaux présentés ci­dessus sont créés par le même outil et répondent aux mêmes besoins avec, certainement, une différence de contenu. Après l’analyse du contenu et de son organisation dans ces derniers, il apparaît clairement que se sont des sites puissants et très bien organisés sur les quelles je peux me baser pour créer notre site communal (démo).

2.2 Le cahier des charges proposé :

Page 62: Plonegov projet egov

Mohamed OUALI 62 Projet de fin d’étude 2009/2010

De l’analyse effectuée est né un cahier des charges pour la réalisation du site web communal (démo) qui peut servir, dans le futur, pour convaincre les responsables communaux de l’importance et de la nécessité d’avoir leur propre site qui aura comme objectifs principaux :

Contenir toutes les informations relatives à la commune, ainsi que les liens vers d’autres sites communaux, administratifs, associatifs, ou du secteur commercial (sites d’entreprises de la commune).

Permettre d’Informer en premier lieu les habitants de la commune : sur les services, les écoles, les activités associatives, culturelles, sportives, les commerces, les projets communaux, etc.

Servir de Guide pour l’extérieur de la commune : il est évident de penser au tourisme (hôtels, restaurants), ainsi qu’aux animations, expositions, fêtes.

Présenter les activités de tous les secteurs économiques présents (sociétés, artisans, etc.) sur le territoire communal.

Exposer les actions et services de la municipalité, ainsi que discuter (forums de discussion), afin de pouvoir favoriser la proximité avec les citoyens et la participation à la vie de la commune.

Permettre à des personnes sans connaissances techniques d'ajouter, de supprimer ou de modifier des pages directement via le site.

Le mode d'alimentation du site peut être organisé avec beaucoup de souplesse: alimentation centralisée (par le webmaster), décentralisée (par le collège communal ou les services) avec validation, décentralisée sans validation, par quelques personnes seulement, ...

Des "sous­sites" sont possibles: Passionnés, associations ou commerçants de la commune peuvent alimenter leurs propres pages au sein du site communal, avec un menu qui leur est propre et un accès sécurisé.

Intégrer un système de géolocalisation pour donner la possibilité d'illustrer avec des cartes dynamiques la localisation précise des bâtiments des administrations, des écoles, des associations, des commerces, des pharmacies, des gares de train...

Intégrer la gestion des flux RSS : Grâce à un flux RSS, le citoyen peut être rapidement informé lorsque du contenu est ajouté au site de la commune

Intégrer une application pour la gestion des organes délibératoires …

III.3 CONCEPTION & REALISATION :

Page 63: Plonegov projet egov

Mohamed OUALI 63 Projet de fin d’étude 2009/2010

Cette rubrique résume les points importants ainsi que la démarche suivie pour la réalisation de la "démo site web communal".

3.1 Rassembler les informations à publier : Toujours en gardant présent à l'esprit les objectifs de la démo site communal et à partir des sites analysés, ci­dessus, j’ai essayé de collecter quelques informations (document, texte, photos, …) qui vont être présentées dans le site. Les informations rassemblées peuvent être classées en grandes catégories :

­ Informations communales ­ informations sur les associations ­ patrimoine, art, culture, histoire ­ les activités sportives ­ secteur économique, tourisme ­ écoles ­ santé ­ et divers ...

Les informations rassemblées dans cette étape sont à titre d’exemple et seront organisées par rubriques pour présenter, aux internautes, une navigation par thèmes.

3.2 Organiser l'information collectée :

Cette étape à pour but d’organiser le contenu du site en fonctions des objectifs fixées. C’est une étape importante, car une bonne organisation du contenu facilite la navigation dans le site, et une bonne navigation pour le visiteur est synonyme de satisfaction.

­ Pourquoi privilégier une navigation par thème ? L'information reprise sur un site communal est très variée et comprend une masse importante de documents. Les thèmes permettent d'orienter presque instinctivement l'internaute sans qu'il aie à lire beaucoup d'information. Le libellé du thème doit être le plus explicite tout en gardant sont aspect "grand ensemble d'information". A vouloir être trop précis à ce niveau, on exclu certaines informations; ce qui conduit à devoir créer d'autres thèmes. Plus il y a de dossier thèmes à la racine du site, plus on s'oriente vers une navigation par rubrique (un dossier à la racine du site devient automatiquement un onglet ou une rubrique).

­ Les rubriques proposées : Afin de simplifier la navigation dans le site, j’ai organisé le contenu de la façon suivante :

Page 64: Plonegov projet egov

Mohamed OUALI 64 Projet de fin d’étude 2009/2010

Figure 4.7 : plan du site

Comme le montre la figure ci­dessus notre site propose aux visiteurs une navigation par thèmes :

Vie communale : ce thème reprend ce qui est "officiel", les services publics, para public, le politique, l'enseignement, etc. Il contient les sections suivantes : o Vie politique : dans cette section le visiteur peut trouver comment

contacter un membre du collège communal ou un conseiller

Page 65: Plonegov projet egov

Mohamed OUALI 65 Projet de fin d’étude 2009/2010

communal, le PV du dernier conseil communal ou prendre connaissance de l’ordre du jour du prochain conseil communal.

o Services communaux : contient les coordonnées d’un service, les informations qui faciliteront une démarche administrative…etc.

o Autres services : fournit quelques règlements généraux et les coordonnées d’autres services publics, tels que la poste, la police, etc.

o Enseignement : visiter les sites des écoles et des universités pour y télécharger des documents, consulter des albums photos …Prendre connaissance de la politique éducative de l’entité…

Renseignements : les sections de ce thème est un point fort du site car elles fournissent des renseignements très utiles aux internautes souhaitons faire des opérations de construction ou des démarches administratives : o Documents administratifs o Opérations de constructions o Opérations économiques o …

Culture et loisir : o Associations : coordonnées et présentations des associations de la

commune o Sport : coordonnées et présentation des clubs sportifs de la

commune o Art & culture : les différentes activités culturelles, les traditions

communales o Espace de présentation : cet un espace ou mini­site réservé pour

les passionnés de la commune pour se présenter et exprimer leur passion et enthousiasme

Economie : o Entreprises : les coordonnées et les domaines d’activités de la

commune o Hôtels restau café : les adresse et localisations des hôtels, restau et

café o Emploi & Formation : les offres d’emploi et les formations au

territoire de la commune o Projet de mise à niveau : espace des projets réalisés, en cours et

programmés. La structuration de l'information par thèmes permet de fonctionner par déduction. Comme il y a peu de thèmes, la démarche pour trouver la bonne porte d'entrée devient instinctive et prend peu de temps. L'internaute, après quelques

Page 66: Plonegov projet egov

Mohamed OUALI 66 Projet de fin d’étude 2009/2010

essais, comprend rapidement comment trouver l'information sans devoir lire et relire une dizaine de rubriques. En un coup d'œil, il sait quel choix opérer. Les noms des thèmes reprennent des termes du quotidien et non des appellations que l'on crée pour l'Internet tels que "Vie pratique" qui veut tout dire et ne rien dire (chercher une formation, un emploi, une école, ... tout peut être repris sous l'appellation "Vie pratique").

3.3 Planifier la future vie du site de la commune :

Dès que le projet se met en place, il était essentiel de prévoir comment seront organisées les mises à jour du site. La réalisation d’un site (démo) pour un client fictif m’a poussé de généraliser les rôles des acteurs responsables des mises à jour. Ainsi, j’ai prévu que plusieurs administrateurs ou administrateurs adjoints peuvent se partager les activités de mise à jour et ceci afin que la charge de travail de chacun reste modérée. Avant d’associer les rôles aux acteurs communaux par l’administrateur du site, il faut penser à quelles seront les informations qui seront à actualiser régulièrement, que ce soient les informations municipales, ou les informations associatives, ou celles liées aux évènements importants de la commune : fêtes, festivals, etc. Il faut aussi estimer, pour les informations demandant une mise à jour au cas par cas, quel sera la charge de travail prévue. En fonction du travail prévue, il faudra vérifier si l’on peut compter sur suffisamment de personnes disponibles pour les différentes mises à jour, et modifier les objectifs de mise à jour si nécessaire.

3.4 L'aspect présentation : Plone, le CMS convivial, offre plusieurs possibilités à l’administrateur d’un site afin de choisir, modifier ou développer son propre modèle (Template) pour présenter son site. Un site communal (démo) jouera le rôle d’une maquette qui sera présentée aux responsables des communes (les futurs clients) comme preuve. Pour cela, il fallait présenter le site web communal sous différents peaux ou modèles. Ci­dessous les différentes façons suivies pour obtenir ces modèles :

a) Par modification simple :

Après l’ajout et l’organisation du contenu et des informations à publier, notre démo site se dévoile sous la peau d’un site Plone classique :

Page 67: Plonegov projet egov

Mohamed OUALI 67 Projet de fin d’étude 2009/2010

Figure 4.7 : site communal classique

Pour une simple personnalisation du look classique du site Plone, j’ai commencé par le changement du logo, puis la modification des couleurs de fond, de titres, les couleurs et polices de caractères pour les titres, sous­titres, textes, liens, etc.

o changer le logo : Le changement du logo est une opération très simple qui peut être faite de deux manières différentes :

Via le répertoire custom : Pour assurer la cohérence et la stabilité des fichiers origines et que ses derniers restent sans modification, Plone crée automatiquement dans le répertoire custom une copie du fichier que l’utilisateur est en train de personnaliser. Ainsi, pour remplacer le logo Plone par son logo personnel, il suffit de placer dans ce répertoire un autre logo avec le nom logo.x (avec x gif, jpg ou png selon l’extension de l’image choisie).

Figure 4.8 : répertoire ‘custom’

Via l’outil portal_skins (traité ci­dessus):

Page 68: Plonegov projet egov

Mohamed OUALI 68 Projet de fin d’étude 2009/2010

Pour remplacer le logo via cet outil, il suffit d’accéder au sous répertoire plone_images, de sélectionner l’image logo.jpg et de choisir le nouveau logo avant de charger l’image via le bouton upload.

Figure 4.9 : changement du logo

o Modification des couleurs, bordures… :

Pour modifier les couleurs, bordures, etc. j’ai modifié le fichier base_properties, situé dans le répertoire de Plone portal_skins/plone_styles, qui permet de définir plusieurs propriétés du site.

Figure 4.10 : fichier base_properties

Remarque : Pour pouvoir modifier ce fichier il suffit de cliquer sur le bouton "Customize" et saisir les propriétés qu’on veut associer au site.

Première maquette :

Page 69: Plonegov projet egov

Mohamed OUALI 69 Projet de fin d’étude 2009/2010

La figure ci­dessus présente notre démo site sous son simple et premier look :

Figure 4.11 : première maquette

b) Par le choix un modèle gratuit :

Dans le cadre de la communauté Plone, plusieurs participants développent des produits installables et gratuits tels que des templates ou modèles pour faciliter la personnalisation de l’apparence d’un site Plone.

Deuxième maquette :

Les figures ci­dessus montrent notre démo site sous son deuxième apparence après avoir choisi quelques modèles (gratuits) parmi des vingtaines qui existent:

Figure 4.12 : le site sous le modèle ‘Underworld’

Page 70: Plonegov projet egov

Mohamed OUALI 70 Projet de fin d’étude 2009/2010

Figure 4.13 : le site sous le modèle ‘qPloneSkinTechlight’

Figure 4.14 : le site sous le modèle ‘qPloneSkinWhiteBlack’

c) Par le développement de son propre modèle :

Parfois, les modèles gratuits ne répondent pas aux besoins du client et à ce moment le développement d’un modèle, selon les besoins, devient incontournable. Pour développer notre modèle j’ai choisi l’utilisation du produit DIYPloneStyle, développé par ‘David Convent’, qui rend très facile la création d’un squelette pour un produit thème. Ainsi, les étapes suivies sont les suivantes :

o Mise en place du produit : Afin d’utiliser le produit "DIYPloneStyle", il fallait télécharger la version qui correspond à notre version de Plone. Après le téléchargement de la version convenable, on a décompressé le fichier dans le répertoire "Products" (/opt/Plone­2.5.5/zeocluster/Products) de notre instance Plone. Puis, on a généré, à partir d’un script python et via un terminal, un produit squelette vide appelé "MonTheme" où tous nos fichiers peuvent être placés dans notre répertoire Produits : # cd Products/DIYPloneStyle

Page 71: Plonegov projet egov

Mohamed OUALI 71 Projet de fin d’étude 2009/2010

# python bin/generator.py ­­productname MonTheme

la structure du nouveau modèle : Le nouveau thème est généré sa structure se présente comme suite :

­ config.py : fichier de configuration de notre thème ; ­ Extensions : répertoire contenant les fichiers nécessaires pour installer le

produit dans Plone ; ­ Install.py : le fichier d'installation ; ­ utils.py : méthodes utilitaires utilisés lors de l'installation / suppression ­ refresh.txt : il est possible d'utiliser l'onglet Actualiser dans ZMI lors de

l'ajout de nouveaux fichiers au lieu de redémarrer. ­ Skins : répertoire contenant les couches de l’apparence :

o mytheme_styles : où on va mettre nos CSS. base.css.dtml : un fichier CSS vide qui l'emporte sur son

équivalent Plone. base_properties.props (propriétés de couleur de base; pas

utilisées dans cette tutoriel, mais pratique si vous voulez juste faire des changements de couleur simple)

generated.css.dtml (un css fichier vide qui l'emporte sur son équivalent Plone)

mytheme.css.dtml (CSS notre dossier) portlets.css.dtml (un css fichier vide qui l'emporte sur son

équivalent Plone) public.css.dtml (un css fichier vide qui l'emporte sur son

équivalent Plone) o mytheme_images : contient nos images (logo, bannière, …) o mytheme_templates : le répertoire des templates

o Site Plone après l’installation du modèle vide :

En redémarrant le serveur d’application ‘zope’, notre nouveau modèle s’inscrit dans la liste des produits Plone installables. Après l’installation de "MonTheme", via l’interface d’installation, on obtient un site Plone sans styles :

Page 72: Plonegov projet egov

Mohamed OUALI 72 Projet de fin d’étude 2009/2010

Figure 4.15 : site sans css

Afin de personnaliser le look de notre site, sans styles présenté ci­dessus, j’ai suivi les étapes suivantes :

­ Mettre les images qu’on va utiliser dans le répertoire montheme_images ; ­ Copier, à partir d’un répertoire du produit DIYPloneStyle, le fichier

"global_logo.pt" (voir annexe 4.1) qui contient le nom du logo (ce logo n'est qu'une image qui doit être localisée dans le répertoire mytheme_images) dans le répertoire montheme_templates de mon modèle.

­ Et dans le fichier montheme.css.dtml (voir annexe 4.2), localisé dans le répertoire montheme_styles du modèle, j’ai mis toutes mes CSS.

Troisième maquette :

A l’issue de l’ajout de CSS au fichier "montheme.css.dtml" de notre modèle on obtient notre troisième maquette :

Page 73: Plonegov projet egov

Mohamed OUALI 73 Projet de fin d’étude 2009/2010

Figure 4.16 : le site avec notre propre modèle

3.5 Les portlets : annuaire, infos pratique :

Le site Plone classique affiche plusieurs boites dans la colonne gauche et/ou droite selon nos besoins (navigation, calendrier, événements, actualités, dernière modification, etc.). Toutefois, un site communal, dû à son rôle de fournisseur d’informations, peut être plus ergonomique et plus performant en affichant dans ses colonnes des boites (focus) permettant de trouver facilement l’information (par exemple une boite pour un annuaire et une autre pour les infos pratiques). Dans cette section, on va voir un exemple de mise en place et de l’affichage de la "portlet_adresse", pour spécifier l'adresse de la maison communale, dans le site.

­ Création de la page : La première chose à faire est la création de la page que nous souhaitons afficher en mode portlet à la racine du site. Pour cela, il suffit comme pour un document classique de cliquer sur le lien "ajouter au dossier" et de sélectionner l'élément "document" dans la liste. Nous nommerons ce document "portlet_adresse", " adresse " étant la partie du nom qui peut changer selon notre souhait.

­ Création de la page template : Après avoir créé notre page on passe à la création de la page template dans le dossier "/portal_skins/custom". Pour ce faire, il faut sélectionner l'élément "Page Template" et cliquer sur le bouton "Add".

Page 74: Plonegov projet egov

Mohamed OUALI 74 Projet de fin d’étude 2009/2010

Par convention, le nom de cette page commence par "portlet_". Donc, on crée notre "portlet_document_view", par exemple, et on y insère le code responsable de l’affichage de notre page "portlet_adresse" en mode portlet (voir annexe 4.3).

­ Lier "portlet_adresse" et "portlet_document_view" : Il reste à appeler le document "portlet_adresse" en lui appliquant la vue "portlet_document_view" dans les propriétés du slot de gauche ou de droite de la racine du site. Donc, à la racine de la ZMI, on clique sur l'onglet "Properties" et on ajoute la ligne suivante comme valeur pour le "left_slots" ou le "right_slots": portal/nom du document/nom de la template soit portal/portlet_photo/portlet_document_view

­ Renommer le document : Finalement, le document doit être renommé pour ne pas afficher un titre "portlet_adresse". Il faut bien sûr le renommer sans changer l'id.

­ Résultat : La figure ci­dessous nous donne une idée sur les portlets ajoutées à notre site :

Figure 4.17 : portlets ajoutées au site

Remarque : L’affichage des autres boites (annuaire et infos pratique), dans tout le site, est réalisé de la même façon que la boite d’adresse expliquée ci­dessous.

Page 75: Plonegov projet egov

Mohamed OUALI 75 Projet de fin d’étude 2009/2010

Dans le but d’améliorer les services et les fonctionnalités offertes, par notre site, aux visiteurs et aux agents communaux, j’ai intégré dans le site communal une application de gestions des organes délibératoires et d’autres outils développés par "la communauté Plone" traités dans le chapitre suivant.

Page 76: Plonegov projet egov

Mohamed OUALI 76 Projet de fin d’étude 2009/2010

Chapitre III : LES OUTILS INTEGRES DANS LE SITE

Dans ce chapitre je vais présenter les différentes applications que j’ai pu intégrer dans le site communal ainsi que la démarche suivie pour les mettre en place.

Application de gestion des organes délibératoires Outil contact **** Système de géo­localisation Versionning Forum

Page 77: Plonegov projet egov

Mohamed OUALI 77 Projet de fin d’étude 2009/2010

V.1 APPLICATION DE GESTION DES ORGANES DELIBERATOIRES :

Le projet CommunesPlone a pour objectif le développement d'applications informatiques par et pour les communes en utilisant deux outils libres largement répandus Zope et Plone. Il permet d'utiliser des applications sans avoir à faire face à des frais de licence. Parmi ces applications, j’ai choisi celle développée pour la gestion des organes délibératoires nommée ‘PloneMeeting’.

1.1 Description fonctionnelle :

­ En quoi consiste l'application ?

Le produit "PloneMeeting" permet à une institution de gérer ses organes délibératoires à travers la gestion :

de types de séances délibératoires avec chacune leurs caractéristiques de points, qui sont proposés pour un ordre du jour d'une séance, avec leurs

annexes d'ordres du jour qui incluent des points créés par des utilisateurs ainsi que

des points récurrents de décisions qui sont prises lors du déroulement de la séance de procès­verbaux qui contiennent les délibérations

L'outil permet donc par exemple de gérer pour une commune le collège et le conseil communal, pour n'importe quel organisme ou société le conseil d'administration, etc.

­ Le principe général est le suivant : Un membre d'un service crée un point qui devra être discuté lors d'une

séance prochaine. Il y indique une description et déjà éventuellement une proposition de délibération. Il peut également y inclure des annexes. Lorsque son point est rédigé, il le propose (pour une séance précise si les séances ont déjà été définies).

le chef de ce service peut également créer des points et les proposer mais aussi valider les points proposés par les membres de son service.

le secrétaire qui s'occupe de la gestion de la séance peut créer un ordre du jour et y rajouter les points qui ont été validés. Il organise le contenu de la séance avec ses différents points et peut modifier les propositions de délibérations. Il peut générer, dans différents formats, un document présentant les points de la séance ainsi que leurs annexes. Ce document pourra servir de support de travail lors de la séance.

Après la séance, le secrétaire modifie les délibérations des points discutés. Il peut y intégrer des points et/ou des documents additionnels. Lorsque les délibérations sont finalisées, il peut à nouveau produire un document

Page 78: Plonegov projet egov

Mohamed OUALI 78 Projet de fin d’étude 2009/2010

contenant le procès­verbal de la séance. Il est possible pour chaque point d'indiquer une décision afin que les différents services puissent accéder à cette décision. Après validation du PV lors de la séance suivante, celui­ci pourra être clôturé.

1.2 Caractéristiques de l'application :

1.2.1 Organisation en groupes : L'outil ‘PloneMeting’ est organisé suivant des groupes. La notion de groupe est utilisée pour permettre de gérer les points suivant une organisation structurelle. Par exemple dans une commune le groupe peut correspondre à un service ou à un cabinet ministériel dans un gouvernement. A chaque groupe correspondent des personnes qui vont pouvoir créer et gérer des points d'une séance. Les personnes du groupe n'ont pas toutes le même rôle : certaines peuvent créer des points, d'autres les valider, ou alors seulement les consulter. Les différents rôles, que peuvent avoir les utilisateurs, sont présentés au point suivant. 1.2.2 Rôles prédéfinis : A travers l'explication fonctionnelle, différents profils d'utilisation ont été présentés. Ces profils sont appelés rôles. Un rôle reprend en fait un ensemble d'actions réalisables par un utilisateur. A un rôle sont associés des permissions (lecture, écriture, ajout, ...). Par exemple, seul le rôle secrétaire peut créer un ordre du jour. Un ou plusieurs rôles peuvent être donnés à un ou plusieurs utilisateurs qui reçoivent dès lors les permissions correspondantes. Les rôles suivants sont présents dans l'application :

rédacteur d'un point du groupe : qui peut créer un point et le modifier validateur d'un point du groupe : qui peut créer, modifier et valider les

points du service afin de les proposer pour un ordre du jour lecteur d'un point du groupe : qui peut visualiser un point de son service secrétaire : qui peut gérer les points, les ordres du jour et les PV

Remarque : Pour adapter les permissions associées à chaque rôle, l’administrateur de l’application peut modifier les workflows du produit. 1.2.3 Interface générale :

Page 79: Plonegov projet egov

Mohamed OUALI 79 Projet de fin d’étude 2009/2010

L’application se présente sous différentes interfaces selon le rôle de l’utilisateur connecté. Par exemple si un utilisateur, qui a comme rôle ‘secrétaire’, se connecte l’interface affichée se présente comme suite :

Figure 5.1 : interface affichée pour le rôle ‘secretaire’

La partie supérieure permet de choisir un type de gestion de séances via un onglet spécifique. La colonne de gauche contient un menu présentant des liens vers les différents éléments que l'utilisateur connecté peut voir (les points, les séances et les procès­verbaux). Le menu permet également d'ajouter certains éléments quand l'utilisateur en a la permission. Le contenu principal varie suivant l'action réalisée ou le type d'élément affiché. 1. 2.4 Ecran de gestion d’un point : 1. 2.4.1 Création d'un point : Lorsqu'un utilisateur choisit d'ajouter un point, le formulaire suivant est affiché :

Page 80: Plonegov projet egov

Mohamed OUALI 80 Projet de fin d’étude 2009/2010

Figure 5.2 : formulaire de création d’un point

Les champs suivants sont proposés : Titre : intitulé du point tel qu'il apparaîtra dans l'application Description dans l'ordre du jour : zone texte contenant une description

complète du point proposé. Cette zone est affichée lorsque l'on visualise le point ou l'ordre du jour.

Groupe proposant : il s'agit d'un des groupes auquel appartient l'utilisateur qui encode le point

Séance souhaitée : si des séances futures ont déjà été encodées, il est possible de choisir une séance souhaitée dans laquelle ce point devrait être inclus

Décision : zone texte contenant une proposition de délibération pour le point. Cette zone n'apparaît pas automatiquement pour tous les utilisateurs (dépendant du paramétrage de l'application).

1.2.4.2. Visualisation d'un point existant : Une fois un point créé, il est possible de le visualiser et ainsi un écran semblable est affiché.

Page 81: Plonegov projet egov

Mohamed OUALI 81 Projet de fin d’étude 2009/2010

Figure 5.3 : visualisation d’un point créé

Les onglets supérieurs permettent d'effectuer des actions supplémentaires sur le point :

Modifier : pour accéder au formulaire de modification du point Annexes : pour associer des documents annexes au point Annexes (à la décision) : pour associer des documents annexes faisant

suite à la délibération sur le point La zone "Etat" se trouvant en haut à droite (dans la barre verte**) indique l'état actuel du point. Dans l'exemple affiché : le point est "en création". Cet état dépend du workflow associé au type de séance. Les états peuvent donc être différents suivant que l'utilisateur se trouve dans le collège communal, le conseil communal ou tout autre type de séance. Les icônes en haut à droite permettent également d'effectuer certaines actions sur le point. Le fait de laisser le pointeur de la souris sur l'icône affiche le nom de l'action associée. Par exemple, dans le cas affiché :

Imprimer cette page : tout est dit dans l'intitulé Basculer en mode plein écran : permet d'afficher le point en plein écran en

enlevant de l'affichage les colonnes et la bannière supérieure Plusieurs formats de génération bureautiques différents peuvent être proposés à l'utilisateur (suivant la configuration) :

génération en PDF génération au format ODT (OpenOffice) génération au format DOC (Microsoft Word) génération au format RTF (Rich Text Format)

La génération en document bureautique est possible pour les points, les ordres du jour et les procès­verbaux.

Page 82: Plonegov projet egov

Mohamed OUALI 82 Projet de fin d’étude 2009/2010

1.2.4.3. Ajout d'annexes : Le créateur ou gestionnaire d'un point peut ajouter des annexes à ce premier en cliquant sur l'onglet "Annexes". L'écran suivant est alors affiché :

Figure 5.4 : ajout d’annexe

Le cadre supérieur affiche des informations sur les annexes déjà liées au point. En cliquant sur le titre d'une annexe, il est possible de la visualiser. Le cadre inférieur permet d'ajouter une annexe. Il est nécessaire de choisir le type d'annexe, d'indiquer un titre représentatif et de sélectionner un fichier. Une fois que la séance aura eu lieu et que le point aura été délibéré, le rôle "secretaire" pourra ajouter via l'onglet "Annexes (à la décision)" des annexes complémentaires faisant suite à la séance. 1.2.4.4. Tableau récapitulatif des points visibles :

Via le menu gauche intitulé "points", il est possible d'afficher ses propres points ou tous les points sur lesquels l'utilisateur courant a un droit de regard. L'écran suivant est un exemple de ce tableau récapitulatif.

Page 83: Plonegov projet egov

Mohamed OUALI 83 Projet de fin d’étude 2009/2010

Figure 5.5 : visualisation de tous les points

Le titre ainsi que différentes informations comme le créateur du point, la date de création, l'état du point, le nombre d'annexes et leurs types sont affichées. Suivant l'état du point, le titre est coloré différemment (ou pas de couleurs selon la configuration comme le cas ici). La dernière colonne affiche les actions possibles sur le point. Le fait de laisser le pointeur de la souris sur l'icône affiche le nom de l'action associée. Par exemple :

Corriger : remet le point dans son état initial de création en attendant une correction par son créateur

Editer : pour accéder au formulaire de modification du point Couper, copier, renommer, effacer

1.2.5. Ecrans de gestion d'une séance : 1.2.5.1. Création d'une séance : Lorsque l'utilisateur qui en a la permission (rôle secrétaire) choisit d'ajouter une séance, le formulaire suivant est affiché :

Figure 5.6 : création séance

Page 84: Plonegov projet egov

Mohamed OUALI 84 Projet de fin d’étude 2009/2010

Il est proposé de choisir une date et l'heure de la séance. La date est indicative pour différencier les séances mais est aussi utilisée comme indice pour éviter de clôturer une séance qui n'est pas encore passée par exemple. La zone assemblée est complétée avec l'assemblée configurée par défaut mais peut évidemment être adaptée manuellement. 1.2.5.2. Visualisation d'une séance : Le fait de cliquer dans le menu de gauche sur une séance affiche l'écran de gestion de la séance :

Figure 5.7 : visualisation d’une séance

Le cadre supérieur de l'écran affiche les points qui peuvent être ajoutés à la séance, c'est à dire uniquement les points qui ont été validés.

Pour ajouter le point à la séance, il suffit de cliquer sur l'icône . Il est également possible d'ajouter plusieurs points en même temps. Pour cela, il est nécessaire de sélectionner les points à ajouter à la séance en les

cochant/décochant dans la dernière colonne et ensuite de cliquer sur l'icône se trouvant en haut de cette colonne. Le cadre inférieur affiche les points qui sont déjà inclus dans la séance. Les points récurrents définis dans la configuration sont automatiquement ajoutés à la séance lors de sa création.

Un point peut être retiré de la séance en cliquant sur l'icône .

Page 85: Plonegov projet egov

Mohamed OUALI 85 Projet de fin d’étude 2009/2010

L'ordre des points affichés dans le tableau est pris en compte lors de la génération des documents. C'est pourquoi, il est possible de changer cet ordre de deux façons :

en cliquant sur les icônes et en changeant directement la numérotation d'un point dans la colonne la

plus à gauche Pour la génération de la séance en un document bureautique, il est possible de sélectionner les points que l'on veut voir apparaître dans le document. Cette

sélection se fait en cochant/décochant les points dans la dernière colonne ( ). Par défaut, tous les points sont sélectionnés. Il suffit de décocher les points qu'on ne veut pas voir apparaître dans le document généré. Pour générer le document, il suffit de cliquer sur l'icône du format désiré en haut à droite (dans la ligne de titre de la séance). Si une petite icône rouge clignotante s'affiche avant le titre d'un point ou que le point a un fond de couleur, cela signifie que le point a été modifié depuis la dernière visualisation par l'utilisateur connecté. Cela permet donc de signaler qu'un changement a été fait sur le point par un autre utilisateur. Lorsque tous les points ont été rajoutés à la séance, le secrétaire peut geler la séance afin de permettre à l'avance aux personnes participant à la séance de consulter les différents points.

1.2.5.3. Ajout d'un point complémentaire discuté en séance et non prévu dans l'ordre du jour :

Il arrive que des points complémentaires non prévus dans l'ordre du jour initial soient discutés au cours de la séance. L'application permet de rajouter ces points à la séance et de les distinguer des points originellement prévus à l'ordre du jour. Pour pouvoir faire cette distinction, le secrétaire doit avoir gelé préalablement la séance. Les points complémentaires peuvent être créés comme vu précédemment mais il est nécessaire de choisir comme séance souhaitée la séance qui vient d'avoir lieu. Une fois le point validé, il apparaît dans l'écran de gestion de la séance.

Page 86: Plonegov projet egov

Mohamed OUALI 86 Projet de fin d’étude 2009/2010

Figure 5.8 : point ajouté après gel de la séance

Un point créé après que la séance ait été gelée et sélectionné pour celle­ci

apparaît dans le cadre supérieur avec un point d'exclamation rouge ( ) avant le titre. Une fois que le point a été rajouté à la séance, il apparaît dans un cadre spécifique destiné aux points complémentaires, tel que présenté ci­dessous.

Figure 5.9 : ajout d’un point à une séance gelée

Une fois que tous les points ont été rajoutés à la séance, le secrétaire peut alors commencer à rédiger le procès­verbal. 1.2.6 Ecrans de gestion d'un procès-verbal : 1.2.6.1 Gestion du procès-verbal :

Page 87: Plonegov projet egov

Mohamed OUALI 87 Projet de fin d’étude 2009/2010

Après avoir fait passer la séance dans son état de rédaction du procès­verbal, l'écran de gestion se présente comme suit :

Figure 5.10 : écran de gestion d’un procès verbal

Cet écran de gestion est similaire à l'écran de gestion d'une séance. Il présente pour chaque point quelques icônes supplémentaires permettant de gérer la décision prise pour chacun des points. Ces décisions sont en fait liées au workflow puisque les décisions sont différents états attribuables au point, comme par exemple "reporté", "accepté", "refusé", ... La décision permet à l'agent communal ayant introduit le point de visualiser sur son point un statut représentant la décision (favorable ou négative). 1.2.6.2 Rédaction du procès-verbal : Le secrétaire peut procéder à la rédaction du procès­verbal de deux façons :

soit en éditant chaque point séparément (via l'icône de modification) et complétant la zone réservée au procès­verbal

soit en cliquant sur l'onglet "Modifier" dans la vue du procès­verbal, ce qui affiche l'écran suivant :

Page 88: Plonegov projet egov

Mohamed OUALI 88 Projet de fin d’étude 2009/2010

Figure 5.11 : écran de rédaction d’un procès verbal

Il est possible d'indiquer pour chaque point (en­dessous du titre) la délibération devant faire partie du procès­verbal. L'avantage de cet écran est de pouvoir rédiger le procès­verbal pour tous les points. Au moment de la sauvegarde, la délibération de chaque point est sauvegardée dans chacun des points (dans la zone réservée au procès­verbal). Remarque : La zone de modification globale des points apparaît seulement si aucune décision n'a encore été prise sur les points dans l'écran de gestion global.

1.3 Installation et configuration de l'application : 1.3.1 Installation :

Afin de mettre l’outil en place il est nécessaire de bien lire le fichier ‘install.txt’ livré avec l’application. Ce fichier contient les instructions à suivre pour installer l’application PloneMeeting : 1.3.1.1 Installation de "appy.pod" : appy.pod est la bibliothèque utilisée par PloneMeeting pour générer des documents (PDF, RTF, ODT, etc.). Pour pouvoir générer des documents dans un autre format qu’OpenDocument (ODT), nous devons exécuter OpenOffice en mode serveur. L’installation de cette bibliothèque consiste à télécharger la version convenable et mettre le dossier (résultant de la décompression du fichier zip téléchargé) dans le répertoire "sitepackages" localisé à " path/Plone-2.5.5/Python-2.4.4/lib/python2.4/ ".

Page 89: Plonegov projet egov

Mohamed OUALI 89 Projet de fin d’étude 2009/2010

1.3.1.2 Installation de PloneMeeting : La méthode la plus simple pour récupérer l’application est d’utiliser un client subversion (traité dans le chapitre II traitant Plone). Après avoir téléchargé cette application, on doit avoir une copie du répertoire PloneMeeting, contenant l’outil, dans le dossier "Products" de notre instance "Zope" pour pouvoir installer l’application. Si c’est le cas, en accédant à l’interface "Ajout et suppression de programmes", PloneMeeting s’affichée dans la liste des programmes instalables :

Figure 5.12 : menu d’installation de PloneMeeting

1.3.2 Panneau de configuration général : Un administrateur peut accéder à la configuration des produits via son site Plone en cliquant sur le lien "Configuration du site". Ainsi, il peut sélectionner dans le menu de gauche (partie inférieure) l'entrée "PloneMeeting", ce qui affiche l'écran suivant (réduit car il est assez grand) :

Page 90: Plonegov projet egov

Mohamed OUALI 90 Projet de fin d’étude 2009/2010

Figure 5.13 : écran de configuration de PloneMeeting

L'écran principal est subdivisé en différentes parties. Certaines disposent de boutons ou de liens qui renvoient vers des écrans secondaires. La modification d'une partie des options de l'écran principal se fait via l'onglet "Modifier". 3.2. Gestion des groupes spécifiques à l'application : La partie supérieure de l'écran de configuration général concerne la gestion des groupes (comme le montre la figure 5.13). Cette notion est expliquée dans le point "Organisation en groupes". La première étape de la configuration de l’application est la création d’un groupe PloneMeeting. Pour cela, il est nécessaire de cliquer sur le bouton "Ajouter un nouveau groupe PloneMeeting". L'écran suivant est affiché :

Page 91: Plonegov projet egov

Mohamed OUALI 91 Projet de fin d’étude 2009/2010

Figure 5.14 : écran de création d’un groupe PloneMeeting

Le titre est l'intitulé du groupe tel qu'il apparait dans l'écran de configuration principal. L'acronyme est un diminutif qui peut être utilisé à différents niveaux pour représenter le groupe qui propose un point (comme dans la référence du point par exemple). Une fois le nouveau groupe PloneMeeting créé, 3 groupes Plone sont ajoutés :

"nom_du_groupe_Plonemeeting (creators)" : destiné aux membres qui peuvent créer des points pour leur groupe/service

"nom_du_groupe_Plonemeeting (observers)" : destiné aux membres qui peuvent uniquement voir les points de leur groupe/service

"nom_du_groupe_Plonemeeting (reviewers)" : destiné aux membres qui peuvent valider les points de leur groupe/service

Remarques :

1­ Une même personne peut être dans plusieurs de ces trois groupes du même groupe PloneMeeting et également dans d'autres groups PloneMeeting.

2­ Dans la gestion des utilisateurs (lien "Administration des utilisateurs et des groupes" dans la configuration du site), les rôles suivants (concernant cette application) apparaissent :

MeetingManager : il s'agit du rôle "secretaire" dont nous avons déjà parlé. Ce rôle peut gérer les séances et les PV. Il doit être donné individuellement aux utilisateurs concernés en cochant la case correspondante quand on liste l'utilisateur.

MeetingMember : il s'agit du rôle de "rédacteur d'un point" dans un groupe. Ce rôle ne doit pas être donné de manière globale à un utilisateur ou à un groupe. Il est donné automatiquement par

Page 92: Plonegov projet egov

Mohamed OUALI 92 Projet de fin d’étude 2009/2010

l'application de manière locale, c'est­à­dire uniquement dans les dossiers des personnes du groupe.

MeetingReviewer : il s'agit du rôle de "validateur d'un point" dans un groupe. Ce rôle ne doit pas être donné de manière globale à un utilisateur ou à un groupe.

MeetingObserverLocal : il s'agit du rôle de "lecteur d'un point" dans un groupe. Ce rôle ne doit pas être donné de manière globale à un utilisateur ou à un groupe.

MeetingObserverGlobal : ce rôle permet de visualiser les séances publiées. Ce rôle est donné automatiquement à tous les groupes PloneMeeting.

MeetingArchiveObserver : ce rôle est utilisé pour accéder aux archives des points et séances.

1.3.3 Gestion des configurations de séance : Le deuxième cadre présent dans l'écran de configuration général (figure 5.13) permet de gérer les types de séance. Par défaut, aucun type de séance ni encore configuré. Une configuration de séance définit ‘un type de séance’ auquel est associé une série de paramètres de configuration. Chaque configuration donne lieu à un onglet général sur le site Plone. Pour créer un nouveau type de séance et le configurer, on clique sur le bouton "Ajouter une nouvelle configuration de séance" et l’écran suivant s’affiche :

Page 93: Plonegov projet egov

Mohamed OUALI 93 Projet de fin d’étude 2009/2010

Figure 5.15 : écran de configuration d’une séance

1.3.3.1 Etapes de configuration d’un type de séance :

Comme le montre le cadre rouge de la figure ci­dessus, pour configurer un nouveau type de séance on doit passer par sept étapes :

1­ Général :

Page 94: Plonegov projet egov

Mohamed OUALI 94 Projet de fin d’étude 2009/2010

Figure 5.16 : paramètres généraux d’une séance

L’écran des paramètres généraux présente la première interface affichée pour un utilisateur décidant de configurer un nouveau type de séance. Dans cette première étape nous devons remplir plusieurs champs ; les plus importants sont :

­ Titre : c’est le titre du nouveau type de séance comme par exemple ‘collège communal’, ‘conseil communal’, ‘service informatique’, etc.

­ Assemblée par défaut : dans cette zone de texte on saisi la liste des personnes apparaitront dans le champ ‘assemblée’ de chaque nouvelle séance.

­ Signature par défaut : les personnes listées dans cette zone de texte peuvent apparaître par exemple dans un document reprenant les décisions d’une séance, en tant que signature.

­ Nom du répertoire lié à cette configuration : dans le répertoire PloneMeeting de chaque utilisateur, un sous répertoire par configuration de séance est créé. Le nom de ce sous répertoire est définis dans ce champ.

­ Nom court pour la configuration de séance : ce nom est utilisé par l’application pour dériver des types de contenu pour les points et les séances qui soient propres à chaque configuration de séance.

­ Cette configuration est celle par défaut : c’est une case à cocher. Lorsqu’un utilisateur (possédant les droits) se connecte il est dirigé sur la configuration actuelle si cette case est cochée.

2­ Données :

Après avoir fini notre première étape de configuration on passe à la deuxième présentée par l’interface suivante :

Page 95: Plonegov projet egov

Mohamed OUALI 95 Projet de fin d’étude 2009/2010

Figure 5.17 : écran de configuration de données d’une séance

Parmi les éléments importants de cet écran :

­ Attributs utilisés pour caractériser un point : c’est une liste déroulante qui permet de choisir un ou plusieurs attributs optionnels pour caractériser un point.

­ Attributs utilisés pour caractériser une séance : liste déroulante des attributs optionnels pour caractériser une séance.

­ Utiliser les groupes comme catégories (case à cocher) : chaque point dans PloneMeeting appartient à une et une seule catégorie. Si cette case est cochée par un utilisateur alors ce dernier n’a pas besoin d’une catégorisation supplémentaire qui peut être configurée dans une autre étape.

­ Valeur par défaut de l’attribut ‘à discuter’ pour les points normaux : cet attribut permet au gestionnaire d’une séance de spécifier si un point présenté à une séance doit être discuté dans celle­ci ou si seulement il doit être figuré dans l’ordre du jour et/ou dans les PV pour des raisons de traçabilité. On coche cette case si on veut que les points soient, par défaut, discutés.

Page 96: Plonegov projet egov

Mohamed OUALI 96 Projet de fin d’étude 2009/2010

3­ Workflow : Dans cette étape, un écran semblable aux autres figures s’affiche avec des liste déroulantes qui nous permettent de choisir les workflow gouvernants le cycle de vie d’un point et ceux gouvernants le cycle de vie d’une séance. L’utilisateur peut laisser les worflow livrés avec l’application (par défaut) ou choisir au autre workflow qui a été spécifiquement conçu, par des développeurs, pour le cycle de vie des points et des séances de cette configuration.

4- Interface utilisateur : Après la configuration des workflow vient celle de l’interface utilisateur. La figure ci­dessous montre l’écran affiché à cet égard :

Figure 5.18 : écran de configuration de l’interface utilisateur

L’écran affiché pour la configuration de l’interface utilisateur nous permet de configurer plusieurs paramètres :

­ Etat dont tiennent compte les recherches de points dans la portlet ‘points’ : divers liens dans la boite ‘points’ affichée dans la colonne gauche (selon le rôle de l’utilisateur connecté) permettent de déclencher des recherches de points. Seuls les points étant dans les états que nous sélectionnons ici apparaîtront dans ces recherches.

Page 97: Plonegov projet egov

Mohamed OUALI 97 Projet de fin d’étude 2009/2010

­ Etat des séances conditionnant l’affichage de celles-ci dans la portlet ‘séance’ : les points étant dans les états que nous sélectionnons ici apparaîtront dans le slot ‘séance’.

­ Etat des séances conditionnant l’affichage de celles-ci dans la portlet ‘décisions : les points étant dans les états que nous sélectionnons ici apparaîtront dans la portlet ‘décisions’.

­ …

5­ Notification par courriel : Cette étape de configuration consiste à choisir la liste des événements qui déclenchent l’envoi d’un courriel au(x) gestionnaire(s) de séances. La figure ci­dessous permet de comprendre immédiatement :

Figure 5.19 : écran de configuration de notifications par courriel

6­ Tâches :

Comme le montre la figure ci­dessous, cet écran nous permet de connecter notre application de gestion des organes délibératoire "PloneMeeting" à un autre module externe de gestion de tâches "Plonetask" développé dans le cadre du projet "PloneGov".

Page 98: Plonegov projet egov

Mohamed OUALI 98 Projet de fin d’étude 2009/2010

Figure 5.20 : écran de configuration de tâches

7­ Avis :

Dans cette phase de configuration on choisit les utilisateurs qui peuvent et/ou qui doivent laisser leur avis sur les points (voir la figure 5.18).

Figure 5.21 : interface de configuration des avis

1.3.3.2 Configuration supplémentaire :

Après avoir enregistré la configuration de notre nouveau type de séance, une page de configuration supplémentaire dont le titre est celui du nouveau type configuré (figure 5.22) est affichée permettant à l’administrateur de l’application de configurer d’autre type de séance. Cette page reprend l’ensemble des paramètres (ou points de variation) disponibles pour notre nouveau type de séance. Elle spécifie, pour chaque paramètre, l’option (ou les options) choisie(s). La figure suivante est découpée en deux parties et ne représente pas toute la page car elle est assez grande :

Page 99: Plonegov projet egov

Mohamed OUALI 99 Projet de fin d’étude 2009/2010

Figure 5.22 : page de nouveau type de séance

Comme le montre cette figure, cette page nous permet de modifier les paramètres déjà configurés et de configurer d’autres supplémentaires comme :

­ Types d’annexes : permet de définir un titre, une icône et un titre prédéfini attribué à chaque fichier de ce type. Lorsqu’un utilisateur veut

Page 100: Plonegov projet egov

Mohamed OUALI 100 Projet de fin d’étude 2009/2010

associer une annexe à un point, il peut choisir, dans une liste déroulante, un type d’annexes parmi ceux qui sont définis ici et uploader un fichier.

­ Catégories de points : un point peut appartenir à une et seulement une catégorie. Lors de l’ajout d’un point à une séance celui­ci peut s’insérer à la suite des points appartenant à la même catégorie. Ceci dit, si nous spécifions que nous voulons utiliser les groupes PloneMeeting comme catégories (un autre paramètre de la section ‘Données’) les catégories définies ici ne seront pas utilisées.

­ Points récurrents : à l’aide du bouton d’ajout on peut définir ici les points récurrents qui seront créés et présentés automatiquement à chaque séance de cette configuration lorsqu’une action est effectuée sur une séance.

­ Génération de document :

Dans cette section on va configurer la génération en document bureautique. Pour cela, un cadre est proposé dans la page, du nouveau type de séance, présentée. Lorsque l’utilisateur accède à l’interface de configuration de la génération en document bureautique l’écran suivant est affiché :

Figure 5.23 : écran de configuration de la génération de documents bureautiques

Cette interface présente plusieurs paramètres :

­ Titre : c’est le titre qui sera affiché à droite de l’icône du document à générer (par exemple PDF, ODT, Word…).

­ Description : une petite description du modèle.

Page 101: Plonegov projet egov

Mohamed OUALI 101 Projet de fin d’étude 2009/2010

­ Canevas POD (fichier ODT) : ce canevas doit être un document ODT (Open Document Format text) tel que produit par OpenOffice par esemple. Ce canevas devrait contenir des instructions spéciales qui permettent d’y insérer des contenus provenant de la base de données Zope/Plone. Le format de ses instructions est défini par la librairie POD (Python Open Document) (voir annexe).

­ Format dans lequel vous pouvez générer des documents depuis ce canevas : on choisit dans cette liste le format dans lequel on veut générer les documents.

­ Condition : C’est une expression TAL (Tag Attribute Language). Si cette condition est vraie l’utilisateur sera capable de générer des documents.

­ Permissions : seuls les utilisateurs ayant la (les) permission(s) spécifiée(s) ici seront capables de générer des documents depuis ce canevas.

V.2 AUTRES MODULES : La quantité et la qualité des informations que contient le site constituent un point fort et un axe important. Toutefois, sans un système de géolocalisation et de gestion de versions pour un même document un site communal reste incomplet. Pour cela et afin d’améliorer les fonctionnalités offerte par notre site communal, j’ai intégré plusieurs outils dans le site :

2.1 Système de géo-localisation : Le système de géo­localisation "ATGoogleMaps" est un outil très puissant qui permet aux habitants, aux touristes et à tous les visiteurs du site de localiser des lieux de la commune (les gares de train, les hôtels, les hôpitaux, les pharmacies des gardes, etc.).

2.1.1 Installation : Après avoir récupérer l’outil, on place le dossier "ATGoogleMaps" (résultant de la décompression du fichier téléchargé) dans le fameux répertoire "Products" de notre instance Zope. Ensuite, une fois affiché dans la liste des produits installables on installe notre outil et on passe à sa configuration.

2.1.2 Configuration : En accédant au paramétrage de l’outil, une clé Google Maps (Google Maps API Key ) doit être fournie. Pour cela, on se connecte, par le lien fourni, au site générateur des clés API. Ensuite, on coche la case I have read and … et on saisit l’url de notre site Plone dans le champ convenable. Les figures ci­dessous permettent de comprendre instantanément :

Page 102: Plonegov projet egov

Mohamed OUALI 102 Projet de fin d’étude 2009/2010

Figure 5.24 : interface de configuration d’ATGoogleMaps

Figure 5.25 : interface de génération d’une clé API

Remarque : Un compte google est nécessaire pour pouvoir générer une clé API.

­ Résultat : La figure ci­dessous nous donne une idée sur le résultat montré aux visiteurs par le système de géo­localisation :

Figure 5.26 : système de géolocalisation

Page 103: Plonegov projet egov

Mohamed OUALI 103 Projet de fin d’étude 2009/2010

2.2 Versionning :

Pour permettre aux gestionnaires du site de créer plusieurs versions d'un même contenu ou de faire un changement à une copie de l'objet de publication, tout en laissant intacte la version originale publiée, plusieurs outils de gestion de versions sont développés par la communauté Plone. Celui installé dans notre site communal est " PVSForPlone2 ".

2.3 Forum : Faire participer les citoyens dans la vie communale est un des objectifs principaux du site communal. Pour cela il fallait intégrer un forum dans notre site. Les produits ou les outils développés pour répondre à ce besoin sont nombreux et rentrent tous dans le cadre de "la communauté Plone".

Page 104: Plonegov projet egov

Mohamed OUALI 104 Projet de fin d’étude 2009/2010

Conclusion

Le projet "CommunesPlone" est une initiative de communes wallonnes

qui ont choisi de faire évoluer leur informatique vers une plus grande indépendance et une meilleure maîtrise en suivant une stratégie identique. Il s’inscrit dans la philosophie open source et développe plusieurs outils informatiques par et pour les communes en utilisant deux outils libres largement répandus Zope et Plone. Ces outils sont entièrement développés et ne demandent plus qu’à être adaptés si nécessaire.

Persuadé et convaincu de la puissance du projet et de l’importance de

l’open source dans le monde de l’informatique, j’ai opté dans mon stage de fin d’études pour l’adaptation de la plateforme offerte par CommunesPlone au contexte marocain.

Ce stage a été pour moi un grand pas vers le milieu professionnel, où j’ai

bénéficié d’une excellente expérience qui m’a permis de concrétiser mes connaissances informatiques et m’a fait découvrir de nouveaux outils. Durant ce dernier, j'ai eu la charge de la conception d'un site communal, du cahier des charges à la réalisation, tout en respectant les éléments formulés par le responsable de la société.

Aussi, ce projet m’a permis d’acquérir des valeurs indispensables pour le

métier d’ingénieur telles que la responsabilité, le travail d’équipe, l’adaptabilité à l’environnement de l’entreprise et le sens d’analyse. Ces valeurs sont sans aucun doute les bases de réussite dans le milieu professionnel.

A propos des outils utilisés, le CMS Plone est un outil puissant mais

difficile à appréhender. Les documentations en ligne couvrent relativement bien le sujet, mais de nombreuses zones d'ombres persistent lorsque l'on souhaite aller un peu en profondeur, ou lorsque l'on souhaite comprendre le fonctionnement global de l'application. Il est donc nécessaire de bien les maîtriser avant de pouvoir en tirer toute la puissance, d'autant qu'il existe généralement beaucoup moins d'approches possibles à un problème donné lorsque l'on souhaite que la solution s'intègre correctement à l'environnement.

Page 105: Plonegov projet egov

Mohamed OUALI 105 Projet de fin d’étude 2009/2010

Annexes

Annexe 2.1 : Extrait du code du modèle responsable de la présentation d’un site Plone : <body tal:attributes="class here/getSectionFromURL; dir python:test(isRTL, 'rtl', 'ltr')"> <div id="visual-portal-wrapper"> <div id="portal-top" i18n:domain="plone"> <div id="portal-header"> <a class="hiddenStructure" accesskey="2" tal:attributes="href string:${request/ACTUAL_URL}#documentContent" i18n:translate="label_skiptocontent">Skip to content.</a> <a class="hiddenStructure" accesskey="6" tal:attributes="href string:${request/ACTUAL_URL}#portlet-navigation-tree" i18n:translate="label_skiptonavigation">Skip to navigation</a> <tal:tutorial replace="nothing"> Moved the personal bar to the top (after accessibility elements) </tal:tutorial> <div metal:use-macro="here/global_personalbar/macros/personal_bar"> The personal bar. (log in, logout etc...) </div> <tal:tutorial replace="nothing"> Moved the portal logo to the top: Also changed the global_logo template that the macro calls. </tal:tutorial> <a metal:use-macro="here/global_logo/macros/portal_logo"> The portal logo, linked to the portal root </a> <div metal:use-macro="here/global_siteactions/macros/site_actions"> Site-wide actions (Contact, Sitemap, Help, Style Switcher etc) </div> <div metal:use-macro="here/global_searchbox/macros/quick_search"> The quicksearch box, normally placed at the top right </div>

Page 106: Plonegov projet egov

Mohamed OUALI 106 Projet de fin d’étude 2009/2010

<tal:tutorial replace="nothing"> Tutorial: Removing the global nav <div metal:use-macro="here/global_sections/macros/portal_tabs"> The global sections tabs. (Welcome, News etc) </div> </tal:tutorial> </div> <div metal:use-macro="here/global_pathbar/macros/path_bar"> The breadcrumb navigation ("you are here") </div> </div>

Annexe 3.1 : Les titres remportés par le projet PloneGov :

Annexe 4.1 : la page template "global_logo.pt" : <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" i18n:domain="plone"> <body> <!-- THE PORTAL LOGO DEFINITION --> <tal:logo metal:define-macro="portal_logo"> <a id="portal-logo" href="/" tal:attributes="href portal_url" accesskey="1"> <img src="" tal:replace="structure here/logo.jpg" /> </a> </tal:logo> </body> </html>

Page 107: Plonegov projet egov

Mohamed OUALI 107 Projet de fin d’étude 2009/2010

Annexe 4.2 : Extrait du fichier "montheme.css.dtml" où en met nos CSS : /* YOUR CSS RULES START HERE */ /* The basics */ body { font: 69% Verdana,sans-serif; background-color: White; color: #7e7c7c; margin: 0; padding: 0; } /* The background + logo styles */ body { background: url(bg_light.gif); width: 1000px; margin: auto; } #visual-portal-wrapper { margin: 20px; background-color: white; padding: 0 20px 20px 20px; } #portal-logo { display: block; margin-bottom: 2em; } /* Headlines & other basics */ h1 { font-weight: normal; border-left: 4px solid #ec001a; padding: 0 5px; } p { padding-left: 9px; line-height: 1.5em; } a { color: #463229; } p a:link { color: #463229; text-decoration: none; border-bottom: 1px solid #463229; } img { border: none; } input { border: 1px solid #463229; }

Annexe 4.3 : la page template affichant les portlets : <html xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal" i18n:domain="plone"> <body> <div metal:define-macro="portlet" tal:omit-tag=""> <tal:block> <dl class="portlet"> <dt class="portletHeader" tal:content="here/title_or_id">Title</dt> <dd class="portletItem" tal:content="structure here/getText">Content</dd> </dl> </tal:block> </div> </body> </html>

Annexe 5.1 : Exemple d’un fichier ODT :

Page 108: Plonegov projet egov

Mohamed OUALI 108 Projet de fin d’étude 2009/2010

Figure représentant un fichier ODT

Page 109: Plonegov projet egov

Mohamed OUALI 109 Projet de fin d’étude 2009/2010

Bibliographie

Documents PDF

The Definitive Guide to Plone First Edition 12th December 2006 Guide du développeur Plone Mise en place d’un site intranet avec zope et plone Faire son site Web avec Zope/Plone Un tutoriel pour découvrir Plone TP ZOPE/ PLONE 3 Plone 2.0 : Documentation à destination des gestionnaires du contenu support­formation­plone­pilot­systems­v092

Sites Web

Site officiel de Plone : http://www.plone.org Site officiel de projet CommunesPlone : http://www.communesplone.org Site officiel de Zope : http://www.zope.org Produits installables : http://www.contentmanagementsoftware.info Sites communaux :

o http://www.seneffe.be o http://www.sambreville.be

Serveur subversion : http://svn.communesplone.org/

Page 110: Plonegov projet egov

Mohamed OUALI 110 Projet de fin d’étude 2009/2010

Liste des abréviations

Abréviation Signification CMS Content Management System SGC Système de Gestion de Contenu

WYSIWYG What You See Is What You Get ZODB Zope Object Data Base CMF Content Management Framework ZMI Zope Management Interface OS Operating System IU Installateur Unifié UI Unified Installer

ZPT Zope Page Template

Page 111: Plonegov projet egov

Mohamed OUALI 111 Projet de fin d’étude 2009/2010

Liste des figures Figure 7.1 Planning du stage Figure 8.1 Séparation de la forme et du contenu Figure 2.2 Manipulation des articles Figure 2.9 Fonctionnement du CMS Figure 2.4 Interface d’un site Plone Figure 2.1 Page d’accueil de Zope Figure 2.3 Ajout d’un site Plone Figure 2.4 Formulaire d’ajout d’un site Plone Figure 2.5 Page d’accueil de Plone Figure 2.6 Vue anonyme du site Plone Figure 2.7 Formulaire d’inscription

Figure 2.8 Menu principal

Figure 2.9 Breadcrumbs Figure 2.10 Boite de navigation

Figure 2.11 Ajout d’un élément

Figure 2.12 Rôles locaux

Figure 2.13 Les métadonnées

Figure 2.14 Transitions autorisés

Figure 2.15 Ajout/suppression des programmes

Figure 2.16 Outils Plone

Figure 3.10 Site Plon avec CPSkin2

Figure 3.11 Site Plone avec CPSkin3

Figure 12.3 L’outil TeleServices

Figure 4.1 Les échanges du site communal

Figure 4.2 Portail officiel de la ville de Casablanca

Figure 4.3 Portail de la ville de Fès

Figure 4.4 Portail d’Ifrane

Figure 4.5 Site communal de Seneffe

Figure 4.6 Site communal de Sambreville

Figure 4.7 Plan du site

Figure 4.7 Site communal classique Figure 4.8 Répertoire ‘custom’

Figure 4.9 Changement du logo

Figure 4.10 Fichier base_properties

Figure 4.11 Première maquette Figure 4.12 Le site sous le modèle ‘Underworld’

Figure 4.13 Le site sous le ‘qPloneSkinTechlight’

Page 112: Plonegov projet egov

Mohamed OUALI 112 Projet de fin d’étude 2009/2010

Figure 4.14 Le site sous le modèle ‘qPloneSkinWhiteBlack’

Figure 4.15 Site sans css

Figure 4.16 Le site avec notre propre modèle

Figure 4.17 Portlets ajoutées au site

Figure 5.1 Interface affichée pour le rôle ‘secretaire’

Figure 5.2 Formulaire de création d’un point

Figure 5.3 Visualisation d’un point créé

Figure 5.4 Ajout d’annexe

Figure 5.5 Visualisation de tous les points

Figure 5.6 Création séance

Figure 5.7 Visualisation d’une séance

Figure 5.8 Point ajouté après gel de la séance

Figure 5.9 Ajout d’un point à une séance gelée

Figure 5.10 Ecran de gestion d’un procès verbal

Figure 5.11 Ecran de rédaction d’un procès verbal

Figure 5.12 Menu d’installation de PloneMeeting

Figure 5.13 Ecran de configuration de PloneMeeting

Figure 5.14 Ecran de création d’un groupe PloneMeeting

Figure 5.15 Ecran de configuration d’une séance

Figure 5.16 Paramètres généraux d’une séance

Figure 5.17 Ecran de configuration de données d’une séance

Figure 5.18 Ecran de configuration de l’interface utilisateur

Figure 5.19 Ecran de configuration de notifications par courriel

Figure 5.20 Ecran de configuration de tâches

Figure 5.21 Interface de configuration des avis

Figure 5.22 Page de nouveau type de séance

Figure 5.23 Ecran de configuration de la génération de documents bureautiques

Figure 5.24 Interface de configuration d’ATGoogleMaps

Figure 5.25 Interface de génération d’une clé API

Figure 5.26 Système de géolocalisation