Commit Graph
45 Commits
Author SHA1 Message Date
Gorash 774a3fad0e [REF] base,all: Update modifier syntax: view migration
Apply of the migration script to update all view modifiers.

Part-of: odoo/odoo#104741
2023-08-18 09:49:13 +02:00
Julien Carion (juca) 6c412be2ea [IMP] *: coherent hotkey uses
This commit makes hotkey uses more coherent throughout the entire
codebase by setting alt+q as main shortcurt for confirm and default
actions and alt+x for cancel actions.

task-3370463

closes odoo/odoo#127469

Related: odoo/enterprise#43694
Signed-off-by: Mathieu Duckerts-Antoine (dam) <dam@odoo.com>
2023-07-19 18:24:15 +02:00
Victor Feyens 24ccf7d9b0 [CLN] *: useless type info for actions
The type fields of actions already defaults to
the model name in the base model definition.

Therefore, specifying `ir.actions.server`, `ir.actions.act_window`
& so on as type is useless (and adds noise since it's the same as
the action model).

closes odoo/odoo#114539

Related: odoo/enterprise#37855
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2023-03-08 17:33:37 +01:00
Florian Charlier a0e7f69513 [IMP] event{,_sale}: unstore seat fields
With stored computed seat attributes, the database can be flooded with update
queries for the stored values for the event (ticket) seats computations (such
as reserved, expected, and available seats).
This can especially occur when a communication is sent to many people about
an event with a registration link, many users may want to register at the same
time, possibly resulting in concurrent_update errors.

In this commit, we remove the `store=True` attribute of those fields, and
therefore remove the Reporting/Event feature depending on them and rewrite some
domain searches and _compute fields in the event and event_sale modules.

This also impacts the way constraints are enforced on the number of
registrations vs defined maximum as no stored value is directly available.

For performance reasons, all events and tickets are now shown on backend form
views, with seat availability added in their displayed name.

Misc
To avoid delaying the inevitable, the Event configurator modal/wizard now
validates event/ticket consistency at closing.

The UI of the RegistrationEditor wizard is also improved:
* A warning alert will tell users that free registrations were not confirmed
because of insufficient seat availability.
* A first step to better explain the consequences of the actions taken on the
modal was to be taken, here via the description and buttons wording.

Tests
Query counts are (indeed reduced) and updated. However, as local testing with
`test-tags=/test_event_full` ("tef_only") is currently not reliable, these
values were updated by applying the same change from the commit as the one seen
for the runbots, while a "?" is appended to show this uncertainty.

Task-2654816
See odoo/upgrade#3118

Part-of: odoo/odoo#81583
2022-05-31 13:57:24 +02:00
Fabien Pinckaers eedf37d6e2 [IMP] Better handling of indexes
Three supported types:
- btree (default for index=True)
- btree not null (when >90% of the data are null)
- gin trigram search (for char fields)

Review of indexes on all objects.

closes odoo/odoo#83015

Signed-off-by: Fabien Pinckaers <fp@odoo.com>
2022-01-19 16:52:23 +00:00
Kevin Baptiste 86aa7b78aa [IMP] *: introduce data-hotkey on form and modal views
Define `data-hotkey` on most used action buttons.

For the modals, the following keys are dedicated for "special"
actions:
 - Alt+G: add
 - Alt+V: save
 - Alt+Z: cancel

closes odoo/odoo#73275

Taskid: 2588233
Related: odoo/enterprise#19464
Signed-off-by: Kevin Baptiste <kba@odoo.com>
2021-07-15 08:39:49 +00:00
Adrien Widart 92e41b6ca6 [FIX] event_sale: recompute seats on SO deletion
When deleting a SO with an event ticket, the number of attendees becomes
incorrect

To reproduce the error:
1. In Settings, enable "Tickets"
2. On website, register an attendee to event E
3. In module Events, open E

Error: The number of attendees (X) is incorrect. If the user clicks on
it, there are X-1 attendees: the one added on step 2 has been deleted
but the number is not updated

