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
This commit is contained in:
@@ -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 flask_login import login_required, current_user
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
@@ -153,14 +153,34 @@ def unpublish_post(post_id):
|
|||||||
@admin_required
|
@admin_required
|
||||||
def delete_post(post_id):
|
def delete_post(post_id):
|
||||||
"""Delete a post"""
|
"""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)
|
post = Post.query.get_or_404(post_id)
|
||||||
title = post.title
|
title = post.title
|
||||||
|
|
||||||
# Delete associated files and records
|
current_app.logger.info(f'Found post to delete: ID={post.id}, Title="{title}"')
|
||||||
db.session.delete(post)
|
|
||||||
db.session.commit()
|
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'))
|
return redirect(url_for('admin.posts'))
|
||||||
|
|
||||||
@admin.route('/users')
|
@admin.route('/users')
|
||||||
|
|||||||
Reference in New Issue
Block a user