In Python 3: * various builtins and dict methods were changed to return view/iterable objects rather than lists * and the separate Python 2 view/iterable builtins and methods were removed altogether This is problematic when using these items as list (which the happens repeatedly in Odoo), but more viciously when iterating *multiple times* over them (which also happens, which I've messed up multiple times while writing this, and which is a pain to debug even when you've just created the issue). Convert all code using these to semantics-matching cross-version helper functions to get the LCD behaviour between P2 and P3, and forbid the builtins via lint. issue #8530
21 lines
786 B
Python
21 lines
786 B
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo.addons.website_event.controllers.main import WebsiteEventController
|
|
|
|
from odoo.tools import pycompat
|
|
|
|
|
|
class WebsiteEvent(WebsiteEventController):
|
|
|
|
def _process_registration_details(self, details):
|
|
''' Process data posted from the attendee details form. '''
|
|
registrations = super(WebsiteEvent, self)._process_registration_details(details)
|
|
for registration in registrations:
|
|
answer_ids = []
|
|
for key, value in pycompat.items(registration):
|
|
if key.startswith('answer_ids-'):
|
|
answer_ids.append([4, int(value)])
|
|
registration['answer_ids'] = answer_ids
|
|
return registrations
|