When deleting a SO or a SO line, the associated registration is deleted:
https://github.com/odoo/odoo/blob/3fd3fc5f782f1422f578ad38e3fad444130273a8/addons/event_sale/models/event.py#L197-L198
This is the problem: it won't trigger the `compute` methods.

In the case above, this method won't be called:
https://github.com/odoo/odoo/blob/72ce1b867dc81672e6a73a586542b20216388a05/addons/event/models/event.py#L176
So the number of seats won't be updated

This fix suggests deleting the registrations from the ORM in order to
trigger the `compute` methods.

Note: Writing the tests revealed another problem. When deleting the SO,
if a wizard `registration.editor` exists and is linked to the SO, the
deletion will trigger an SQL constraint. This is the reason why the
`ondelete` has been added to the field `sale_order_id`

OPW-2452760

closes odoo/odoo#73260

X-original-commit: 89ddb7533b82160f09b7815a292c209f8d39ece5
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Signed-off-by: Adrien Widart <adwid@users.noreply.github.com>
2021-07-05 17:52:19 +00:00
Thibault Delavallée 305009a4d4 [FIX] event_sale: fix registration update from sale order
Since yet another change in view / server synchronization order line was
not correctly propagated to registration editor values. Registrations
were created several times when confirming an order as backend did not
receive order line information.

Task ID-2344167

X-original-commit: 406795fbee7be60c3346fa00a20755bfc1c8eff3
2020-09-28 10:12:23 +00:00
Jeremy Hennecart 3f650c0f85 [IMP] event(_sale): slightly improve event views to prepare event_crm inclusion
Prepare event_crm link module addition by cleaning some views. Notably buttons
box has to be added directly in event and not in event_sale anymore. It allows
to add content in it independently from event_sale presence.

LINKS

Task ID 2166679
PR #52334
2020-06-10 16:09:59 +00:00
Jérémy HennecartandThibault Delavallée 5ccfdfd96d [REF] event_sale: create registrations in batch in SO confirm or registration editor
PURPOSE

Create event registrations in batch. It will allow to customize group-creation
of registrations, notably with automated rules for crm / event synchronization.

SPECIFICATIONS

Improve registration editor to create registrations in batch. Also be less
dependent from context in its code, currently a bit weird.

Move creation of registrations based on line from _action_confirm to
action_confirm. Indeed it adds complexity and we are unsure it really helps
having two methods.

Update based on lines now create registrations in batch instead of one by one.

LINKS

Task ID 2258685
Prepare Task ID 2166679 (create leads from registrations)
PR odoo/odoo#51341

Co-Authored-By: Jeremy Hennecart <jeh@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2020-05-18 11:58:06 +00:00
Thibault Delavallée 83a7fb5f92 [IMP] event_sale: add some tests for registration update
In this commit we add some tests related to sale order / event registrations
synchronization, notably

  * registrations automatically created when _update_registrations of an SO
    line is called, for example at SO confirmation;
  * using the registration editor;

LINKS

Task ID 2258685
Prepare Task ID 2166679 (create leads from registrations)
PR odoo/odoo#51341
2020-05-18 11:58:06 +00:00
Patrick Hoste d2e02976e2 [REF] (website_)event(_sale): change seats_availability field to seats_limited
PURPOSE

Change seats_availability selection field into a boolean field
and rename it to seats_limited for consistency.

SPECIFICATION

Change all the tests accordingly.

Task ID : 2198660
PR : #46659
2020-03-31 06:34:45 +00:00
Nicolas Lempereur b53cf339e4 [FIX] web,*: phone number ltr even in rtl language
Currently there is two ways in view to have a phone number displayed in
LTR in a RTL language:

- have `widget="phone"` on a field
- have a class o_force_ltr on the field

But this is currently done very rarely and fail in list view because the
direction of data cells is used, eg.:

```
<div style="direction:rtl">
  <table><tr><td style="direction:ltr">
      <span>+1 2 3</span>
  </td></tr><tr><td>
      <span style="direction:ltr">+4 5 6</span>
  </td>/tr></table>
</div>
```

will be displayed as:

+1 2 3
6 5 4+

In this commit, we use unicode-bidi* to optionally add an additional
level of embedding so direction is taken into account by the
bidirectional algorithm.

