Commit Graph
110708 Commits
Author SHA1 Message Date
Jérome Maes 9b4c8a4e31 [IMP] hr_timesheet: default employee
'default_get' should return a value for employee
 when asked, even if it is not a timesheet.
2017-08-10 11:29:36 +02:00
Adrien Dieudonne 3a886327a6 [FIX] pad: don't consider record as dirty
Before this rev., when the user opened a form view
containing a pad widget, with a pad url already configured,
a dialog directly popped asking "The record has been
modified, your changes will be discarded. Are you sure you
want to ?".

This is because of an unconventional behavior of this
widget: the field actually encodes an url, the one of the pad
to display. When the user saves, a write is forced so that
the server can retrieve the pad's content and store it in DB.
To force the write, the widget always notifies a fake change
on the url. However, we don't want this change to trigger
the confirm dialog. With this rev., this fake change doesn't
make the record 'dirty'.
2017-08-10 10:33:05 +02:00
Aaron Bohy 1e8f6d01ff [FIX] web,*: send correct context on button clicked
*account_asset

When a button of type 'action' is clicked (execute a given action),
special keys must be set in the context (active_id, active_ids and
active_model). They must be computed regarding the record containing
the clicked button, i.e. if we are in a modal, it must be the id
and model of the record displayed in the modal.

Before this rev., we always sent the id and model of the record
displayed in the background (i.e. the id and model of the url).

This caused a bug in MRP that could be reproduced as follows:
- open a manufacturing order in form view
- click on edit
- click on one of the line of the one2many, and click on the green
  icon to edit a product
- click on the update product quantity button on top of it
- the product field must be correctly filled, which was not the
  case before this rev.
2017-08-10 08:48:32 +02:00
David Monjoie 50957038b9 [FIX] web: fix magic grouping on date fields
Date fields have magic grouping methods to specify how to group on
them like date:month, date:weeks, date:days for example. It needs
to be handled properly since date:month is not a valid field name
but date is.

Steps to reproduce the issue:
- Go to Sales/Dashboard
- Click on My Pipeline
- Group by "Creation Month"

Basically, this can be triggred from any view which has a search
view which defines a group using the magic date grouping methods.
2017-08-10 08:48:30 +02:00
Olivier Dony 0de067cae9 [FIX] pad: do not crash during record creation
Rev. c5bd509274 attempted to improve the
pad sync mechanism when merging records (tasks), but failed to consider
the case where the pad_url field is not set yet.
This happens at create(), due to the chicken-and-egg problem with the
pad URL depending on the record ID, and therefore set *after* creation.

Ignoring the sync when the URL is not yet set should be enough, as the
URL generation method also takes care of that first sync.
2017-08-09 16:38:56 +02:00
Christophe Simonis 0c13beb0cc [FIX] mail: check alias contact
Correctly verify method existance before calling it.
2017-08-09 12:44:13 +02:00
Adrien Dieudonne 99e38c04bf [FIX] test_main_flows: don't click behind modal
In the main_flow_tour, we edit a related record of a many2one in a
one2many. A modal is displayed and we make some changes. We
then click on 'Save' in the dialog. The next step is to add a new record
in the one2many, so we click on 'Add an item'. However, we didn't
wait for the modal to be closed before clicking, which is actually not
possible in practice (because of the modal backdrop).

This made the tour fail when run from the browser, since commit
c300e5e, which produces a redraw of the line containing the
many2one that has been edited.

This rev. ensures that we wait for the modal to be closed before
adding a second record.
2017-08-09 09:04:30 +02:00
Christophe Simonis 40a82cdfda [FIX] http: ensure registry is still bound to the request before using it
A user can be logged out during a request, loosing the database (and
thus registry) information.
2017-08-08 19:14:05 +02:00
Thibault Delavallée e1b954f066 [FIX] mail: do not put context as feedback when marking an activity as done
Backport of 9fb86d6fac
2017-08-08 17:58:10 +02:00
Christophe Simonis 8c00b3ef7e [FIX] mail: correct alias access verification
When a replying to an email, the matching alias should first verify access
via the parent record if exists (i.e. check on the project instead of
on the issue itself).
2017-08-08 17:37:17 +02:00
Olivier Dony 17634acb0e [FIX] crm: correct activities filter combination
The new "My Activites" filter introduced by rev. 87e457158e
should not be in the same group of the search view as other activity
filters (Overdue/Today/Upcoming), otherwise they are combined with OR
instead of AND.

This is particularly misleading when coming from the Sales dashboard, as
the "Overdue" button of "My Pipeline" will lead to a list of
opportunities with "My Activities OR Overdue Activities", showing *all*
opps with overdue activities, not just yours.
2017-08-08 16:17:34 +02:00
David Monjoie ed286c4562 [FIX] web: disable buttons in list view on virtual records
Such buttons are not going to work on records that actually do not
exist yet. The behavior is now the same as in saas-15.

