summaryrefslogtreecommitdiff
path: root/addons/event
diff options
context:
space:
mode:
authorPatrick Hoste <pko@odoo.com>2020-02-28 13:14:23 +0000
committerPatrick Hoste <pko@odoo.com>2020-03-31 06:31:08 +0000
commitaebe199d80c5c7411c3db44386c7b9f3cc5b712d (patch)
tree11a3c49bc0f9db968d10f648c7f69ff7a5a305ab /addons/event
parent0e9f4e6cdea02573702577c4754b129f9d84cdd8 (diff)
[IMP] (website_)event(_track): change event form view display
PURPOSE Change the event form view to improve its usability and make it clearer. SPECIFICATIONS - Change some stats buttons icons - Change order of the fields and put the range date field in second place since it's a mandatory field. LINKS Task ID : 2198660 PR : #46659
Diffstat (limited to 'addons/event')
-rw-r--r--addons/event/data/event_data.xml1
-rw-r--r--addons/event/models/event_event.py23
-rw-r--r--addons/event/tests/common.py1
-rw-r--r--addons/event/tests/test_event_internals.py9
-rw-r--r--addons/event/views/event_views.xml52
5 files changed, 18 insertions, 68 deletions
diff --git a/addons/event/data/event_data.xml b/addons/event/data/event_data.xml
index 0c430e37799..d274d70e8df 100644
--- a/addons/event/data/event_data.xml
+++ b/addons/event/data/event_data.xml
@@ -17,7 +17,6 @@
<!-- Event Categories -->
<record id="event_type_data_online" model="event.type">
<field name="name">Online</field>
- <field name="is_online" eval="True"/>
<field name="auto_confirm" eval="True"/>
<field name="use_mail_schedule" eval="False"/>
</record>
diff --git a/addons/event/models/event_event.py b/addons/event/models/event_event.py
index a091da8ff6b..0a0dcbf63ab 100644
--- a/addons/event/models/event_event.py
+++ b/addons/event/models/event_event.py
@@ -44,8 +44,6 @@ class EventType(models.Model):
help="Events and registrations will automatically be confirmed "
"upon creation, easing the flow for simple events.")
# location
- is_online = fields.Boolean(
- 'Online Event', help='Online events like webinars do not require a specific location and are hosted online.')
use_timezone = fields.Boolean('Use Default Timezone')
default_timezone = fields.Selection(
_tz_get, string='Timezone', default=lambda self: self.env.user.tz or 'UTC')
@@ -162,8 +160,9 @@ class EventEvent(models.Model):
compute_sudo=True, readonly=True, compute='_compute_seats')
# Registration fields
auto_confirm = fields.Boolean(
- string='Autoconfirm Registrations',
- compute='_compute_from_event_type', copy=True, readonly=False, store=True)
+ string='Autoconfirmation',
+ compute='_compute_from_event_type', copy=True, readonly=False, store=True,
+ help = 'Autoconfirm Registrations. Registrations will automatically be confirmed upon creation.')
registration_ids = fields.One2many('event.registration', 'event_id', string='Attendees')
event_registrations_open = fields.Boolean('Registration open', compute='_compute_event_registrations_open')
event_ticket_ids = fields.One2many(
@@ -181,13 +180,9 @@ class EventEvent(models.Model):
is_one_day = fields.Boolean(compute='_compute_field_is_one_day')
start_sale_date = fields.Date('Start sale date', compute='_compute_start_sale_date')
# Location and communication
- is_online = fields.Boolean(
- string='Online Event', compute='_compute_from_event_type',
- copy=True, readonly=False, store=True)
address_id = fields.Many2one(
- 'res.partner', string='Venue', compute='_compute_address_id',
- copy=True, readonly=False, store=True, tracking=True,
- domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
+ 'res.partner', string='Venue', default=lambda self: self.env.company.partner_id.id,
+ tracking=True, domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
country_id = fields.Many2one(
'res.country', 'Country', related='address_id.country_id',
copy=True, readonly=False, store=True)
@@ -302,14 +297,6 @@ class EventEvent(models.Model):
start_dates = [ticket.start_sale_date for ticket in event.event_ticket_ids if ticket.start_sale_date]
event.start_sale_date = min(start_dates) if start_dates else False
- @api.depends('is_online')
- def _compute_address_id(self):
- for event in self:
- if event.is_online:
- event.address_id = False
- elif not event.address_id:
- event.address_id = self.env.company.partner_id.id
-
@api.depends('event_type_id')
def _compute_date_tz(self):
for event in self:
diff --git a/addons/event/tests/common.py b/addons/event/tests/common.py
index 62509636ed9..dab3e3339a1 100644
--- a/addons/event/tests/common.py
+++ b/addons/event/tests/common.py
@@ -51,7 +51,6 @@ class TestEventCommon(common.SavepointCase):
cls.event_type_complex = cls.env['event.type'].create({
'name': 'Update Type',
'auto_confirm': True,
- 'is_online': False,
'has_seats_limitation': True,
'seats_max': 30,
'use_timezone': True,
diff --git a/addons/event/tests/test_event_internals.py b/addons/event/tests/test_event_internals.py
index 1a381f3f37b..4659149e1e1 100644
--- a/addons/event/tests/test_event_internals.py
+++ b/addons/event/tests/test_event_internals.py
@@ -59,7 +59,6 @@ class TestEventData(TestEventCommon):
'date_end': FieldsDatetime.to_string(datetime.today() + timedelta(days=15)),
})
- self.assertFalse(event.is_online)
self.assertEqual(event.address_id, self.env.user.company_id.partner_id)
# seats: coming from event type configuration
self.assertEqual(event.seats_availability, 'limited')
@@ -69,11 +68,6 @@ class TestEventData(TestEventCommon):
self.assertEqual(event.seats_used, 0)
self.assertEqual(event.seats_expected, 0)
- # set is_online: should reset the address_id field
- event.update({'is_online': True})
- self.assertTrue(event.is_online)
- self.assertFalse(event.address_id)
-
# create registration in order to check the seats computation
self.assertTrue(event.auto_confirm)
for x in range(5):
@@ -117,12 +111,10 @@ class TestEventData(TestEventCommon):
'name': 'Event Update Type',
'date_begin': FieldsDatetime.to_string(datetime.today() + timedelta(days=1)),
'date_end': FieldsDatetime.to_string(datetime.today() + timedelta(days=15)),
- 'is_online': True,
})
self.assertEqual(event.date_tz, self.env.user.tz)
self.assertEqual(event.seats_availability, 'unlimited')
self.assertFalse(event.auto_confirm)
- self.assertTrue(event.is_online)
self.assertEqual(event.event_mail_ids, self.env['event.mail'])
event_type.write({
@@ -136,7 +128,6 @@ class TestEventData(TestEventCommon):
self.assertEqual(event.seats_availability, 'limited')
self.assertEqual(event.seats_max, event_type.seats_max)
self.assertTrue(event.auto_confirm)
- self.assertFalse(event.is_online)
self.assertEqual(event.event_mail_ids.interval_nbr, 1)
self.assertEqual(event.event_mail_ids.interval_unit, 'days')
self.assertEqual(event.event_mail_ids.interval_type, 'before_event')
diff --git a/addons/event/views/event_views.xml b/addons/event/views/event_views.xml
index bfb1815c8ff..a83cfe5dad5 100644
--- a/addons/event/views/event_views.xml
+++ b/addons/event/views/event_views.xml
@@ -17,20 +17,6 @@
<div class="row mt16 o_settings_container" name="event_type_location">
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
- <field name="is_online"/>
- </div>
- <div class="o_setting_right_pane">
- <label for="is_online"/>
- <div class="row">
- <div class="col-lg-8 mt16 text-muted">
- Online events like webinars do not require a specific location
- and are hosted online.
- </div>
- </div>
- </div>
- </div>
- <div class="col-12 col-lg-6 o_setting_box">
- <div class="o_setting_left_pane">
<field name="use_timezone"/>
</div>
<div class="o_setting_right_pane">
@@ -148,7 +134,6 @@
<field name="arch" type="xml">
<search string="Event Templates">
<field name="name"/>
- <filter string="Online Event" name="online_event" help="Online Event" domain="[('is_online', '=', True)]"/>
</search>
</field>
</record>
@@ -215,26 +200,10 @@
<div class="oe_title">
<label for="name" class="oe_edit_only" string="Event Name"/>
<h1><field name="name" placeholder="e.g. Conference for Architects"/></h1>
- <field name="is_online" groups="base.group_no_one"/>
- <label for="is_online" string="Online" groups="base.group_no_one"/>
</div>
<group>
<group>
<field name="active" invisible="1"/>
- <field name="organizer_id"/>
- <field name="address_id"
- attrs="{'invisible': [('is_online', '=', True)]}"
- context="{'show_address': 1}"
- options='{"always_reload": True}'/>
- <field name="company_id" groups="base.group_multi_company"/>
- <field name="user_id" domain="[('share', '=', False)]"/>
- </group>
- <group>
- <field name="event_type_id" options="{'no_create':True}"/>
- <field name="tag_ids" widget="many2many_tags" options="{'no_quick_create': True}"/>
- <field name="auto_confirm" groups="base.group_no_one"/>
- </group>
- <group>
<label for="date_begin" string="Date"/>
<div class="o_row">
<field name="date_begin" widget="daterange" nolabel="1" class="oe_inline" options="{'related_end_date': 'date_end'}"/>
@@ -242,6 +211,17 @@
<field name="date_end" widget="daterange" nolabel="1" class="oe_inline" options="{'related_start_date': 'date_begin'}"/>
</div>
<field name="date_tz"/>
+ <field name="organizer_id"/>
+ <field name="user_id" domain="[('share', '=', False)]"/>
+ <field name="company_id" groups="base.group_multi_company"/>
+ <field name="event_type_id" string="Template" options="{'no_create':True}"/>
+ <field name="tag_ids" widget="many2many_tags" options="{'no_quick_create': True}"/>
+ </group>
+ <group>
+ <field name="address_id"
+ context="{'show_address': 1}"
+ options='{"always_reload": True}'/>
+ <field name="auto_confirm"/>
</group>
<group>
<label for="seats_availability"/>
@@ -253,9 +233,6 @@
<field name="seats_max" attrs="{'invisible': [('seats_availability', '=', 'unlimited')], 'required': [('seats_availability', '=', 'limited')]}"/>
</div>
</group>
- <group class="w-100">
- <field name="note" placeholder="Add a note..." nolabel="1"/>
- </group>
</group>
<notebook>
<page string="Tickets" name="tickets">
@@ -278,10 +255,8 @@
</tree>
</field>
</page>
- <page string="Description" name="event_description">
- <group>
- <field name="description"/>
- </group>
+ <page string="Notes" name="event_notes">
+ <field name="note" placeholder="Add a note..."/>
</page>
</notebook>
</sheet>
@@ -436,7 +411,6 @@
<separator/>
<filter string="Upcoming/Running" name="upcoming"
domain="[('date_end', '&gt;=', datetime.datetime.combine(context_today(), datetime.time(0,0,0)))]" help="Upcoming events from today" />
- <filter string="Online Events" name="online_events" help="Online Events" domain="[('is_online', '=', True)]"/>
<separator/>
<filter string="Start Date" name="start_date" date="date_begin"/>
<separator/>