- Jan 28, 2016
-
-
Martin Trigaux authored
With: Two companies 'Company A' & 'Company B' Sequences for SO & PO for each company so_from_po set to True on 'Compny B' When: Company A created a PO with Company B as supplier, and validated it, An error is raised "Configure correct warehouse for company(Company B)..." The field warehouse_id is required on the SO, so force the user to set one in the configuration of the company
-
- Jan 27, 2016
-
-
Joren Van Onder authored
account.bank.statement.line has a journal_entry_ids field which is a o2m to account.move. During confirmation of bank statements (button_confirm_bank()) this o2m field is heavily used. When a database has a lot of account.move records this lookup starts taking up quite a bit of time. As an example, on a locally duplicated customer database with ~700000 account.move records attempting to resolve journal_entry_ids of an account.bank.statement.line record was observed to take > 1 second. This index improves it to be < 5 milliseconds. This is especially important when big POS sessions have to be closed, because those will contain a lot of account.bank.statement.line records. opw-665309
-
Nicolas Lempereur authored
-
Nicolas Lempereur authored
-
Nicolas Lempereur authored
When editing a form with the arabic language, the date is formatted in arabic. But the version of the Moment.js library we use for this had inconsistencies and parsing the arabic date could not work. Hence, saving would not work since date field values would be invalid. This commit cherry-pick http://momentjs.com/ commits which solves that: from version 1.8.4: https://github.com/moment/moment/commit/c9023b5 from version 1.9.0: https://github.com/moment/moment/commit/bd328d5 closes #10634 opw-660453
-
- Jan 26, 2016
-
-
Christophe Simonis authored
-
Christophe Simonis authored
-
Nicolas Lempereur authored
When creating a XLS file with more than 256 columns, the library used (xlwt) fail since it is targetted to support MS Excel 97 up to Excel 2003. But Odoo doesn't has no check and in this given instance (an error happening in a controller generating a binary filte) the real error message is lost. This commit check if the to-be exported data has more than 256 columns, and if this is the case display an error message without even trying the export. closes #10630 opw-660474
-
Yuriy A. Apollov authored
-
Stefan Rijnhart authored
-
Raphael Collet authored
[FIX] search with computed fields in path
-
Holger Brunn authored
fields in a search path
-
Christophe Simonis authored
-
- Jan 25, 2016
-
-
Denis Ledoux authored
When performing a stock valuation at date, the stock valuation total wasn't equal to the sum of each line of the report. This is because the domain forcing the date wasn't passed to the `search` call when no group by was applied. Indeed, when calling `read_group` with a group by, the lines in the results contains the domain used for each line, but when there is no group by applied, this is not the case, the domain is not included in the line dict returned by `read_group`. In such a case, therefore, we must use the domain that was passed to the `read_group` call. opw-667761
-
David Monjoie authored
Backport of fda5021e that I erroneously did in 9.0, thinking it was reported on 9.0.
-
Denis Ledoux authored
In a survey question of type `matrix`, nothing prevents to remove a row from the matrix, even if there are already answers for this line. If the case happens, the row is deleted, but not the answers. The answers are therefore orphan. The answers should probably be deleted when the row is removed from the survey, but this is a risky change, and, even, users might want to keep track of the answers given even if the line doesn't exist anymore in the survey. Therefore, we just handle the case when displaying the survey results, we ignore matrix answers for which the row no longer exists. opw-666393
-
- Jan 24, 2016
-
-
Odoo Translation Bot authored
-
- Jan 22, 2016
-
-
Raphael Collet authored
-
Raphael Collet authored
Accessing a related field with `related_sudo=True` on a draft record should effectively traverse the fields as the admin user. This fixes #5121, #7138.
-
Goffin Simon authored
Suggested alternative descriptions spill out of the boxes if the description is too long. PS: same fix as in saas-6 with f7110b46. This fix doesn't have to be forwrad ported. opw:667343
-
- Jan 21, 2016
-
-
Goffin Simon authored
When writing several times on the same record in the same transaction, the orm raise a Missing error because the rowcount only gives one difference. opw:666470
-
Goffin Simon authored
If there is no contract then the default journal_id must be set. PS: The field "journal_id" in "hr.contract" model is not required. opw:667093
-
- Jan 20, 2016
-
-
Denis Ledoux authored
The `stock.picking`.`state` field is set to track the change of values (`track_visibility='onchange'`) It's supposed to write the state changes within the picking thread. It does not work properly for function fields, as the onchange tracking is designed to work only with direct user changes, direct `write` operations on the record, while, here, the state value changes according to the picking moves changes, for instance. To solve this, the tracking changes have to be hooked within the `create` & `write` methods of the model on which this function depends on. Therefore, from now, when changes are performed in the moves, on the fields that could lead to the picking state change, we force the tracking of the picking state. In addition, we had the `mail_notrack` key in the context when creating back orders, to avoid displaying the back and forths in the state e.g. when transferring 9 units on 10, the changes were displayed as below: Draft -> Waiting availability Waiting Availability -> Ready to Transfer Ready to Transfer -> Draft Draft -> Partially available Partially Available -> Waiting availability Waiting Availability -> Transferred opw-666317
-
Nicolas Martinelli authored
When a PO is created automatically from a procurement, the currency is the currency of the connected user, which might be different from the currency of the pricelist. The fix set the currency to the currency of the pricelist. opw-665573
-
- Jan 19, 2016
-
-
Goffin Simon authored
When creating a company, a new partner is created with his field 'customer' = True. But by default a company doesn't have to be a customer. opw:667130
-
Denis Ledoux authored
When deleting the resource associated to a mail statistic, e.g. deleting the lead associated to a statistic, the statistic could not longer be opened. opw-656738
-
Nicolas Lempereur authored
When doing a copy of a google drive spreadsheet (in google_drive.py's copy_doc method, using the following google API call https://developers.google.com/drive/v2/reference/files/copy). Google server return an error if we used the old spreadsheet KeyId. The new FileId is available in the AlternateLink and this commit updates it. similar-to: 00c2a998 opw-647222
-
Goffin Simon authored
When a PO line is created from procurement, the supplier taxes set on the PO line must be visible in the company set on the procurement. opw:666875
-
Joren Van Onder authored
Apple devices have a patented feature called rubberbanding that allows the user to scroll past the end (or beginning) of a document. Browsers on IOS have this same feature. This is not an issue most of the time. But sometimes the rubberbanding happens to the entire document.body of the POS, which is not ideal. Rubberbanding is already disabled partially by Chrome.disable_rubberbanding(). But it is not perfect. The most important issue that remained is what happens when a scrollable element is either at it's top or bottom and the user *initiates* a scroll past its beginning or end. So scrolling an element all the way to the top and then continuing to scroll did not trigger the problem. If however the element was already at the top and you would initiate a scroll up the scroll would fall through to the document instead and the entire POS would scroll. What aggrevates the issue from a UI point of view is that as long as the rubberbanding animation is not finished, any subsequent scrolls will target the entire document as well. Normal treatment of scrolling resumes only when the animation has finished and the document is in the center of the screen again. Stopping this behavior is not trivial. The only know solutions are all built around stopping touchmove events, which we already did. This patch makes it so that we also stop all touchmove events that trigger the unwanted behavior described above. It ensures that we stop touchmove events that would scroll an element above it's top or below it's bottom. To do this we have to manually determine whether or not the element is scrolled all the way to the top or bottom and we have to manually determine the direction the user is swiping.
-
- Jan 18, 2016
-
-
Christophe Simonis authored
-
Christophe Combelles authored
closes #10488
-
- Jan 17, 2016
-
-
Odoo Translation Bot authored
-
- Jan 15, 2016
-
-
Denis Ledoux authored
This is related to revision 44eeb387 The origin concatenation was not working when `procurement.origin` was `False` opw-666933
-
Denis Ledoux authored
The price displayed on the event page is the `event.ticket`.`price_reduce` field, which is basically the ticket price(`event.ticket`.`price`) minus the possible discount applied by the pricelist Nevertheless, the price asked when ordering the ticket, in the cart/checkout, was the `ticket.price`, without the possible discount from the pricelist, therefore. The price asked for the ticket was therefore different than the price displayed. To reproduce: 1. Settings > Sales > Use pricelist 2. Sales > Configuration > Pricelist > Public Pricelist > Apply a 20% discount (-0.2) 3. Go to /event, -> Conference on Business Applications 4. Order 1 of each 5. Notice that the price asked is 800€ and 1200€ instead of 1000€ and 1500€ respectively 6. Hit Order now -> Notice that the price in the cart are the price without the discount opw-665540
-
Raphael Collet authored
-
Josse Colpaert authored
Quants should never be changed or deleted by a user. We make it not possible anymore in the views. And also in the code we avoid to unlink without passing a specific key in the context. (as we still need to be able to delete quants in case of negative quants reconciliation)
-
Joren Van Onder authored
On iOS (at least version 8.3 and up), both Chrome (at least 47 and up) and Safari emit ghost clicks [1] that added the product normally rendered under the table widget to the order. So when selecting a table without any orders you would end up with the table selected, and the product under the table in the order after just tapping the table. The issue is that on the table selection screen we listen to touchend events. On the product selection screen we listen to click events. Mobile browsers will usually emit both, first the touchend event, then a small delay, and then the click event. The small delay is platform dependent. Also, depending on a bunch of circumstances, browsers adjust this delay time (see [1] for more info). On Android this never caused issues because there the click is fired pretty fast after the touchend and more importantly, the click event still has the table widget as it's target. We don't listen to click on the table widget so it gets correctly ignored. On iOS there is a longer delay, and the click event is emitted with whatever target is currently under the coordinates of the click. In order to stop this from happening we'll just bind to click when not editing. When we are editing the floor layout we'll do what we did before. We also bind to dragend because on touch devices it is sometimes not easy to click, especially on small elements. You have to touch and release the screen without moving your finger. Because the table selection screen hides overflow there are no downsides to doing this, and it makes selecting a table much easier and less likely to fail due to accidental dragging. Calling preventDefault on the touchend event is another option but did not work on Android running Firefox 43. [1] http://ariatemplates.com/blog/2014/05/ghost-clicks-in-mobile-browsers/
-
Nicolas Lempereur authored
When displaying a dashboard, if a custom default filter was set on a view it would be concatenated to a given dashboard filter. Since it is never wanted and dashboard are embodied by fixed saved filters, thus not needing custom filter, this fix simply disable them when viewing the dashboards. closes #10477 opw-660140
-
- Jan 14, 2016
-
-
Alexis de Lattre authored
Field virtual_available on product.product is called Forecast Quantity but was not on product.template. This is not an issue to modify in stable as the term is already translated and the translation of the string of the field is not based on the source (meaning that, without reloading the translations, people will still see the translation for 'Quantity Available'). Closes #10443
-
Olivier Dony authored
-