Skip to content

Commit f425436

Browse files
authored
String representation of IntervalSchedule model correctly translated using localized representation for period names. (#316)
1 parent 99483fb commit f425436

File tree

5 files changed

+305
-204
lines changed

5 files changed

+305
-204
lines changed

django_celery_beat/models.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,14 @@
3030
(MICROSECONDS, _('Microseconds')),
3131
)
3232

33+
SINGULAR_PERIODS = (
34+
(DAYS, _('Day')),
35+
(HOURS, _('Hour')),
36+
(MINUTES, _('Minute')),
37+
(SECONDS, _('Second')),
38+
(MICROSECONDS, _('Microsecond')),
39+
)
40+
3341
SOLAR_SCHEDULES = [(x, _(x)) for x in sorted(schedules.solar._all_events)]
3442

3543

@@ -153,9 +161,18 @@ def from_schedule(cls, schedule, period=SECONDS):
153161
return cls(every=every, period=period)
154162

155163
def __str__(self):
164+
readable_period = None
156165
if self.every == 1:
157-
return _('every {0.period_singular}').format(self)
158-
return _('every {0.every} {0.period}').format(self)
166+
for period, _readable_period in SINGULAR_PERIODS:
167+
if period == self.period:
168+
readable_period = _readable_period.lower()
169+
break
170+
return _('every {}').format(readable_period)
171+
for period, _readable_period in PERIOD_CHOICES:
172+
if period == self.period:
173+
readable_period = _readable_period.lower()
174+
break
175+
return _('every {} {}').format(self.every, readable_period)
159176

160177
@property
161178
def period_singular(self):

0 commit comments

Comments
 (0)