diff options
| author | Tiffany Chang (tic) <tic@odoo.com> | 2020-05-19 12:13:45 +0000 |
|---|---|---|
| committer | Tiffany Chang (tic) <tic@odoo.com> | 2020-06-22 11:55:26 +0000 |
| commit | 06fa22728bca9069dab6f212bbf8c8a9fd91e7b5 (patch) | |
| tree | 147787b45c3e44ff01069437357ef5845fd430f7 /addons/stock/static/src | |
| parent | 9c4b2b5a1d175788bcb81c509f6862de50609866 (diff) | |
[IMP] stock: update orderpoint view
This commit updates the orderpoint (replenishment) view with the
following changes:
- group "Min Quantity", "Max Quantity", and "To Order" together
- make preferred route "selection" only (note that widget="selection"
does not work in list view => standard workaround applied)
- renaming of order buttons: "Order" => "Order Once" and "Order Always"
=> "Automate Orders"
- add a link to forecasted inventory report for the product (note this
link will show even if there is no data to show in the report)
- remove class decorates from replenishing related buttons ("Order
Once", "Automate Orders", and "Snooze")
Specifications 14 and 15 of inventory usability task.
Task: 2206279
Related Enterprise PR: odoo/enterprise#10723
closes odoo/odoo#51681
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
Diffstat (limited to 'addons/stock/static/src')
| -rw-r--r-- | addons/stock/static/src/js/popover_widget.js | 30 | ||||
| -rw-r--r-- | addons/stock/static/src/xml/stock_orderpoint.xml | 5 |
2 files changed, 35 insertions, 0 deletions
diff --git a/addons/stock/static/src/js/popover_widget.js b/addons/stock/static/src/js/popover_widget.js index e3e3db85bab..c31b32a39e0 100644 --- a/addons/stock/static/src/js/popover_widget.js +++ b/addons/stock/static/src/js/popover_widget.js @@ -4,6 +4,8 @@ odoo.define('stock.popover_widget', function (require) { var AbstractField = require('web.AbstractField'); var core = require('web.core'); var QWeb = core.qweb; +var Context = require('web.Context'); +var data_manager = require('web.data_manager'); var fieldRegistry = require('web.field_registry'); /** @@ -36,6 +38,7 @@ var PopoverWidgetField = AbstractField.extend({ this.$el.html(QWeb.render(this.buttonTemplape, _.defaults(value, {color: this.color, icon: this.icon}))); this.$el.find('a').prop('special_click', true); this.$popover = $(QWeb.render(value.popoverTemplate || this.popoverTemplate, value)); + this.$popover.on('click', '.action_open_forecast', this._openForecast.bind(this)); this.$el.find('a').popover({ content: this.$popover, html: this.html, @@ -46,6 +49,33 @@ var PopoverWidgetField = AbstractField.extend({ }); }, + /** + * Redirect to the product graph view. + * (Based off of qty_at_date_widget.js method) + * + * @private + * @param {MouseEvent} event + * @returns {Promise} action loaded + */ + async _openForecast(ev) { + ev.stopPropagation(); + // Change action context to choose a specific date and product(s) + // As grid_anchor is set to now() by default in the data, we need + // to load the action first, change the context then launch it via do_action + // additional_context cannot replace a context value, only add new + const action = await data_manager.load_action('stock.report_stock_quantity_action_product'); + const additional_context = { + grid_anchor: this.recordData.delivery_date_grid, + search_default_warehouse_id: [this.recordData.warehouse_id.data.id], + search_default_below_warehouse: false + }; + action.context = new Context(action.context, additional_context); + action.domain = [ + ['product_id', '=', this.recordData.product_id.data.id] + ]; + return this.do_action(action); + }, + destroy: function () { this.$el.find('a').popover('dispose'); this._super.apply(this, arguments); diff --git a/addons/stock/static/src/xml/stock_orderpoint.xml b/addons/stock/static/src/xml/stock_orderpoint.xml index 0985d7ff022..a9155181300 100644 --- a/addons/stock/static/src/xml/stock_orderpoint.xml +++ b/addons/stock/static/src/xml/stock_orderpoint.xml @@ -29,6 +29,11 @@ </tr> </tbody> </table> + <button class="text-left btn btn-link action_open_forecast" + type="button"> + <i class="fa fa-fw o_button_icon fa-arrow-right"></i> + View Forecast + </button> </div> <t t-name="StockOrderpoint.Buttons"> |
