- Load more was invisible; now also add a little bit of styling
- Small column records were not centered in their column
- Add a column padding bottom to allow seeing reaching the scrollend
- Column create was misaligned since some padding changes
* Fix a bunch of ill-documented/incomplete/incorrect method docs
* add start of Sphinx extension to extract & integrate jsdoc into
Sphinx documentation:
- parse JS files (and don't blow up), uses a fork of pyjsparser as
the project currently does not parse comments
- extract cross-module dependency information
- parse JsDoc comments using pyjsdoc and infer structure from code &
jsdoc
- ``ast`` CLI printing a simplified AST of the input files
- ``dependencies`` creating a dependency graph of either all modules
in the provided input files or the modules matching the specified
filters (warning: will not work if missing dependencies),
generates a .dot file
- ``extractor`` generating a plain text module documentation (mix of
rst and markdown styles, not anything formal)
* sphinx extension with an "automodule" directive taking a module name
and generating the documentation for it
Purpose: Add button to see the number of
abandoned carts and the ability to send
a recovery email to those customers.
On the abandoned carts menu, you can see
the SO from the website where no reminder
email has been sent.
By selecting them, you can send an email
to the customer to tell him there is still
a cart waiting.
Clicking on the link, he can reuse his old
cart or merge it with his current one.
An abandoned cart is a SO from a website
sales team, and created after a treshold
parametered by a 'delay' settings (number
of hours to be considered as abandoned).
The `upgrade_boolean` widget should display an `Enterprise` label next to it.
There is however an issue when a `label` is specified for this field. In this case,
the `Enterprise` label should be placed next to the field label (and not the field
itself).
The easiest solution would have been to instantiate the field widget with its label,
but this can't work because the field widget is instantiated before its label.
We thus re-render the widget after its label creation.
It allows to see only records from a given model without allowing to
change the model. It gives a better experience to users that choose
records using a reference field when the model comes from some other
choice and should not be changed.
Currently when people answers an email its statistics are set to replied
updating its replied field. However if the blank gif used to track the
opening fails for whatever reason we could have mail considered as replies
but not opened.
We consider that it is not common to reply to an email people did not
open. Let us therefore set a replied email as also opened.
This commit removes the strange selection box based on a magic flag and
some strange methods returning a string. Instead just allow to send mass
mailing on all models inheriting from mail.thread using the is mail
thread flag.
Various addons are updated to remove the _mail_mass_mailing class
attribute used to determine mass mailing capability.
We consider people could send a mass mailing on every model inheriting
from mail.thread. It makes no sense to limit it to a given set of addons.
Currently there is no way to know on mail statistics if the customer
clicked on a link or not. This commit adds support of click like what
is already implemented for opened or replied. It stores the date when
the first tracked link has been clicked. A clicked mail is considered
as being opened related to its state if no other statistics has been
checked.
This commit factorizes the link.tracker.click values computation out of
the add_click method. This method is called when customers click on links
in email that are tracked in Odoo.
Purpose of this commit is
* to effectively put mass mailing related code into mass mailing.
Currently link_tracker holds code related to mass mailing which is
not in its dependency tree. Let us therefore try to be a bit modular
and add a proper inheritance in mass mailing;
* allow addons to inherit from the click values prepare method to add
specific values depending on their behavior like mass mailing adding
links to a mass mailing and a mass mailing campaign;
Currently mass mailing automatically computes the remaining recipients
to mail based on existing statistics and A/B testing. However in some
cases we would like to send the mailing on a given set of records. An
example of use is to use the mass mailing mechanism on records coming
from marketing activities. This commit adds this feature by adding an
optional parameter to send. If not given it falls back on the classic
mass mailing behavior.
website.page = old ir.ui.view with page=True
website.redirect is a new mechanism to replace in the futur the ir.attachment
mechanism of redirect.
From now, we don't have a specific /page controller to serve 'page'.
We use a new model website.page which is rendered if none route matches the url
and that the field 'url' on website.page matches the request.httprequest.path.
The order to serve a path is:
- Routes defines in controllers (/shop, /blog, ...)
- ir.attachment with name matching the path
- website.page with url matching the path
- website.redirect with url_from matching the path
- 404
To improve:
- allow regexp in website.redirect model
- allow to edit the view_arch from the page.management via redirect backend
(needed when traceback in the page, or when modifying a js/css/less/...)
- Brand new UI for Discuss client action (with tabs for for
Discuss client action (with tabs for Inbox, chats,
channels...)
- In mobile, conversations always open in Chat Windows
- Chat window UI improved (both mobile and desktop)
- Channels preview (used in the systray menu, and now in the mobile
UI of Discuss) improved
- Other minor less tweaks
Task #31446
PR #16995
- Extract mobile specific code for the client action to a specific
file
- Massive clean of less rules
- Unify channels preview of the systray dropdown and the mobile UI
of Discuss
- Ensure to only load the last message of each channel in mobile,
as this is not used in desktop (unless the user opens the systray
menu)
- Make livechat available in Discuss mobile UI
- Brand new UI for Discuss client action (with tabs for Inbox,
chats, channels...)
- In mobile, conversations always open in Chat Windows
- Chat window UI improved (both mobile and desktop)
- Channels preview (used in the systray menu, and now in the mobile
UI of Discuss) improved
- Other minor less tweaks
When a stock user want to create a lot an exception is raised saying
that he cannot modify a product.
This is caused by the field 'product_uom_id' on the model
'stock.production.lot' that is a related to 'product.product' and not
set as readonly in the 'stock.production.lot' view.
So by setting it as readonly, we don't set the uom to the server, and so
don't try to re-write it on the product
KanbanColumn instances are saved in an array in the renderer. The quick
create widget is always put in the first column found in this array.
Unfortunately, the array elements' order was broken after some
operations where column(s) are rerendered (like moving records).
* PYMES, non-profit associations, complete (large enterprises) CoA
* reviewed taxes, tax groups
* reviewed tags, account types for reports in l10n_es_reports
Thanks for the contribution and the original work, spanish community (esp. Pedro M. Baeza).
Was task 30669. Was PR #19154
- List view: sortable icon, do not force position to right
- Mail: do not vertically reposition systray's icons
- Form view: oe_subtotal_footer, minor design imp
Purpose
=======
Now if we want to create a product supplier info, it's impossible to select the template if it has no variant, which is rather annoying.
Specification
=============
Remove the attrs
The move line view when the option no suggest is checked doesn't work
because it hasen't been adapted during the refactoring of stock module.
So to avoid having differences between the view in no suggest and in
suggest, we use the same tree view that we reference. Because the views
shouldn't be different if we are either in suggest or no suggest