Purpose
=======
When using Studio and adding a many2one field for example, it will be easier for a non technical user to find the model res.partner under the name "Contacts" than under the name "Partners".
There is now a single menu item for Website and Website Admin. Depending
on current user access rights it redirects to the dasboard or the website
itself. It allows to simplify the application choice and management when
installing notably ecommerce.
Dashboard itself is renewed. It now contains a header including important
data about sales as well as links towards other web applications. Sales
part of the dashboard is improved to display relevant data.
This commit refactors the sales part of website dashboard. It introduces
to main features
* header of dashboard now contains buttons related to ecommerce orders
and payments. It allows to quickly jump to the related business views;
* graph and summary is updated to display more precise data about orders,
carts, abandoned carts, orders to invoices and payment status.
This commit merge the two website menu items in order to ease user flow
inside Odoo. When clicking on the Website item a server action is called
that decides to redirect the user either to the dashboard if the user is
an admin or a website publisher, either to the website for other people.
Overriding this method allows to define a specific behavior. Future commit
will also redirect sales people to the website dashboard.
Dashboard itself is customized to add a header used to display a website
button. It will be used in future commits to add other new stuff to the
dashboard.
This commit adds required groups on website application menu items
like blog and slides. It also move Website Admin menu definition from
res config views to website views, because it is where it should
always have been defined.
This commit also update some sequences to reorder Apps.
The ISR is a payment slip report for account.invoice, that we automatically send and print with the regular invoice report (to ease usability, as these two reports usually go together).
[FIX] l10n_ch: italian translation
A field was missing for italian chart of account translation to work.
This field is referencing the bank account of the company issuing the invoice, so we default to the fist bank account for that company
[REF] account
Fix typo in id.
When a new page is created, we want to allow the definition of the xml_id
as 'website.XXX' in order to have clean url in the frontend and not always
take the same module name than the template module name. Since the page
with url 'page/website.XXX' are parsed by the website controller to be
displayed as 'page/XXX'.
e.g. in studio we create page on the fly and don't want url as:
'www.odoo.com/page/website_studio.XXX'
l10n_be
Label on Invoices: VAT-IN-V82-00-EU-S > replace by > TVA 0%
Tax name: TVA à l'entrée 0% Intracomm. - Services > replace by > 0% Intra. S.
Label on Invoices: 21% > replace by > TVA 21%
Tax name: 21% Cocontract. - Approvisionn. et marchandises > replace by > 21% Cocontract. M.
Tax group : taxes > replace by > VAT (!!! translation)
ETC.
This merge proposes to ease the use and configuration of events as well
as the use of event tracks and track proposals. This is done through
two main modifications
* first one aims at improving event categories so that they can be used
as configuration for events. Categories can now define default values
for automated mailing, ticketing, location management, questions to
attendees, ... Preconfigured data for event categories are added to
help user having finely-tuned events;
* second one aims at improve event track model. Tracks now use dynamic
stages with automated mailing, as well as kanban state, activities
and all common chatter features.
This commit adds several event categories as data in event modules. The
purpose is to help people using the event application with some help
on event configuration done through event categories.
This commit improve event.type (Event Categories) model and views in order
to ease event configuration through more detailed categories. The purpose
is to be able to define categories holding default data for website,
tickets, attendee mailing, ... Choosing a category on a new event takes
those default values to help users creating finely-tuned events.
Main configuration on event.type is
* auto confirmation, replacing the old system-wide auto confirmation
parameter
* seats limitation
* location: online events, timezone
* communication: reply-to email address, twitter hashtag, automated
mailing of attendees
* ticketing
* website parameters: display on website, display tracks, allow track
proposal
* question to attendees
* 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.
Purpose of this commit is to clean and ease the use of tracks in
event management.
* status is change to stages. Those are global for all event as we
consider track acceptation process as similar across events;
* change speakers many2many to a one2many. Most event have only one
speaker or at least a main speaker;
* add various chatter features: tracking of template, subtypes,
suggested recipients, ... Also add activities on tracks and their
various filters;
* add automatic mailing on stages like already done in tasks or
issues;
* tweak display of tracks on agenda. Event manager see unpublished
tracks with the right label in order to know the status of the various
event tracks.
* reporting: remove report.event.registration as it can be replaced by
pivot and graph views on event.registration model directly. The
custom SQL view does not add any valuable information;
* event: correctly take limitations from event category and check
minimum seats is lesser or equal to maximum seats;
* event: reorganize a bit the form view
* avoid some kind of random ordering of buttons;
* move seats availability directly in the form view;
* ticket page is now used only for ticketing purpose, not a mismatch
with seats;
* registration: attendees can be set as done only for confirmed events
to avoid confusion when working with draft events;
Misc usability
* event.type: rename event type to event category to have a unified
term across various event addons;
* event: stop tracking active field as it does not add interesting
information; it should not toggle everyday;
* event: track location as it does add valuable information;
* event: rename some labels to ease user experience;
* event.mail: add missing description and rec name;
Mass mailing option is activated on attendee and track models. Using
the _mail_mass_mailing parameter on class allows to see those models
in the mass mailing application without having bridge module.
This commit also improves the scheduled mail form view and slighty
improve labels related to scheduling mails on event.
When computing default recipients to mail on some records, take into
account models having a partner_email field. Indeed this method checks
for some commonly-used partner or email fields to find recipients.
This allows to avoid having custom methods in each model. This commit
adds support for partner_email email field used notably in event and
track management.
Currently when scheduling activities, duplicate logs are created. Indeed
a message is posted when scheduling an activity, editing it and marking it
as done. This leads to a lot of noise being created on records.
This commit remove logs when scheduling and updating an activity. A sole
message is posted when the activity is marked as done.
Scheduled activity display in chatter is also improved to better
differentiate the user creating the activity from the user who is
assigned to the activity.
Once it is deleted, the expense is blocked in the "posted" state.
Accounting entries should rarely be removed but never when linked to expenses
Closes#15704
All the fields defined in model "product.product" from module product_margin
are computed and not stored with the same function which is _compute_product_margin_fields_values.
This function has a deprecated argument which is field_names and this agrument is only used in
function read_group overwritten in this module in model "product.product. This overwrite of
read_group uses a variable "fields_list" with almost all the fields defined in "product.product"
in this module (excepted: date_from, date_to and invoice_state which are read from the context).
Each time, the fields total_margin, expected_margin, total_margin_rate, expected_margin_rate,
date_from, date_to, invoice_state were needed, nothing was returned due to the empty argument
field_names passed to this method. For example, when opening product.margin.form.inherit form
view.
In old API, it works because the compute was called with the list of the fields and in new API, it is not the case.
Closes#15604
opw:709962
The timezones are already managed in the JS.
So on the attendance check in/out screen when a user clocked out
after 8 hrs he got a message saying that he has been in for more than 12 hrs.
opw:710161
In case an exception (programming, out of memory or any other unexpected
failure), the cron_thread would crash and not recover until server restart.
Issue #15666 was an example of failure.
Courtesy of Nils Hamerlinck
If postgresql database is temporarly down, the cron thread may fail.
The cursor creation fails when trying to connect to the server which leads to
the cron thread to die (uncatched exception) and will not restart when postgres
is back.
Fixes#15666
The fuzzy search score algorithm is quite simple, but had an interesting
problem: for the search string 'AB DEF', the result 'XXAXXBXXXXXXX DEF' had
a higher score than the result 'ABX X DEF", because it has 4 consecutive
matching characters.
This commit slightly tweak the algorithm to take space into account, but
to make sure they are not used to compound the score for a string. This
means that space characters are not ignored, but are not really
as important as a normal character.