Commit Graph
108945 Commits
Author SHA1 Message Date
Géry Debongnie d1d80a494b [FIX] web: make sure buttons are called with proper res_id
Before this commit, clicking on buttons did not reload the current
record, which is good.  However, it kept the reference to the record
after saving, even if that record could have been changed, which is
definitely the case when starting from a new record and saving it (it
will have the correct res_id, which is really important).
2017-04-11 19:44:38 +02:00
Géry Debongnie 64a9398fb3 [FIX] web: fix corrupt datapoint in basic model
When saving a new record, with the option reload=false, a datapoint in the
basic model could be left in a wrong state: the x2many fields were
deleted, with all the changes, but the values in the data key were still
null, which means that the x2many field has no valid corresponding
datapoint, as far as the basicmodel can see.

So, with this commit, we make sure to push the changes into the data, so
the datapoint is in a proper clean state.
2017-04-11 19:44:38 +02:00
Géry Debongnie 2bf2976c20 [FIX] web: don't reload form view before opening action
When we click on a button in a form view, we don't need to reload the
data for the form view.
2017-04-11 19:44:38 +02:00
fwi-odoo 85790a2980 [FIX] web: don't try to create datapoint for relational field not in view
In some case ´default_get´ returns values for relational fields that are not
in the view so we cannot create a datapoint for these field. Furthermore, we
cannot discard these fields in order to save their values correctly in the newly
created record.
2017-04-11 19:44:38 +02:00
fwi-odoo 60ae646c66 [FIX] web: properly initialize non empty x2many in default_get
When the ´default_get´ returns default values for a x2many field, it needs
to be set as changed fields in this x2many field. Previously, it was wrongly
assumed that these changes were non existant.
2017-04-11 19:44:38 +02:00
fwi-odoo 36aed81d90 [FIX] website: update to new views
The methods overriden were not the correct one anymore.
2017-04-11 19:44:38 +02:00
fwi-odoo e3d1abc75f [FIX] hr_org_chart: update to new views and guidelines 2017-04-11 19:44:38 +02:00
Adrien Dieudonne ef6b330d8f [FIX] web: Form: avoid to change mode on button click
When clicking on a button in a form view, the current data should be
saved but the form view shouldn't be re-rendered in readonly.
Before this commit, the view was re-rendered, causing a weird glitch
in dialogs as buttons that were supposed to be moved to the dialog's
footer appeared inside the view when the button was clicked.

Also forces the default mode in form view to readonly, so that it is
correctly redrawn in readonly when coming back using the breadcrumbs.
2017-04-11 19:44:38 +02:00
Aaron Bohy b0fd99f261 [FIX] test_new_api: apply commit odoo/odoo@a24793962
Commit odoo/odoo@a24793962 adds some steps to the x2many tour.
This part of the commit had been deliberately moved aside for a
while in the new views branch, as what was tested didn't work yet
back then. It does now, so we re-enable those steps.
2017-04-11 19:44:38 +02:00
Aaron Bohy 318ff5f00d [FIX] web: pass context of changed field to onchange RPC
When a field with an onchange is changed, if there is a context
defined on the field in the arch, this context must be added to
the context sent with the onchange RPC.
2017-04-11 19:44:38 +02:00
Christophe Matthieu 3dfa2caa3d [FIX] web: various bugs in calendar and move _rpc call into model 2017-04-11 19:44:38 +02:00
Géry Debongnie e7dfa4af77 [FIX] web: add support for editable=top/bottom in o2m
Before this commit, we lost the functionality of editing records top or
bottom.  However, it as almost ready, but we needed to change the way
commands are generated, to respect the actual order in the UI.

