From 8bc9d7710434df4732bb452bb9efac1fd091ee31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 17 Jan 2020 15:42:41 +0000 Subject: [PATCH] [IMP] (website_)event: clean fields definition and parameters In this commit we prepare future event model changes by reordering removing unnecessary parameters definitions, notably readonly set to False as it is the default value. Those parameters notably come from 412ff994f1120457c912aad487265e3de8a9f35a . Some reordering is also done in order to better understand future pre / post change model organization. LINKS Task ID 2177281 (support tickets directly in event) Prepares Community PR odoo/odoo#43488 Closes Community PR odoo/odoo#44066 --- addons/event/models/event_event.py | 47 +++++++--------------- addons/website_event/models/event_event.py | 20 +++++---- 2 files changed, 24 insertions(+), 43 deletions(-) diff --git a/addons/event/models/event_event.py b/addons/event/models/event_event.py index 5b0f9dc28b6..23a3de5de24 100644 --- a/addons/event/models/event_event.py +++ b/addons/event/models/event_event.py @@ -48,8 +48,7 @@ class EventType(models.Model): name = fields.Char('Event Category', required=True, translate=True) sequence = fields.Integer() # registration - has_seats_limitation = fields.Boolean( - 'Limited Seats', default=False) + has_seats_limitation = fields.Boolean('Limited Seats') default_registration_min = fields.Integer( 'Minimum Registrations', default=0, help="It will select this default minimum value when you choose this event") @@ -94,28 +93,22 @@ class EventEvent(models.Model): event_stages = self.env['event.stage'].search([]) return event_stages[0] if event_stages else False - name = fields.Char( - string='Event', translate=True, required=True, - readonly=False) + name = fields.Char(string='Event', translate=True, required=True) note = fields.Text(string='Note') + description = fields.Html(string='Description', translate=html_translate, sanitize_attributes=False) active = fields.Boolean(default=True) user_id = fields.Many2one( - 'res.users', string='Responsible', - default=lambda self: self.env.user, - tracking=True, - readonly=False) + 'res.users', string='Responsible', tracking=True, + default=lambda self: self.env.user) company_id = fields.Many2one( 'res.company', string='Company', change_default=True, default=lambda self: self.env.company, - required=False, readonly=False) + required=False) organizer_id = fields.Many2one( - 'res.partner', string='Organizer', - tracking=True, + 'res.partner', string='Organizer', tracking=True, default=lambda self: self.env.company.partner_id, domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]") - event_type_id = fields.Many2one( - 'event.type', string='Category', - readonly=False) + event_type_id = fields.Many2one('event.type', string='Category', ondelete='set null') color = fields.Integer('Kanban Color Index') event_mail_ids = fields.One2many('event.mail', 'event_id', string='Mail Schedule', copy=True) # Kanban fields @@ -154,36 +147,26 @@ class EventEvent(models.Model): string='Number of Expected Attendees', compute_sudo=True, readonly=True, compute='_compute_seats') # Registration fields - registration_ids = fields.One2many( - 'event.registration', 'event_id', string='Attendees', - readonly=False) + auto_confirm = fields.Boolean(string='Autoconfirm Registrations') + registration_ids = fields.One2many('event.registration', 'event_id', string='Attendees') event_registrations_open = fields.Boolean('Registration open', compute='_compute_event_registrations_open') # Date fields date_tz = fields.Selection( _tz_get, string='Timezone', required=True, default=lambda self: self.env.user.tz or 'UTC') - date_begin = fields.Datetime( - string='Start Date', required=True, - tracking=True) - date_end = fields.Datetime( - string='End Date', required=True, - tracking=True) + date_begin = fields.Datetime(string='Start Date', required=True, tracking=True) + date_end = fields.Datetime(string='End Date', required=True, tracking=True) date_begin_located = fields.Char(string='Start Date Located', compute='_compute_date_begin_tz') date_end_located = fields.Char(string='End Date Located', compute='_compute_date_end_tz') is_one_day = fields.Boolean(compute='_compute_field_is_one_day') - auto_confirm = fields.Boolean(string='Autoconfirm Registrations') + # Location and communication is_online = fields.Boolean('Online Event') address_id = fields.Many2one( - 'res.partner', string='Location', + 'res.partner', string='Location', tracking=True, default=lambda self: self.env.company.partner_id, - readonly=False, - domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]", - tracking=True) + domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]") country_id = fields.Many2one('res.country', 'Country', related='address_id.country_id', store=True, readonly=False) twitter_hashtag = fields.Char('Twitter Hashtag') - description = fields.Html( - string='Description', translate=html_translate, sanitize_attributes=False, - readonly=False) # badge fields badge_front = fields.Html(string='Badge Front') badge_back = fields.Html(string='Badge Back') diff --git a/addons/website_event/models/event_event.py b/addons/website_event/models/event_event.py index 0fa062e5162..611ba30263b 100644 --- a/addons/website_event/models/event_event.py +++ b/addons/website_event/models/event_event.py @@ -1,12 +1,11 @@ # -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. -import pytz import werkzeug import json from odoo import api, fields, models, _ from odoo.addons.http_routing.models.ir_http import slug -from odoo.exceptions import UserError GOOGLE_CALENDAR_URL = 'https://www.google.com/calendar/render?' @@ -15,27 +14,26 @@ class EventType(models.Model): _name = 'event.type' _inherit = ['event.type'] - website_menu = fields.Boolean( - 'Display a dedicated menu on Website') + website_menu = fields.Boolean('Display a dedicated menu on Website') class Event(models.Model): _name = 'event.event' _inherit = ['event.event', 'website.seo.metadata', 'website.published.multi.mixin'] - website_published = fields.Boolean(tracking=True) - + # description subtitle = fields.Char('Event Subtitle', translate=True) - + # registration is_participating = fields.Boolean("Is Participating", compute="_compute_is_participating") - + # website + website_published = fields.Boolean(tracking=True) cover_properties = fields.Text( 'Cover Properties', default='{"background-image": "none", "background-color": "oe_blue", "opacity": "0.4", "resize_class": "o_half_screen_height"}') - - website_menu = fields.Boolean('Dedicated Menu', + website_menu = fields.Boolean( + 'Dedicated Menu', copy=False, help="Creates menus Introduction, Location and Register on the page " - " of the event on the website.", copy=False) + " of the event on the website.") menu_id = fields.Many2one('website.menu', 'Event Menu', copy=False) def _compute_is_participating(self):