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.
* cross-version metaclass spec
* more formally deprecate browse_record and browse_null since they
were using metaclasses anyway
* update docstrings referencing the latter
Purpose
=======
Internal categories are only useful for accounting & inventory.
-> so they should be only visible for such modules
Also terms are confusing: internal category -> category "internal" is not obvious
Specification
=============
- remove internal categories menus from:
sales
website_sale
pos
- rename menu in:
purchase
inventory
- add menu to:
accounting
products must be visible even if account.accountant is not installed
categories only visible if account.accountant is installed
- rename categories in product form:
- category
- pos category
Because when it does, it can create a cycle in the graph of
implied groups. This happens when the option 'Sort products
in sections with subtotals and page-breaks' is checked in the
Sales settings. In this case, being in group_user implies to be
in group_sale_layout, and being in group_sale_layout implies to
be in group_user.
This is a problem for groups display in the 'Users' form view: the
employee groups are no more linear, and thus no more displayed as
a selection field, but there is an 'Employee' section where each
of the employee group can be checked. Activating the option in the
Sales setting should have no impact of the groups hierarchy of HR.
Moreover, there have been several imilar issues on production
databases, probably due to this cycle, but that we haven't been
able to fully understand/reproduce yet: with this option in the
'Sales' settings activated, after a mysterious operation, the
'Users' form view was broken, because the selection field
'sel_groups_'for HR was still referenced in the view, but didn't
exist anymore (as HR groups weren't displayed as a selection field
anymore).
Before this commit, the new form view implementation was rendering
<newline/> tags as real <newline/> DOM element. The wanted behavior
is now restored:
- As outer group direct child, produce a <br/> tag, forcing the next
group children to be on a new line
- As inner group direct child, produce nothing but forces the creation
of a new <tr/> (for the next group children)
The original goal of the commit was to implement a missing behavior
for label tags in form view. This finally need some deeper refactoring
for it to work so this commit does not introduce any change in behavior,
only comments explaining the problem.
When a field widget switches between readonly and editable states, it is
fully rerendered. Labels have sometimes to get a specific class when
their associated field is (become) readonly and without any value. This
condition was evaluated on the initial widget and not on rerendered
ones.
Note that this commit only restores an already implemented behavior
broken by https://github.com/odoo-dev/odoo/commit/8f9362809e91ff7c2876ab464017abb13a4e0974
... but this time a test will prevent a new breaking
Even if the `default_order` attribute should be like 'name,id desc,coucou'
we want to support the syntax 'name, id desc, coucou' (i.e. with spaces after
the comma).
The commit also patches the mock server.
Usecase: A person scans various products in a warehouse or the network is slow.
Only one request per product must be made, the rest is changing the number locally
and all performed scans (products or actions) must not be lost.
The mutex ensures that the scan is performed in the correct order.
Functionality deprecated since v9
Add also some small rendering fixes for manual reconciliation:
* display congrats only once
* display journal_id as required
* use isValid to create a new proposition line
* Can erase all proposition lines in manual reconciliation
Purpose
=======
When sending a proforma by email, the email template is correclty rendered. But 'Quotation #' id displayed on the printed report instead of 'Pro-forma' #
Specification
=============
- Retrieve correctly the context key in the template
- Remove the associated ir.actions.report.xml as we cannot pass a specific context from there
Purpose
=======
Improve readability on mobile
Specification
=============
Activate Kanban view on those so it could be displayed by default on mobile instead of view list
List of impacted modules:
- base : kanban for currencies
- base : kanban for users
- base : kanban for Companies
Purpose
=======
Improve readability on mobile
Specification
=============
Activate Kanban view on those so it could be displayed by default on mobile instead of view list
List of impacted modules:
- report_intrastat: kanban for intrastat
- google_drive: kanban for Google Drive(Templates)
- anonymization: kanban for anonymized fields
Purpose
=======
Improve readability on mobile
Specification
=============
Activate Kanban view on those so it could be displayed by default on mobile instead of view list
List of impacted modules:
- mass_mailing: kanban for mailing lists
- mass_mailing : kanban for contacts
- marketing_campaign: kanban for campaigns
- marketing_campaign : kanban for segment
- survey: kanban for answers
- project : kanban for config >> project(reuse project dashbord kanban)
- project_issue_sheet: kanban for stages
Purpose
=======
Improve readability on mobile
Specification
=============
Activate Kanban view on those so it could be displayed by default on mobile instead of view list
List of impacted modules:
- hr_holidays: kanban for leaves summary
- hr_holidays: kanban for allocation request(reuse leaves summary)
- hr_holidays: kanban for leave details(reuse leaves summary)
- hr_attendance: kanban for attendances
- hr_timesheet: kanban for activities
- hr_contract: kanban for contracts
- hr_recruitment: kanban for Stages
- hr_recruitment: kanban for Job Positions(reuse Job Positions dashboard)
- lunch : kanban for previous order
- lunch : kanban for employee payment
- lunch : kanban for control accounts reuse kanban of employee payment
- lunch : kanban for control vendors reuse previous order
- lunch : kanban for product
- lunch : kanban for alerts
- lunch : kanban for today's orders(reuse previous order)
- website_event_track: kanban for track stages
Purpose
=======
Improve readability on mobile
Specification
=============
Activate Kanban view on those so it could be displayed by default on mobile instead of view list
List of impacted modules:
- account : kanban for purchases payments
- account : kanban for journal entries
- account : kanban for chart of accounts
- account : kanban for budgets
- account_analytic_default : kanban for analytic defaults
- account_asset : kanban for assets
- account_asset : kanban for asset types
- account_budget : kanban for Budgetary Positions
- account : kanban for fiscal positions
- account : kanban for taxes
- account : kanban for payment terms
- account : kanban for bank accounts
- account : kanban for journals(reuse Accounting Dashboard)
- analytic : kanban for analytic accounts
- analytic : kanban for analytic entries
Purpose
=======
Improve readability on mobile
Specification
=============
Activate Kanban view on those so it could be displayed by default on mobile instead of view list
List of impacted modules:
- stock: kanban for incoming products
- stock_picking_wave: kanban for picking waves
- stock: kanban for reordering rules
- stock: kanban for inventory adjustments
- stock: kanban for stock moves
- purchase_requisition: kanban for purchase agreement
- purchase_requisition: kanban for purchase agreement types
- procurement: kanban for procurement exceptions
- mrp: kanban for unbuild orders
- mrp: kanban for waiting availability mo
- mrp: kanban for routing
- mrp: kanban for bill of materials
- mrp_repair: kanban for repair orders
- mrp : kanban for work order messages
- mrp : kanban for productivity losses
- mrp : kanban for Orders to Plan(reuse Manufacturing Orders
- mrp : kanban for work centers(reuse Work Centers Dashboard)
- maintenance: kanban for equipment categories
- barcode : kanban for barcode nomenclatures
Purpose
=======
Improve readability on mobile
Specification
=============
Activate Kanban view on those so it could be displayed by default on mobile instead of view list
List of impacted modules:
- point_of_sale: kanban for pos orders
- point_of_sale: kanban for pos session
- point_of_sale: kanban for pos category
- point_of_sale : account journal dashboard kanban in account can be used in payment methods
- pos_restaurant: kanban for floor plans
- pos_restaurant : kanban for order printer(use default kanban)
- pos_mercury: kanban for mercury configurations(use default kanban)
- point_of_sale : kanban for configration >> point of sale (Reuse Point of Sale (dashboard))
Purpose
=======
Improve readability on mobile
Specification
=============
Activate Kanban view on those so it could be displayed by default on mobile instead of view list
List of impacted modules:
- crm: crm leads kanban
- membership: kanban for membership config
- product : kanban for pricelists
When the list view of 'ir_cron' is opened, the key 'active_test' is set
to False in the context to see all cron, even the archived ones.
The problem by passing 'active_test' in context is that it's propagated
to all actions launched from this view, for example whan you run
manually a cron, this key is passed to the cron action, which may leads
to call some actions on archived records which is not intended.
To fix this issue, we removed the key 'active_test' from context and
instead create a filter that show all crons set by default.
Current new implementation of the form view ignored several properties
linked to <group/> elements:
- groups' col attributes were considered to always be 2
- groups' children colspan attributes were considered to always be 1
- elements different than <field/> and <label/> in groups were forced
to their own row
- it was not possible to have a group hierarchy deeper than 2
- <td/> elements widths were not properly set
- ...