03-05-2013, 15:35
Les Activités utilisent des Relations entre elles et leurs participants. La classe Activity possède une méthode get_participant_relations() qui permet d'obtenir ces relations en particuliers ; rien de spécifique aux Activités la dedans, vous pourriez obtenir ces Relations avec la bonne requête sur la table des relations ; comme obtenir les participants est quelque chose qui revient plusieurs fois dans le code cette méthode facilite juste la vie.
Les participants seront alors obtenus en accédant à l'objet de la relation (par opposition au sujet, l'Activité dans le cas présent) par le bais de l'attribut object_entity (de type CremeEntity), et d'appeler sur cette entité la méthode get_real_entity() pour obtenir l'entité de classe finale correspondante ; il s'agira bien d'un Contact car ce type de relation (soit 'a pour participant') est toujours entre une Activité et un Contact.
Ce qui donnera quelque chose comme ça:
Ça peut paraître complexe mais les concepts d'Entité et Relations sont au coeur de Creme, et bien comprendre comment ça marche est important.
Pour les soit disant variables other_participants et participating_users, vous confondez je pense avec le formulaire des Activités (et donc 'variables' n'a en fait aucun sens ici) ; regardez son fonctionnement et vous verrez que ces 2 champs servent bien à construire des relations au final.
Les participants seront alors obtenus en accédant à l'objet de la relation (par opposition au sujet, l'Activité dans le cas présent) par le bais de l'attribut object_entity (de type CremeEntity), et d'appeler sur cette entité la méthode get_real_entity() pour obtenir l'entité de classe finale correspondante ; il s'agira bien d'un Contact car ce type de relation (soit 'a pour participant') est toujours entre une Activité et un Contact.
Ce qui donnera quelque chose comme ça:
Code :
for rel in my_activity.get_participant_relations():
print 'Participe:', rel.object_entity.get_real_entity()
Ça peut paraître complexe mais les concepts d'Entité et Relations sont au coeur de Creme, et bien comprendre comment ça marche est important.
Pour les soit disant variables other_participants et participating_users, vous confondez je pense avec le formulaire des Activités (et donc 'variables' n'a en fait aucun sens ici) ; regardez son fonctionnement et vous verrez que ces 2 champs servent bien à construire des relations au final.