{"push_id":608372499,"size":7,"distinct_size":7,"ref":"refs/heads/master-cp-rebase-aab","head":"c6b1d0158e1de705bc22623df212aa9fb78ef806","before":"6ba0a37a9dcff2fb4ba45c8b6ac7e81a98b71813","commits":[{"sha":"1280bf25137ee210b555201157029da61ae3914f","author":{"email":"40b904fd8852297daeaeb426b1bca46fd2454aa3@odoo.com","name":"Aaron Bohy"},"message":"[IMP] Web and all views: ControlPanel atomic update\n\nChange the logic of rendering and displaying/hidding the control\nelements (buttons, sidebar and pager) of all views. The views do no\nmore render automatically their elements as this is rather done\nthrough the render_[element] function called by the ViewManager.\nThis function only appends the element to the $node given as argument.\nIf no argument is given, then it may appends it to the DOM directly,\nwithin the adequate div of its template.\nThis allows the ViewManager to attach/detach all elements of the\nControlPanel in an atomic may, to prevent the ControlPanel from\nflickering.\nAlso detach the contents of the ControlPanel in headless mode. Headless\nmeans that the ControlPanel exists, but is hidden. Detaching its\ncontents permits to have a cleaner DOM.\n\nAlso remove the oe_form_dirty class on the buttons in the FormView, as\nthis class is only used on the view itself.\n\nSide changes:\n* base_import: import.js:\n    Extend render_buttons function to be compliant with the new buttons\n    rendering logic\n* board: dashboard.js:\n    Set flag search_view to True as the searchview is needed for the\n    Views displayed in the Dashboard to retrieve the records to display.\n    Necessary since we do no more construct the searchview when this\n    is set to false\n* google_drive: drive.js,\n  share: share.js:\n    Module extending the Sidebar widget often add their own buttons\n    by extending the start(), which is called each time the Widget\n    is appended to the DOM. With our new design, this could be done\n    in start() anymore as it should be done only one. It is now done\n    in init() instead.","distinct":true,"url":"https://api.github.com/repos/odoo-dev/odoo/commits/1280bf25137ee210b555201157029da61ae3914f"},{"sha":"913942a32756d6356b33b40efdeae361924e7de6","author":{"email":"40b904fd8852297daeaeb426b1bca46fd2454aa3@odoo.com","name":"Aaron Bohy"},"message":"[FIX] Web_calendar: this.options.$sidebar\n\nThe sidebar in Calendar views is not the usual sidebar of the other\nviews, which should rather be called toolbar and is located in the\nControlPanel. However, the Calendar sidebar was only rendered when\nthis.options.$sidebar was set, even if this option concerns the toolbar\nand is thus nothing to do with the Calendar sidebar.\n\nAlso fixes css so that useless scrollbars aren't displayed anymore.","distinct":true,"url":"https://api.github.com/repos/odoo-dev/odoo/commits/913942a32756d6356b33b40efdeae361924e7de6"},{"sha":"20b4aaab83ea6f35347773754d644806a2f65b5d","author":{"email":"40b904fd8852297daeaeb426b1bca46fd2454aa3@odoo.com","name":"Aaron Bohy"},"message":"[REF] Web: Actions, ActionManager, ViewManager, Controlpanel refactoring\n\nBig refactoring of Action, WidgetAction and ViewManagerAction to clean\ntheir API. Mainly, renamming from State to Action and removal of unused\nfunctions (or functions that are only used by the DebugManager, for\nwhich we tolerate introspection).\n\nSome logic has also been moved from the ActionManager to the Actions\nthemselves. The specific behavior of each type of Action is now handled\nin the implementation of those Actions.\n\nIn ActionManager, this.states is renammed to this.action_stack to be\nconsistent with view_stack in ViewManager.\n\nThe setup_search_view() and render_switch_buttons() functions have been\nmoved from ControlPanel to ViewManager as it was before, since actual\ndesign allows it and it makes more sense.\n\nThe ControlPanel API has also been simplified as some functions were not\nused anymore. The ControlPanel is now updated directly by the widgets\nusing it, bypassing the ActionManager. The control panel elements are\nstored by the widgets themselves to allow restoring them later.","distinct":true,"url":"https://api.github.com/repos/odoo-dev/odoo/commits/20b4aaab83ea6f35347773754d644806a2f65b5d"},{"sha":"546c07a58f4f715019b48a48259a580d7d564b56","author":{"email":"40b904fd8852297daeaeb426b1bca46fd2454aa3@odoo.com","name":"Aaron Bohy"},"message":"[IMP] Web: Use of a ControlPanel in One2Many Fields\n\nCreation of the One2ManyControlPanel template. The One2ManyControlPanel\ncan only contain action_buttons and a pager. Typically, in One2Many\nKanban, buttons are displayed (in edit mode) and in One2Many Lists,\nthe pager is displayed.\n\nImprovement of all Views.buttons templates so that if there is no\nbutton to render, it does not render an empty div. This was necessary\nfor Kanban buttons to prevent padding when there is no button\ndisplayed. Changes in the other views were motivated by uniformity\nconcerns. This prevents to add empty div in the DOM as well.\nException for FormView where the outer div is required for the option\nfooter_to_buttons to work.\n\nThis fixes a bug as the pager is now available in One2Many Lists, which\nwas not the case before, even if there were more than 80 items in the\nlist, i.e. some items were unreachable.\n\ncp_bus argument in ViewManager init() is now required. If there is no\nControlPanel to communicate with, a dummy Bus should be given ot the\nViewManager.","distinct":true,"url":"https://api.github.com/repos/odoo-dev/odoo/commits/546c07a58f4f715019b48a48259a580d7d564b56"},{"sha":"258673fb314ab1a361c7d9148e190e1b7185ab8b","author":{"email":"40b904fd8852297daeaeb426b1bca46fd2454aa3@odoo.com","name":"Aaron Bohy"},"message":"[FIX] Web: view_list: _limit set at initialization\n\nSet _limit at initialization instead of computing it each time its value\nwas requested, as it is static anyway.\n\nThis prevents a bug (this.getParent() undefined, i.e. parent has been\ndestroyed) occuring when fast switching with edit/save several times in\nform views with one2many list fieds.","distinct":true,"url":"https://api.github.com/repos/odoo-dev/odoo/commits/258673fb314ab1a361c7d9148e190e1b7185ab8b"},{"sha":"4b0a8d4096be411b1516f8f89ea3d9950b167cf0","author":{"email":"0f311f41b2be8e2b5de98776566d712cdc154ca4@odoo.com","name":"Xavier Morel"},"message":"[IMP] Web, web_calendar: push_state rendering logic\n\nWhen a new state is rendered, it is now first appended to a\ndocumentFragment, and then appended to the DOM when ready. Doing so,\nthere is no more a intermediate step where two widgets are in the DOM,\nthe new one being appended below.\n\nThis required a web_calendar fix:\nNot exactly fixed per-se, apparently when fullcalendar is rendered\nhidden/out of document it doesn't generate correct range dates, and\ncalls the events callback with invalid dates. The code would blindly\ntake those invalid date, get bits out of them (NaN), generate a\ntimestamp full of NaNs and blindly search() the table with that.\n\nJust skip the events callback entirely if the start or end date of the\ncurrent period is invalid (~isNaN(date.valueOf())).","distinct":true,"url":"https://api.github.com/repos/odoo-dev/odoo/commits/4b0a8d4096be411b1516f8f89ea3d9950b167cf0"},{"sha":"c6b1d0158e1de705bc22623df212aa9fb78ef806","author":{"email":"40b904fd8852297daeaeb426b1bca46fd2454aa3@odoo.com","name":"Aaron Bohy"},"message":"[ADD] Web: ControlPanelMixin\n\nCreation of the ControlPanelMixin that should be used by widgets\nneeding a ControlPanel. It facilitates the way those widgets communicate\nwith the ControlPanel to update it according to their status.\n\nFrom now on, client action widgets can easily use the main ControlPanel.","distinct":true,"url":"https://api.github.com/repos/odoo-dev/odoo/commits/c6b1d0158e1de705bc22623df212aa9fb78ef806"}]}