在odoo中扩展年份范围
Extend year range in odoo
默认情况下,odoo (openerp 8.0) fields.date 组合框仅显示当前年份 +/-10 年范围内的年份选择。我们如何扩展它?
按照这种方式我只是尝试从我的角度做这样的事情
from openerp.osv import fields, osv
from openerp import tools
from dateutil.relativedelta import relativedelta
import datetime
class myclass_nextyear(osv.Model):
_name='myclass.nextyear'
def str_to_datetime(strdate):
return datetime.datetime.strptime(strdate, tools.DEFAULT_SERVER_DATE_FORMAT)
def compute_next_year_date(self, strdate):
oneyear = datetime.timedelta(days=365)
curdate = str_to_datetime(strdate)
return datetime.datetime.strftime(curdate + oneyear, tools.DEFAULT_SERVER_DATE_FORMAT)
_columns = {
'start_date': fields.date('Contract Start Date', help='Date when the coverage of the contract begins'),
'expiration_date': fields.date('Contract Expiration Date', help='Date when the coverage of the contract expirates (by default, one year after begin date)'),
}
_defaults = {
'start_date': fields.date.context_today,
'expiration_date': lambda self, cr, uid, ctx: self.compute_next_year_date(fields.date.context_today(self, cr, uid, context=ctx)),
}
开始日期以上默认为当前日期,到期日期作为功能字段来自
compute_next_year_date函数
希望这对您有所帮助..! :)
最终来源在 odoo/odoo/addons/web/static/lib/jquery.ui/js/jquery-ui-1.9.1.custom.js
中,它将年份范围设置为 c-10:c+10
,即当前 - 10 年到当前 + 10 年。
\这就是为什么您今年会看到从 2005 年到 2025 年的原因。 DatePicker 实例,我认为,它在 odoo/odoo/addons/web/static/src/js/view_form.js
文件中实例化(搜索 instance.web.DateTimeWidget 的启动方法)。您可以从该文件更改它(在 setDefaults
中添加 yearRange
直到您满意)或覆盖 instance.web.DateTimeWidget
的启动方法
默认情况下,odoo (openerp 8.0) fields.date 组合框仅显示当前年份 +/-10 年范围内的年份选择。我们如何扩展它?
按照这种方式我只是尝试从我的角度做这样的事情
from openerp.osv import fields, osv
from openerp import tools
from dateutil.relativedelta import relativedelta
import datetime
class myclass_nextyear(osv.Model):
_name='myclass.nextyear'
def str_to_datetime(strdate):
return datetime.datetime.strptime(strdate, tools.DEFAULT_SERVER_DATE_FORMAT)
def compute_next_year_date(self, strdate):
oneyear = datetime.timedelta(days=365)
curdate = str_to_datetime(strdate)
return datetime.datetime.strftime(curdate + oneyear, tools.DEFAULT_SERVER_DATE_FORMAT)
_columns = {
'start_date': fields.date('Contract Start Date', help='Date when the coverage of the contract begins'),
'expiration_date': fields.date('Contract Expiration Date', help='Date when the coverage of the contract expirates (by default, one year after begin date)'),
}
_defaults = {
'start_date': fields.date.context_today,
'expiration_date': lambda self, cr, uid, ctx: self.compute_next_year_date(fields.date.context_today(self, cr, uid, context=ctx)),
}
开始日期以上默认为当前日期,到期日期作为功能字段来自 compute_next_year_date函数
希望这对您有所帮助..! :)
最终来源在 odoo/odoo/addons/web/static/lib/jquery.ui/js/jquery-ui-1.9.1.custom.js
中,它将年份范围设置为 c-10:c+10
,即当前 - 10 年到当前 + 10 年。
\这就是为什么您今年会看到从 2005 年到 2025 年的原因。 DatePicker 实例,我认为,它在 odoo/odoo/addons/web/static/src/js/view_form.js
文件中实例化(搜索 instance.web.DateTimeWidget 的启动方法)。您可以从该文件更改它(在 setDefaults
中添加 yearRange
直到您满意)或覆盖 instance.web.DateTimeWidget