Skip to Content
Menu
This question has been flagged
1 Reply
4200 Views

how do i add a certain amount of time to my start date

i get this error:

Error:

Odoo Server Error


Traceback (most recent call last):

  File "/usr/lib/python3/dist-packages/odoo/api.py", line 1039, in get

    value = self._data[key][field][record.id]

KeyError: 1


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 963, in __get__

    value = record.env.cache.get(record, self)

  File "/usr/lib/python3/dist-packages/odoo/api.py", line 1041, in get

    raise CacheMiss(record, field)

odoo.exceptions.CacheMiss: ('reservatie(1,).end_time', None)


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/usr/lib/python3/dist-packages/odoo/http.py", line 654, in _handle_exception

    return super(JsonRequest, self)._handle_exception(exception)

  File "/usr/lib/python3/dist-packages/odoo/http.py", line 312, in _handle_exception

    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])

  File "/usr/lib/python3/dist-packages/odoo/tools/pycompat.py", line 87, in reraise

    raise value

  File "/usr/lib/python3/dist-packages/odoo/http.py", line 696, in dispatch

    result = self._call_function(**self.params)

  File "/usr/lib/python3/dist-packages/odoo/http.py", line 344, in _call_function

    return checked_call(self.db, *args, **kwargs)

  File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 97, in wrapper

    return f(dbname, *args, **kwargs)

  File "/usr/lib/python3/dist-packages/odoo/http.py", line 337, in checked_call

    result = self.endpoint(*a, **kw)

  File "/usr/lib/python3/dist-packages/odoo/http.py", line 939, in __call__

    return self.method(*args, **kw)

  File "/usr/lib/python3/dist-packages/odoo/http.py", line 517, in response_wrap

    response = f(*args, **kw)

  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 962, in call_kw

    return self._call_kw(model, method, args, kwargs)

  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 954, in _call_kw

    return call_kw(request.env[model], method, args, kwargs)

  File "/usr/lib/python3/dist-packages/odoo/api.py", line 749, in call_kw

    return _call_kw_multi(method, model, args, kwargs)

  File "/usr/lib/python3/dist-packages/odoo/api.py", line 736, in _call_kw_multi

    result = method(recs, *args, **kwargs)

  File "/usr/lib/python3/dist-packages/odoo/models.py", line 2780, in read

    data[record][name] = convert(record[name], record, use_name_get)

  File "/usr/lib/python3/dist-packages/odoo/models.py", line 5065, in __getitem__

    return self._fields[key].__get__(self, type(self))

  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 967, in __get__

    self.determine_value(record)

  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1078, in determine_value

    self.compute_value(recs)

  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1034, in compute_value

    self._compute_value(records)

  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1025, in _compute_value

    getattr(records, self.compute)()

  File "<decorator-gen-192>", line 2, in _compute_end_time

  File "/usr/lib/python3/dist-packages/odoo/api.py", line 372, in loop

    result = [method(rec, *args, **kwargs) for rec in self]

  File "/usr/lib/python3/dist-packages/odoo/api.py", line 372, in <listcomp>

    result = [method(rec, *args, **kwargs) for rec in self]

  File "/usr/lib/python3/dist-packages/odoo/addons/WellbeingReservaties/models/reservatie.py", line 26, in _compute_end_time

    self.end_time = self.start_time + timedelta(hours=self.uren, minutes=self.minuten)

TypeError: unsupported operand type(s) for +: 'bool' and 'datetime.timedelta'

this is my current code:

treatment_duur = fields.Integer(related='treatment_id.duur')

start_time = fields.Datetime(string='My date')

@api.one
def _compute_uren(self):
self.uren = self.treatment_duur // 60

@api.one
def _compute_minuten(self):
self.minuten = self.treatment_duur % 60

@api.one
def _compute_end_time(self):
self.end_time = self.start_time + timedelta(hours=self.uren, minutes=self.minuten)

uren = fields.Integer(compute='_compute_uren')
minuten = fields.Integer(compute='_compute_minuten')

end_time = fields.Datetime(compute='_compute_end_time')
Avatar
Discard
Best Answer

This happened b/c the start_time field is empty. Make sure that you have input the start_date from the front end form view. To assert that start_time is always input you can make the start_date as a required field, like

start_time = fields.Datetime(string="My date", required=True)

Avatar
Discard
Author

we found the issues, apparently a clean database fixed this issue, thx for your help anyway :).

Related Posts Replies Views Activity
1
May 23
12458
3
Dec 22
2632
2
Apr 20
3559
1
Apr 20
2420
2
Sep 19
7210