Also, the mock server needed to be updated, to make sure he also save
the new ids in the correct order.
2017-04-11 19:44:38 +02:00
Aaron Bohy 39ab5712ed [FIX] test_new_api: enable deactivated steps of x2many tour
Those steps had been deactivated because the onchanges didn't
work well back then. Now, everything that is tested by the tour
works fine, so we can re-enable it entirely.
2017-04-11 19:44:38 +02:00
Aaron Bohy 7e14e81903 [FIX] web: one2many onchanges
When there is an onchange on fields of a one2many, the data given
to the onchange RPC should contain an additional key for the
corresponding many2one, mapping to the current data of the parent
(main) record.

This wasn't working before this rev. for new o2m records created
when the one2many wasn't editable inline (with a list view
editable), because in that particular case, the reference to the
parent record wasn't specified correctly.
2017-04-11 19:44:38 +02:00
Christophe Matthieu e8b9515980 [IMP] account: add write-off alert message in reconciliation 2017-04-11 19:44:38 +02:00
Christophe Matthieu 792ba42751 [IMP] account: in reconciliation, don't open partner on click 2017-04-11 19:44:38 +02:00
Christophe Matthieu f62597ae1f [FIX] web: radio button display the checked input 2017-04-11 19:44:38 +02:00
Aaron Bohy d0f321d6cc [FIX] web: Form: don't discard onchange when editing a o2m
Assume that there is an onchange on a form view that upates the
records of a one2many field. Before this rev., if the user edited
one of those one2many records (in a dialog) after the onchange,
the onchange values were lost.
2017-04-11 19:44:38 +02:00
Aaron Bohy bc89bb79d2 [FIX] web: BasicModel: ignore unknown fields after onchange
It may happen that an onchange returns values for unknown fields in
the view. In that case, the corresponding values need to be ignored
as the postprocessing base on the field type can't be done, which
may lead to errors later on (e.g. when saving).

For example: one2many list in a form view which doesn't display
a many2one field that exists on the related model. If an onchange
on the main form view updates the value of the many2one inside the
one2many, it will crash later on when the user will try to save
(because the value [id, display_name] will be sent to the server).
2017-04-11 19:44:38 +02:00
fwi-odoo ab44cabc78 [FIX] web: render the statinfo buttons that are not in a buttonbox
Without this commit, the statinfo field in a button but
not in a buttonbox are not rendered.
With this commit, when the button is rendered, the children are
processed and then the statinfo field is rendered (e.g. bank account(s) statinfo
in the Sales & Purchases tab in the res.partner form view).
2017-04-11 19:44:38 +02:00
Géry Debongnie 4872c8da31 [FIX] web: don't save readonly fields
Readonly fields can be modified with onchanges, but they should
not be saved.
2017-04-11 19:44:38 +02:00
Christophe Matthieu 97c6dc7792 [FIX] account: fix various bugs in reconciliation
* partial reconcile, display, compute, process_reconciliations
* more information in tooltip
* add domain to filter partner
2017-04-11 19:44:38 +02:00
Géry Debongnie 2a40c78a8b [FIX] web: fix rendering issue with fieldselection on m2o
Before this commit, the FieldSelection did not work properly in edit
mode with a many2one.  This was because it did not take the correct
value into account, and the test did not notice it, so both had to be
fixed.
2017-04-11 19:44:38 +02:00
Christophe Matthieu 920df597d3 [REF] barcode, *: update code to new JS framework
With the new views, the barcode mechanisms were completely broken,
because the view and widget JS code was totally changed.

This commit update and refactor all that code to make it work with the
new design philosophy.  Also, it update the coding style.
2017-04-11 19:44:38 +02:00
Aaron Bohy c5cf445462 [FIX] web: Form: protect against widget destruction
When a button is clicked in a form view, the event 'execute_action'
is triggered up and catched by the view_manager, which can do
various async stuff. Meanwhile, the form view might be destroyed,
and in this case, the handlers shouldn't be executed when the
async stuff is done.
2017-04-11 19:44:38 +02:00
Géry Debongnie 3ff7ff3e94 [FIX] web: properly evaluate unset numeric values in domain
Before this commit, when a numeric value was not set (for example, a new
record with no default_get value), then it was not properly evaluated as
0 in a domain.

