Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Openerp 延长奥多的年度范围_Openerp_Odoo_Odoo 8 - Fatal编程技术网

Openerp 延长奥多的年度范围

Openerp 延长奥多的年度范围,openerp,odoo,odoo-8,Openerp,Odoo,Odoo 8,默认情况下,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

默认情况下,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)),
        }
上面的开始日期作为默认的当前日期,而到期日期作为功能字段从 计算下一年日期函数


我希望这会对你有所帮助……:)

沿着这条路走我只是试着从我这边做类似的事情

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)),
        }
上面的开始日期作为默认的当前日期,而到期日期作为功能字段从 计算下一年日期函数


我希望这会对你有所帮助……:)

最终的来源是
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方法)。您可以从该文件中更改它(在
setDefaults
中添加
yearRange
,以使您满意)或者覆盖instance.web.DateTimeWidget的start方法,最终的源代码是
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方法)。您可以从该文件中更改它(在
setDefaults
中添加
yearRange
,以使您满意),或者覆盖instance.web.DateTimeWidget的开始方法,或者覆盖instance.web.DateTimeWidget的开始方法,听起来很有趣。关于如何做到这一点有什么提示吗?这可以很容易地解决问题,但是如果我需要为不同的日期选择器设置超过一年的范围,可能会有一些麻烦。“或者重写instance.web.DateTimeWidget的start方法”听起来很有趣。关于如何做到这一点有什么提示吗?这可以很容易地解决问题,但如果我需要为不同的日期选取者提供超过一年的时间范围,可能会有一些麻烦。