[IMP] event{_booth}{_crm},*: improve UI
*: website_event{_meet}{_track}{_track_live}
Purpose
=======
Improve event related module UI
Specifications
==============
- The reporting fields, the chat room and the participant count
of the meeting room form should not be showed while the record
is not created.
- Rewording on event track "Button appears" and "Color" field.
- Remove unnecessary helpers in event track form.
- Remove "Wishlisted By" stat button when the count is equal to 0.
- Add many2one widget avatar on lead rule "Saleperson" field and
event track "Responsible" field.
- Add placeholders in event booth form view, event location
tree view, event tags categories form view and event stages
form view.
Task-3280602
Part-of: odoo/odoo#119321
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="name" placeholder='e.g. "Promoting"'/>
|
||||
<field name="pipe_end"/>
|
||||
</group>
|
||||
<group>
|
||||
|
||||
@@ -21,13 +21,13 @@
|
||||
<form string="Event Category">
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<h1><field nolabel="1" name="name"/></h1>
|
||||
<h1><field nolabel="1" name="name" placeholder='e.g. "Age Category"'/></h1>
|
||||
</div>
|
||||
<group>
|
||||
<field name="tag_ids" context="{'default_category_id': active_id}">
|
||||
<tree string="Tags" editable="bottom">
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name"/>
|
||||
<field name="name" placeholder='e.g. "12-16 years old"'/>
|
||||
<field name="color" widget="color_picker"/>
|
||||
</tree>
|
||||
</field>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<field name="booth_category_id" placeholder="Pick a Booth Category..."/>
|
||||
</group>
|
||||
<group name="renter">
|
||||
<field name="partner_id"/>
|
||||
<field name="partner_id" placeholder="Pick a Renter..."/>
|
||||
<field name="contact_name"/>
|
||||
<field name="contact_email" widget="email"/>
|
||||
<field name="contact_phone" widget="phone"/>
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
<group class="col">
|
||||
<field name="lead_type" groups="crm.group_use_lead"/>
|
||||
<field name="lead_sales_team_id"/>
|
||||
<field name="lead_user_id"/>
|
||||
<field name="lead_user_id" widget="many2one_avatar_user"/>
|
||||
</group>
|
||||
<group class="col">
|
||||
<field name="lead_tag_ids" widget="many2many_tags" options="{'color_field': 'color'}"/>
|
||||
|
||||
@@ -44,13 +44,13 @@
|
||||
<field name="is_pinned"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="chat_room_id" required="0"/>
|
||||
<field name="room_participant_count" readonly="1"/>
|
||||
<field name="room_max_capacity" widget="radio" options="{'horizontal': true}"/>
|
||||
<field name="room_lang_id" options="{'no_create': True}"/>
|
||||
<field name="chat_room_id" required="0" attrs="{'invisible': [('id', '=', False)]}"/>
|
||||
<field name="room_participant_count" readonly="1" attrs="{'invisible': [('id', '=', False)]}"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<notebook attrs="{'invisible': [('id', '=', False)]}">
|
||||
<page name="Reporting" string="Reporting">
|
||||
<group>
|
||||
<field name="room_last_activity"/>
|
||||
|
||||
@@ -30,7 +30,7 @@ class Track(models.Model):
|
||||
company_id = fields.Many2one('res.company', related='event_id.company_id')
|
||||
tag_ids = fields.Many2many('event.track.tag', string='Tags')
|
||||
description = fields.Html(translate=html_translate, sanitize_attributes=False, sanitize_form=False)
|
||||
color = fields.Integer('Color')
|
||||
color = fields.Integer('Agenda Color')
|
||||
priority = fields.Selection([
|
||||
('0', 'Low'), ('1', 'Medium'),
|
||||
('2', 'High'), ('3', 'Highest')],
|
||||
@@ -59,20 +59,17 @@ class Track(models.Model):
|
||||
kanban_state_label = fields.Char(
|
||||
string='Kanban State Label', compute='_compute_kanban_state_label', store=True,
|
||||
tracking=True)
|
||||
partner_id = fields.Many2one('res.partner', 'Contact', help="Contact of the track, may be different from speaker.")
|
||||
partner_id = fields.Many2one('res.partner', 'Contact')
|
||||
# speaker information
|
||||
partner_name = fields.Char(
|
||||
string='Name', compute='_compute_partner_name',
|
||||
readonly=False, store=True, tracking=10,
|
||||
help='Speaker name is used for public display and may vary from contact name')
|
||||
readonly=False, store=True, tracking=10)
|
||||
partner_email = fields.Char(
|
||||
string='Email', compute='_compute_partner_email',
|
||||
readonly=False, store=True, tracking=20,
|
||||
help='Speaker email is used for public display and may vary from contact email')
|
||||
readonly=False, store=True, tracking=20)
|
||||
partner_phone = fields.Char(
|
||||
string='Phone', compute='_compute_partner_phone',
|
||||
readonly=False, store=True, tracking=30,
|
||||
help='Speaker phone is used for public display and may vary from contact phone')
|
||||
readonly=False, store=True, tracking=30)
|
||||
partner_biography = fields.Html(
|
||||
string='Biography', compute='_compute_partner_biography',
|
||||
readonly=False, store=True)
|
||||
@@ -92,17 +89,15 @@ class Track(models.Model):
|
||||
# contact information
|
||||
contact_email = fields.Char(
|
||||
string='Contact Email', compute='_compute_contact_email',
|
||||
readonly=False, store=True, tracking=20,
|
||||
help="Contact email is private and used internally")
|
||||
readonly=False, store=True, tracking=20)
|
||||
contact_phone = fields.Char(
|
||||
string='Contact Phone', compute='_compute_contact_phone',
|
||||
readonly=False, store=True, tracking=30,
|
||||
help="Contact phone is private and used internally")
|
||||
readonly=False, store=True, tracking=30)
|
||||
location_id = fields.Many2one('event.track.location', 'Location')
|
||||
# time information
|
||||
date = fields.Datetime('Track Date')
|
||||
date_end = fields.Datetime('Track End Date', compute='_compute_end_date', store=True)
|
||||
duration = fields.Float('Duration', default=0.5, help="Track duration in hours.")
|
||||
duration = fields.Float('Duration', default=0.5)
|
||||
is_track_live = fields.Boolean(
|
||||
'Is Track Live', compute='_compute_track_time_data')
|
||||
is_track_soon = fields.Boolean(
|
||||
@@ -146,7 +141,7 @@ class Track(models.Model):
|
||||
help="Display a Call to Action button to your Attendees while they watch your Track.")
|
||||
website_cta_title = fields.Char('Button Title')
|
||||
website_cta_url = fields.Char('Button Target URL')
|
||||
website_cta_delay = fields.Integer('Button appears')
|
||||
website_cta_delay = fields.Integer('Show Button')
|
||||
# time information for CTA
|
||||
is_website_cta_live = fields.Boolean(
|
||||
'Is CTA Live', compute='_compute_cta_time_data',
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Event Location" editable="bottom">
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name"/>
|
||||
<field name="name" placeholder='e.g. "Main Conference Room"'/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -145,11 +145,10 @@
|
||||
<sheet string="Track">
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<field name="website_url" invisible="1"/>
|
||||
<field name="wishlist_visitor_count" invisible="1"/>
|
||||
<button name="%(website_event_track.website_visitor_action_from_track)d"
|
||||
type="action"
|
||||
class="oe_stat_button"
|
||||
icon="fa-bell"
|
||||
groups="event.group_event_user">
|
||||
type="action" class="oe_stat_button" icon="fa-bell"
|
||||
groups="event.group_event_user" attrs="{'invisible': [('wishlist_visitor_count', '=', 0)]}">
|
||||
<field name="wishlist_visitor_count" string="Wishlisted By" widget="statinfo"/>
|
||||
</button>
|
||||
<field name="is_published" widget="website_redirect_button"/>
|
||||
@@ -172,17 +171,13 @@
|
||||
<group>
|
||||
<field name="date"/>
|
||||
<field name="location_id"/>
|
||||
<label for="duration"/>
|
||||
<div class="o_row">
|
||||
<field name="duration" widget="float_time"/>
|
||||
<span>hours</span>
|
||||
</div>
|
||||
<field name="duration" widget="float_time"/>
|
||||
<field name="active" invisible="1"/>
|
||||
<field name="wishlisted_by_default"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="user_id" domain="[('share', '=', False)]"/>
|
||||
<field name="user_id" widget="many2one_avatar_user" domain="[('share', '=', False)]"/>
|
||||
<field name="event_id"/>
|
||||
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'color'}"/>
|
||||
<field name="color" widget="color_picker"/>
|
||||
@@ -230,7 +225,7 @@
|
||||
attrs="{'invisible': [('website_cta', '=', False)]}"/>
|
||||
<div attrs="{'invisible': [('website_cta', '=', False)]}">
|
||||
<field name="website_cta_delay" class="oe_inline"
|
||||
attrs="{'required': [('website_cta', '=', True)]}"/> minutes after track starts
|
||||
attrs="{'required': [('website_cta', '=', True)]}"/> minutes after Track start
|
||||
</div>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
@@ -9,8 +9,7 @@ from odoo import api, fields, models
|
||||
class Track(models.Model):
|
||||
_inherit = 'event.track'
|
||||
|
||||
youtube_video_url = fields.Char('YouTube Video Link',
|
||||
help="Configure this URL so that event attendees can see your Track in video!")
|
||||
youtube_video_url = fields.Char('YouTube Video Link')
|
||||
youtube_video_id = fields.Char('YouTube video ID', compute='_compute_youtube_video_id',
|
||||
help="Extracted from the video URL and used to infer various links (embed/thumbnail/...)")
|
||||
is_youtube_replay = fields.Boolean('Is YouTube Replay',
|
||||
|
||||
Reference in New Issue
Block a user