[IMP] website_event_exhibitor: improve sponsor type management

Choose lowest sponsor type as default when creating a new sponsor. Purpose
is to avoid being blocked by required fields. Choosing the lowest available
sponsor type allows to ease discovering the feature without breaking any
feature.

Also set a default sequence when creating a sponsor type to avoid jump
effect on list view: always send new sponsor types at the end.

Also set default ribbon as no ribbon to avoid a "void" entry in ribbon style
when creating new sponsor types.

Task ID-2558875
PR odoo/odoo#71787
This commit is contained in:
Thibault Delavallée
2021-06-17 11:07:09 +00:00
parent 54e8a81809
commit 9a479f5ef6
2 changed files with 14 additions and 7 deletions
@@ -25,8 +25,13 @@ class Sponsor(models.Model):
'chat.room.mixin'
]
def _default_sponsor_type_id(self):
return self.env['event.sponsor.type'].search([], order="sequence desc", limit=1).id
event_id = fields.Many2one('event.event', 'Event', required=True)
sponsor_type_id = fields.Many2one('event.sponsor.type', 'Sponsoring Level', required=True)
sponsor_type_id = fields.Many2one(
'event.sponsor.type', 'Sponsoring Level',
default=lambda self: self._default_sponsor_type_id(), required=True)
url = fields.Char('Sponsor Website', compute='_compute_url', readonly=False, store=True)
sequence = fields.Integer('Sequence')
active = fields.Boolean(default=True)
@@ -9,10 +9,12 @@ class SponsorType(models.Model):
_description = 'Event Sponsor Level'
_order = "sequence"
def _default_sequence(self):
return (self.search([], order="sequence desc", limit=1).sequence or 0) + 1
name = fields.Char('Sponsor Level', required=True, translate=True)
sequence = fields.Integer('Sequence')
display_ribbon_style = fields.Selection([
('no_ribbon', 'No Ribbon'),
('Gold', 'Gold'),
('Silver', 'Silver'),
('Bronze', 'Bronze')], string='Ribbon Style')
sequence = fields.Integer('Sequence', default=_default_sequence)
display_ribbon_style = fields.Selection(
[('no_ribbon', 'No Ribbon'), ('Gold', 'Gold'),
('Silver', 'Silver'), ('Bronze', 'Bronze')],
string='Ribbon Style', default='no_ribbon')