Linux / / 2009. 8. 25. 11:13

[CentOS] Trac 0.12 RoadMap에서 Milestone 시간 저장 에러.

반응형

Trac 설치 후 사용법을 살펴 보던 중.

Milestone 저장이 되지 않는 것이었다.


"2009년 08월 25일" is an invalid date, or the date format is not known. Try "YYYY년 MM월 DD일" instead.


해당 에러 메시지가 나왔다.

Locale 도 맞고 날짜 형식도 내가 보기엔 맞다. 그런데 저장이 안되다니.

구글링을 열심히 해도 이런 에러 해결 방안이 눈에 보이지 않았다.

PythonOption 으로 TracLocale 을 주고 LC_TIME설정 하고 해도 되지 않았다.

Trac 이슈 에는 올라와 있었지만 해결 방안이 아주 예전 011월  해야지만 저장 되는 문제점 해결 방안만 있을뿐 그렇다한 답변이 없었다.

그래서 일단 무작정 에러 나는 부분을 찾았다.

parse_date 하는 부분에서 Locale 날짜 포맷과 맞지 않아서 계속 에러가 난것.

값을 직접 넣거나 time.strftime('%x') 해서 넣으면 들어간다.

그럼 파라미터 문제이지 않을까 생각을 했다.

그러나 다른 한글들은 잘 저장 된다.

날짜 포맷만 이상한 것일까...

소스를 보다 타이존을 인코딩 한게 있어 응용해서 넣었다.

/usr/lib/python2.4/site-pakages/Trac-0.12dev-py2.4.egg/trac/util/datefmt.py

216 줄 아래.
text = to_unicode(text).encode('utf', 'replace')


text 가 파라미터 값이다.
에러 메시지에서 "YYYY년 MM월 DD일" 문구를 만들기 위해 utf 로 인코딩 한것을 보고 비슷하게 따라해서 만들었다.

저장 성공!.

인코딩 값을 하드 코딩이 아닌 가지고 오기 위해 수정

encoding = locale.getlocale(locale.LC_TIME)[1]
text = to_unicode(text).encode(encoding, 'replace')



테스트 성공 후 . 완료 날짜.(시간까지) 테스트 하니.
이런 또 떡하니 에러 메시지가.

경고 : 완료된 날짜는 미래가 아닐지도 모릅니다.

이건 또 뭔가.
에러 나는 부분을 찾으니. 현재 시간보다 넘어온 값이 커서 생기는 에러 이다.(경고 메시지 번역이 참 이상하다)

테스트를 여러번 하니 내가 저장한 시간과 뿌려주는 시간도 다르다는 것을 알게 되었다.
어제 시간 때문에 건드리다가 생각난 Trac 페이지 상단에 있는 설정에 있는 시간/날짜 부분.

여기서 Asia/Seoul 을 선택했는데. 아래에 메시지가 써 있었다. 시스템 시간이 아니다.
저기서 가지고 오는 시간이 이상한거 같다. Trac 버그인가 ;
테스트 시 몇분 차이가 있었다.

그래서 기본설정으로 변경 후 테스트 하니 잘 된다.


ps. 며칠 삽질 했더니 김이 빠진다. ;






반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유