diff --git a/web_advanced_filters/i18n/nl.po b/web_advanced_filters/i18n/nl.po
index 45026482..9445741d 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 488c5a02..6c4058ab 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/view/ir_filters.xml b/web_advanced_filters/view/ir_filters.xml
index 10c1f327..4054aade 100644
--- a/web_advanced_filters/view/ir_filters.xml
+++ b/web_advanced_filters/view/ir_filters.xml
@@ -37,7 +37,7 @@
-
+