在odoo中延长年份范围

时间:2015-05-15 06:04:37

标签: openerp odoo odoo-8

默认情况下,odoo(openerp 8.0)fields.date组合框仅显示当前年份+/- 10年范围内的年份选择。我们怎么能扩展呢?

2 个答案:

答案 0 :(得分:2)

按照这种方式我只是尝试从我的结束做这样的事情

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 功能

我希望这对你有帮助..! :)

答案 1 :(得分:2)

最终来源是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的start方法)。您可以从该文件更改它(在yearRange中添加setDefaults使您满意)或覆盖instance.web.DateTimeWidget的启动方法