openerp-dev-web team mailing list archive
-
openerp-dev-web team
-
Mailing list archive
-
Message #00114
[Merge] lp:~openerp-dev/openobject-client/duplication_of_ir.filters into lp:openobject-client
RGA(OpenERP) has proposed merging lp:~openerp-dev/openobject-client/duplication_of_ir.filters into lp:openobject-client.
Requested reviews:
OpenERP sa GTK client R&D (openerp-dev-gtk)
hello,
In order to make ir.filter more user-friendly the filter name should be specified already in the dialog box if the user tries to save a (active)filter and another filter is already active/selected
related server branch is: lp:~openerp-dev/openobject-server/remove_duplication_of_ir.filters
--
https://code.launchpad.net/~openerp-dev/openobject-client/duplication_of_ir.filters/+merge/35990
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-client/duplication_of_ir.filters.
=== modified file 'bin/widget/screen/screen.py'
--- bin/widget/screen/screen.py 2010-09-17 10:27:46 +0000
+++ bin/widget/screen/screen.py 2010-09-20 09:26:41 +0000
@@ -290,6 +290,9 @@
def execute_action(self, combo):
flag = combo.get_active_text()
+ combo_model = combo.get_model()
+ active_id = combo.get_active()
+ action_name = active_id != -1 and combo_model[active_id][3] and combo_model[active_id][2]
# 'mf' Section manages Filters
def clear_domain_ctx():
for key in self.old_ctx.keys():
@@ -315,6 +318,7 @@
value = obj._exec_action(act, {}, ctx)
if flag in ['blk','mf']:
+ self.screen_container.last_active_filter = False
clear_domain_ctx()
self.search_filter()
combo.set_active(0)
@@ -325,10 +329,16 @@
widget = glade2.get_widget('action_name')
win = glade2.get_widget('dia_get_action')
win.set_icon(common.OPENERP_ICON)
+ lbl = glade2.get_widget('label157')
if flag == 'sh':
win.set_title('Shortcut Entry')
- lbl = glade2.get_widget('label157')
lbl.set_text('Enter Shortcut Name:')
+ else:
+ win.set_size_request(300, 160)
+ text_entry = glade2.get_widget('action_name')
+ lbl.set_text('Enter filter Name:\n(Any existing filter with the \nsame name will be replaced)')
+ if self.screen_container.last_active_filter:
+ text_entry.set_text(self.screen_container.last_active_filter)
win.show_all()
response = win.run()
# grab a safe copy of the entered text before destroy() to avoid GTK bug https://bugzilla.gnome.org/show_bug.cgi?id=613241
@@ -343,7 +353,7 @@
'user_id':rpc.session.uid
}
if flag == 'sf':
- action_id = rpc.session.rpc_exec_auth('/object', 'execute', 'ir.filters', 'create', values, self.context)
+ action_id = rpc.session.rpc_exec_auth('/object', 'execute', 'ir.filters', 'create_or_replace', values, self.context)
self.screen_container.fill_filter_combo(self.name)
if flag == 'sh':
values.update({'res_model':self.name,
@@ -352,6 +362,7 @@
rpc.session.rpc_exec_auth_try('/object', 'execute', 'ir.ui.menu', 'create_shortcut', values, self.context)
else:
try:
+ self.screen_container.last_active_filter = action_name
filter_domain = flag and tools.expr_eval(flag)
clear_domain_ctx()
if combo.get_active() >= 0:
=== modified file 'bin/widget/view/screen_container.py'
--- bin/widget/view/screen_container.py 2010-08-18 10:13:20 +0000
+++ bin/widget/view/screen_container.py 2010-09-20 09:26:41 +0000
@@ -36,6 +36,7 @@
self.vp = gtk.Viewport()
self.vp.set_shadow_type(gtk.SHADOW_NONE)
self.vbox = gtk.VBox()
+ self.last_active_filter = False
self.vbox.pack_end(self.sw)
self.filter_vbox = None
self.button = None
@@ -50,11 +51,11 @@
def fill_filter_combo(self, model):
self.action_list.clear()
my_acts = rpc.session.rpc_exec_auth('/object', 'execute', 'ir.filters', 'get_filters', model)
- filters_list=[['blk','','-- Filters --']]
- sorted_filters = [[act.get('domain',act['id']),act['context'],act['name']] for act in my_acts]
+ filters_list=[['blk','','-- Filters --',False]]
+ sorted_filters = [[act.get('domain',act['id']),act['context'],act['name'],act['id']] for act in my_acts]
sorted_filters.sort(lambda x, y: cmp(x[2], y[2]))
filters_list += sorted_filters
- filters_list += [['blk','','--Actions--'],['sh','','Save as a Shortcut'],['sf','','Save as a Filter'],['mf','','Manage Filters']]
+ filters_list += [['blk','','--Actions--',False],['sh','','Save as a Shortcut',False],['sf','','Save as a Filter',False],['mf','','Manage Filters',False]]
for lim in filters_list:
self.action_list.append(lim)
self.action_combo.set_active(0)
@@ -98,7 +99,7 @@
#Action Filter and custom Filter Button
#actions combo
- self.action_list = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING)
+ self.action_list = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_INT)
self.action_combo = gtk.ComboBox(self.action_list)
cell = gtk.CellRendererText()
self.action_combo.pack_start(cell, True)
Follow ups