diff --git a/models/widgets.py b/models/widgets.py index 0e79ab54f18f173f2933e1059e196f70e4a66439..723fd7e2c6de9b4c9380314e1101fdec1c4ad4af 100755 --- a/models/widgets.py +++ b/models/widgets.py @@ -109,6 +109,7 @@ formModifier.configure(buttonAlign='right', # gridModifier = dbui.GridModifier('categories') gridModifier.configure_column('code', width=10) +gridModifier.set_rownumbering() # # Define a column template for the publications grid diff --git a/modules/plugin_dbui/cvtsvc.py b/modules/plugin_dbui/cvtsvc.py index 310a82c0822d72898fac5401b20e816e5d7af821..6b78fdaf5eefbb030981c35bcaa2a083cb66ca46 100644 --- a/modules/plugin_dbui/cvtsvc.py +++ b/modules/plugin_dbui/cvtsvc.py @@ -117,6 +117,10 @@ class CvtSvc(BaseSvc): delete_columns = grid_modifiers[tablename].delete_columns template_columns = grid_modifiers[tablename].template_columns + # row numbering in the first colum, + if grid_modifiers[tablename].row_numbering: + models.append({'xtype': 'rownumberer'}) + # standard column for field in table: fieldname = field.name diff --git a/modules/plugin_dbui/gridmodifier.py b/modules/plugin_dbui/gridmodifier.py index 46dc7f1bc8ab23d3ddddfe7978df98ebb71a6a06..2f0425d73b651faaa2b9bae16a976aea9d5b8ceb 100644 --- a/modules/plugin_dbui/gridmodifier.py +++ b/modules/plugin_dbui/gridmodifier.py @@ -52,7 +52,9 @@ class GridModifier(Modifier): self.data.delete_columns = [] self.data.grid_filters = [] self.data.hidden_columns = [] + self.data.row_numbering = False self.data.template_columns = [] + def add_column(self, ktable, kfield, position=0, extjs={}): @@ -167,3 +169,11 @@ class GridModifier(Modifier): """ self.data.grid_filters = Storage(filters=filters, extjs=kwargs) + + + def set_rownumbering(self): + """Activate the row numbering. + Row number is displayed in the first column of the grid. + + """ + self.data.row_numbering = True diff --git a/static/plugin_dbui/src/appgrid.js b/static/plugin_dbui/src/appgrid.js index afb540cf986031d3a58b9648d281ef1c54b39e25..85616bd6f1108fc8297b0a6e42f869d2c5c7f26d 100644 --- a/static/plugin_dbui/src/appgrid.js +++ b/static/plugin_dbui/src/appgrid.js @@ -19,6 +19,25 @@ App.grid.Grid = Ext.extend(Ext.grid.GridPanel, { */ rowEditor: null, + /** + * Constructor + * + * NOTE: + * Required in ExtJS 3.4 convert rownumberer xtype + * into an Ext.grid.RowNumberer. Not needed in ExtJS 4 + * + */ + constructor: function (config) { + + var first_column = config.columns[0]; + + if ('xtype' in first_column && first_column.xtype === 'rownumberer') { + config.columns[0] = new Ext.grid.RowNumberer(); + } + + Ext.apply(this, config); + App.grid.Grid.superclass.constructor.call(this); + }, /** * private method requests by the component model of ExtJS */