fix: v3.0.1 - 修复5个代码问题

修复内容:
1. Collection 模型唯一约束逻辑错误
   - 修改约束从 (user_id, site_id, folder_id) 到 (user_id, site_id)
   - 防止用户多次收藏同一网站

2. 用户注册重复提交数据库
   - 优化为只提交一次数据库操作
   - 提升注册性能

3. JavaScript 未使用的变量
   - 删除 updateCollectButton() 中未使用的 icon 变量

4. 文件夹计数逻辑缺失
   - 为每个文件夹添加收藏数量计算
   - 修复收藏列表页面显示

5. JavaScript 错误处理不完善
   - 所有 fetch 调用添加 HTTP 状态码检查
   - 改进网络错误提示

新增文件:
- fix_collection_constraint.py - 数据库约束修复脚本
- BUGFIX_v3.0.1.md - 详细修复记录

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Jowe
2026-02-06 19:27:12 +08:00
parent 423039ce68
commit 7a6fd0c388
5 changed files with 244 additions and 8 deletions

10
app.py
View File

@@ -642,13 +642,12 @@ def create_app(config_name='default'):
try:
user = User(username=username)
user.set_password(password)
user.last_login = datetime.now()
db.session.add(user)
db.session.commit()
# 自动登录
login_user(user)
user.last_login = datetime.now()
db.session.commit()
flash('注册成功!', 'success')
return redirect(url_for('index'))
@@ -1144,6 +1143,13 @@ def create_app(config_name='default'):
Folder.sort_order.desc(), Folder.created_at
).all()
# 为每个文件夹添加收藏计数
for folder in folders:
folder.count = Collection.query.filter_by(
user_id=current_user.id,
folder_id=folder.id
).count()
# 获取收藏(分页)
page = request.args.get('page', 1, type=int)
folder_id = request.args.get('folder_id')