We also slightly refactored the code so we always use the same method to
compute the evaluation context.
2017-04-11 19:44:38 +02:00
Géry Debongnie a529a928b4 [REF] web: prevent useless rerender in some cases
When clicking on a form button, the saveRecord method is called, which
will then call the toReadonlymode method, which will rerender the form
view, even if it was already in readonly mode.
2017-04-11 19:44:38 +02:00
Aaron Bohy 2bca653584 [FIX] web: BasicModel: correctly generate x2many commands
This commit fixes two problems. First, the commands weren't
correctly generated for relational fields inside relational fields.
For example, if a form view contained a one2many containing itself
a many2many, the commands weren't generated for the many2many
inside the one2many. Thus, it's value couldn't be saved.

Second, when doing an onchange RPC, all record data should be sent
to the server, not only what have changed. Before this rev., for
x2many fields, commands were sent only if the field had changed.
2017-04-11 19:44:38 +02:00
Aaron Bohy 2932aa64bc [IMP] web: relational_fields: re-enable assert in a test
This didn't work when the test has been written, but it does now.
2017-04-11 19:44:38 +02:00
qsm-odoo a3271fa663 [FIX] web: formview button context should be given to actions
When clicking on a stat button in a form view, an action is executed.
The button might also be given a context which have to be used when
running the action. This context was ignored since the context
refactoring made with commit 26a7fe7de1b6258989bc63335321f8f8e83435af.
2017-04-11 19:44:38 +02:00
Géry Debongnie 8ad523a865 [FIX] web: fix focus issue in fields x2many
Before this fix, when the user dared press 'TAB', the move_next event
was propagated from the sub one2many to the outer form renderer, and
caused the form view to try to focus another totally unrelated field.
Also, the event was sent twice, because we are in a case where a field
widget is contained in another field widget.
2017-04-11 19:44:38 +02:00
fwi-odoo c7cd6fdd41 [FIX] web: wrong reference to this 2017-04-11 19:44:38 +02:00
Géry Debongnie 0ef53d742c [FIX] web: fix two small crashes in debug manager
- remove edit workflow link in debug manager. The workflow feature was
    removed, but there was still a link in the debug manager.  Clicking on
    that link was a crash.
- the rpc to fetch a view was wrongly updated, so the return value was
  not properly used.
