Skip to content. | Skip to navigation

Outil PloneMeeting (gestion des délibérations)
Sections
You are here: Home Support Forums Outil PloneMeeting (gestion des délibérations) Ajouter des métadonnées afin de pouvoir les exploiter.

Ajouter des métadonnées afin de pouvoir les exploiter.

Up to Outil PloneMeeting (gestion des délibérations)

Ajouter des métadonnées afin de pouvoir les exploiter.

Posted by Vincent Menou (AC Montigny-Le-Tilleul) at February 22. 2011
Nous souhaiterions pouvoir générer les métadonnées rapportant par exemple les dates de scéance souhaitée et dans laquelle le point est présenté :

Séance souhaitée:   07 janvier 2011 (08:30)
Séance dans laquelle ce point est présenté:   07 janvier 2011 (08:30)

Afin de pouvoir, ensuite, dans un dossier automatique (point ou séance)  faire apparaitre ce champ.
Par exemple, dans 'les points décidés', ce serai interressant de voir les séances proposées
et dans tous les points, les séances souhaitées.

Nous allons dans la ZMI, Portal Catalog, indexées ...  mais ensuite ... :)

Merci d'avance.

David, Vincent

Re: Ajouter des métadonnées afin de pouvoir les exploiter.

Posted by Gauthier Bastien (CommunesPlone) at February 22. 2011
Bonjour David et Vincent (qui envahissent le forum de questions ;)),

il faudrait stocker ces éléments sous forme de metadata.  En effet, la plupart des vues utilisent le portal_catalog, c'est pourquoi pour ne pas accéder à l'objet au cas où il manque une donnée (ce qui est le cas pour ces 2 dates pour l'instant), il faut les ajouter sous forme de metadata.  Dans Plone, si une metadata à le même nom que l'accessor (méthode qui permet d'accéder) d'une donnée (la date d'une séance), il sera automatiquement indexé.

Ici, les zones que tu souhaites afficher sont :
  • la date de la séance préférée.  Tu peux retrouver la séance préférée via la méthode "getPreferredMeeting" sur un point.  Sur cette base, tu peux alors retrouver la date de la séance (ou juste le titre de la séance qui contient la date...)
  • la date de la séance dans laquelle le point est présenté.  Tu as une méthode "getMeeting" qui te ramène la séance dans laquelle le point est présenté...

Le problème c'est qu'un index ne peut pas contenir un objet...  Donc, tu dois passer par une méthode intermédiaire (par exemple un script python du même nom que la metadata) qui lors de l'indexation ira chercher sur le context dudit objet la bonne valeur à indexer (la date).

Ensuite, lorsque la metadata est bien configurée, tu dois faire en sorte qu'elle puisse être affichée dans ton dossier automatique.  Concernant les dossiers automatiques (ou Collections en Plone3), tu as dans la configuration du site une section "Configuration des dossiers automatiques" (en Plone 2.5 et qui s'appelle "Collections" en Plone3) qui te permet de définir quelles metadata vont être affichables dans les dossiers automatiques (ou Collections en Plone3).  Il faut y ajouter tes metadata puis, dans la configuration de PloneMeeting, sur 'points décidés' par exemple, en passant par "modifier", définir les colonnes à afficher...

Dans un premier temps, créer les 2 metadata (pas du nom de l'accessor puisque tu ne peux pas, mais du nom du script intermédiaire qui appelle l'accessor)...

Bien à toi,

Gauthier Bastien, AC Sambreville

Re: Ajouter des métadonnées afin de pouvoir les exploiter.

Posted by Vincent Menou (AC Montigny-Le-Tilleul) at February 23. 2011
Bonjour Gauthier,

Dans un premier temps, créer les 2 metadata (pas du nom de l'accessor puisque tu ne peux pas, mais du nom du script intermédiaire qui appelle l'accessor)...

Bon, déjà là ... je suis perdu ! :)
Je ne sais pas quoi créer ou ?

Par contre, pour la suite :

Ensuite, lorsque la metadata est bien configurée, tu dois faire en sorte qu'elle puisse être affichée dans ton dossier automatique.  Concernant les dossiers automatiques (ou Collections en Plone3), tu as dans la configuration du site une section "Configuration des dossiers automatiques" (en Plone 2.5 et qui s'appelle "Collections" en Plone3) qui te permet de définir quelles metadata vont être affichables dans les dossiers automatiques (ou Collections en Plone3).  Il faut y ajouter tes metadata puis, dans la configuration de PloneMeeting, sur 'points décidés' par exemple, en passant par "modifier", définir les colonnes à afficher...


