Modifications entre les versions 13 et 14
Version 13 à la date du 2011-03-15 08:21:49
Taille: 5789
Commentaire: + liens vers les outils + correctifs
Version 14 à la date du 2013-06-11 16:16:44
Taille: 5923
Commentaire: + mini doc
Texte supprimé. Texte ajouté.
Ligne 19: Ligne 19:
A Dakar, le BAO utilise ce système pour les réservations de visioconférences http://form.sn.auf.org/ Il existe également une [[/ConceptionDeFormulaire|mini documentation]] de l'usage des classes mises en place dans le thème AUF.

À
Dakar, le BAO utilise ce système pour les réservations de visioconférences http://form.sn.auf.org/

Cette page présente l'étude du logiciel w.c.s.

w.c.s. est un serveur de téléformulaires, d'abord développé pour des administrations locales (pour des besoins de formulaires du type "inscription médiathèque"), il a depuis évolué pour également convenir à d'autres tâches, par exemple comme système de suivi de bugs, ou encore comme site de vote pour la dernière assemblée générale de l'April.

w.c.s. est codé en Python grâce au framework Quixote.

w.c.s. est développé par Entr'ouvert, une SCOP (coopérative) travaillant principalement autour de l'« administration électronique », bien engagée, en elle-même et par ses travailleurs, dans les logiciels libres. Il est rarement évident de marier « développement d'entreprise » et développement communautaire, mais une base de travail commune a été posée en choisissant de développer publiquement (Subversion) et d'utiliser une licence claire (GNU GPL).

Objectifs

L'objectif est de proposer un système w.c.s. qui permettent au personnel AUF de créer des formulaires pour les appels d'offres, appels à candidatures, etc.

Réalisations actuelles

Les formulaires de l'AUF : https://formulaires.auf.org/ (mise en place lors du projet /Bourses2010) (procédure de bascule en production)

Il existe également une mini documentation de l'usage des classes mises en place dans le thème AUF.

À Dakar, le BAO utilise ce système pour les réservations de visioconférences http://form.sn.auf.org/

Le DakarLUG utilise w.c.s. (http://wcs.dakarlug.org) avec succès depuis fin avril 2009. Zéro pannes, aucun problème qui ne soit pas résolu en 10 minutes via la liste de discussion du logiciel.

Installation

Vous pouvez lire http://wcs.labs.libre-entreprise.org/doc/fr/admin-guide.html

<!> Le paquet proposé par Entr'Ouvert et présenté dans la documentation indiquée ci-dessus est une ancienne version de wcs, la 1.0, qui est assez boguée.

Heureusement, il est très simple de faire un paquet de wcs, tout est déjà prévu pour. Vous avons donc un paquet wcs dans le DépôtAPT de l'AUF :

  • # source des paquets AUF pour Debian Lenny
    deb http://apt.auf.org/ lenny auf

L'installation se passe en deux étapes :

  1. Installation du paquet :
    • # aptitude install wcs
  2. Connexion avec le serveur Apache, par exemple en ajoutant un serveur virtuel :
    • <VirtualHost *>
          ServerName wcs.mondomaine.org
          DocumentRoot /usr/share/wcs/web/
          Alias /qo/ /usr/share/wcs/qommon/
          # connexion avec le serveur wcs local
          SCGIMount / 127.0.0.1:3001
          <LocationMatch "^/(css|images|js|qo)/.*">
              SCGIHandler off
          </LocationMatch>
          CustomLog /var/log/apache2/wcs-access.log combined
          ErrorLog /var/log/apache2/wcs-error.log
      </VirtualHost>
  3. ou bien en s'insérant à un serveur virtuel existant, ici sous /form/ :

    •     # formulaires via le web avec w.c.s
          Alias /form/css/ /usr/share/wcs/web/css/
          Alias /form/images/ /usr/share/wcs/web/images/
          Alias /form/js/ /usr/share/wcs/web/js/
          Alias /form/qo/ /usr/share/wcs/qommon/
          # connexion avec le serveur wcs local
          SCGIMount /form 127.0.0.1:3001
          <LocationMatch "^/form/(css|images|js|qo)/.*">
              SCGIHandler off
          </LocationMatch>
  4. attention cependant, dans ce dernier cas, à ajouter également la ligne suivante à /etc/default/wcs :

    • OPTIONS="--script-name=/form"

Correctifs

Voici quelques correctifs appliqués à la version 1959 que nous utilisons actuellement.

  • correction du problème de lien symbolique pour un formulaire nouvellement créé :
    • la correction a été apportée à la révision 1964 mais n'est pas triviale
    • une bidouille temporaire consiste à lancer régulièrement la reconstruction des indexes :

      # fichier /etc/cron.d/wcs
      0 * * * * wcs /usr/sbin/wcsctl rebuild_indexes 2>&1 | grep -v "^Missing Lasso module"
  • correction des droits d'accès avec un workflow générique :

    Index: wcs/formdef.py
    ===================================================================
    --- wcs/formdef.py      (révision 2046)
    +++ wcs/formdef.py      (copie de travail)
    @@ -645,8 +645,17 @@
                     for item in wf_status.items or []:
                         if not hasattr(item, 'by'):
                             continue
    -                    status_action_roles.extend(
    -                            [x for x in item.by if not (type(x) is str and x.startswith('_'))])
    +                    for role in item.by:
    +                        if role == '_submitter':
    +                            # action for submitter
    +                            if formdata and formdata.user_id == user.id:
    +                                return True
    +                        elif role == '_receiver':
    +                            # action for receiver
    +                            status_action_roles.append(self.receiver_id)
    +                        elif not (type(role) is str and role.startswith('_')):
    +                            # action for another group
    +                            status_action_roles.append(role)
                     if user_roles.intersection(status_action_roles or []):
                         return True
                 else:

Accès en Python

Etude/WCS (dernière édition le 2016-06-29 20:23:35 par MoussaNombre)