IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zope Python Discussion :

Radio boutton dans un script python


Sujet :

Zope Python

  1. #1
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut Radio boutton dans un script python
    dans un script python"shemata.py" je veux cree des boutons radio qui contiennents les valeurs suivantes q1,q2,q3,q4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    StringField(
                name='allowQuarteur',
                accessor="isQuarteur",
                mutator="allowQuarteur",
                edit_accessor="editIsQuarteur",
                default=None,
                enforceVocabulary=1,
                vocabulary=DisplayList((
            ('None', 'Q1', 'label_Quarteur_q1'),
            ('1',    'Q2', 'label_Quarteur_q2'),
            ('0',    'Q3', 'label_Quarteur_q3'),
            ('2',    'Q4', 'label_Quarteur_q4'), 
            )),
             widget=SelectionWidget(
                    label="Allow Quarteur",
                    label_msgid="label_allow_quarteur",
                    description_msgid="help_allow_quarteur",
                    i18n_domain="plone"),
            ),
    Mais le resultat m'affiche une liste select box
    comment je peut corriger ce code???
    Merci d'avance

  2. #2
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    Dans ton widget, il faut que tu spécifies le format que tu utilises. Je crois que par défaut, si tu as moins de 4 éléments il fait des boutons radios et à partir de 4 éléments il fait une liste déroulante.

    Voilà la code modifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
             widget=SelectionWidget(
                    format="radio",
                    label="Allow Quarteur",
                    label_msgid="label_allow_quarteur",
                    description_msgid="help_allow_quarteur",
                    i18n_domain="plone"),
    voilà avec ça, ça doit marcher.

  3. #3
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut
    oui j'avais ajouter
    " format=radio", car c'est >4 mais j'ai le message d'erreur suivants:
    NameError: name 'allowQuarteur' is not defined
    esque il faut rajouter autre chose qlq part??

  4. #4
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    Je crois que c'est moi qui t'ai rajouté une erreur, en fait, il faut mettre le radio entre simple quote ou entre guillemets.

    J'édite mon message précédent pour corriger l'erreur.

  5. #5
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut
    et on plus j'ai toujours pas mes boutons radio

  6. #6
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    même en corrigeant avec les guillemets ?

  7. #7
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut
    oui meme avec les ""

  8. #8
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    C'est étonnant, voilà un bout de code que j'utilise et il m'affiche bien des boutons radio :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        StringField('department',
            vocabulary='getListDepartments',
            widget = SelectionWidget(
                format='radio',
                label = 'Department',
                label_msgid = 'label_department',
                i18n_domain = DOMAIN_NAME,
            ),
            searchable = 1,
        ),

  9. #9
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    T'as une autre erreur sur ton défault, il faut que tu le mettes aussi entre guillemets.


  10. #10
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut
    super ça marche.
    j'ai tous reecrit pas a pas.
    merci c'est gentille de m'avoir consacrer un peut de ton temps.

    A+

  11. #11
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    quand je met ça dans mon code, ça me met bien des bouton radio :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
        StringField(
            name="allowQuarteur",
            accessor="isQuarteur",
            mutator="allowQuarteur",
            edit_accessor="editIsQuarteur",
            default="None",
            enforceVocabulary=1,
            vocabulary=DisplayList((
                ('None', 'Q1', 'label_Quarteur_q1'),
                ('1',    'Q2', 'label_Quarteur_q2'),
                ('0',    'Q3', 'label_Quarteur_q3'),
                ('2',    'Q4', 'label_Quarteur_q4'), 
            )),
            widget=SelectionWidget(
               format="radio",
               label="Allow Quarteur",
               label_msgid="label_allow_quarteur",
               description_msgid="help_allow_quarteur",
               i18n_domain="plone"
            ),
        ),
    Je me demande, si tu n'avais pas des problèmes d'indentation de ton code. Python est assez sensible à cela.

    OK, c'est cool si ça marche.

  12. #12
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut
    une derniere question!!

    pour que je puise selectionner deux boutons en meme temps. il faut rajouter qoi dans le code presedent.

  13. #13
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    Le principe des boutons radio est de ne pouvoir cocher qu'une seule option. Donc si tu utilises ceci, tu ne pourras pas cocher 2 options.

    Pour faire ce que tu veux faire, il faut que tu utilises des checkbox. Pour cela, il va falloir que tu changes :
    - de widget et que tu utilises un MultiSelectionWidget,
    - de Field et que tu utilises un LinesField.

    ça te donnes ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
        LinesField(
            name="allowQuarteur",
            accessor="isQuarteur",
            mutator="allowQuarteur",
            edit_accessor="editIsQuarteur",
            default="None",
            enforceVocabulary=1,
            vocabulary=DisplayList((
                ('None', 'Q1', 'label_Quarteur_q1'),
                ('1',    'Q2', 'label_Quarteur_q2'),
                ('0',    'Q3', 'label_Quarteur_q3'),
                ('2',    'Q4', 'label_Quarteur_q4'), 
            )),
            widget=MultiSelectionWidget(
               format="checkbox",
               label="Allow Quarteur",
               label_msgid="label_allow_quarteur",
               description_msgid="help_allow_quarteur",
               i18n_domain="plone"
            ),
        ),
    Cette solution pose un problème si tu veux faire en sorte que les personnes ne puissent cocher exactement que deux cases car avec cette solution, ils pourront en cocher autant qu'ils voudront.

    Pour palier à ce problème, tu dois pouvoir utiliser des validators. Mais là, je n'en ai jamais fait donc je ne pourrais pas t'en dire plus. Par contre si tu trouves des trucs là dessus, ça peu m'intéresser, car je risque d'avoir besoin d'en utiliser dans peu de temps.

  14. #14
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut
    c'est ce que je pensai, tu a raison pas possible de faire une multi selection avec des radio bouton. mais je continu de chercher je te tiend encourant.
    sinon j'ai du effecer qlq ligne pour que ça marche chez moi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    LinesField(
            name="allowQuarteur",
            default="None",
            enforceVocabulary=1,
            vocabulary=DisplayList((
                ('None', 'Q1', 'label_Quarteur_q1'),
                ('1',    'Q2', 'label_Quarteur_q2'),
                ('0',    'Q3', 'label_Quarteur_q3'),
                ('2',    'Q4', 'label_Quarteur_q4'), 
            )),
            widget=MultiSelectionWidget(
               format="checkbox",
               label="Allow Quarteur",
               label_msgid="label_package_quarteur",
               description_msgid="help_package_quarteur",
               i18n_domain="plone"
            ),
    Merci a+

  15. #15
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut
    j'ai chercher toute la journnee sur comment utiliser les radio bouton pour une mutiselection,....j'ai décider d'utiliser les Checkboxes.au moin pour le moment.

  16. #16
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut a suivre
    j'ai un autre probleme:
    une fois ma chekbox est prete a l'emploie, on me demande autre chose:
    Construire un tableau qui contient les valeurs de la chekbox c'est a dire Q1, q2, q3, q4 et si une case est cocher alors la ligne correspondante devient ou se remplie en couleur (ex:bleu)
    pour le tableau c'est fait mais je n'arrive pas a ecrire ma condition, je sait que pour afficher mon tableau je doit avoir la condition suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <li tal:condition="here/getQuarteur"></li>
    apres le tableau c'est ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <table id="sortable" class="listing" summary="Affichage du contenu">
      <thead><tr>
    <th class="nosort">&nbsp;Q1&nbsp;</th>
    <th class="nosort">&nbsp;Q2&nbsp;</th>
    <th class="nosort">&nbsp;Q3&nbsp;</th>
    <th class="nosort">&nbsp;Q4&nbsp</th>
    </tr></thead>  <tbody>
           <tr class="odd"> 2005
               <span class="state-missing-value"></span>
                   <td>
               ????????
    	 </td>
    si vous pouvai m'aider, svp
    Merci d'avance

  17. #17
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    Normalement tu dois pouvoir mettre ta condition dans ta balise <table>. Je n'ai pas testé mais ça doit pouvoir marcher.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <table id="sortable" 
           class="listing" 
           summary="Affichage du contenu" 
           tal:condition="here/getQuarteur">

  18. #18
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut
    merci de m'avoir repondue.
    mais cette condition je l'ai ajouter, cà c'est bon mon soucie c'est :
    quand il remplie la colonne de q1 sachant que q1 a ete cocher au paravant. comment l'ecrire an code ?
    Merci

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/08/2010, 13h32
  2. comment chopper le nb de lignes d'une table dans un script python?
    Par Mydriaze dans le forum Général Python
    Réponses: 9
    Dernier message: 21/12/2007, 14h16
  3. Utilisation de C++ dans un script python.
    Par Ekinoks dans le forum Interfaçage autre langage
    Réponses: 8
    Dernier message: 18/01/2007, 19h03
  4. import dans les script python (objet zope)
    Par cronos6 dans le forum Zope
    Réponses: 5
    Dernier message: 10/09/2006, 14h47
  5. Réponses: 3
    Dernier message: 05/04/2005, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo