[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 412ff994f1 .

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
This commit is contained in:
Thibault Delavallée
2020-01-28 10:54:46 +00:00
parent 3895baf28f
commit 8bc9d77104
2 changed files with 24 additions and 43 deletions
+15 -32
View File
@@ -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')
+9 -11
View File
@@ -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):