From 1f5accd15b7c556cd0ffc9663c7dfb053a433a12 Mon Sep 17 00:00:00 2001 From: tux091 <renaud.legac@free.fr> Date: Wed, 28 Sep 2011 22:32:01 +0200 Subject: [PATCH] Backport the 0.5.x syntax for the GridModifier. --- models/db_widgets.py | 63 ++++++++++++++++------------- modules/plugin_dbui/cfgsvc.py | 2 +- modules/plugin_dbui/gridmodifier.py | 33 ++++++--------- 3 files changed, 48 insertions(+), 50 deletions(-) diff --git a/models/db_widgets.py b/models/db_widgets.py index 0b7ca837..f720958e 100755 --- a/models/db_widgets.py +++ b/models/db_widgets.py @@ -111,7 +111,7 @@ formModifier.configure(buttonAlign='right', defaults={'height': 320}) # -# Modify the publications grid +# Define a column template for the publications grid # tpl = ['<b>{PublicationsTitle}</b><br>', '{PublicationsAuthors}', @@ -139,35 +139,40 @@ tpl = ['<b>{PublicationsTitle}</b><br>', '<br>Auteurs CPPM : {PublicationsAuthors_cppm}' ] +gridModifier = dbui.GridModifier('publications') +gridModifier.merge_columns('title', + 'authors', + 'id_collaborations', + 'id_publishers', + 'doi', + 'volume', + 'first_page', + 'last_page', + 'e_print', + 'conference_title', + 'conference_url', + 'conference_start', + 'conference_end', + 'conference_town', + 'id_countries', + 'conference_speaker', + 'report_numbers', + 'id_reports', + 'authors_cppm', + autohide=True, + header=T('Publication'), + position=0, + tpl=tpl, + width=700) + +# +# Setup a filter panel for the publication grid +# filters = [('year', '==', T('select publication for a given year')), ('id_teams', '==', T('select publications for a given team')), ('id_projects', '==', T('select publications for a given project')), ('id_categories_aeres', '==', T('select publications with a given AERES code')), - ('authors_cppm', 'contains', T('select publications for a given CPPM author')), - ] - -gm = dbui.GridModifier('publications') -gm.merge_columns('title', - 'authors', - 'id_collaborations', - 'id_publishers', - 'doi', - 'volume', - 'first_page', - 'last_page', - 'e_print', - 'conference_title', - 'conference_url', - 'conference_start', - 'conference_end', - 'conference_town', - 'id_countries', - 'conference_speaker', - 'report_numbers', - 'id_reports', - 'authors_cppm', - autohide=True, - position=0, - extjs={'header': T('Publication'), 'tpl': tpl, 'width': 700}) - -gm.set_filters(*filters, extjs={'width': 300}) + ('authors_cppm', 'contains', T('select publications for a given CPPM author'))] + +gridModifier.set_filters(*filters, + width=300) diff --git a/modules/plugin_dbui/cfgsvc.py b/modules/plugin_dbui/cfgsvc.py index 5a6b47dc..97e13add 100755 --- a/modules/plugin_dbui/cfgsvc.py +++ b/modules/plugin_dbui/cfgsvc.py @@ -362,7 +362,7 @@ class CfgSvc(BaseSvc): di['items'].append(cfg) - # user configuration options for Ext.form;FieldSet + # user configuration options for Ext.form.FieldSet di.update(grid_filters.extjs) return di diff --git a/modules/plugin_dbui/gridmodifier.py b/modules/plugin_dbui/gridmodifier.py index 301fe83a..59a5abd5 100644 --- a/modules/plugin_dbui/gridmodifier.py +++ b/modules/plugin_dbui/gridmodifier.py @@ -12,7 +12,6 @@ from modifier import Modifier GRID_MODIFIERS = 'grid_modifiers' -MSG_EXTJS_MISSING = 'keyword argument extjs is missing' MSG_HEADER_MISSING = 'configuration option header is missing in extjs' MSG_INVALID_KEYWORD = 'invalid keyword %s' MSG_POSITION_MISSING = 'keyword argument position is missing' @@ -115,27 +114,23 @@ class GridModifier(Modifier): of the underlying Ext.grid.TemplateColumn """ - keywords = ['autohide', 'extjs', 'position'] - - for el in keywords: - if el not in keywords: - raise GridModifierException(MSG_INVALID_KEYWORD % el) + keywords = ['autohide', 'position'] + extjs = dict(kwargs) + + for key in keywords: + if key in extjs: + del extjs[key] if 'position' not in kwargs: raise GridModifierException(MSG_POSITION_MISSING) - if 'extjs' not in kwargs: - raise GridModifierException(MSG_EXTJS_MISSING) - - if 'header' not in kwargs['extjs']: + if 'header' not in kwargs: raise GridModifierException(MSG_HEADER_MISSING) - if 'tpl' not in kwargs['extjs']: + if 'tpl' not in kwargs: raise GridModifierException(MSG_TPL_MISSING) - di = Storage(extjs=kwargs['extjs'], - position=kwargs['position']) - + di = Storage(extjs=extjs, position=kwargs['position']) self.data.template_columns.append(di) if 'autohide' in kwargs and kwargs['autohide']: @@ -154,11 +149,9 @@ class GridModifier(Modifier): the method dbsvc._encode_query - a string with a comment for the tool tip - The keyword argument extjs is a dictionary containing - the configuration options of the underlying Ext.form.FieldSet. + The keyword argument contains the configuration options for the + underlying Ext.form.FieldSet. For more information see the ExtJS + documentation. """ - if 'extjs' not in kwargs: - kwargs['extjs'] = {} - - self.data.grid_filters = Storage(filters=filters, extjs=kwargs['extjs']) + self.data.grid_filters = Storage(filters=filters, extjs=kwargs) -- GitLab