Spaces:
Sleeping
Sleeping
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")
|