forked from YangTaeyoung/IBAS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
date_controller.py
78 lines (57 loc) · 2.34 KB
/
date_controller.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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import functools
from django.db.models import Q
from datetime import datetime, timedelta
from django.utils.dateformat import DateFormat
from DB.models import LectSchedule, UserSchedule
from user_controller import not_allowed
# 오늘을 출력 양식에 맞추어 반환
def today():
return str(DateFormat(datetime.now()).format("Y-m-d h:i:s"))
# 오늘 datetime 객체를 반환.
def today_datetime():
return datetime.now()
# day 이후 datetime객체를 반환
def today_after_day(day):
after = datetime.now() + timedelta(days=day)
return after
# day 이전 datetime 객체를 반환
def today_before_day(day):
before = datetime.now() - timedelta(days=day)
return before
# year 이후 datetime 객체를 반환.
def today_after_year(year):
year = year * 365
after = datetime.now() + timedelta(days=year)
return after
# 회원 모집 중인지 아닌지 판단하는 함수
# OUTPUT: bool (True: 모집중임)(False:모집중 아님)
def is_user_recruiting():
return len(
UserSchedule.objects.filter(Q(user_register_start__lte=today()) & Q(user_register_end__gte=today()))) != 0
# 면접이 진행중인지 판단하는 함수.
def is_interview_progress():
return len(
UserSchedule.objects.filter(Q(user_interview_start__lte=today()) & Q(user_interview_end__gte=today()))) != 0
# 부원 모집중인지 확인하는 데코레이터
def user_recruit_check(func):
@functools.wraps(func)
def wrapper(request, *args, **kwargs):
if is_user_recruiting():
return func(request, *args, **kwargs)
else:
return not_allowed(request, msg="회원가입이 불가능합니다. 부원 모집 기간이 아닙니다.")
return wrapper
# 강의 개설 모집 중인지 아닌지 판단하는 함수
# OUTPUT: bool (True: 모집중임)(False:모집중 아님)
def is_lect_recruiting():
return len(
LectSchedule.objects.filter(Q(lect_register_start__lte=today()) & Q(lect_register_end__gte=today()))) != 0
# 강의 개설 모집중인지 확인하는 데코레이터
def lect_recruit_check(func):
@functools.wraps(func)
def wrapper(request, *args, **kwargs):
if is_lect_recruiting():
return func(request, *args, **kwargs)
else:
return not_allowed(request, msg="강의 개설 허용 기간이 아닙니다.")
return wrapper