This commit also adds o_force_ltr class or phone widget on phone fields
where it is not already defined.

*: https://drafts.csswg.org/css-writing-modes-3/#propdef-unicode-bidi

opw-2224828
closes #48425

closes odoo/odoo#48588

X-original-commit: ab067218e069f0a92610c3f0d4137e563e47755c
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
2020-03-30 13:50:04 +00:00
Thibault Delavallée 30af656e1a [REF] event: remove origin field of registration
Origin is a char field holding the registration "source name". Its only use
is to copy the sale order name when registration is linked to a sale order
in event_sale. As we can filter / group / search on sale order or sale order
line directly instead of the origin there is no need to keep this char field.
If necessary to some internal reasons it can simply be added through studio.

LINKS

Task ID 2212297
Community PR odoo/odoo#47229
2020-03-23 10:07:32 +00:00
jvm-odoo 0036273aa5 [FIX] event_sale: no lines in the registration wizard on a SO
Reproduce the issue

    - Install Sales & Events
    - Create an event with tickets (remember the category you choose)
    - Configuration > Event categories
    - Check "Ticketing" and add your tickets types
    - Create a quotation with "EVENT_REG" product
    - Select your event and your ticket
    - Confirm the quotation

    A wizard open with no lines in registration.

Cause

    The backend response is different from the V12 due to some dark
    and deep changes. The old response was converting the
    `registration_event_ids` into a create action but it does'nt do
    that anymore.

This commit specifies the action for the `registration_event_ids`.

closes odoo/odoo#40596

X-original-commit: 727675e5fce6bd4b0627491d43a6d8844362dbc8
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-11-21 08:20:00 +00:00
Thibault Delavallée 62ac23f0b9 [ADD] event_sms: allow to schedule SMS in event communication
PURPOSE

Allow the user to schedule SMS communication on events

SPECIFICATION

In event.event form view:
  * rename tab 'Email Schedule' to 'Communication'
  * add a selection field at the beginning of event_mail_ids with label 'Send'
    and values 'Email' and 'SMS Text Message' (required with default value
    'Email');
  * add support of SMS template and SMS sending in event communication;

When sending SMS on event registrations, keep a log of what has been sent.
Use mobile or phone field of event registration as both may contain valid
values, like partner model.

Add SMS template data
  * Name: Event: Registration (see data)
  * Name: Event: Reminder (see data)

Improve registration model
  * add a mobile field to the attendees form view: https://nimb.ws/p0VvyS

Technically this task uses the newly-introduced API methods allowing to
send and schedule SMS.

LINKS

Task 1922187
Part of PR #34705
2019-07-25 11:47:20 +00:00
Adrian Torres 4b38cc6590 [REM] *: calls to @api.multi
Multi is the default api for methods, it is not necessary to explicitly
decorate methods with it, adds clutter and most people use it because
they see that the rest of the code uses it.

Done with `find . -type f -name '*.py' | xargs sed -i '/@api.multi/d'`
2019-07-17 14:13:12 +02:00
Hiral Bhavsar 3cd7ed07a2 [IMP] *: remove 'view_type' on window actions.
The old tree views don't really exist anymore, this odd pseudo-flag to
dispatch between "list" and "tree" tree views has no reason to remain.

Task 1937686

closes odoo/odoo#31243

Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2019-06-17 11:34:17 +00:00
Géry Debongnie 578c99475d [IMP] web: various small improvements to form view
This commit is a few small improvement/fixes to the web framework:

- allow placeholder attribute on input tags in form view
- only bind click event handler to buttons managed by the framework, not
  custom ones
- _onExecuteAction method in action manager properly fails if event
  cannot be properly handled

closes odoo/odoo#32458

Signed-off-by: Géry Debongnie (ged) <ged@openerp.com>
2019-05-02 07:14:52 +00:00
Aurélien Warnon 14f0e81e20 [IMP] event_sale: add an event configurator on SO lines
Purpose
=======

Commit 92b9e3684607fbb0c9a7d3f2331292eac51ebdea removed the SO line popup form and added all the event
information fields directly in the sale order line tree view.

The event information should be hidden by default because they are only relevant for 'event_ok' products.

