Problème dans une fonction searcher entre un attribut Date et DateTime

21 views
Skip to first unread message

Pascal Obstetar

unread,
Dec 26, 2016, 5:47:07 AM12/26/16
to tryton-fr
Bonjour,

J'ai les deux attributs suivants debut (datetime) et debutdate (date) :

    debut = fields.DateTime(
        string=u'Début (Date/Heure)',
        help=u'Début (Date/Heure)', )

    debutdate = fields.Function(
        fields.Date(string=u'Date', help=u'Début (Date)'),
        getter='_get_debutdate',
        searcher='search_debutdate', )

    def _get_debutdate(self, ids):
        u'Date debut'
        if self.debut:
            return self.debut.date()
        return None

    @classmethod
    def search_debutdate(cls, name, clause):
        return [('debutdate', ) + tuple(clause[1:])]


La fonction search_debutdate ne renvoie rien lorsque le filtre contient deux dates, qu'est-ce qui est faux ? Y-a-t-il un moyen particulier pour coder le renvoi de la date ?
@+

Cédric Krier

unread,
Dec 30, 2016, 10:10:03 AM12/30/16
to tryton-fr
Je pense que le problème est que comparer des dates avec des datetimes
ne donnent aucun résultat.
Il faut surement dans le searcher modifier les valeurs pour n'avoir que
des dates.

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

Pascal Obstetar

unread,
Dec 30, 2016, 10:21:35 AM12/30/16
to tryton-fr
C'est bien ce qui est fait non ? l'attribut 'debutdate' est bien une date et le tuple renvoie bien les dates du searcher qui sont au format date et pas datetime, où vois-tu un mélange date datetime si ce n'est dans le get, mais self.debut.date est bien une date ? 

Cédric Krier

unread,
Dec 30, 2016, 10:30:03 AM12/30/16
to tryton-fr
On 2016-12-30 07:21, Pascal Obstetar wrote:
> > @classmethod
> > def search_debutdate(cls, name, clause):
> > return [('debutdate', ) + tuple(clause[1:])]
> >
> >
> > La fonction search_debutdate ne renvoie rien lorsque le filtre contient
> > deux dates, qu'est-ce qui est faux ? Y-a-t-il un moyen particulier pour
> > coder le renvoi de la date ?
> > @+
> >
>
>
> C'est bien ce qui est fait non ? l'attribut 'debutdate' est bien une date
> et le tuple renvoie bien les dates du searcher qui sont au format date et
> pas datetime, où vois-tu un mélange date datetime si ce n'est dans le get,
> mais self.debut.date est bien une date ?

En effet, j'ai mal lu le code (j'ai présupposé que c'était fait de
manière logique).

Un searcher ne peut pas retourner une clause sur lui-même.


PS: ce serait quand même bien de répondre au bon message au lieu du
premier car ça fait de réponse sans contexte.

Pascal Obstetar

unread,
Dec 30, 2016, 11:51:27 AM12/30/16
to tryton-fr
Merci pour l'aide résolu avec :

def search_debutdate(cls, debut, clause):
        res = []
        value = clause[2]
        value = datetime(value.year, value.month, value.day)
        res.append(('debut', clause[1], value))
        return res



Le lundi 26 décembre 2016 11:47:07 UTC+1, Pascal Obstetar a écrit :
Reply all
Reply to author
Forward
0 new messages