diff --git a/addons/event/models/event_event.py b/addons/event/models/event_event.py index 85890eb84c6..5b0f9dc28b6 100644 --- a/addons/event/models/event_event.py +++ b/addons/event/models/event_event.py @@ -9,7 +9,6 @@ from odoo.addons.base.models.res_partner import _tz_get from odoo.tools import format_datetime from odoo.exceptions import ValidationError from odoo.tools.translate import html_translate -from odoo.tools.misc import _format_time_ago _logger = logging.getLogger(__name__) @@ -128,7 +127,6 @@ class EventEvent(models.Model): legend_blocked = fields.Char(related='stage_id.legend_blocked', string='Kanban Blocked Explanation', readonly=True) legend_done = fields.Char(related='stage_id.legend_done', string='Kanban Valid Explanation', readonly=True) legend_normal = fields.Char(related='stage_id.legend_normal', string='Kanban Ongoing Explanation', readonly=True) - duration_str = fields.Char(compute='_compute_duration_str') # Seats and computation seats_max = fields.Integer( string='Maximum Attendees Number', @@ -265,11 +263,6 @@ class EventEvent(models.Model): end_tz = fields.Datetime.context_timestamp(event, event.date_end) event.is_one_day = (begin_tz.date() == end_tz.date()) - @api.depends('date_begin', 'date_end') - def _compute_duration_str(self): - for event in self: - event.duration_str = _format_time_ago(self.env, event.date_end - event.date_begin, add_direction=False) - @api.onchange('is_online') def _onchange_is_online(self): if self.is_online: diff --git a/addons/event/static/src/scss/event.scss b/addons/event/static/src/scss/event.scss index b300ab54b1a..ec7ff14cc77 100644 --- a/addons/event/static/src/scss/event.scss +++ b/addons/event/static/src/scss/event.scss @@ -1,44 +1,27 @@ .o_kanban_view.o_event_kanban_view { - .o_kanban_record { - position: relative; - padding: 0; - display: flex; - .o_kanban_record_title { - font-size: 1.2em; - } - .o_event_left { - flex: 1 1 25%; - color: white; - background-color: $o-brand-primary; - padding: 8px; - .o_day { - font-size: 26px; - } - } - .o_event_right { - padding: 8px; - margin-left: 8px; - width: 70%; + .o_kanban_content { + min-height: 130px; - .o_event_stat { - padding: 0; - height: 35px; - width: 60%; - } + .o_event_fontweight_500 { + font-weight: 500; } - .o_event_float_right { - right: 8px; - top: 40px; + + .o_event_fontsize_09 { + font-size: .9rem; } - .o_event_bottom_right { - width: 60px; - right: 8px; - bottom: 8px; - img { - width: 20px; - height: 20px; - object-fit: cover; - } + + .o_event_fontsize_11 { + font-size: 1.1rem; + } + + .o_event_fontsize_20 { + font-size: 2rem; + } + + .o_event_fit_20 { + height: 20px; + object-fit: cover; + width: 20px; } } } diff --git a/addons/event/views/event_views.xml b/addons/event/views/event_views.xml index dcf75e6a64a..c1f93eda3d9 100644 --- a/addons/event/views/event_views.xml +++ b/addons/event/views/event_views.xml @@ -328,6 +328,7 @@ + @@ -340,51 +341,49 @@ - -
-
-
-
- - -
-
-
-
-
-

-

-

-
Duration
-
-
-
+
-
- - - -
diff --git a/addons/event_sale/models/event_event.py b/addons/event_sale/models/event_event.py index 923f0d32ee0..1d7bc163a36 100644 --- a/addons/event_sale/models/event_event.py +++ b/addons/event_sale/models/event_event.py @@ -37,16 +37,13 @@ class Event(models.Model): event_ticket_ids = fields.One2many( 'event.event.ticket', 'event_id', string='Event Ticket', copy=True) - sale_order_lines_ids = fields.One2many( 'sale.order.line', 'event_id', string='All sale order lines pointing to this event') - - sale_total_price = fields.Monetary(compute='_compute_sale_total_price') + sale_price_subtotal = fields.Monetary(string='Sales (Tax Excluded)', compute='_compute_sale_price_subtotal') currency_id = fields.Many2one( 'res.currency', string='Currency', - default=lambda self: self.env.company.currency_id.id, readonly=True) - + related='company_id.currency_id', readonly=True) start_sale_date = fields.Date('Start sale date', compute='_compute_start_sale_date') @api.onchange('event_type_id') @@ -67,12 +64,14 @@ class Event(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('sale_order_lines_ids') - def _compute_sale_total_price(self): + @api.depends('company_id.currency_id', + 'sale_order_lines_ids.price_subtotal', 'sale_order_lines_ids.currency_id', + 'sale_order_lines_ids.company_id', 'sale_order_lines_ids.order_id.date_order') + def _compute_sale_price_subtotal(self): for event in self: - event.sale_total_price = sum([ + event.sale_price_subtotal = sum([ event.currency_id._convert( - sale_order_line_id.price_reduce_taxexcl, + sale_order_line_id.price_subtotal, sale_order_line_id.currency_id, sale_order_line_id.company_id, sale_order_line_id.order_id.date_order) @@ -84,3 +83,12 @@ class Event(models.Model): non_open_events = self.filtered(lambda event: not any(event.event_ticket_ids.mapped('sale_available'))) non_open_events.event_registrations_open = False super(Event, self - non_open_events)._compute_event_registrations_open() + + def action_view_linked_orders(self): + """ Redirects to the orders linked to the current events """ + sale_order_action = self.env.ref('sale.action_orders').read()[0] + sale_order_action.update({ + 'domain': [('state', '!=', 'cancel'), ('order_line.event_id', 'in', self.ids)], + 'context': {'create': 0}, + }) + return sale_order_action diff --git a/addons/event_sale/views/event_views.xml b/addons/event_sale/views/event_views.xml index 277805bb66f..9856e1cb2bf 100644 --- a/addons/event_sale/views/event_views.xml +++ b/addons/event_sale/views/event_views.xml @@ -88,6 +88,21 @@ event.event + + + + @@ -145,18 +160,6 @@ - - event.kanban.inherit - event.event - - - - -
Sales
-
-
-
- event.event.ticket.form event.event.ticket