This commit will add an event configurator widget that will open a wizard when the selected product is 'event_ok'.
The widget will allow configuring the 'event_id' and the 'event_ticket_id' fields so that they can be safely removed
from the sale order line tree view.

The user can also edit the event configuration by using a button next to the product_id dropdown field
if the product is configured as 'event_ok'.
2019-03-27 15:12:49 +00:00
Christophe Simonis 378b283c02 [MERGE] forward port branch saas-11.3 up to 83cc046e9a 2019-01-16 17:02:34 +01:00
Nicolas Martinelli 4c93e4be0d [FIX] event_sale: ticket
- Create a SO with an ticket for an event, confirm
- On the attendees wizard, click on 'Apply'

The event ticket is remove from the registration.

This is because the event ticket wasn't saved when creating the
registration line.

Complement of commits 7492c97bf4 and 0717bb6c0d

opw-1920464

closes odoo/odoo#30262
2019-01-16 10:47:40 +00:00
Nimesh Jethva d2ca8a1053 [IMP]marketing: Improvement in model description
Purpose of this commit is to give description more "business oriented"
because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers.

Related Task ID : 37311
2018-09-21 11:45:15 +02:00
qsm-odoo c59380bac5 [REF] *: BS4, rename btn-default to btn-secondary
BS4 "btn-default" class was replaced with "btn-secondary", which makes
more sense.
2018-07-27 12:36:54 +02:00
Goffin Simon 0717bb6c0d [FIX] event_sale: Expected attendees for event
When making a registration for event tickets from a SO, by clicking on apply
from registration.editor.form view, duplicated event registrations
were created(in function action_make_registration) because the registration_id
was not sent to the server.

opw:1824952
2018-03-15 17:30:22 +01:00
Nicolas Martinelli 7492c97bf4 [FIX] event_sale: confirm event
- Create an event with tickets
- Add the event in a SO
- Confim the SO
- Apply

An error occurs (record deleted).

Actually, the real error is hidden and is an insertion error in SQL on
`registration.editor.line` (`event_id` cannot be NULL).

`event_id` is mandatory but read-only, therefore it is not sent to the
server.

opw-787674
2017-12-14 13:19:45 +01:00
xmo-odoo b4429c2a91 [FIX] Various P3-related import changes
* LDAP import: python-ldap is not python3-compatible, pyldap is

  Warning: only supported from debian Stretch (current testing)?
  https://packages.debian.org/search?searchon=names&keywords=pyldap

* implicitly relative imports
* imports of moved or removed stdlib modules

issue #8530
2017-04-28 09:06:53 +02:00
Mitali Patel 5d4dd98af2 [IMP] website_event: apply checkout / buy process improvements
* reword various texts in website_event to avoid references to a sell
   or checkout process as website_event does not handle sakes;
 * if there is only one ticket available, propose to take one by default.
   Display Register Now instead of Order Now if tickets are free. Display
   an error if the user chooses no tickets in its registration.;
 * link in cart for event tickets redirects to event, not product;
 * confirm attendees only at invoice payment;
 * improve wording, use schedule instead of agenda.
2017-03-03 13:09:17 +01:00
Kinjal Mehta b0185e15cc [FIX] all: fix some common typos
Sale Order --> Sales Order
Sale Report --> Sales Report
Sale Team -> Sales Team
Payment Term --> Payment Terms
2016-12-22 13:29:38 +01:00
Christophe Simonis 341bea8f88 [MERGE] forward port branch saas-12 up to 43cb4ac 2016-10-10 13:00:05 +02:00
Christophe Simonis 3cdf429f8b [MERGE] forward port branch 9.0 up to e2ede31 2016-10-10 11:39:52 +02:00
Nicolas Martinelli 9548fcb2e5 [FIX] event_sale: confirm registration
When a user registers for an event on the front-end, the confirmation of
the associated SO will also confirm the registration. However, if a SO
is created manually and a ticket event is added to it, the confirmation
of the SO will not trigger the confirmation of the registration.

In the second case, the registration simply doesn't exist yet at
confirmation and is created by the method `default_get` of
`registration.editor`.

