maringetxway commited on
Commit
76d7fc4
·
verified ·
1 Parent(s): 8a6a5ba

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +38 -6
app.py CHANGED
@@ -232,12 +232,44 @@ def interface():
232
  dropdown.change(lambda c, ci, l: (1,), inputs=[country_filter, city_filter, language_filter], outputs=[page_state])
233
  dropdown.change(filter_by_fields, inputs=[country_filter, city_filter, language_filter, page_state], outputs=[table_html, page_state, gr.Number(visible=False)])
234
 
235
- prev_btn.click(lambda p: max(p - 1, 1), inputs=[page_state], outputs=[page_state])
236
- prev_btn.click(filter_by_fields, inputs=[country_filter, city_filter, language_filter, page_state], outputs=[table_html, page_state, gr.Number(visible=False)])
237
-
238
- next_btn.click(lambda p, c, ci, l: min((filter_by_fields(c, ci, l, p + 1)[2] - 1) // PAGE_SIZE + 1, p + 1),
239
- inputs=[page_state, country_filter, city_filter, language_filter], outputs=[page_state])
240
- next_btn.click(filter_by_fields, inputs=[country_filter, city_filter, language_filter, page_state], outputs=[table_html, page_state, gr.Number(visible=False)])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
241
 
242
 
243
  del_btn = gr.Button("Delete Profile")
 
232
  dropdown.change(lambda c, ci, l: (1,), inputs=[country_filter, city_filter, language_filter], outputs=[page_state])
233
  dropdown.change(filter_by_fields, inputs=[country_filter, city_filter, language_filter, page_state], outputs=[table_html, page_state, gr.Number(visible=False)])
234
 
235
+ def get_total_pages(selected_country, selected_city, selected_language):
236
+ filters = []
237
+ params = []
238
+ if selected_country != "All":
239
+ filters.append("country = ?")
240
+ params.append(selected_country.title())
241
+ if selected_city != "All":
242
+ filters.append("city = ?")
243
+ params.append(selected_city.title())
244
+ if selected_language != "All":
245
+ filters.append("languages LIKE ?")
246
+ params.append(f"%{selected_language.lower()}%")
247
+ query = "SELECT COUNT(*) FROM teamup"
248
+ if filters:
249
+ query += " WHERE " + " AND ".join(filters)
250
+ with sqlite3.connect(DB_PATH) as conn:
251
+ total = pd.read_sql_query(query, conn, params=params).iloc[0, 0]
252
+ return max(1, (total - 1) // PAGE_SIZE + 1)
253
+
254
+ prev_btn.click(
255
+ fn=lambda p: max(p - 1, 1),
256
+ inputs=[page_state],
257
+ outputs=[page_state]
258
+ ).then(
259
+ fn=filter_by_fields,
260
+ inputs=[country_filter, city_filter, language_filter, page_state],
261
+ outputs=[table_html, page_state, gr.Number(visible=False)]
262
+ )
263
+
264
+ next_btn.click(
265
+ fn=lambda p, c, ci, l: min(get_total_pages(c, ci, l), p + 1),
266
+ inputs=[page_state, country_filter, city_filter, language_filter],
267
+ outputs=[page_state]
268
+ ).then(
269
+ fn=filter_by_fields,
270
+ inputs=[country_filter, city_filter, language_filter, page_state],
271
+ outputs=[table_html, page_state, gr.Number(visible=False)]
272
+ )
273
 
274
 
275
  del_btn = gr.Button("Delete Profile")