Files
odoo_source/addons/website_event_track/__manifest__.py
T
Aurélien Warnon d63674d989 [IMP] website_event_track: submit track proposals using AJAX
Currently, track proposals are submitted through an HTML form with an "action"
attribute, which requires that the associated route returns a redirect
response.

However, redirecting to a different page comes with its set of issues.
Indeed, when the track is submitted, the user that just submitted the track no
longer has access to it (because it's not published).

In 157a1d77058da97954edc9efba6ab9f43c7d13a2
We attempted to resolve this issue by checking if the partner set on the track
is the same as the partner set on the website.visitor record.
However, this does not handle every use cases since when specifying different
contact information, we create a different res.partner, making the check fail.

In this commit, we rework the track proposal submission to use AJAX instead.
This allows to dynamically show a "success" message while staying on the same
page, removing the need for redirects and "complex" ACLs checks.

While the main goal of this change is to avoid the need for that security
check, it also has a few additional minor advantages:
- Slightly faster UI, as you don't have to wait for a full page reload
- Fewer routes to maintain
- Easier and more thorough validation handling (current code returns a ugly
  error page if validation fails server-side)
- Code makes a bit more sense, as we don't have a template that varies from
  "form" to "success message" depending on the presence of a "track" variable

Task-2618734
UPG PR odoo/upgrade#2722

closes odoo/odoo#74848

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2021-08-17 14:28:17 +00:00

64 lines
2.5 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': 'Advanced Events',
'category': 'Marketing',
'summary': 'Sponsors, Tracks, Agenda, Event News',
'version': '1.3',
'description': "",
'depends': ['website_event'],
'data': [
'security/ir.model.access.csv',
'security/event_track_security.xml',
'data/event_data.xml',
'data/mail_data.xml',
'data/mail_template_data.xml',
'data/event_track_data.xml',
'views/mail_templates.xml',
'views/event_templates.xml',
'views/event_track_templates_agenda.xml',
'views/event_track_templates_list.xml',
'views/event_track_templates_reminder.xml',
'views/event_track_templates_page.xml',
'views/event_track_templates_proposal.xml',
'views/website_templates.xml',
'views/event_track_views.xml',
'views/event_track_location_views.xml',
'views/event_track_tag_views.xml',
'views/event_track_stage_views.xml',
'views/event_track_visitor_views.xml',
'views/event_event_views.xml',
'views/event_type_views.xml',
'views/res_config_settings_view.xml',
'views/website_visitor_views.xml',
'views/event_menus.xml',
],
'demo': [
'data/event_demo.xml',
'data/event_track_location_demo.xml',
'data/event_track_tag_demo.xml',
'data/event_track_demo.xml',
'data/event_track_demo_description.xml',
'data/event_track_visitor_demo.xml',
],
'assets': {
'web.assets_frontend': [
'website_event_track/static/src/scss/event_track_templates.scss',
'website_event_track/static/src/scss/event_track_templates_online.scss',
'website_event_track/static/src/scss/pwa_frontend.scss',
'website_event_track/static/src/js/website_event_track.js',
'website_event_track/static/src/js/website_event_track_proposal_form.js',
'website_event_track/static/src/js/website_event_track_proposal_form_tags.js',
'website_event_track/static/src/js/event_track_reminder.js',
'website_event_track/static/src/js/event_track_timer.js',
'website_event_track/static/src/js/website_event_pwa_widget.js',
'website_event_track/static/lib/idb-keyval/idb-keyval.js',
],
'web.assets_qweb': [
'website_event_track/static/src/xml/event_track_proposal_templates.xml',
],
},
'license': 'LGPL-3',
}