|
8 | 8 | from django.utils.dateparse import parse_duration |
9 | 9 | from django.utils.duration import duration_string |
10 | 10 |
|
| 11 | +from .utils import human_duration_string |
| 12 | + |
| 13 | + |
11 | 14 | MICRO = timedelta(microseconds=1) |
12 | 15 | MILLIS = timedelta(milliseconds=1) |
13 | 16 | SECOND = timedelta(seconds=1) |
@@ -145,32 +148,5 @@ def prepare_value(self, value): |
145 | 148 | return duration_string(value) |
146 | 149 | elif value == timedelta(): |
147 | 150 | return "a moment" |
148 | | - builder = [] |
149 | | - # a list of tuples like ngettext (but with no subs for single) |
150 | | - |
151 | | - us = abs(value.microseconds) |
152 | | - seconds = abs(value.seconds) |
153 | | - days = abs(value.days) |
154 | | - builder.append(('a year', '%d years', days // 365)) |
155 | | - builder.append(('a month', '%d months', days % 365 // 30)) |
156 | | - builder.append(('a week', '%d weeks', days % 365 % 30 // 7)) |
157 | | - builder.append(('a day', '%d days', days % 365 % 30 % 7)) |
158 | | - builder.append(('an hour', '%d hours', seconds // 60 // 60)) |
159 | | - builder.append(('a minute', '%d minutes', seconds // 60 % 60)) |
160 | | - builder.append(('a second', '%d seconds', seconds % 60)) |
161 | | - builder.append(('a millisecond', '%d milliseconds', us // 1000)) |
162 | | - builder.append(('a microsecond', '%d microseconds', us % 1000)) |
163 | | - |
164 | | - legit = [] |
165 | | - for tup in builder: |
166 | | - if tup[2] == 0: |
167 | | - continue |
168 | | - elif tup[2] == 1: |
169 | | - legit.append(tup[0]) |
170 | | - else: |
171 | | - legit.append(tup[1] % tup[2]) |
172 | | - if len(legit) == 1: |
173 | | - return legit[0] |
174 | | - elif len(legit) == 2: |
175 | | - return legit[0] + " and " + legit[1] |
176 | | - return ", ".join(legit[:-1]) + ", and " + legit[-1] |
| 151 | + else: |
| 152 | + return human_duration_string(value) |
0 commit comments