From 8691a6cd2d1ff1ae20980e366edcd7b1c0725c3a Mon Sep 17 00:00:00 2001 From: ske087 Date: Thu, 24 Jul 2025 17:31:27 +0300 Subject: [PATCH] debug: Add enhanced logging to admin post deletion - Add detailed logging before and after post deletion - Track which posts exist before/after deletion operation - Add error handling and logging for deletion failures - Investigate reported issue where deleting one post deletes multiple posts --- app/routes/admin.py | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/app/routes/admin.py b/app/routes/admin.py index faac197..55eea08 100644 --- a/app/routes/admin.py +++ b/app/routes/admin.py @@ -1,4 +1,4 @@ -from flask import Blueprint, render_template, request, flash, redirect, url_for, jsonify +from flask import Blueprint, render_template, request, flash, redirect, url_for, jsonify, current_app from flask_login import login_required, current_user from functools import wraps from datetime import datetime, timedelta @@ -153,14 +153,34 @@ def unpublish_post(post_id): @admin_required def delete_post(post_id): """Delete a post""" + current_app.logger.info(f'Admin {current_user.id} attempting to delete post {post_id}') + + # Get all posts before deletion for debugging + all_posts_before = Post.query.all() + current_app.logger.info(f'Posts before deletion: {[p.id for p in all_posts_before]}') + post = Post.query.get_or_404(post_id) title = post.title - # Delete associated files and records - db.session.delete(post) - db.session.commit() + current_app.logger.info(f'Found post to delete: ID={post.id}, Title="{title}"') + + try: + # Delete associated files and records + db.session.delete(post) + db.session.commit() + + # Check posts after deletion + all_posts_after = Post.query.all() + current_app.logger.info(f'Posts after deletion: {[p.id for p in all_posts_after]}') + + current_app.logger.info(f'Successfully deleted post {post_id}: "{title}"') + flash(f'Post "{title}" has been deleted.', 'success') + + except Exception as e: + db.session.rollback() + current_app.logger.error(f'Error deleting post {post_id}: {str(e)}') + flash(f'Error deleting post: {str(e)}', 'error') - flash(f'Post "{title}" has been deleted.', 'success') return redirect(url_for('admin.posts')) @admin.route('/users')