@@ -96,6 +96,8 @@ def lister(
9696 filters : list [str ] | None = None ,
9797 select_filters : str | None = None ,
9898 search : bool = False ,
99+ server_back : int | None = None ,
100+ user_back : int | None = None ,
99101 ) -> InlineKeyboardMarkup :
100102 kb = InlineKeyboardBuilder ()
101103
@@ -184,17 +186,66 @@ def lister(
184186 ),
185187 width = 2 ,
186188 )
187-
189+ if server_back and not user_back :
190+ kb .row (
191+ InlineKeyboardButton (
192+ text = KeyboardTexts .BACK ,
193+ callback_data = PageCB (
194+ page = Pages .MENU , action = Actions .LIST , panel = server_back
195+ ).pack (),
196+ ),
197+ width = 1 ,
198+ )
199+ if server_back and user_back :
200+ kb .row (
201+ InlineKeyboardButton (
202+ text = KeyboardTexts .BACK ,
203+ callback_data = PageCB (
204+ page = Pages .USERS ,
205+ action = Actions .INFO ,
206+ dataid = user_back ,
207+ panel = server_back ,
208+ ).pack (),
209+ ),
210+ width = 1 ,
211+ )
188212 return kb .as_markup ()
189213
190214 def cancel (
191215 self ,
216+ server_back : int | None = None ,
217+ user_back : int | None = None ,
192218 ) -> InlineKeyboardMarkup :
193219 kb = InlineKeyboardBuilder ()
194220
195221 kb .button (
196222 text = KeyboardTexts .HOMES , callback_data = PageCB (page = Pages .HOME ).pack ()
197223 )
224+
225+ if server_back and not user_back :
226+ kb .row (
227+ InlineKeyboardButton (
228+ text = KeyboardTexts .BACK ,
229+ callback_data = PageCB (
230+ page = Pages .MENU , action = Actions .LIST , panel = server_back
231+ ).pack (),
232+ ),
233+ width = 1 ,
234+ )
235+ if server_back and user_back :
236+ kb .row (
237+ InlineKeyboardButton (
238+ text = KeyboardTexts .BACK ,
239+ callback_data = PageCB (
240+ page = Pages .USERS ,
241+ action = Actions .INFO ,
242+ dataid = user_back ,
243+ panel = server_back ,
244+ ).pack (),
245+ ),
246+ width = 1 ,
247+ )
248+
198249 return kb .as_markup ()
199250
200251 def selector (
@@ -207,6 +258,8 @@ def selector(
207258 panel : int | None = None ,
208259 extra : str | None = None ,
209260 all_selects : bool = False ,
261+ user_back : int | None = None ,
262+ server_back : int | None = None ,
210263 ) -> InlineKeyboardMarkup :
211264 kb = InlineKeyboardBuilder ()
212265
@@ -321,10 +374,40 @@ def selector(
321374 width = 1 ,
322375 )
323376
377+ if server_back and not user_back :
378+ kb .row (
379+ InlineKeyboardButton (
380+ text = KeyboardTexts .BACK ,
381+ callback_data = PageCB (
382+ page = Pages .MENU , action = Actions .LIST , panel = server_back
383+ ).pack (),
384+ ),
385+ width = 1 ,
386+ )
387+ if server_back and user_back :
388+ kb .row (
389+ InlineKeyboardButton (
390+ text = KeyboardTexts .BACK ,
391+ callback_data = PageCB (
392+ page = Pages .USERS ,
393+ action = Actions .INFO ,
394+ dataid = user_back ,
395+ panel = server_back ,
396+ ).pack (),
397+ ),
398+ width = 1 ,
399+ )
400+
324401 return kb .as_markup ()
325402
326403 def modify (
327- self , dataid : int , datatypes : list [Enum ], page : Pages , panel : int | None = None
404+ self ,
405+ dataid : int ,
406+ datatypes : list [Enum ],
407+ page : Pages ,
408+ panel : int | None = None ,
409+ server_back : int | None = None ,
410+ user_back : int | None = None ,
328411 ) -> InlineKeyboardMarkup :
329412 kb = InlineKeyboardBuilder ()
330413
@@ -349,4 +432,28 @@ def modify(
349432 width = 1 ,
350433 )
351434
435+ if server_back and not user_back :
436+ kb .row (
437+ InlineKeyboardButton (
438+ text = KeyboardTexts .BACK ,
439+ callback_data = PageCB (
440+ page = Pages .MENU , action = Actions .LIST , panel = server_back
441+ ).pack (),
442+ ),
443+ width = 1 ,
444+ )
445+ if server_back and user_back :
446+ kb .row (
447+ InlineKeyboardButton (
448+ text = KeyboardTexts .BACK ,
449+ callback_data = PageCB (
450+ page = Pages .USERS ,
451+ action = Actions .INFO ,
452+ dataid = user_back ,
453+ panel = server_back ,
454+ ).pack (),
455+ ),
456+ width = 1 ,
457+ )
458+
352459 return kb .as_markup ()
0 commit comments