This question has been flagged
2 Replies
5561 Views

Hello odoo community,

i have a field end date which is computed (start date + duration) compute  works but for some reason my results retrieve date format like 2015-12-19 00:00:00 any ideas how to get only 2015-12-19?

Any help or examples would be appreaciated.

imports:

from openerp.osv import osv, fields
from openerp import api
import time
from datetime import date
from datetime import datetime
from dateutil.relativedelta import relativedelta

 

Field :

'start_date': fields.date('Start Date', required=True),
'duration': fields.integer('Duration', required=True, help='Estimated project duration in months', store=True),

'end_date': 'fields.char(compute='_end_date', string='End Date', help='Calculated as start date plus duration in months'),

    _defaults = {
        'start_date': fields.date.context_today,
        }

compute function:

    @api.one
    @api.depends('start_date','duration')
    def _end_date(self):
        self.end_date = datetime.strptime(self.start_date, '%Y-%m-%d') + relativedelta(months=self.duration)

 

Thank you

Avatar
Discard
Best Answer

Convert the date to string with explicit format like in the example below

 def _end_date(self):
        self.end_date = (datetime.strptime(self.start_date, '%Y-%m-%d') + relativedelta(months=self.duration)).strftime('%Y-%m-%d')

Avatar
Discard