You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.3 KiB
42 lines
1.3 KiB
from odoo import models, fields, api, _
|
|
|
|
|
|
class SurveyUserInput(models.Model):
|
|
_inherit = "survey.user_input"
|
|
|
|
date_start = fields.Datetime(
|
|
string="Start date",
|
|
readonly=True,
|
|
help='This date is set when the user clicks on "Start survey" button for the first time.',
|
|
)
|
|
date_done = fields.Datetime(
|
|
string="Date done",
|
|
readonly=True,
|
|
help='This date is set when the user input is set ton "Done" status.',
|
|
)
|
|
duration = fields.Integer(
|
|
string="Duration",
|
|
compute="_get_duration",
|
|
store=True,
|
|
help="Time expressed in seconds, neet 'duration' widget to be read by user.",
|
|
)
|
|
|
|
@api.depends("date_start", "date_stop")
|
|
def _get_duration(self):
|
|
for input in self:
|
|
start = input.date_start
|
|
done = input.date_done
|
|
if not start and done:
|
|
input.duration = 0
|
|
else:
|
|
input.duration = int((done - start).total_seconds())
|
|
|
|
@api.multi
|
|
def write(self, vals):
|
|
if vals.get("state", False) == "done":
|
|
vals.update(
|
|
{
|
|
"date_done": fields.Datetime.now(),
|
|
}
|
|
)
|
|
return super(SurveyUserInput, self).write(vals)
|