4
4
5
5
odoo . define ( 'base_export_manager.base_export_manager' , function ( require ) {
6
6
'use strict' ;
7
-
7
+
8
+ var jQuery = require ( '$' ) ;
8
9
var DataExport = require ( 'web.DataExport' ) ;
10
+ var core = require ( 'web.core' ) ;
11
+ var Model = require ( 'web.DataModel' ) ;
12
+ var ListView = require ( 'web.ListView' ) ;
13
+ var Sidebar = require ( 'web.Sidebar' ) ;
14
+ var _t = core . _t ;
15
+ var Session = require ( 'web.Session' ) ;
16
+
9
17
10
18
DataExport . include ( {
11
19
do_load_export_field : function ( field_list ) {
@@ -23,5 +31,60 @@ odoo.define('base_export_manager.base_export_manager', function(require) {
23
31
}
24
32
} ,
25
33
} ) ;
26
-
34
+
35
+
36
+ Session . include ( {
37
+ get_export_models : function ( ) {
38
+ if ( ! this . uid ) {
39
+ return $ . when ( ) . resolve ( false ) ;
40
+ }
41
+ var Users = new Model ( 'res.users' ) ;
42
+ var export_models = Users . call ( 'get_export_models' , [ ] ) ;
43
+ return export_models ;
44
+ } ,
45
+ } ) ;
46
+
47
+ ListView . include ( {
48
+ view_loading : function ( fvg ) {
49
+ this . _super ( fvg ) ;
50
+ this . is_export_manager ( ) ;
51
+ } ,
52
+ is_export_manager : function ( ) {
53
+ var self = this ;
54
+ $ . when ( Session . get_export_models ( ) ) . then ( function
55
+ ( export_models ) {
56
+ self . export_models = export_models ;
57
+ } ) ;
58
+ } ,
59
+ /**
60
+ * Instantiate and render the sidebar.
61
+ * Sets this.sidebar
62
+ * @param {jQuery } [$node] a jQuery node where the sidebar should be inserted
63
+ * $node may be undefined, in which case the ListView inserts the sidebar in
64
+ * this.options.$sidebar or in a div of its template
65
+ **/
66
+ render_sidebar : function ( $node ) {
67
+ var self = this ;
68
+ self . render_export_enable = jQuery . inArray ( this . model , self . export_models ) ;
69
+ if ( ! this . sidebar && this . options . sidebar ) {
70
+ this . sidebar = new Sidebar ( this , { editable : this . is_action_enabled ( 'edit' ) } ) ;
71
+ if ( this . fields_view . toolbar ) {
72
+ this . sidebar . add_toolbar ( this . fields_view . toolbar ) ;
73
+ }
74
+ this . sidebar . add_items ( 'other' , _ . compact ( [
75
+ self . render_export_enable >= 0 && { label : _t ( "Export" ) , callback : this . on_sidebar_export } ,
76
+ this . fields_view . fields . active && { label : _t ( "Archive" ) , callback : this . do_archive_selected } ,
77
+ this . fields_view . fields . active && { label : _t ( "Unarchive" ) , callback : this . do_unarchive_selected } ,
78
+ this . is_action_enabled ( 'delete' ) && { label : _t ( 'Delete' ) , callback : this . do_delete_selected }
79
+ ] ) ) ;
80
+
81
+ $node = $node || this . options . $sidebar ;
82
+ this . sidebar . appendTo ( $node ) ;
83
+
84
+ // Hide the sidebar by default (it will be shown as soon as a record is selected)
85
+ this . sidebar . do_hide ( ) ;
86
+ }
87
+ } ,
88
+ } ) ;
89
+
27
90
} ) ;
0 commit comments