From 1d1abdac6df859374de636e70d9550c910813bdb Mon Sep 17 00:00:00 2001 From: Alan Roberts Date: Thu, 5 Sep 2024 00:00:48 -0400 Subject: [PATCH] adding dormant and gone filters --- app/admin/routes.py | 66 ++++++++++++++++++++++++++++++ app/templates/admin/instances.html | 4 ++ 2 files changed, 70 insertions(+) diff --git a/app/admin/routes.py b/app/admin/routes.py index c93a29d0..a9bd3b8a 100644 --- a/app/admin/routes.py +++ b/app/admin/routes.py @@ -994,3 +994,69 @@ def admin_instances(): moderating_communities=moderating_communities(current_user.get_id()), joined_communities=joined_communities(current_user.get_id()), menu_topics=menu_topics(), site=g.site) + +@bp.route('/instances/dormant', methods=['GET', 'POST']) +@login_required +@permission_required('change instance settings') +def admin_instances_dormant(): + page = request.args.get('page', 1, type=int) + search = request.args.get('search', '') + low_bandwidth = request.cookies.get('low_bandwidth', '0') == '1' + + instances = Instance.query.order_by(Instance.domain) + user_model = User + community_model = Community + + instances = instances.filter(Instance.dormant == True) + + if search: + instances = instances.filter(Instance.domain.ilike(f"%{search}%")) + + # Pagination + instances = instances.paginate(page=page, + per_page=250 if current_user.is_authenticated and not low_bandwidth else 50, + error_out=False) + next_url = url_for('admin.admin_instances', page=instances.next_num) if instances.has_next else None + prev_url = url_for('admin.admin_instances', page=instances.prev_num) if instances.has_prev and page != 1 else None + + return render_template('admin/instances.html', instances=instances, + title=_('Dormant Instances'), search=search, + next_url=next_url, prev_url=prev_url, + low_bandwidth=low_bandwidth, + user_model=user_model, community_model=community_model, + moderating_communities=moderating_communities(current_user.get_id()), + joined_communities=joined_communities(current_user.get_id()), + menu_topics=menu_topics(), site=g.site) + +@bp.route('/instances/gone-forever', methods=['GET', 'POST']) +@login_required +@permission_required('change instance settings') +def admin_instances_gone_forever(): + page = request.args.get('page', 1, type=int) + search = request.args.get('search', '') + low_bandwidth = request.cookies.get('low_bandwidth', '0') == '1' + + instances = Instance.query.order_by(Instance.domain) + user_model = User + community_model = Community + + instances = instances.filter(Instance.gone_forever == True) + + if search: + instances = instances.filter(Instance.domain.ilike(f"%{search}%")) + + # Pagination + instances = instances.paginate(page=page, + per_page=250 if current_user.is_authenticated and not low_bandwidth else 50, + error_out=False) + next_url = url_for('admin.admin_instances', page=instances.next_num) if instances.has_next else None + prev_url = url_for('admin.admin_instances', page=instances.prev_num) if instances.has_prev and page != 1 else None + + return render_template('admin/instances.html', instances=instances, + title=_('Gone Forever Instances'), search=search, + next_url=next_url, prev_url=prev_url, + low_bandwidth=low_bandwidth, + user_model=user_model, community_model=community_model, + moderating_communities=moderating_communities(current_user.get_id()), + joined_communities=joined_communities(current_user.get_id()), + menu_topics=menu_topics(), site=g.site) \ No newline at end of file diff --git a/app/templates/admin/instances.html b/app/templates/admin/instances.html index 7fb330f8..50aeac58 100644 --- a/app/templates/admin/instances.html +++ b/app/templates/admin/instances.html @@ -13,6 +13,10 @@
+ Status Filter: + Online | + Dormant | + Gone Forever |
Domain