Je viens de re-parcourir
le code et je pense que je t'ai fait une fausse joie...
Au moment où on charge un scénario, on ne dispose pas d'objet
liste (justement parce que ce chargement se produit pendant qu'on
construit de tels objets).
Par conséquent, on ne peut pas savoir si la liste appartient ou
non à une famille.
Pour réussir à utiliser une scénario spécifique à une famille, il
faut que je change la manière dont on charge les configs de
listes, ce qui semble un peut trop dangereux pour être introduit
dans une version stable.
Je dois approfondir pour savoir comment m'y prendre et savoir si
ça peut entrer dans la stable ou la prochaine instable.
Je vous tient au courant. En tout état de cause, cela ne sera
certainement pas dans la 6.1.18.
Bon week-end à tous,
David
Le 22/11/13 15:02, François Périchon a
écrit :
adresse@cachée">On
11/05/2013 05:44 PM, David Verdin wrote:
Bonjour,
Je sais que ça fait longtemps...
Bonjour,
Je ne vais pas m'en plaindre, ça fait aussi très longtemps...
Le 24/09/13 11:16, François Périchon a écrit :
Bonjour,
J'aimerais pouvoir utiliser des scénarios dédiés à une famille
sans
que ceux-ci ne polluent la liste des scénarios génériques (la
liste de
scénarios que l'on trouve dans l'interface web de
configuration des
listes).
Pour obtenir cela, je copie manuellement le scénario dans
chaque
directory de liste, ce qui peut parfois se révéler assez
fastidieux.
Y-a-t-il un moyen plus pratique/automatique d'obtenir ce que
je souhaite?
Voui, si tu es prêt à appliquer ce patch (qui, s'il te donne
satisfaction, finira dans la prochaine 6.1) :
Donc, j'ai appliqué le patch sur mon List.pm, mais je n'arrive pas
à le faire fonctionner.
Voici ce que j'ai fait:
Création d'une famille de test avec "send test" dans le config.tt2
et un scenario send.test dans /etc/sympa/families/test/scenari/
sympa.pl --instantiate_family=test
--input_file=/etc/sympa/families/test/test-full.xml
err Scenario::new() Unable to find scenario file 'send.test',
please report to listmaster
Quand je me connecte sur la page d'admin wwsympa, j'ai un scenario
vide qui est sélectionné et le scenario send.test n'apparaît pas
dasn la liste déroulante.
Des idées sur ce que j'ai pu ne pas faire correctement?
Cordialement,
Index: src/lib/List.pm
===================================================================
--- src/lib/List.pm (révision 9950)
+++ src/lib/List.pm (copie de travail)
@@ -7773,13 +7773,25 @@
my $directory = "$self->{'dir'}";
my %list_of_scenario;
my %skip_scenario;
-
- foreach my $dir (
- "$directory/scenari",
- "$Conf::Conf{'etc'}/$robot/scenari",
- "$Conf::Conf{'etc'}/scenari",
- Sympa::Constants::DEFAULTDIR . '/scenari'
- ) {
+ my @list_of_scenario_dir;
+ if (defined $self->{'admin'}{'family_name'} ) {
+ @list_of_scenario_dir = (
+ "$directory/scenari",
+
"$Conf::Conf{'etc'}/$robot/families/$self->{'admin'}{'family_name'}/scenari",
+
"$Conf::Conf{'etc'}/families/$self->{'admin'}{'family_name'}/scenari",
+ "$Conf::Conf{'etc'}/$robot/scenari",
+ "$Conf::Conf{'etc'}/scenari",
+ Sympa::Constants::DEFAULTDIR . '/scenari'
+ );
+ }else{
+ @list_of_scenario_dir = (
+ "$directory/scenari",
+ "$Conf::Conf{'etc'}/$robot/scenari",
+ "$Conf::Conf{'etc'}/scenari",
+ Sympa::Constants::DEFAULTDIR . '/scenari'
+ );
+ }
+ foreach my $dir (@list_of_scenario_dir) {
next unless (-d $dir);
my $scenario_regexp = &tools::get_regexp('scenario');
Une petite explication tout de même. Par défaut, on cherche les
scénarios dans les répertoires suivants (dans l'ordre) :
1. répertoire de configuration de la liste
2. répertoire de configuration de l'hôte virtuel
3. répertoire de configuration du serveur
4. répertoire des scénarios par défaut de Sympa.
Avec le patch, cet ordre devient :
1. répertoire de configuration de la liste
2. répertoire de la famille de liste dans l'hôte virtuel
3. répertoire de la famille de liste sans hôte virtuel
4. répertoire de configuration de l'hôte virtuel
5. répertoire de configuration du serveur (sans hôte virtuel)
6. répertoire des scénarios par défaut de Sympa.
On a donc la précédence suivante : liste > famille > hôte
virtuel > install.
Cordialement,
David Verdin
Cordialement,
--
A bug in Sympa? Quick! To the bug tracker!
<https://sourcesup.renater.fr/tracker/?group_id=23>
RENATER logo
*David Verdin*
Études et projets applicatifs
Tél : +33 2 23 23 69 71
Fax : +33 2 23 23 71 21
www.renater.fr <http;//www.renater.fr>
RENATER
263 Avenue du Gal Leclerc
35042 Rennes Cedex
--
A bug in Sympa? Quick! To
the bug tracker!
|
David Verdin
Études et projets
applicatifs
|
Tél : +33 2 23 23 69 71
Fax : +33 2 23 23 71 21
www.renater.fr
|
RENATER
263 Avenue du Gal Leclerc
35042 Rennes Cedex
|
|