2017-04-11 19:44:38 +02:00
Adrien Dieudonne eed432519e [FIX] web: digits precision
- Remove unnecessary "round_decimals". Will be process by format_value
- Fix json format value for digits attribute
2017-04-11 19:44:38 +02:00
Géry Debongnie dbc6f21321 [FIX] web: properly evaluate domains in kanban views
We still did not properly evaluate domains in kanban view.  The proper
eval context is quite tricky to get right, because we need to perform
some computations.  With this commit, we simply use the code that was
already in the basic model.
2017-04-11 19:44:38 +02:00
qsm-odoo f68462198e [REF] web: don't debounce DebouncedField._onInput directly
The `DebouncedField` class has a `_onInput` method which is called when
the user is typing text and which is debounced so that its action
(setting the field's value) is not recalled too quickly.

The problem is that if we have to do other actions which should not wait
for the debouncing (or wait for another debouncing) when the user is
typing text, this would imply to namespace the "input" event to add
another handler, which is not very elegant.
Instead, this commit changes the `DebouncedField` so that the
`_onInput` handler is not debounced but instead calls a private method
which is debounced (`_doDebouncedAction`).
2017-04-11 19:44:38 +02:00
qsm-odoo b9d9c6e3bc [FIX] web: monetary should reset on currency change
This reverts commit 839a07fbed4720fc71c070507c591295722df350.
Indeed, the system will need the `resetOnAnyFieldChange` option as the
`FieldMonetary` will need to be re-rendered if the currency changes.
This does not use the `_fetchSpecialData` system as it will be
refactored later and the currency can be fetched without RPC.
2017-04-11 19:44:38 +02:00
qsm-odoo c5d5d7a0ff [FIX] web: monetary field was adding DOM at each rendering
Before this commit, the `render` method of the monetary field added
the <input/> and currency elements without removing the previous
ones. As this was called on each related `onchange`, the DOM was
growing at each of these changes.
2017-04-11 19:44:38 +02:00
qsm-odoo d6d7923c67 [FIX] web: format monetary field value as a float in edit mode
Before this commit, if a field was declared as a "Monetary" field in
the model, the `FieldMonetary` was adding the currency symbol in the
<input/> in edit mode.
2017-04-11 19:44:38 +02:00
qsm-odoo c35e0f132f [REF] web: remove useless use of empty() in field rendering
The jQuery `html` and `text` functions already empty the element, so
no need to call `empty` before.

+ Lint the basic_fields.js file
2017-04-11 19:44:38 +02:00
Géry Debongnie 5e3c4dd434 [FIX] web: calendar: prevent crash when loading data with avatar 2017-04-11 19:44:38 +02:00
Géry Debongnie f3d7b7e420 [FIX] web: properly transfer lazy=false option to rpc
The lazy option in read_group is by default true, so when we want to
override it with false, it needs some special care.
2017-04-11 19:44:38 +02:00
Géry Debongnie 6bc75b61be [FIX] web: better error handling in view and action manager
Before this commit, it could happen that a crash at the wrong time (for
example, while loading a view) cause the web client to crash for various
reasons.  For example, it assumes that the active view always has a
valid controller.  Or the action manager could not detach the previous
view, so we had the 'double view' rendering in the web client.

With this commit, we add some protections at various points.  Those
safety measures should help the user keep working even if a specific
view did crash.
2017-04-11 19:44:38 +02:00
Géry Debongnie 9100e675df [FIX] web: add support for discarding lines in o2m
This is not a complete work, but it introduces the basic infrastructure
to properly edit various more sophisticated editing behaviours.

The main focus of this commit is to handle discarding invalid lines in
one2many, potentially asking the user for confirmation.  So, the
relevant methods have to be modified to return some deferred, because
the operation is now asynchronous.
2017-04-11 19:44:38 +02:00
Géry Debongnie 0f96189b7f [FIX] web: update all fields in onchange in one2many
Before this commit, we did not properly update all fields in a one2many.
I assume that it was because the list renderer crashed if it tried to
display a field that did not exist in the list view, but in that case,
we simply can ignore these fields.
2017-04-11 19:44:38 +02:00
Géry Debongnie cef1b273c0 [FIX] web: prevent issue where changes where done to real data
Before this commit, the basic model used the real data array as changes
in the method _applyX2ManyChange, which means that each change was also
done to the data array.
2017-04-11 19:44:38 +02:00
Géry Debongnie 3662c7246f [FIX] web: unselect current row on one2many before doing something else
In a one2many, when we click on 'Add an item', we need to unselect the
current row.  Otherwise, its changes will not be committed and it will
be in practice discarded.
2017-04-11 19:44:38 +02:00
Géry Debongnie 7056ec1ac6 [FIX] web: various bugs with pivot view and no data
The pivot view had various small issues causing a crash when
transitioning from and to a 'no data' state.
2017-04-11 19:44:38 +02:00
Géry Debongnie 21324ded09 [FIX] web: do not create new line if onchange has warning in o2m
In a one2many field, when the user clicks on the 'Add a line' button, we
need to create a new record.  This means that we call the default_get
route, then call the onchanges.  The onchange can return a 'warning'
key, which is displayed to the user.  But in the specific case of a
one2many, we don't want to actually create the record.  So, we reject the
deferred to prevent that from happening.
2017-04-11 19:44:38 +02:00
Géry Debongnie 28e1620731 [FIX] web: list view did not discard properly
To add a record to a list, the list controller called the
addDefaultRecord method.  But that method did not made the changes to
the _changes key, it edited in place the data key.

So, this means that it was not possible to discard the add a line.
2017-04-11 19:44:38 +02:00