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 :

Problème d'onglets avec produit


Sujet :

Zope Python

  1. #1
    Membre actif
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 479
    Points : 281
    Points
    281
    Par défaut Problème d'onglets avec produit
    Je suis en train de développer un produit et je me trouve confronté à un problème concernant les onglets qui apparaissent dans la ZMI quand j'ai instancié mon produit (nom de l'instance : Test).

    Voici le code qui gère les onglets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	manage_options=(
    		{'label':'Contents', 'action':'manage_main',
    		'help':('BannerAdManager','BannerDepository.stx')},
    		{'label':'View', 'action':''},
    		{'label':'Test', 'action':'test'},
    		{'label':'Show Advert Stats', 'action':'show_views',
    		'help':('BannerAdManager','BannerStats.stx')},
    		{'label': 'Properties', 'action': 'manage_propertiesForm',
    		'help':('BannerAdManager','BannerBepositoryProperties.stx')},
    		)+ Item.manage_options + RoleManager.manage_options
    Le problème se pose avec les onglets Contents et Properties.
    En cliquant dessus, d'autres onglets disparaissent ou apparaissent.
    De plus, en cliquant sur l'onglet Contents, j'ai les mêmes objets que dans le Root Folder et pourtant, le 'Folder at' indique bien que je suis dans l'instance /Test.

    Je n'arrive pas à trouver l'erreur.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 30
    Points
    30
    Par défaut
    Je me demande si ça ne vient pas d'un conflit entre les différents dictionnaires. Je pense que les onglets contents et properties sont déja déclarés dans Item.manage_options et RoleManager.manage_options. Faites plusieurs tests en supprimant Item.manage_options ou RoleManager.manage_options ou l'un des onglets de votre dictionnaire.

    pascal de oliveira
    RamaPlus

  3. #3
    Membre actif
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 479
    Points : 281
    Points
    281
    Par défaut
    C'est ce que j'ai essayé en supprimant l'un, l'autre puis les 2, mais même problème.

    Dans le Zope Developper's Guide, il est précisé que RoleManager concerne l'onglet Security et Item les onglets Undo et Ownership.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 30
    Points
    30
    Par défaut
    Avez-vous redéfini manage_main et manage_propertiesForm ou bien est-ce que ce sont des objets 'hérités' ? Si vous les avez redéfinis, pouvez-vous les montrer ?

    pascal

  5. #5
    Membre actif
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 479
    Points : 281
    Points
    281
    Par défaut
    Ce sont les objets hérités de OFS.ObjectManager

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    from OFS import ObjectManager
     
    ...
     
    class BannerDepository(Implicit, Persistent, RoleManager, Item):
     
    ...
    	manage_options=(
    		{'label':'Contents', 'action':'', 'help':('BannerAdManager','BannerDepository.stx')},
    		{'label':'View', 'action':''},
    		{'label':'Test', 'action':'test'},
    		{'label':'Show Advert Stats', 'action':'show_views','help':('BannerAdManager','BannerStats.stx')},
    		{'label': 'Properties', 'action': '','help':('BannerAdManager','BannerBepositoryProperties.stx')},
    		)+ Item.manage_options + RoleManager.manage_options
    Avec 'action' : '' pour Contents et Properties, il n'y a plus d'onglets qui apparaissent ou disparaissent.

    Cela peut-il provenir de la méthode qui ajoute l'instance ?

    En voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def manage_BannerDepository_add(self, id='', title='', REQUEST=None):
     
        """ Adds a BannerDepository to a folder. """
     
        newBannerDepository = BannerDepository(id)
        self._setObject(id, newBannerDepository)
        if REQUEST is not None:
    		return self.manage_main(self, REQUEST)

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par senacle
    Ce sont les objets hérités de OFS.ObjectManager
    Est-ce que votre objet est de type 'folderish' (héritant de ObjectManager) ? Je pense que c'est le cas puisque vous avez un onglet 'content', alors pourquoi ne pas utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    manage_options = (vos onglets) + ObjectManager.manage_options
    pascal de oliveira
    RamaPlus

  7. #7
    Membre actif
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 479
    Points : 281
    Points
    281
    Par défaut
    Je me suis trompé : manage_main est hérité de OFS.ObjectManager.ObjectManager.

    Mais même en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    manage_options = OFS.ObjectManager.ObjectManager.manage_options +(mes onglets)
    le problème reste toujours le même.

  8. #8
    Membre actif
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 479
    Points : 281
    Points
    281
    Par défaut
    J'ai trouvé :

    Lors de la déclaration de la classe, j'avais omis de mettre les paramètres dont la classe dérive :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class BannerDepository(Implicit, Persistent, RoleManager, Item)
    Après correction, j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class BannerDepository(Implicit, Persistent, RoleManager, Item, ObjectManager, PropertyManager)
    Comme ça, j'ai bien toujours les mêmes onglets quel que soit celui sur le quel je clique.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 30
    Points
    30
    Par défaut Simplification ...
    Citation Envoyé par senacle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class BannerDepository(Implicit, Persistent, RoleManager, Item, ObjectManager, PropertyManager)
    Suggestion : Pourquoi ne pas hériter de "folder" qui hérite des mêmes classes ?

    Bon courage pour la suite !

    pascal de oliveira
    RamaPlus

  10. #10
    Membre actif
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 479
    Points : 281
    Points
    281
    Par défaut
    Effectivement, c'est certainement plus court et plus propre.

    Je n'ai pas encore la connaissance suffisante pour savoir ce que contient chacun des modules de Zope.

    Donc à suivre...

    Merci.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 30
    Points
    30
    Par défaut
    Quelques trucs pour 'explorer' Zope :

    1. Ce site : http://ingo.fargonauten.de/epydoc/public/frames.html permet de bien voir qui hérite de quoi et quelques sont les méthodes et propriétés utilisables pour une classe donnée
    2. Utiliser le produit DocFinderTab : http://zopewiki.org/DocFinderTab qui ajoute un onglet "doc" dans la zmi permettant d'obtenir un certain nombre d'informations très utiles sur l'objet courant
    3. Ne pas hésiter à aller explorer les sources. Avec le temps, c'est devenu ma principale source d'informations.

    Bon courage,

    pascal de oliveira
    RamaPlus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Copie d'onglet avec image - problème mémoire (image croix rouge)
    Par doumet dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 22/04/2015, 16h32
  2. [WD16] Problème de gabarit avec les onglets
    Par Raphael1980 dans le forum WinDev
    Réponses: 3
    Dernier message: 08/07/2011, 09h49
  3. problème de highlight d'onglet avec la "top link bar"
    Par leon1983 dans le forum SharePoint
    Réponses: 7
    Dernier message: 10/07/2008, 15h32
  4. Problème d'onglet avec 4d
    Par dubidon dans le forum 4D
    Réponses: 3
    Dernier message: 17/12/2007, 09h18
  5. [débutant]petit problème sur formulaire avec onglets
    Par Christophe93250 dans le forum Access
    Réponses: 2
    Dernier message: 06/01/2006, 10h46

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