Steps to reproduce the bug:
Steps to reproduce the bug:
- Enable lots in Iventory
- Choose a product which is a component of another (through mrp bom)
- Set this product as tracked by lot
- Set this product inventory quantity to 0
- Create a new manufacturing order for the product for which it is a
  component
- Click on "Check Availability"
- Click on Produce
- Click on the little square with a + in the m2m list view, the
  server will crash in the ensure_one of the function called by
  the button since there is no record to run it on.
2017-08-08 11:18:11 +02:00
David Monjoie e2252c35c1 [FIX] web: handle create in many2many default_get
Previously, we did not handle the case where the result of the m2m
default get was a new record. In this case, we can't just send a
replace all command giving the ids since the new record has no id.

We decided to keep the replace all command even when it is empty
to stay consistent with the o2m implementation, even though saas-15
did not behave like that.

Steps to reproduce the bug:
- Enable lots in Iventory
- Choose a product which is a component of another (through mrp bom)
- Set this product as tracked by lot
- Set this product inventory quantity to 0
- Create a new manufacturing order for the product for which it is a
  component
- Click on "Check Availability"
- Click on Produce
- You'll get an error as the id given to the onchange is a virtual one,
  rather than a create which would not include an id.
2017-08-08 11:18:10 +02:00
David Monjoie 587751aa0d [FIX] web: prevent virtual datapoint creation when no default value
Previously, it used to create a virtual datapoint even though there was
no change on this field. If the field was a many2one, this datapoint
triggered a name_get call afterwards, but giving the virtual id of
the datapoint since there is no real record. The solution is to avoid
creating a virtual datapoint when it is not needed at all, thus fixing
the wrong name_get call.

Steps to reproduce the bug:
- Enable lots in Iventory
- Choose a product which is a component of another (through mrp bom)
- Set this product as tracked by lot
- Set this product inventory quantity to 0
- Create a new manufacturing order for the product for which it is a
  component
- Click on "Check Availability"
- Click on Produce
- You'll get an error as the web client tries to fetch the name_get of
  this datapoint even though the record does not exist.
2017-08-08 10:38:16 +02:00
David Monjoie c294e7d46e [FIX] mrp: fix unbuild order creation
Unfortunately, ed60339 is incompatible with ebd1721 since
we once again do not send the values of readonly fields.

This is a partial revert of commit ed60339.
2017-08-07 11:32:06 +02:00
Aaron Bohy 8a386b9a08 [FIX] web: BasicModel: domain returned by onchanges
Onchange RPCs return an object that may contain a 'domain' key.
When it does, its value is an object whose keys are field names and
values are the new domain for the corresponding field.

Commit 8473bde8 added the support of the 'domain' key, but stored
it directly in the fieldsInfo (an object gathering information of
the fields in the view, and which is shared between all records).

