Modifications entre les versions 12 et 13
Version 12 à la date du 2011-01-14 10:58:37
Taille: 3761
Commentaire: + lien vers la procédure de bascule en production
Version 13 à la date du 2011-03-15 08:21:49
Taille: 5789
Commentaire: + liens vers les outils + correctifs
Texte supprimé. Texte ajouté.
Ligne 72: Ligne 72:
= 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:
}}}
Ligne 74: Ligne 111:
Voir http://lists.labs.libre-entreprise.org/pipermail/wcs-devel/2009-June/000067.html : ça marche très bien.

 . ''Voir aussi cette bidouille bien bourrin et totalement inacceptable, mais qui dépanne bien en cas de coup dur : [[/ImportCSV]] -- ProgFou''
 * Voir http://lists.labs.libre-entreprise.org/pipermail/wcs-devel/2009-June/000067.html : ça marche très bien. -- ThomasNoël
 * Quelques outils internes à l'AuF :
  * outils divers et export JSON : http://git.auf.org/?p=progfou.git;a=tree;f=wcs
  * import dans Sigma depuis WCS : http://git.auf.org/?p=sigmawcs.git;a=tree
 * Un
e bidouille bien bourrin et totalement inacceptable, mais qui dépanne bien en cas de coup dur : [[/ImportCSV]] -- ProgFou

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)

A 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)