Ich hab mir das gebastelt:
Code: Alles auswählen
# -*- coding: utf-8 -*-
import datetime
def build_choices(oldest, newest, reverse=False):
assert(oldest<newest)
time_range = range(oldest.year, newest.year+1)
roman_range = ["I", "II", "III", "IV"]
if reverse:
time_range.reverse()
roman_range.reverse()
choices = []
no = 0
for year in time_range:
for roman in roman_range:
no += 1
choices.append(
(no, "%s.%s" % (roman, year))
)
return choices
print build_choices(
datetime.date(2007, 1, 1), datetime.date(2008, 12, 31)
)
# Eigentlich nur von II.2008 bis III.2007
print build_choices(
datetime.date(2007, 7, 1), datetime.date(2008, 5, 1), reverse = True
)
Code: Alles auswählen
[(1, 'I.2007'), (2, 'II.2007'), (3, 'III.2007'), (4, 'IV.2007'), (5, 'I.2008'), (6, 'II.2008'), (7, 'III.2008'), (8, 'IV.2008')]
[(1, 'IV.2008'), (2, 'III.2008'), (3, 'II.2008'), (4, 'I.2008'), (5, 'IV.2007'), (6, 'III.2007'), (7, 'II.2007'), (8, 'I.2007')]
EDIT: Ziel ist es eigentlich eine Quartal-Auswahl in django's forms zu erstellen...