Update app.py
Browse files
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 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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")
|