2

作成日 (もちろん作成日) と締め切り日を持つモジュールがあります。

問題は、作成された日付に従って、この締め切り日にデフォルト値を設定できるようにしたいということです。しかし、これを (たとえば) res_config から動的に構成できるようにしたいと考えています。

例えば

res_config のデフォルト値を 5 日に設定した場合、締切日のデフォルト値に、作成日の 5 日前の日付を入力する必要があります。

これは可能ですか?

ありがとうございました

4

1 に答える 1

2

モデルを使用してこれを行うことができました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),
}

ありがとうございます。

于 2013-02-08T15:08:52.483 に答える