Skip to content

Commit

Permalink
Fix remote pagination on_click event row (#3468)
Browse files Browse the repository at this point in the history
* Add test

* Fix remote pagination on_click event row
  • Loading branch information
philippjfr authored Apr 28, 2022
1 parent 0fd145f commit 3d196cb
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
16 changes: 16 additions & 0 deletions panel/tests/widgets/test_tables.py
Original file line number Diff line number Diff line change
Expand Up @@ -1734,3 +1734,19 @@ def test_tabulator_cell_click_event():
event = CellClickEvent(model=None, column=col, row=row)
table._process_event(event)
assert values[-1] == (col, row, data[col].iloc[row])

def test_tabulator_pagination_remote_cell_click_event():
df = makeMixedDataFrame()
table = Tabulator(df, pagination='remote', page_size=2)

values = []
table.on_click(lambda e: values.append((e.column, e.row, e.value)))

data = df.reset_index()
for col in data.columns:
for p in range(len(df)//2):
table.page = p+1
for row in range(2):
event = CellClickEvent(model=None, column=col, row=row)
table._process_event(event)
assert values[-1] == (col, (p*2)+row, data[col].iloc[(p*2)+row])
2 changes: 1 addition & 1 deletion panel/widgets/tables.py
Original file line number Diff line number Diff line change
Expand Up @@ -1043,7 +1043,7 @@ def _cleanup(self, root):
def _process_event(self, event):
if self.pagination == 'remote':
nrows = self.page_size
event.row = (self.page-1)*nrows
event.row = event.row+(self.page-1)*nrows
if event.column not in self.buttons:
if event.column not in self._processed.columns:
event.value = self._processed.index[event.row]
Expand Down

0 comments on commit 3d196cb

Please sign in to comment.