opencloset / volunteer

Web for opencloset volunteers
0 stars 0 forks source link

공휴일 및 일요일 신청제한 #19

Closed aanoaa closed 8 years ago

aanoaa commented 9 years ago

일요일과 공휴일에 봉사활동 신청이 안되도록 해야합니다.

aanoaa commented 9 years ago

https://bootstrap-datepicker.readthedocs.org/en/latest/options.html#datesdisabled

공휴일을 전부 수집해서 위 옵션의 값으로 주면 될 것 같습니다. 문제는 서버쪽에서도 블락 해줘야 하는데, 가볍게 앞쪽에서만 막고 이상한 데이터가 들어오면 그때 막는 것도 좋을 것 같습니다.

aanoaa commented 9 years ago

공휴일에 관한 데이터를 손안대고 코를 풀어야 하는데,

https://www.google.com/calendar/embed?src=ko.south_korea%23holiday%40group.v.calendar.google.com&ctz=Asia/Seoul

같은 것이 있습니다만 완전하지 않습니다. 어버이날 이나 식목일 등도 포함되어 있기 때문인데, 더 찾아보고 완전한게 있다면 google api 를 활용해서 해당 달력의 event 에 대한 데이터를 가지고 와서 선택할 수 없도록 하면 되겠습니다.

aanoaa commented 9 years ago

혹은 ics 파일이라고 달력 관련된 파일 같은데 1년치 공휴일이 기록되어 있는 파일들이 있습니다. 이를 가지고 활용할 수 있지 않을까 합니다. 매년 파일만 갱신해주면 계속 해서 쓸 수 있지 않을까 합니다.

aanoaa commented 9 years ago

https://www.google.com/calendar/ical/ko.south_korea%23holiday%40group.v.calendar.google.com/public/basic.ics

대한민국 공휴일 구글캘린더의 ics 파일 주소입니다.

aanoaa commented 9 years ago

올해의 휴일을 ics 파일을 기반으로 뽑아봤습니다. 식목일, 학부모날 같은게 껴있기는 하지만 이런건 걸러주면 될 것 같습니다. 1년짜리 cron 하나 맹글고 스크립트로 만들도록 하는 것도 방법입니다. 매년 직접 갱신해주던지..

$ perl a.pl 
[2015-01-01] 신정(新正
[2015-02-18] 설날
[2015-02-19] 설날
[2015-02-20] 설날
[2015-03-01] 3.1절(三一節)
[2015-04-05] 식목일
[2015-05-05] 어린이날
[2015-05-08] 학부모날
[2015-05-25] 석가탄신일(釋迦誕辰日)
[2015-06-06] 현충일(顯忠日)
[2015-07-17] 제헌절(制憲節)
[2015-08-14] 광복절(光復節)
[2015-08-15] 광복절(光復節)
[2015-09-26] 추석(秋夕)
[2015-09-27] 추석(秋夕)
[2015-09-28] 추석(秋夕)
[2015-09-29] 추석(秋夕)
[2015-10-01] 국군 의 날
[2015-10-03] 개천절(開天節)
[2015-10-09] 한글날
[2015-12-24] 크리스마스 이브
[2015-12-25] 크리스마스 주
[2015-12-31] 섣달 그믐날
aanoaa commented 9 years ago
$ ./script/generate-holiday-as-coffee-code.pl ics/2015-south-korea-holiday.ics 
Edit file public/assets/coffee/work-add.coffee
# [2015-01-01] 신정(新正
# [2015-02-18] 설날
# [2015-02-19] 설날
# [2015-02-20] 설날
# [2015-03-01] 3.1절(三一節)
# [2015-04-05] 식목일
# [2015-05-05] 어린이날
# [2015-05-08] 학부모날
# [2015-05-25] 석가탄신일(釋迦誕辰日)
# [2015-06-06] 현충일(顯忠日)
# [2015-07-17] 제헌절(制憲節)
# [2015-08-14] 광복절(光復節)
# [2015-08-15] 광복절(光復節)
# [2015-09-26] 추석(秋夕)
# [2015-09-27] 추석(秋夕)
# [2015-09-28] 추석(秋夕)
# [2015-09-29] 추석(秋夕)
# [2015-10-01] 국군 의 날
# [2015-10-03] 개천절(開天節)
# [2015-10-09] 한글날
# [2015-12-24] 크리스마스 이브
# [2015-12-25] 크리스마스 주
# [2015-12-31] 섣달 그믐날
holidays = ['2015-01-01','2015-02-18','2015-02-19','2015-02-20','2015-03-01','2015-04-05','2015-05-05','2015-05-08','2015-05-25','2015-06-06','2015-07-17','2015-08-14','2015-08-15','2015-09-26','2015-09-27','2015-09-28','2015-09-29','2015-10-01','2015-10-03','2015-10-09','2015-12-24','2015-12-25','2015-12-31']

이걸 적절하게 수정해서 public/assets/coffee/work-add.coffee 파일에 붙여넣기 하면 될 것 같습니다.

aanoaa commented 9 years ago

https://raw.githubusercontent.com/opencloset/volunteer/develop/Changes

를 확인해보시면 매 버전마다 차이점을 알 수 있습니다.

aanoaa commented 8 years ago

스크립트를 만들어서 크론으로 돌리든, 먼훗날까지 갱신해주든 자동화해야합니다. 곧잇으면 2016 년이니까 대비를 해야 합니다.

aanoaa commented 8 years ago

위의 파일로 공휴일을 구하면, 공휴일이 아닌데 끼어 있는 것들이 있습니다.

# [2016-04-05] 식목일
# [2016-05-08] 학부모날
# [2016-10-01] 국군 의 날
# [2016-12-24] 크리스마스 이브
# [2016-12-31] 섣달 그믐날

완전 자동화 하려면 해당하는 날짜에 대한 예외처리를 해주어야 하겠습니다.

aanoaa commented 8 years ago

Date::Holidays 포맷을 따르는 것도 좋을 것 같습니다. 하지만 우리가 필요로 하는 것은 기간 사이의 근무일 수 이고 연도별로 휴일을 누적해서 입력할 수 있으면 좋을 것 같습니다.

aanoaa commented 8 years ago

일단 2016년도의 공휴일에 신청을 할 수 없도록 배포해야 합니다.

aanoaa commented 8 years ago

https://github.com/opencloset/opencloset/issues/623

에서도 진행중입니다. 활용될 여지가 있습니다.

aanoaa commented 8 years ago
$ cat public/misc/extra-holidays.ini 
[2016]
0210 = 설날대체휴일

활용하기 좀 더 편하게 수정하였습니다. 대체휴일이나 선거일 처럼 예측하기 어려운 공휴일은 파일로 따로 관리하도록했습니다.

매년 휴일을 따로 갱신해주지 않아도 됩니다.

배포하기전에

$ cpanm --installdeps .
$ grunt

를 해주어야 합니다.