Accéder au contenu.
Menu Sympa

fr - Re: [sympa-fr] Creation automatique de liste

Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa

Archives de la liste

Chronologique Discussions  
  • From: David Verdin <adresse@cachée>
  • To: Martin <adresse@cachée>
  • Cc: adresse@cachée
  • Subject: Re: [sympa-fr] Creation automatique de liste
  • Date: Thu, 6 Feb 2020 14:40:19 +0100

Oui, alors pour sourcesup, par exemple, on passe des arguments dans le champ subject, que l'on parse, en s'appuaynt sur les possibilités du langage TT2, utilisé par Sympa pour ses templatees, notamment les modèmse de listes.

plus d'infos sur TT2 ici : http://www.tt2.org/

Dans notre cas, on récupère des valeurs que l'on joue dans un requête SQL mais vous pouvez parfaitement dériver cela. Ça pourrait donner un truc dans ce genre :

Voilà un exemple de config.tt2 (dans un modèle de listes, donc) qui commence par parser le sujet :

[%# Initialisation des paramètres de création de la liste
Ces paramètres sont tous passés dans une unique chaîne de caractère dans la variable "subject".
Les valeurs des paramètres sont séparées par la chaînes '__SSUPSEP__'.
Les paramètres doivent être fournis dans cet ordre :
1- sujet de la liste
2- modérateurs
3- propriétaires
-%]

[% params = subject.split('__SSUPSEP__') -%]
[% subject = params.0 -%]
[% modo = params.1 -%]
[% proprio = params.2 -%]

[%# Et ensuite, on parse les variables modo et proprio pour récupérer les adresses email individuellements.
Disons que les proprios sont séparés par '__PROPRIOSEP__' et les modos par '__MODOSEP__'
Et que les données de chaque proprio (email, gecos, etc.) sont séparées '__ADMINDETAILS__'
-%]

[% moderateurs = modo.split('__MODOSEP__') -%]
[% proprietaires = proprio.split('__PROPRIOSEP__') -%]

[%# Et ensuite, on rajoute les proprios -%]

[% FOREACH o = proprietaires -%]
[%# Ici, on doit imposer l'ordre des infos fournies pour chaque propriétaire. Disons, dans l'ordre : email, profile, gecos, visibility, reception -%]
[% details = o.split(' __ADMINDETAILS__') -%]
owner
  email [% details.0 %]
  [% IF details.1 -%]
  profile [% details.1 %]
  [% END -%]
  [% IF details.2 -%]
  gecos [% details.2 %]
  [% END -%]
  [% IF details.3 -%]
  visibility [% details.3 %]
  [% END -%]
  [% IF details.4 -%]
  reception [% details.4 %]
  [% END -%]

[%# Et ensuite, on rajoute les modos -%]

[% FOREACH m = moderateurs -%]
[%# Ici, on doit imposer l'ordre des infos fournies pour chaque modérateur. Disons, dans l'ordre : email, gecos, visibility, reception -%]
[% details = m.split(' __ADMINDETAILS__') -%]
editor
  email [% details.0 %]
  [% IF details.1 -%]
  gecos [% details.1 %]
  [% END -%]
  [% IF details.2 -%]
  visibility [% details.2 %]
  [% END -%]
  [% IF details.3 -%]
  reception [% details.3 %]
  [% END -%]

Et après, le reste de la config.
Du coup, tu passe un champ "subject" qui a cette tête-là :

Sujet de la adresse@cachée du adresse@cachée@domain.tld__ADMINDETAILS__nom du adresse@cachée

C'est un peu long mais si c'est généré par un processus automatique, c'est pas bien grave.

Je suis conscient que ce serait bien plus sympa si on passait un gros json où on puisse mettre n'importe quels paramètres. Mais on n'en est pas encore là et ce genre d'aménagement permet bien des possibilités en attendant un monde meilleur.

En espérant que ça vous aide,

Bonne journée !

David

On 06/02/2020 11:16, Martin wrote:
Bonjour David, tous,

Je reviens sur ce sujet car on bosse sur un wrapper java pour XWiki qui
permet d'appeler les méthodes SOAP.

On en est donc à créer la liste : la question c'est comment on lui passe
(par exemple) le modérateur ?

Je vois qu'on peut passer le nom du template *déjà existant* mais ça
ne nous avance pas à grand chose dans notre cas d'usage... Il faudrait
que depuis notre appli tierce, on puisse créer la liste avec l'email du
modérateur en paramètre...


Merci a+


Le Thu, 19 Sep 2019 12:29:37 +0200,
David Verdin <adresse@cachée> a écrit :

Je déconseille cette approche.

Pour que la liste marche, il faut aussi positionner les alias, saisir
les données nécessaires en base de données, bref il y a tout un
boulot fait par Sympa.

La doc sur XML et succinte parce que tu mets exactement ce que tu
veux.

Les seules contraintes sont :

- un élément racine "<list/>",dans lesquels on met ce qu'on veut.

- c'est tout.

Exemple :

    <list>
        <owner>
            <email>adresse@cachée</email>
            <gecos>eul'francis</gecos>
        </owner>
        <owner>
            <email>adresse@cachée</email>
            <gecos>du calme joe</gecos>
        </owner>
        <name>maliste</name>
        <nawak>globuz</nawak>
    <list>

Et dans ton config.tt2 :

subject [% name %]
review [% nawak %]

[% FOREACH o = owner -%]
owner
  email [% o.email %]
  profile privileged
  [% IF o.gecos -%]
  gecos [% o.gecos %]
  [% END -%]

[% END -%]

etc...

En gros, ton XML contient les éléments que tu veux, tu les retrouves
sous forme de variable dans config.tt2.

Est-ce plus clair dit comme ça ?

Bonne journée !

David


On 19/09/2019 11:44, Frédéric Goudal wrote:
La doc sur le xml est un peu succinte, nous bossons sur des sources
ldap par exmple, je ne vois pas trop comment ça pourrait se coder.

La manière sale qui consiste à créer le répertoire avec les 4
fichiers apparament nécessaire me semble plus simple à mettre en
œuvre pour nous.

f.g.

Le 19 sept. 2019 à 08:42, Jean-Hugues Belpois
<adresse@cachée> a écrit :

Bonjour,

De notre coté on utilise aussi les familles de listes :

1) un script fabrique les XML en fonction du contenu d'APOGEE
(très similaire à l'exemple donné par Laurent) 2) On lance 2 fois
par semaine une instanciation sympa fonction de de fichier XML ce
qui crée les listes automatiquement On a 2 fichiers xml, un pour
les listes par code étapes, et un autre pour les listes par UE.

Ça marche plutôt bien.

Bonne journée à toutes et tous.

--
Jean-Hugues Belpois
Listmaster - DSI
Université de Brest

Le 18/09/2019 à 12:28, David Verdin a écrit :
Waw.. Là tu as l'embarras du choix...

Tu peux le faire en SOAP, en ligne de commande, ou bien en
utilisant les familles.

Je t'invite à aller faire un tour sur la doc :
https://sympa-community.github.io/manual/admin/list-creation.html

Bonne journée !

David

On 18/09/2019 12:18, Frédéric Goudal wrote:
Bonjour,

Est-ce qu’il est possible de créer des listes automatiquement
via un programme externe à sympa ?

L’idée étant pour nous tous les ans de créer par exemple la
liste des étudiants inscrits cette année là.

f.g.

--
"Mieux vaut viser la perfection et la rater que viser la médiocrité et
l'atteindre."
- Francis Blanche


Attachment: smime.p7s
Description: S/MIME Cryptographic Signature




Archives gérées par MHonArc 2.6.19+.

Haut de le page