We make sure to confirm these registration when we make the final
reservation.

opw-688665
2016-10-10 10:24:57 +02:00
Christophe Simonis 235ed4b2c1 [MERGE] forward port branch saas-12 up to 9ad5f26 2016-08-20 18:08:19 +02:00
Christophe Simonis 3a2147d95c [MERGE] forward port branch saas-10 up to bc1a0a3 2016-08-20 16:57:36 +02:00
Thibault Delavallée c8a313d51e [IMP] various: use odoo for imports instead of openerp and update class names 2016-08-10 15:48:07 +02:00
Thibault Delavallée 90a5079d01 [FIX] various: fix fields index parameter in new API still called select 2016-08-09 10:26:53 +02:00
Shivam Dudhat 96fb5d41d9 [MIG] event_sale : migration to new api 2016-04-28 08:46:06 +02:00
Raphael Collet 6037f3a56d [REF] fields: change API and semantics of converter methods
The cache data format has been split between a cache format and a record format
(returned by accessing a field on a record).  We have the following converters:

                                   ANY FORMAT
                                       |
                                       | convert_to_cache
                                       v
                                  CACHE FORMAT
                                       |
                                       | convert_to_record
                                       v
                                 RECORD FORMAT
                                       |
                                       | convert_to_read
                                       | convert_to_write
                                       | convert_to_onchange
                                       | convert_to_export
                                       | convert_to_display_name
                                       v
                                 OTHER FORMATS

Modify the API of the converter methods to make them uniform (pass value and
record), and adapt their documentation.
2016-04-25 13:37:11 +02:00
Goffin Simon 81f34b977b [FIX] event_sale: get_default function
The get_default function must return the values to write in the same format
as in get_default defined in openerp/models.py

opw:652095
2015-10-15 16:55:33 +02:00
Ronak Baxi 393f136509 [IMP] *: Uniformize all modal footers
The main button has classnames btn btn-primary.
Other buttons have classnames btn btn-default.
No more 'or' between the buttons.
2015-08-19 08:10:45 +02:00
Paramjit Singh Sahota 8ada8b8276 [IMP] event, event_sale, website_event_track: usability improvements
Among others small improvements :

 - [event] remove automatic logging of new registrations on event; for big events
 it produces only noise
 - [event_sale] fix product creation from event management; better display of
 address and date of the event
 - [website_event_track] add a cancel state on the track model. The stat button
 on the event shows only not-canceled state. Also added some tips.
2015-08-11 16:11:19 +02:00
Thibault Delavallée 2984d65863 [FIX] event_sale: default value for 2many should be a valid command 2015-08-11 16:11:18 +02:00
Thibault Delavallée 56090ded69 [FIX] event_sale: wizard to edit registrations was failing due to some
strange construct in the context of an action. Basic code works well, no need to
try to do dirty things in the context.
2015-03-04 15:38:58 +01:00
Mahendrasinh Barad e2e38076aa [IMP] website_event_sale: validation of seats availability in cart.
Attendees are created and deleted on changing the quantity from the cart.

Added sale_order_id and sale_order_line_id fields on registrations, allowing
to find the order and the order line that created the registration without
to rely on origin and ticket.

Also fixed check_auto_confirmation, now in multi mode to avoid issues due to
the specific behavior of api.one.
2014-12-24 14:23:21 +01:00
Paramjit Singh Sahota ca862e7b85 [IMP] event: Split Ticket: registration are now for one attendee only.
Registration are now for one attendee only. When buying several seats for an event
you have now one registration for each attendee.

event: nb_register field is removed; as well as unnecessary user_id and it subscribe /
unsubscribe behavior. Also slighly cleaned some views.
event_sale: do not auto confirm registrations linked to a draft sale order. Note: strange
origin is a char field, not a sale_order_id. Added a small wizard to edit attendees
data when confirming a sale order containing event related lines.
website_event: when buying free tickets, ask for attendee details. Added template,
controllers to handle that behavior.
website_event_sale: when buying tickets, ask for attendee details. Events ecommerce
should be better integrated with online events, using inheritance to add details
instead of being very different.
2014-10-09 10:09:06 +02:00