Hi Adys,

I solved this problem, wrapping datetime.timedelta into custom TimeDelta.
Now everything works: http://gist.github.com/117307

Also altered microseconds in one month value so 12 * month are equal to 1 year.
This fixes "13m" bug (breaking into smaller parts incl. microseconds).
"31d" bug is still there.

On Sat, May 9, 2009 at 8:33 AM, Adys <[email protected]> wrote:
>
> Hi all
>
> I've been working on DurationFields this evening (ticket #2443)[1]. My
> implementation is working pretty well with a single TextInput. I'm
> storing the durations as Decimal in the database (since from what I've
> heard storing them as a 64-bit int is a no-go), in microseconds.
> When creating or modifying a DurationField, the user can either use
> ints/floats/float strings which will be interpreted as seconds, or use
> a datetime.timedelta object.
> In the admin (this will need some inline help or similar), users have
> a single text input, which lets them type durations as, for example
> "1w" for 1 week, "1h 30min", or even "1y 7m 6w 3d 18h 30min 23s 10ms
> 150mis" (in order of all accepted values). The values don't have to be
> in a specific order and a repeated one will be accounted both times
> (10d 1h 5d will be 15d 1h).
>
> What I need help with:
> - The admin output is the result of a str(timedelta), I haven't
> figured out how to use from_timedelta() on the value; so for now a
> DurationField will show "10 days, 0:00:00" when it should show "10d".
> - Moving from_timedelta, to_timedelta and values_in_milliseconds
> elsewhere. They are reusable for other similar fields and don't belong
> where I coded them. But I'm not familiar with Django, and I don't know
> where they should be. Somewhere in django.utils?
> - Any unnecessary code I haven't spotted. My patch is based on the
> previous DurationField implementation which dates from pre 1.0, I'm
> unsure if there's anything not necessary anymore.
> - Any comment on the code, the implementation, etc is appreciated.
> However I haven't sent other Django patches before, be nice :-)
>
> Thanks.
>
> Jerome
>
> [1] The patch: 
> http://code.djangoproject.com/attachment/ticket/2443/durationfield-new.diff
> >
>



-- 
Best regards, Yuri V. Baburov, ICQ# 99934676, Skype: yuri.baburov,
MSN: [email protected]

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to