31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||
|
|
||
|
from itertools import zip_longest
|
||
|
|
||
|
from odoo import models
|
||
|
from odoo.addons.website_slides.populate.slide_channel import SlideChannel
|
||
|
|
||
|
|
||
|
class SlidesForum(models.Model):
|
||
|
_inherit = 'forum.forum'
|
||
|
|
||
|
@property
|
||
|
def _populate_sizes(self):
|
||
|
return {size: count + SlideChannel._populate_sizes[size] for size, count in super()._populate_sizes.items()}
|
||
|
|
||
|
@property
|
||
|
def _populate_dependencies(self):
|
||
|
return super()._populate_dependencies + ['slide.channel']
|
||
|
|
||
|
def _populate_factories(self):
|
||
|
def link_course(iterator, *args, **kwargs):
|
||
|
courses = self.env['slide.channel'].browse(self.env.registry.populated_models['slide.channel'])
|
||
|
for values, course in zip_longest(iterator, courses):
|
||
|
if course:
|
||
|
values.update(slide_channel_ids=course, name=f"{course.name}'s Forum")
|
||
|
yield values
|
||
|
|
||
|
return super()._populate_factories() + [
|
||
|
('_name_and_course', link_course),
|
||
|
]
|