The attribute `widgets` has been renamed in rev https://github.com/odoo/odoo/commit/7ff8aa73e17b281b3e2bc4c7275d020eab0204e7#commitcomment-22116249
However, KanbanRenderer still uses a `widgets` attribute, not for the fields
widgets but for its columns (or records if ungrouped).
These widgets weren't correctly destroyed since then.
This was causing an issue when you were trying to quick create a record after a
column creation (that generates an update): the quick create was added in the
first old column (which was not in the DOM anymore) so you couldn't see it.
The kanban group expects to have local ids in its data and not the whole
datapoint.
This was causing a traceback when adding a new column after adding a record.
Correctly display 'Pay online' or 'View online' depending on payment
required option. Also correctly set the URL that comes from the
get_access_action method.
Purpose
=======
In POS, it is hard-codded in such a way that grouping will be done for the
uom category that has database id == 1.
Specification
=============
We have solved this issue: we have added a new boolean field in the uom category form view that
If a user chooses this option then products having that uom category will be grouped in the POS.
Both uom category Unit and Weight have been set to groupable by default.
- Removed the hardcoded part of groupable for uom which had database id == 1,
Now grouping will be done on 'groupable' field of "product.uom", which is
related to the field of the same name on "product.uom.category".
- Only the `Unit` uom category is grouped by default
cgi.escape is unsafe (quote=False by default) and deprecated in Python
3. We already have an openerp.tools.misc.html_escape version which
forwards to the (modern and safe) werkzeug.utils.escape, just use that
everywhere, and convert extant uses of werkzeug.utils.escape to
utils.html_escape as well so that we do the same thing everywhere.
The vendored html2text is *really* old and absolutely not
P3-compatible.
There is a maintained version on Pypy which is, so use that and stop
vendoring html2text.
In Python 3 the native acceleration module was merged into pickle
directly.
For cross-version simplicity, just use the base module in Python 2 as
well, we can reintroduce the accelerator somehow if it turns out too
much of a performance hit.
In Python 3, all of these were "consolidated" under urllib(.request,
.parse, .errors) which is inconvenient.
Since we already have hard dependencies on requests and
werkzeug(.urls, which is a backport of Python 3's unicode-aware
urllib.parse) migrate *everything* to that.
A sticking point is urllib2.URLError, those were (mostly) replaced by
the slightly more general IOError which URLError extends.
* SMTPLib[P3] uses a debug method on ``SMTP`` rather than a global
``stderr``
* email.Encoders is a deprecated & outdated (since 2006) alias for
email.encoders
If there are open rescue sessions there will be multiple opened
pos.session records with the same user.
A better solution would be to make the POS client send back the
pos.session id it belongs to and use that instead, but this would be
unsuitable for a stable release. It will instead be done in master.
opw-743318
In 4e0e376b0 an iframe for the readonly preview was added when
displaying html fields.
In e5112ee00 this iframe was only used if style-inline was set in the
widget options.
This brought an incompatibility if the not iframed preview contained an
iframe (eg. a youtube video which is then resize to a 30px height) which
is solved by this commit.
opw-725161
closes#16955
* exceptions have lost their ``message`` attribute
* ``raise type, value, tb`` has been removed so add a compatibility
shim to pycompat to raise a new exception with an existing traceback
In Python 2, to raise a new exception but reuse a traceback requires a
special form of ``raise`` (``raise etype, evalue, tb``).
In Python 3, this is now done via a ``with_traceback`` method on
exception objects.
However this requires a bit of trickery as the former is invalid
syntax in Python 3, hence pycompat bridge created via an exec for
Python 2.
Previously, the string attribute of the field node was ignored
in the title of the form dialog and it always displayed the
string value of the python field definition instead, which is
a default value instead.
Additionally, I took this opportunity to add tests for other
similar dialog titles which actually worked already with the
string attribute of the field node but were not tested yet.
Previously, when a checkbox was re-rendered, it was losing focus
since it was removed and re-created. Now, if the checkbox itself
is the origin point of the re-rendering, we give the focus to the
newly re-rendered checkbox, resulting in a seamless experience
just as if the checkbox was never removed and re-rendered.
In some cases, we had duplicated footers in form view dialogs. It
actually happened when the view was reloaded, which is not particularly
frequent, but happens most of the time the user clicks on an action
button, which does not close the window.
To reproduce the issue, you can open the lunch module, click on the
'Feeling Lucky' button. It will open a form view with a special button
in the footer: 'I'm feeling lucky'. Clicking on that button will return
an error (no order matches the criterion), and will trigger a form
reload. Then, you will see two footers: one in the modal footer, the
other one in the form renderer.
The solution to this issue is to make sure, when we update the view and
a footer tag is found in the form renderer, to replace the current
footer buttons by these new buttons.
PyPDF is unmaintained and abandoned (as noted on its home page
http://pybrary.net/pyPdf/) and was never updated to Python 3. PyPDF2 is
a fork which provides a mostly compatible API and is P3-compatible.
Replace PyPDF by PyPDF2.
When calculating the cost price or the traceability between the consumed
and produced quants in a production order, we need to take into account
the extra moves that are added in the action_done (move_validate)
opw-715541
Purpose
=======
ja_JP: the implemented language font in Odoo is not Japanese but Chinese.
In Japan address structure is different:
First: Postal code
Next: City + ward (like a neighbourhoos name)
Next: Building (all buildings have names)
Name: Customer or Company
Specification
===========
New address structure for Japan:
%(zip)s
%(state_name)s %(city)s
%(street)s
%(street2)s
%(country_name)s
In Countries form view, add one selection field which set the customer name position in reports base on the customer country settings.
The slideshow image gallery code was quiet old and ugly. This commit
refactores it so that it works better, especially its responsiveness.
Before this commit, the number of thumbnail images was limited to 10.
If there were more images than 10, the user was able to navigate
between groups of 10 images thanks to arrow buttons. The problem is
obvious: on small devices, 10 images is too much. Now this "10" limit
is not fixed, it is determined according to the width of the browser
at the time the user loads the snippet.
Some animation and style was also wrong in some cases.
This commit was made as a 10.0 fix, the snippet should keep improving
in advanced versions.
Handling datetime is not a good idea, mostly
when computing different in terms of days.
Forcing the hour (time) will set the tests correctly
regarding the working hours, and the datetime
difference, independently of the execution time
of the test.
Previously to commit https://github.com/odoo/odoo/commit/531d641375f5cee7d3a5e629f6b1eaceee8b2739 website
menus checkboxes change did remove all menu entries. They were then
created again depending on checked entries.
That commit changed that behavior to try to create only missing menu
entries and remove only extra entries. However the extra entries removal
was not correctly done.
This commit now checks existing menu entries and remove menu entries that
should not exist depending on checked options. Only standard menu entries
are removed aka menu entries generated by the event module. This means
custom menu entries added for the event should be kept to avoid loosing
customization.
Putting fixed width on button is obviously always a bad idea as
traduction may change the inner text size. Besides, removing the
fixed width does not change the design anyway.