Changeset 115058 in spip-zone


Ignore:
Timestamp:
Apr 26, 2019, 10:03:48 PM (4 weeks ago)
Author:
maieul@…
Message:

Saisies évènements. Gestion des listes d'attentes. S'il n'y a plus de
place à un évènement, on affiche "liste d'attente". Un hidden masquée
est rempli automatiquement si on selectionne un évènement avec liste
d'attente, sur lequel on peut faire des afficher_si dans d'autres
champs.

Location:
_plugins_/agenda/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/agenda/trunk/lang/saisie_evenements_fr.php

    r113454 r115058  
    4040        'inscription_label' => 'Inscription',
    4141
     42        // L
     43        'liste_attente' => 'Liste d\'attente',
     44        'liste_attente_1' => 'Liste d\'attente (une inscription avant vous sur la liste)',
     45        'liste_attente_nb' => 'Liste d\'attente (@nb@ inscriptions avant vous sur la liste)',
     46        'liste_attente_label' => 'Gérer la liste d\'attente',
     47        'liste_attente_label_case' => 'Indiquer qu\'il y une liste d\'attente',
     48        'liste_attente_explication' => 'Si le nombre de place disponible est inférieur à un, indiquer qu\'il y a une liste une liste d\'attente, et, le cas échéant, combien de personnes sont sur liste d\'attente. <br />Par ailleurs, un champ masqué <champ>_liste_attente sera automatiquement mis à \'on\' si une personne sélectionne un évènement en liste d\'attente. Dans le cas d\'utilisation avec Formidable, ce champ ne sera pas posté, mais pourra être utilisé dans des test conditionnels d\'affichage de champ.',
    4249        // M
    4350        'masquer_heure_label_case' => 'Masquer l’heure',
  • _plugins_/agenda/trunk/paquet.xml

    r114580 r115058  
    22        prefix="agenda"
    33        categorie="date"
    4         version="3.29.0"
     4        version="3.30.0"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
  • _plugins_/agenda/trunk/saisies/evenements.html

    r115057 r115058  
    66}
    77)]
     8#SET{evenements_liste_attente,#LISTE}
    89<BOUCLE_evenements(EVENEMENTS)
    910        {par date_debut}
     
    2728        #SET{places_dispo,#PLACES|moins{#GET{inscrits}}}
    2829
     30        [(#ENV{liste_attente}|non)
     31                [(#GET{places_dispo}|<{0}|oui)
     32                        #SET{places_dispo,0}
     33                                #SET{places_dispo,0}
     34                ]
     35        ]
     36        [(#GET{places_dispo}|>={0}|oui)
     37                [(#SET{places_dispo_texte,#GET{places_dispo}|singulier_ou_pluriel{agenda:info_1_place,agenda:info_nb_places}|sinon{#ENV{liste_attente}|?{<:saisie_evenements:liste_attente:>,<:agenda:aucune_place:>}}})]
     38        ]
    2939        [(#GET{places_dispo}|<{0}|oui)
    30                 #SET{places_dispo,0}
     40                [(#SET{places_dispo_texte,#GET{places_dispo}|mult{-1}|singulier_ou_pluriel{saisie_evenements:liste_attente_1,saisie_evenements:liste_attente_nb}})]
     41        ]
     42        [(#GET{places_dispo}|<{1}|oui)
     43                #SET{evenements_liste_attente,#GET{evenements_liste_attente}|push{#ID_EVENEMENT}}
    3144        ]
    3245        [(#ENV{disable_complet}|=={on}|et{#GET{places_dispo}|<{1}}|oui)
     
    3447        ]
    3548        [(#ENV{places_dispo}|oui)
    36         [(#SET{places_dispo_texte,#GET{places_dispo}|singulier_ou_pluriel{agenda:info_1_place,agenda:info_nb_places}|sinon{<:agenda:aucune_place:>}})]
     49
     50
    3751        #SET{places_dispo_texte,#VAL{' - '}|concat{#GET{places_dispo_texte}}
    3852        ]
     
    5367#SET{description,#GET{description}|array_flip}
    5468#INCLURE{fond=saisies/#ENV{type_choix,radio},data=#GET{description},disable_choix=#GET{disable_choix},env}
     69
     70[(#SET{id_liste_attente,[(#ENV{id_saisie}|replace{@})]_liste_attente})]
     71<input type="hidden" id="#GET{id_liste_attente}" name="#ENV{nom}_liste_attente" />
     72        <script type="text/javascript">
     73        test_#GET{id_liste_attente} = function() {
     74                if ([[(#GET{evenements_liste_attente}|implode{','})]].includes(parseInt($("[name='#ENV{nom}']:checked").val()))) {
     75                        $('##GET{id_liste_attente}').val('on').trigger('change');
     76                } else {
     77                        $('##GET{id_liste_attente}').val('').trigger('change');
     78                }
     79        }
     80        $(function() {
     81                test_#GET{id_liste_attente}();
     82        });
     83        $("[name='#ENV{nom}']").change(function(){test_#GET{id_liste_attente}()});
     84        </script>
     85
     86
  • _plugins_/agenda/trunk/saisies/evenements.yaml

    r113447 r115058  
    5252          label_case: '<:saisie_evenements:places_dispo_label_case:>'
    5353          li_class: 'pleine_largeur'
     54      -
     55        saisie: 'case'
     56        options:
     57          nom: 'liste_attente'
     58          label: '<:saisie_evenements:liste_attente_label:>'
     59          label_case: '<:saisie_evenements:liste_attente_label_case:>'
     60          explication: '<:saisie_evenements:liste_attente_explication:>'
    5461      -
    5562        saisie: 'radio'
Note: See TracChangeset for help on using the changeset viewer.