diff --git a/web_advanced_filters/i18n/nl.po b/web_advanced_filters/i18n/nl.po
index 450264824..9445741da 100644
--- a/web_advanced_filters/i18n/nl.po
+++ b/web_advanced_filters/i18n/nl.po
@@ -60,6 +60,11 @@ msgstr "Testen %s"
msgid "or"
msgstr "or"
+#. module: web_advanced_filters
+#: field:ir.filters,save_as_public:0
+msgid "Share with all users"
+msgstr "Deel met alle gebruikers"
+
#. module: web_advanced_filters
#: field:ir.filters,complement_filter_ids:0
msgid "Remove result of filters"
diff --git a/web_advanced_filters/model/ir_filters.py b/web_advanced_filters/model/ir_filters.py
index 488c5a020..6c4058aba 100644
--- a/web_advanced_filters/model/ir_filters.py
+++ b/web_advanced_filters/model/ir_filters.py
@@ -164,11 +164,18 @@ class IrFilters(Model):
_evaluate_get, type='boolean', multi='evaluate',
string='Always evaluate this filter before using it',
help='This is necessary if this filter contains x2many fields with'
- '_auto_join activated')
+ '_auto_join activated'),
+ 'save_as_public': fields.function(
+ lambda self, cr, uid, ids, *args, **kwargs:
+ dict((i, False) for i in ids),
+ fnct_inv=lambda *args, **kwargs: None,
+ type='boolean',
+ string='Share with all users'),
}
_defaults = {
'active': True,
+ 'save_as_public': False,
}
def _evaluate(self, cr, uid, ids, context=None):
@@ -245,3 +252,8 @@ class IrFilters(Model):
"update ir_module_module set state='to remove' where "
"name='advanced_filters' and state not in "
"('uninstalled', 'to remove')")
+
+ def create(self, cr, uid, values, context=None):
+ values.setdefault(
+ 'user_id', False if values.get('save_as_public') else uid)
+ return super(IrFilters, self).create(cr, uid, values, context=context)
diff --git a/web_advanced_filters/static/src/js/web_advanced_filters.js b/web_advanced_filters/static/src/js/web_advanced_filters.js
index ae1a8ea10..e34ec0233 100644
--- a/web_advanced_filters/static/src/js/web_advanced_filters.js
+++ b/web_advanced_filters/static/src/js/web_advanced_filters.js
@@ -171,6 +171,7 @@ openerp.web_advanced_filters = function(instance)
default_model_id: self.dataset._model.name,
default_domain: JSON.stringify(search.domain),
default_context: JSON.stringify(ctx),
+ default_user_id: JSON.stringify(false),
form_view_ref: 'web_advanced_filters.form_ir_filters_save_new',
},
},
@@ -201,6 +202,7 @@ openerp.web_advanced_filters = function(instance)
]
),
default_context: JSON.stringify({}),
+ default_user_id: JSON.stringify(false),
form_view_ref: 'web_advanced_filters.form_ir_filters_save_new',
},
},
diff --git a/web_advanced_filters/view/ir_filters.xml b/web_advanced_filters/view/ir_filters.xml
index 32c562e61..4054aade2 100644
--- a/web_advanced_filters/view/ir_filters.xml
+++ b/web_advanced_filters/view/ir_filters.xml
@@ -37,6 +37,7 @@
+