diff options
| author | Patrick Hoste <pko@odoo.com> | 2020-02-28 13:14:23 +0000 |
|---|---|---|
| committer | Patrick Hoste <pko@odoo.com> | 2020-03-31 06:31:08 +0000 |
| commit | aebe199d80c5c7411c3db44386c7b9f3cc5b712d (patch) | |
| tree | 11a3c49bc0f9db968d10f648c7f69ff7a5a305ab /addons/event | |
| parent | 0e9f4e6cdea02573702577c4754b129f9d84cdd8 (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.xml | 1 | ||||
| -rw-r--r-- | addons/event/models/event_event.py | 23 | ||||
| -rw-r--r-- | addons/event/tests/common.py | 1 | ||||
| -rw-r--r-- | addons/event/tests/test_event_internals.py | 9 | ||||
| -rw-r--r-- | addons/event/views/event_views.xml | 52 |
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', '>=', 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/> |