J'avais déjà cherché de ce côté là, donc, cela m'inquiêtes moins ... :)

Re: Ajouter des métadonnées afin de pouvoir les exploiter.

Posted by Gauthier Bastien (CommunesPlone) at February 25. 2011
Dans portal_catalog-->metadata, tu dois créer 2 metadata que tu pourras réutiliser dans tes dossiers automatiques (appelés Collections dans Plone3+).  Comment est ce que çà se passe lorsqu'un élément est indexé?  Il appelle sur l'objet tous les indexes et metadatas en tant que méthode sur celui-ci.  Par exemple, tu as un index "created", donc, il va appeler "object.created()", si çà ramène qqch il l'index, sinon il met une valeur vide.  Donc, lorsque tu as ajouté les metadatas (par exemple dateSouhaitee et dateSeance), c'est bien mais en appelant ces méthodes là sur l'objet, çà ne va pas faire grand chose.  Par acquisition, si un script à ce nom là, lorsque portal_catalog va faire object.dateSouhaitee(), il ne trouvera pas la méthode sur l'objet mais il trouveras le script que tu peux ajouter par exemple dans portal_skins/custom.  Mais attention, comme je te disais, il va appeler cette méthode sur tous les objets du site, donc, dans le script, tu dois tester si tu es bien sur un élément de type "MeetingItem", c'est-à-dire un point.  Si c'est le cas, alors le script va chercher la bonne donnée sur l'objet.  Si ce n'est pas le cas, alors il ne faut rien faire...

Voilà, une piste en plus ;)

Bien à toi,

Gauthier Bastien, AC Sambreville

Re: Ajouter des métadonnées afin de pouvoir les exploiter.

Posted by Vincent Menou (AC Montigny-Le-Tilleul) at March 01. 2011

Donc, dans portal_catalog, onglet metadata, on créé :

 

getDatePreferredMeeting qui va appeler :

object.getDatePreferredMeeting()

 

et

 

getDateMeeting qui va appeler :

object.getDateMeeting()

 

Dans un premier temps, je teste sur la séance préférée :

Dans portal_skin/custom  , je créé : getDatePreferredMeeting --> Add Script (Python)

 

if context.Type == 'MeetingItemCollege':

    if context.getPreferredMeeting:

        return context.getPreferredMeeting.getDate,

 

Résultat : Syntax Error

On a essayé beaucoup de variantes :)


J’ai essayé plus simple …

Car il existe :
getPreferredMeeting (index type : FieldIndex)
et
getDate (index type : FieldIndex)
dans indexes et qui renvoyent déjà des valeurs.

Avec getPreferredMeeting, ensuite, dans

Paramètres des dossiers automatiques / métadonnées des collections / tous les champs

Cocher getPreferredMeeting lui donner un nom : Date de collège souhaitée

Enregistrer

 

Puis dans la configuration plonemeeting/collège/interface utilisateur, sur ‘mes points’ par exemple

Modifier

Ajouter 'date de collège souhaitée'

 

Cela fonctionne, mais cela renvoi : b6dc617c9b2eb48c01327d26d9af6487

L'id de la séance souhaitée, mais pas la date ...

 

Re: Ajouter des métadonnées afin de pouvoir les exploiter.

Posted by Gauthier Bastien (CommunesPlone) at March 03. 2011
Attention de ne pas modifier d'index existants, ils servent ;)