This was wrong as the domain isn't necessarily the same for all
records. To reproduce, with the UOMs activated, go to Sales >
Quotation, in the form view, add an order line, set a product
(e.g. Graphic Card), the onchange sets the domain for the uom
field (matching uoms like 'unit', 'dozens'). Add a second line
with a service product, the onchange returns another domain for
the uom field (matching uoms like 'hours', days'). Click again on
the uom field of the first line, the domain is the one of the
second record, which is wrong.

This rev. directly stores the domains returned by the onchange on
the object representing the record, so that this information isn't
shared between records anymore.
2017-08-07 11:24:15 +02:00
fwi-odoo 144d8e42fc [FIX] web: load subviews in the correct function
Before this commit, it was impossible to load the x2many fields subviews when
they were not defined inline.
Now it is possible to call the method "_loadSubviews" to do so.
Used mainly in studio, to be able to display the x2many fields without inline
views.
2017-08-04 14:53:06 +02:00
Khoi Nguyen c300e5ede7 [FIX] web: reload right record when editing a many2one inside an x2many
Before this revision, editing a many2one inside an x2many field did not
cause an update of the x2many field upon saving. This is due to the fact
that a field on a screen was deemed affected by a record change only if
its value or a directly related record has been updated.

This present revision looks for changes recursively, thereby including
the case where an x2many field contains a many2one.

The bug appeared for example in Manufacturing, when editing the product
name of a BOM line.
2017-08-04 11:31:58 +02:00
Martin Geubelle d19671f0d0 [FIX] web: return a deferred in m2o quick create
The rev. https://github.com/odoo/odoo/commit/99ae418bf24171fbc6bb27584059c27efb857e77
accidentally modified the `quickCreate` return value type, which was previously a deferred.

This function is overriden in Studio to catch the deferred so the previous type has
been restored.
2017-08-03 11:11:45 +02:00
rar-odoo b724662401 [FIX] Gamification: email template (#18331)
* [FIX] Gamification: email template

- realized that the pictures of users were not public by default,
  which means src with an url won't work if not connected to the database.
  This is fixed by embedding the pictures directly in the mail.

* [FIX] Gamification: challenge template

- fixed layout problems with what works in the renderer.
2017-08-02 17:20:49 +02:00
Khoi Nguyen 2258c031ad [FIX] web: fix traceback when creating an event starting at 12am or 11.30pm
Since the switch to the new views, clicking on a 12am cell in a week
view of calendar triggers a traceback. A similar issue happens when
creating an event at 11.30pm. This is due to the fact that events
starting or ending at 12am are suspected to be incorrect and are thus
checked against the database.

This commit fixes both issues, by requiring that database checks be
carried out only if the records actually exist in the database.
2017-08-02 14:54:45 +02:00
Martin Geubelle 211961c374 [FIX] web: handle mutexify in standalone widgets
The rev. https://github.com/odoo/odoo/commit/99ae418bf24171fbc6bb27584059c27efb857e77
introduced a trigger_up `mutexify` when quick creating a record in a many2one ;
this broke the behaviour when the many2one was standalone (because it has no
BasicController and mutexify is handled in the latter).

An attempt to fix this issue has been made in the rev. https://github.com/odoo/odoo/commit/e83c3e2678500c9bf2c17b4d23ae9a294ebafaa7
by adding an option `standalone` in the field widget options. In this case,
the action was directly executed instead of the trigger_up. While this correctly
works, this implies that the option needs to be added in every standalone
many2one (and only many2one as the others won't use the option), which is not
very convenient.

An other attempt is made in this rev. by moving the mutexify handler from the
BasicController to the FieldManagerMixin ; as a widget that instantiates a field
widget needs to extend this mixin, both cases will work and we won't need to
specify the option anymore.

This commit thus partially reverts the rev. https://github.com/odoo/odoo/commit/e83c3e2678500c9bf2c17b4d23ae9a294ebafaa7
2017-08-02 08:49:12 +02:00
Christophe Simonis 8d89148d13 [MERGE] forward port branch saas-15 up to 5e19f28bfc 2017-08-01 23:11:27 +02:00
Christophe Simonis 5e19f28bfc [MERGE] forward port branch saas-14 up to d0ece6cd89 2017-08-01 23:07:22 +02:00
Christophe Simonis d0ece6cd89 [MERGE] forward port branch 10.0 up to afd4b68acc 2017-08-01 23:06:43 +02:00
Christophe Simonis afd4b68acc [FIX] website_crm_partner_assign: mock geolocalisation during tests 2017-08-01 22:39:29 +02:00
Christophe Simonis d1cf4f9672 [MERGE] forward port branch saas-11 up to ed36929265 2017-08-01 22:39:16 +02:00
Christophe Simonis ed36929265 [FIX] core: avoid tests to contact gravatar server 2017-08-01 22:03:39 +02:00
Khoi Nguyen 597d172ff0 [FIX] web: always call 'search_read' when loading calendar
This commit reverts
https://github.com/odoo/odoo/commit/2e2ab4e954cd5da8c0c06d393b334cefc7627315
(which ensures that if all filters are 'inactive' then nothing is shown)
for the following reasons:

- It is not necessary since _getFilterDomain was rewritten (see
  https://github.com/odoo/odoo/commit/4e12edc023dd20d435f5575b5517a3c11deb8421).
  If all filters are inactive, _getFilterDomain does now return an
  "in []" domain.
- It shows an empty calendar when filters yield an empty domain.
2017-08-01 18:03:15 +02:00
Christophe Simonis a42b056ca9 [MERGE] forward port branch saas-15 up to d3154e0ef4 2017-08-01 17:59:16 +02:00
Christophe Simonis d3154e0ef4 [MERGE] forward port branch saas-14 up to af9868bc28 2017-08-01 17:54:09 +02:00
Christophe Simonis af9868bc28 [MERGE] forward port branch 10.0 up to e6ad245634 2017-08-01 17:22:43 +02:00
Goffin Simon 39892cdaa1 [FIX] account: Only 64 characters for the name of an entry
When creating a customer invoice with description/reference with more than
64 characters, the description was cut to generate the name of the account move
lines. But it's possible to create an entry with more than 64 characters as name
by the interface. The limitation is deprecated.

opw:760316
2017-08-01 17:14:28 +02:00
Christophe Simonis e6ad245634 [MERGE] forward port branch saas-11 up to ab0e083ecb 2017-08-01 17:00:03 +02:00
Christophe Simonis ab0e083ecb [MERGE] forward port branch 9.0 up to 587668797e 2017-08-01 16:32:23 +02:00
Christophe Simonis 587668797e [MERGE] forward port branch saas-6 up to b3ddbbd4ba 2017-08-01 16:05:13 +02:00
Christophe Simonis b3ddbbd4ba [MERGE] forward port branch 8.0 up to 40197b38e5 2017-08-01 15:44:24 +02:00
Christophe Simonis e2826028ab [FIX] website_slides: only query google api if info is missing
With demo data, avoid doing requests on external service for
information we can provide.
2017-08-01 15:39:02 +02:00
Nicolas Martinelli 6c3bff8fd3 [FIX] stock: traceability button
- Archive a product
- Click on "Traceability" stat button => crash

opw-760717
2017-08-01 15:06:10 +02:00
Nicolas Lempereur 40197b38e5 [FIX] web: typo css class 69925ca6
opw-760956
closes #18601
2017-08-01 14:05:21 +02:00
Nicolas Lempereur 69925ca6f0 [FIX] web: display prev/next arrow after grouping
On a list view, if we group records the arrows and changing page
feature are disabled. But if then we removed the grouping, the arrows
never reappeared.

note: not necessary as of 9.0 it was already solved in 1280bf251

opw-760956
closes #18596
2017-08-01 13:56:26 +02:00
rar-odoo 435c2eae19 [FIX] Account: account_field field typo
the field data-max is supposed to be stored in the database.
Currently, the arg is 'stored=True' which is not recognised by the orm.
This fix ensures the field is correctly sotred and thus not computed at reading.
2017-08-01 12:46:29 +02:00
Jeremy Kersten 66a6b670e9 [FIX] stock: improve warning to help user to find blocking move.
Add into the warning message the list of stock.move that raise the constraints
error.

When you create an 'Inventory Ajustment' of 1000 lines and see this error,
it is not easy to find which product could cause the problem.

This solution is not perfect since the name is not uniq, but it decrease
drastically the number of record to check manually.

opw-760643
2017-08-01 10:43:36 +02:00
Jeremy Kersten 856f35eb21 [FIX] UserError: don't display None in Warning popup.
UserError uses a retrocompatibility function 'except_orm' which one can take a
second parameters. The default value of this second param is None, so if we
don't force an empty string, we will see a None on each raise UserError as last line.
2017-08-01 10:43:36 +02:00
Goffin Simon abbb937607 [FIX] sale_stock: return a delivered product with a non internal location
When returning a delivered product with a non internal location,
the delivered quantity on the SO was not updated.

Steps to return a delivered product:
- Click on button "Return" on stock.picking
- Check the refund box
- Click on return
PS: for the field return location, you can choose a child location from
WH/stock. So it can be a not internal one.

opw:749610
2017-08-01 09:33:06 +02:00
Goffin Simon 8452cc2e36 [FIX] purchase, sale: Warning message visibility on Product
When "No message" is set on field purchase_line_warn/sale_line_warn,
the message doesn't have to be displayed in the respective field
purchase_line_warn_msg/sale_line_warn_msg.

opw:760801
2017-08-01 09:27:36 +02:00
Odoo Translation Bot bbd4e7e292 [I18N] Update translation terms from Transifex 2017-08-01 02:40:08 +02:00
Christophe Simonis 3becbd764d [FIX] test_main_flows: wait buttons to be active before triggering them
Since a1f7aa3362, buttons are deactivated
during action.
2017-07-31 18:59:30 +02:00
Nicolas Martinelli 9bb2e4595d [FIX] l10n_in_hr_payroll: IFSC code
The IFSC code is not populated when the advice is created automatically
(no onchange triggered).

opw-746466
2017-07-31 15:53:44 +02:00
David Monjoie 28bf5f007f [FIX] web: fix action context with no explicit context
When I did efd15852, I accidentally undid d20074c5. That commit
wanted to filter out unwanted values from the action context, but
it was too violent, as it was discarding the action context. (See
bug described in efd15852)

My original commit aimed at avoiding the filtering of the action
context by having it devoid of unwanted values altogether. The
idea was "if this is an action button, we don't want the element
context". However, the default behavior of the _getContext function
was to add the element context. There were options to force to add
the element context despite being in a case where it should not be
added, but we needed the opposite: do not add the element context.
We used "additionalContext" in this fashion, the idea was: "if I
give you specific context values, don't polute it with the element
context". This was efd15852.

However, not all actions have context defined explicitely in their
definition. In this case, since additionalContext was undefined,
the element context was added again, despite our will not to add
it for actions. We solved this by simply always giving an
additionalContext to getContext, providing an empty one if needed.

To reproduce this bug (which is the same as efd15852):
- Go to Manufacturing
- Click on menu Master Data then Products
- Open a product
- Click on the "Bills of Materials" stat button
- Click on create
- The create crashes because of the "default_type" context key
  that is erroneously passed from the "Products" action to the
  "Bills of Materials" stat button action.
2017-07-31 15:53:12 +02:00