2013-02-07 2 views
2

작성 날짜 (작성일)와 마감일을 가진 모듈이 있습니다.res_config에서 기본 기간 설정

내가 만든 날짜에 따라이 기한 날짜에 기본값을 설정할 수 있기를 바랍니다. 하지만 res_config에서 동적으로 구성 할 수 있기를 원합니다.

res_config의 기본값을 5 일로 구성한 경우 마감일의 기본값에 생성 일보다 5 일 앞선 날짜를 입력하고 싶습니다.

이것이 가능합니까?

답변

2

I 모델 ir.configure_parameter를 사용하여이 작업을 수행하는 관리 감사드립니다. res_config.py에서

:

class my_configuration(osv.osv_memory): 
    _inherit = ['res.confi.settings'] 
    _columns = { 
     'default_deadline' : fields.integer('Days per default', help="""Help field"""), 
    } 
    ... 
    def set_default_deadline(self, cr, uid, ids, context=None): 
     config = self.browse(cr, uid, ids) 
     config = config and config[0] 
     val = '%s' %(config.default_deadline) or '10' 
     self.pool.geet('ir.config_parameter').set_param(cr,uid, 'key_value', val) 
     return True 

티끌이 우리가 시스템 매개 변수를 만들었습니다. 실제로는 'key_value'에서 val 로의 매핑으로 만들어 지므로 필요한 경우 원하는 유형으로 캐스팅해야합니다. 내 경우, y를 내 모듈에 마감 날짜를 얻을 수있는 기능을 만들어 :

def _get_deadline_date(self, cr, uid, context=None): 
    val = self.pool.get('ir.config_parameter').get_param(cr, uid, 'key_value') 
    try: 
     val = int(val) 
    except: 
     # Just in case... 
     val = 30 
    return (datetime.now() + timedelta(days=val)).strftime('%Y,%m,%d') 

_defaults = { 
    'deadline_date': lambda s, cr, uid, c: s._get_deadline_date(self, cr, uid,  context=c), 
} 

그것이 도움이되기를 바랍니다, 감사합니다!