-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgenerate_timeline.py
44 lines (36 loc) · 1.78 KB
/
generate_timeline.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from datetime import datetime
from dateutil.relativedelta import relativedelta
from constants import OPEN_ENROLLMENT, CLOSE_ENROLLMENT, SELECTION_PARTICIPANTS_INIT, \
SELECTION_PARTICIPANTS_FINISH, ANNOUNCEMENT_OF_PARTICIPANTS, CONFIRMATION_LIMIT, \
ANNOUNCEMENT_OF_PARTICIPANTS_ON_WAITING_LIST, CONFIRMATION_LIMIT_WAITING_LIST, \
INSTALLATION_AND_PRESENTATION, EVENT_DAY
def generate_timeline():
"""
Generate timeline for events based on specified days before the event day.
"""
events = {
'Inscripciones abiertas:': get_event_date(OPEN_ENROLLMENT),
'Inscripciones cerradas:': get_event_date(CLOSE_ENROLLMENT),
'Seleccion de participantes inicia:': get_event_date(SELECTION_PARTICIPANTS_INIT),
'Seleccion de participantes finaliza:': get_event_date(SELECTION_PARTICIPANTS_FINISH),
'Anuncio de participantes seleccionados:': get_event_date(ANNOUNCEMENT_OF_PARTICIPANTS),
'Limite de confirmacion:': get_event_date(CONFIRMATION_LIMIT),
'Anuncio participantes lista de espera:': get_event_date(ANNOUNCEMENT_OF_PARTICIPANTS_ON_WAITING_LIST),
'Limite de confirmacion lista de espera:': get_event_date(CONFIRMATION_LIMIT_WAITING_LIST),
'Reunion previa:': get_event_date(INSTALLATION_AND_PRESENTATION)
}
print_events(events)
def get_event_date(num_days):
"""
Calculate the event date based on the specified number of days before the event day.
"""
event_date = datetime.strptime(EVENT_DAY, "%d/%m/%Y")
return (event_date - relativedelta(days=num_days)).strftime('%d %B, %Y')
def print_events(events):
"""
Print events and their corresponding dates.
"""
for event, date in events.items():
print(f'{event} {date}\n')
if __name__ == "__main__":
generate_timeline()