Skip to content

Commit 3e0200c

Browse files
committed
Přidání času do modelu
1 parent 797cc57 commit 3e0200c

2 files changed

Lines changed: 34 additions & 2 deletions

File tree

naucse/models.py

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from collections import OrderedDict
22
import copy
3+
import datetime
34

45
import jinja2
56

@@ -279,10 +280,11 @@ def merge_dict(base, patch):
279280

280281
class Session(Model):
281282
"""An ordered collection of materials"""
282-
def __init__(self, root, path, base_course, info, index):
283+
def __init__(self, root, path, base_course, info, index, course=None):
283284
super().__init__(root, path)
284285
base_name = info.get('base')
285286
self.index = index
287+
self.course = course
286288
if base_name is None:
287289
self.info = info
288290
else:
@@ -299,6 +301,33 @@ def __str__(self):
299301
slug = DataProperty(info)
300302
date = DataProperty(info, default=None)
301303

304+
@reify
305+
def start(self):
306+
if self.date != None and self.course != None:
307+
default_time = self.course.info.get('default_time')
308+
if default_time != None:
309+
start_time = default_time['start']
310+
hour, minute = start_time.split(':')
311+
hour = int(hour)
312+
minute = int(minute)
313+
start_time = datetime.time(hour, minute)
314+
return datetime.datetime.combine(self.date, start_time)
315+
return None
316+
317+
@reify
318+
def end(self):
319+
if self.date != None and self.course != None:
320+
default_time = self.course.info.get('default_time')
321+
if default_time != None:
322+
end_time = default_time['end']
323+
hour, minute = end_time.split(':')
324+
hour = int(hour)
325+
minute = int(minute)
326+
end_time = datetime.time(hour, minute)
327+
return datetime.datetime.combine(self.date, end_time)
328+
return None
329+
330+
302331
@reify
303332
def materials(self):
304333
materials = [material(self.root, self.path, s)
@@ -337,7 +366,7 @@ def _get_sessions(course, plan):
337366
result = OrderedDict()
338367
for index, sess_info in enumerate(plan):
339368
session = Session(course.root, course.path, course.base_course,
340-
sess_info, index=index)
369+
sess_info, index=index, course=course)
341370
result[session.slug] = session
342371

343372
sessions = list(result.values())

runs/2018/pyladies-brno-jaro/info.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
title: Začátečnický kurz PyLadies
22
subtitle: Brno - jaro 2018 - pondělí
33
time: 18:00–20:00
4+
default_time:
5+
start: '18:00'
6+
end: '20:00'
47
place: Experis, BC Titanuim, Nové sady 996/25
58
description: Naučte se Python vážně od začátku. Žádné předchozí znalosti nejsou potřeba.
69
long_description: |

0 commit comments

Comments
 (0)