On 12 Mar 08:58, Pascal Obstetar wrote:
> Bonjour,
> 
> J'ai ces classes ci-dessous :
> 
> class evol_arbre(ModelSQL, ModelView):
>     u'Évolution d\'un arbre'
>     __name__ = 'cg.evol_arbre'
>     _rec_name = 'date'
> 
>     arbre = fields.Many2One(
>             'cg.arbre',
>             string=u'Arbre ID',
>             help=u'Arbre ID',
>         )
>     date = fields.Date(
>             string = u'Date',            
>             help=u'Date du constat',
>             required = True,
>         )        
> 
>     mecanique = fields.Selection(
>             _MECANIQUES, 
>             string = u'État mécanique',
>             help = u'État mécanique de l\'arbre',
>             required=False,
>         )
> 
> class arbre(ModelSQL, ModelView):
>     u'Arbres'
>     __name__ = 'cg.arbre'
>     _rec_name = 'code'
> 
>     diametre = fields.Float(
>             string = u'Diamètre',
>             help=u'Diamètre du tronc',
>             states=STATES,
>             depends=DEPENDS,
>         )
>     
>     evolution = fields.One2Many(
>             'cg.evol_arbre',
>             'arbre',                       
>             string=u'Évolutions',
>             help=u'Évolutions de l\'arbre',                       
>             states=STATES,
>             depends=DEPENDS,
>         )
> 
> je voudrais dans une vue arbre récupérer la date la plus récente de la 
> classe evol_arbre pour l'arbre considéré ? faut-il un champ Function ? Si 
> oui comment définir la fonction ?

Oui un champs Function avec un getter du genre:

    @classmethod
    def get_date(cls, arbres, name):
        …
        arbre_ids = [a.id for a in arbres]
        values = dict.fromkeys(arbre_ids)
        cursor.execute(*evol.select(evol.arbre, Max(evol.date),
                where=evol.arbre.in_(arbre_ids),
                group_by=evol.arbre))
        values.update(cursor.dictfetchall())
        return values

-- 
Cédric Krier - B2CK SPRL
Email/Jabber: cedric.kr...@b2ck.com
Tel: +32 472 54 46 59
Website: http://www.b2ck.com/

Attachment: pgpT6LL3Xcf8c.pgp
Description: PGP signature

Répondre à