Voici ce que je te conseille :

Crée 2 metadata ("preferredMeetingMetadata" et "meetingDateMetadata" par exemple, avec ces noms là, tu es sur que çà ne pose pas de problème d'attributs déjà existants sur les points ou séances), ensuite, crée 2 scripts ayant ces noms.

Dans "preferredMeetingMetadata", on teste non pas sur le portal_type (du type MeetingItemCollege, MeetingItemCouncil, ...) mais sur le meta_type qui lui ne varie pas.  On va alors chercher la séance préférée si elle existe.  Parfois, la valeur "pas de séance préférée" a été sélectionnée et on a alors la valeur "whatever".  Ensuite, comme ce n'est pas la séance qui est derrière getPreferredMeeting mais son UID (identifiant unique à travers le site), on doit retrouver l'object représentant la séance dans l'uid_catalog et alors retourner la date de cet object (date de séance) :

if context.meta_type == 'MeetingItem':
    preferred = context.getPreferredMeeting()
    if preferred not in ['', 'whatever',]:
        brains = context.uid_catalog(UID=preferred)
        if brains:
            brain = brains[0]
            return brain.getObject().getDate()


Et dans meetingDateMetadata, c'est un peu plus simple puisque le point a une méthode getMeeting qui ramène cette fois le vrai object "Meeting" dans lequel le point est présenté (s'il est présenté à une séance... on teste celà avec "hasMeeting";), voici  :

if context.meta_type == 'MeetingItem':
    if context.hasMeeting():
        return context.getMeeting().getDate()


Et voilà, en réindexant le portal_catalog, çà devrait alors fonctionner...  Sauf si je me suis planté ;)  N'hésite pas à tester et à confirmer que çà fonctionne.  Evidemment, idéalement, tout ceci devrait se trouver dans un produit python présent sur le FileSystem...

Bien à toi,

Gauthier Bastien, AC Sambreville

Re: Ajouter des métadonnées afin de pouvoir les exploiter.

Posted by Vincent Menou (AC Montigny-Le-Tilleul) at March 03. 2011
Merci Gauthier,

Je vais préparer les scripts, mais pas créer les métadatas pour l'instant,
nous avons un collège demain et tout le monde s'affaire sur l'instance :)

Je te tiens au courant.
Bonne journée.

Re: Ajouter des métadonnées afin de pouvoir les exploiter.

Posted by Vincent Menou (AC Montigny-Le-Tilleul) at August 30. 2011
Bonjour Gauthier,

Je teste donc sur la version 2.01 toute neuve.

http://montigny-app2.communesplone.be

J'ai tout bien suivi, mais il doit manquer quelque chose, car je ne vois pas mes deux critères dans les champs de la vue personnalisée lorsque je veux les ajouter à 'mes points' par exemple...

http://montigny-app2.communesplone.be/portal_plonemeeting/meeting-config-college/topics/searchmyitems/edit

Je sèche :)
Bonne journée.

Re: Ajouter des métadonnées afin de pouvoir les exploiter.

Posted by Gauthier Bastien (CommunesPlone) at September 01. 2011
Bonjour Vincent,

le trunk a été récemment adapté pour permettre de sélectionner dans les tableaux présentant des points, les colonnes "séance souhaitée" et "séance" (représentant la séance à laquelle le point est présenté).  Tu peux tester en interne (je pense que tu as une instance de test en interne?) car malheureusement cette fonctionnalité n'est pas encore disponible dans la version que tu utilises en ligne.  Ce sera le cas prochainement (on doit encore valider le passage à cette dernière version).

Bien à toi,

Gauthier Bastien, AC Sambreville

Re: Ajouter des métadonnées afin de pouvoir les exploiter.

Posted by Vincent Menou (AC Montigny-Le-Tilleul) at September 07. 2011
Ok, merci Gauthier, on va d'abord passer àla 2.01, puis, quand elle sera validée, la 2.07.
bonne journée
Powered by Ploneboard
Document Actions