* 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
* crm, project
Add a new feature which allows to put a progressbar in the kanban
columns. The progressbar shows with the same color the amount of
records whose value of a given field are the same in the column.
It also indicate the sum of another given field or simply the total
number of records. It also allows to subgroup the column content.
To define a progressbar, add this as a direct child of the kanban
arch:
<progressbar field="<name of the field to use for subgroups>"
colors="{<one possible value for the above field>: <success, warning or danger>, ...}"
sum="<name of the field to sum or nothing to use total number of records>"/>
Also:
- Properly update record model data's parentID when moving a record
- ...
Before this commit, asking the basic model for a 'read_group' operation
was automatically followed by other operations to read groups content
('search_read', 'read', ...). This commit introduces an option to only
perform a 'read_group'.
Before this commit, when a record was moved in a kanban view, the
model saved the record change then manually updated the related groups
(to avoid performing a read_group and reloading the whole view). This
manual update can in fact be performed before the record save. This
allows customizing the save operation in some cases where a real
read_group would be needed.
Normal flow for one record's changes to be saved is:
0) (use `_setValue` for fields)
1) `trigger_up('field_changed')`
2) field manager mixin: `_onFieldChanged`
3) model: apply changes and save
4) controller: `_confirmSave`
Kanban records are using another system for an unknown reason. This
system was calling the right model functions but was not calling the
controller `_confirmSave` and was instead re-coding it. This commit
makes sure that `_confirmSave` is now called.
Performing a 'read_group' was creating new model group data which were
saving some properties of the old model group data. As KanbanColumn
widgets may not be updated in each case where we might want to re-do
a (partial) 'read_group', this commit changes the system so that old
model group data are simply updated with the useful new group data
properties (instead of being entirely replaced).
Previous kanban header was a div with `flex-flow: row nowrap`. So if
someone tried to add some stuff in it, it will be forced to stay on
the same row as the title and config buttons. This commit wraps these
row elements in a new div to allow kanban header customization (this
prepares for the kanban progressbars).
This merge provides some changes in the
expense flow.
The most important one is to reinvoice
an expense, employee set a SO on its expense
and not an analytic anymore (since it
requires special access group, ...)
This commit also bring back the auto
creation of analytic account when confirming
SO if expense product is sold (since AA is
required to generated analytic line of
the operation).
Some usability changes, and code cleaning
are also available. See subcommits for details.
Steps:
- In home, expense app icon: "Go to the expense
to attach a receipt"
- In list, on create button : "Click here to create
your first expense and add it to below."
- In form, on save button : "Once your Expense is
ready, you can save it."
- In form, point out the chatter "Attach your
receipt here."
- In list, point out record selection: "Select
expenses to submit them to your manager"
- Point out "Action": "Click on Action Submit To
Manager to submit selected expenses to your manager"
- In expense sheet point out approve “Approve the
sheet here. Tip: if you refuse, don’t forget to
give the reason thanks to the hereunder message
tool".
This behavior kind of disappear with 48ea59d46e
Moreover, since the Analytic Accounting is hidden, and
a AA on expense is required to reinvoice product on
SO, an AA should be on the SO as default value.
The main change is we use SO and not analytic account
anymore to reinvoice expense.
When encoding an expense, each employee can directly
set the SO to allow re-invoicing the expense to a
client. Before this commit, this was done by determining
the SO based on the Analytic Account (magically) on the
expense.
This solution is less confusing and more explicit for
the end user.
This commit also bring usability improvements to
improve user experience during this flow:
- better expense product view
- access group on menu items
- ...
Each move line generated from an expense posting will
be linked to the original expense. Some of those move
lines are for taxes, one for the product, ... but they
are all link to the same expense.
This will allow better reporting, and allow to access
the expense record from the move or its analytic lines
for futher developement.
The goal is to have a name_get for SO returning
a value like 'SO0002 - Michel F.'
To avoid performance problem, the chosen solution
is to add a context key 'sale_show_partner_name' to
provide the partner name in name_get(), otherwise
it will always add it and kill the performance.
This solution is preferred over adding a stored
related field for partner name (trigger recompute
when partner is renamed for all SO is bad).
Custory reading seems to denote that field names are probably already
text in the normal case, and thus should not need decoding? It only
blows up in a tour so...
* gitignore pycache folders (apparently appear for some)
* update xlwt requirement: 1.1.2 does not work with Python 3.6, 1.2 should work, 1.3 officially supports it
Split big universal RNG into view-specific schemas and moved rng based view validation
into view_validation.py file.
Adapt old views, and remove deprecated tag `version="7.0"` from views.
When running action_assign on a mts move bypassing the reservation,
we always created a new stock move line with the quantity of the move.
This proved to be too naive when running recheck availability.
Exemple: Let’s say I have a reserved move of quantity 5.
If I edit the initial demand to 7 and click on recheck availability,
I end up with a move line of 5 and a move line of 7. We adadapt the
code in a similar way that what’s done in _update_reserved_quantity,
by looking for a candidate move line and only increasing the reserved
quantity by what still needs to be reserved.
With the new views, we lost a (almost unused and undocumented) feature:
the ability to instantiate custom widgets in a form view, not linked to
a particular field. For example:
<widget type="weekly_timesheet" attrs="{'readonly': [['state', 'not in', ['new', 'draft']]]}"/>
We reintroduce this feature in this commit, with a nice twist: it also
works for the list view and the kanban view.