2011-11-24 63 views
2

我正在通過OpenERP網絡進行挖掘,以瞭解如何從中刪除日期的異常。例如,我想插入一個如12/12/1523的日期。使用當前功能,如果我輸入的日期小於1900,它將顯示錯誤消息。我用_calendar.py,format.py,validates.py來檢查它。但我沒有成功。如果任何人都可以幫助我通過這將是非常可觀的。如何從OpenERP中刪除日期異常?

+0

你嘗試搜索錯誤消息的源代碼,並與谷歌的文本替換?將消息文本添加到您的問題可能會有所幫助。 –

+0

是的,我做到了,但這並沒有幫助 – ScoRpion

回答

3

我發現的OpenERP的web兩個問題:

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年前都不能使用。

問谷歌先生關於「python strftime 1900」發現an issue有補丁和大量的討論。這聽起來像你有幾個選擇:

  1. 不要使用日期前1900
  2. 編輯日曆模塊來實現自己的格式化程序,而不是strftime()
  3. 升級到Python 3.2或3.3。 (有關每個版本中已修復的內容的詳細信息,請參閱問題報告。)
  4. 將修補程序應用於您自己的Python版本。