为历史记录页面添加了图片评分系统,包括:
- 星级评分:每张图片下方显示5颗星 + 1个"Bad"按钮
- 星级筛选:可按星级(1-5星)或 Bad 筛选历史记录
- 筛选面板折叠:筛选条件面板默认折叠,点击可展开/收起
- 打开历史记录页面(
/history.html) - 在任意图片下方可以看到评分区域
- 点击星星(★)进行1-5星评分
- 点击"👎 Bad"按钮标记为不喜欢的图片
- 再次点击已选中的评分可以取消或更改
- 点击"🔍 筛选条件"标题展开筛选面板
- 日期筛选:选择特定日期查看该日期的历史记录
- 星级筛选:
- 全部:显示所有记录
- ★★★★★:仅显示5星图片
- ★★★★:仅显示4星图片
- ★★★:仅显示3星图片
- ★★:仅显示2星图片
- ★:仅显示1星图片
- 👎 Bad:仅显示标记为Bad的图片
- 可以同时使用日期和星级筛选
- 点击"清除日期"按钮清除日期筛选
- 点击"全部"按钮清除星级筛选
- 点击"🔍 筛选条件"标题可切换面板的展开/折叠状态
- 默认状态为折叠,节省页面空间
-
数据库结构 (
database.py)- 在
generation_history表中添加rating字段(INTEGER,默认0) - 添加
idx_history_rating索引优化查询性能 - 新增
update_rating()函数更新评分 - 修改
get_user_history()、get_all_history()、get_history_count()支持评分筛选
- 在
-
API接口 (
app.py)- 新增
/api/ratingPOST 接口处理评分请求 - 修改
/api/historyGET 接口支持rating参数筛选
- 新增
-
样式 (
static/history.html)- 添加评分星星样式(
.star、.rating-container) - 添加 Bad 按钮样式(
.bad-rating) - 添加筛选面板折叠样式(
.filter-section、.filter-content) - 添加星级筛选按钮样式(
.rating-filter-btn)
- 添加评分星星样式(
-
功能
rateImage(): 提交评分到后端selectRatingFilter(): 选择星级筛选toggleFilterSection(): 切换筛选面板折叠状态generateStarsHtml(): 生成评分星星HTML- 修改
renderHistory()显示评分区域 - 修改
loadHistory()支持评分筛选参数
0: 未评分(默认值)1-5: 1-5星评分-1: Bad(不喜欢)
如果数据库中已有历史记录但没有 rating 字段,需要运行迁移脚本:
python migrate_add_rating.py该脚本会:
- 检查
rating字段是否存在 - 如果不存在则添加该字段(默认值为0)
- 创建评分索引
运行测试脚本验证评分功能:
python test_rating.py测试内容包括:
- 获取历史记录
- 为图片评分
- 验证评分已更新
- 测试评分筛选功能
- 评分不校验用户ID:任何用户都可以对所有用户的图片进行评分
- 评分会立即保存并刷新显示
- 筛选条件可以组合使用(日期 + 星级)
- 筛选面板默认折叠,减少页面占用空间