2011-11-24 2 views
2

Я просматриваю веб-сайт OpenERP, чтобы узнать, как удалить исключение даты из него. например, я хочу вставить дату, например 12/12/1523. с текущей функциональностью он покажет мне сообщение об ошибке, если я укажу дату менее 1900. Я проверил его с помощью _calendar.py, format.py, validates.py. но мне это не удалось. Если кто-нибудь может помочь мне через это будет очень заметным.Как удалить исключение даты из OpenERP?

+0

Пробовали ли вы искать текст сообщения об ошибке в исходном коде и с Google? Добавление текста сообщения к вашему вопросу здесь может помочь. –

+0

Да, да, но это не помогает – ScoRpion

ответ

3

Я нашел две проблемы в OpenERP-сети:

1 - Календарь управления даты ограничен и не может быть ниже

01/01/1900 

2 - Есть ошибки проверки, полученные от openerp/i18n/format.py когда это пытается сэкономить

Точка 1, j avascript виджет может быть легко исправлена ​​в

openerp/static/calandar/calendar.js 

=> find: 

    param_default("range",[1900,2999]) 

=> and replace with: 

    param_default("range",[1,2999]) 

пункта 2, заменить в

openerp/i18n/format.py 

=> find the two occurances of: 

    return time.strftime(server_format, value) 

=> and replace with: 

    return mx.DateTime.Date(value[0],value[1],value[2],value[3],value[4],value[5]).strftime(server_format) 
0

Сообщение об ошибке я получаю при вводе даты в 1523 году это:

недопустимое значение даты и времени! Год должен быть больше 1899!

Если вы ищете для этого сообщения об ошибке в клиентском коде, вы увидите это в client/bin/widget/view/form_gtk/calendar.py:

try: 
    return date.strftime(DHM_FORMAT) 
except ValueError: 
    common.message(_('Invalid datetime value! Year must be greater than 1899 !')) 

Если вы посмотрите на the documentation for date.strftime(), вы увидите следующее:

Точный диапазон лет, за который работает strftime(), также варьируется в зависимости от платформы. Независимо от платформы, годы до 1900 года не могут быть использованы.

Спрашивающий г-н. Google о «python strftime 1900» находит an issue с патчем и большим количеством обсуждений. Похоже, у вас есть несколько вариантов:

  1. Не используйте даты до 1900.
  2. Отредактируйте календарном модуль для реализации собственной процедуры форматирования вместо strftime().
  3. Обновление до Python 3.2 или 3.3. (Подробную информацию о том, что исправлено в каждой версии, см. В отчете о проблемах).
  4. Примените патч к своей версии Python.
Смежные вопросы