Files
nexus/openclaw/yunjiang/memory/2026-03-22.md

3.0 KiB
Raw Blame History

title, source, author, published, created, description, tags
title source author published created description tags
2026-03-22 开发任务汇总 shenwei

2026-03-22 开发任务汇总

完成的功能

1. EasyMDE Markdown 编辑器集成

  • 在 Django Admin 的行程详情页集成 EasyMDE 编辑器
  • 应用于 descriptionitinerary_quote 字段
  • 默认以预览模式显示

2. 行程报价 JSON 数据

  • 添加 itinerary_quote_json_data 字段
  • 包含 itinerary 基本信息、目的地、 travelers、attractions/hotels/restaurants 的 pricing_strategy
  • 调用行程报价 webhook 时自动更新并发送

3. 隐藏价格字段

  • 景点详情页:隐藏门票价格、货币、票种、预定网站、是否要预定
  • 酒店详情页:隐藏价格范围、货币、最低/最高价格
  • 餐厅详情页:隐藏人均价格

4. 行程预览页面优化

  • 使用 marked.js 在服务端解析 Markdown
  • PDF 导出时正确显示 Markdown 内容
  • 添加分页符:行程说明、每日行程、行程报价前

5. Word 导出优化

  • 修复日期占位符
  • Markdown 转纯文本

6. 每日行程内联列表优化

  • 合并时间显示08:00~11:00
  • 调整列宽:操作/第几天列缩小,活动标题/描述列加宽
  • 酒店/餐厅显示名称+链接
  • 删除后刷新父窗口

7. 行程日期自动调整

  • 当 start_date 变化时,自动调整:
    • 结束日期 (end_date)
    • 目的地日期 (arrival_date, departure_date)
    • 每日行程日期 (schedule_date)

8. Requirement 模型更新

  • 添加 district 字段(区域和商圈)
  • 添加 destination_cities 等 JSON 字段的通用序列化方法

9. 通用 JSON 序列化方法

  • json_array_to_string() - JSON数组转逗号分隔字符串
  • string_to_json_array() - 逗号分隔字符串转JSON数组
  • 支持字段destination_cities, district, preference_tags, must_visit_spots, avoid_activities

10. 代码提交

  • 多次提交到 GitHub包含所有功能更新

修改的文件

  • apps/admin/itinerary.py
  • apps/admin/requirement.py
  • apps/models/itinerary.py
  • apps/models/requirement.py
  • apps/models/hotel.py
  • apps/models/restaurant.py
  • apps/api/views/export_views.py
  • apps/api/services/webhook_services.py
  • templates/admin/preview_itinerary.html
  • static/easymde/easymde.init.js
  • static/admin/css/custom_inline.css
  • apps/admin_ext/utils.py

经验教训

  • 通过 OpenCode 执行代码修改是铁律,必须遵守
  • Django Admin 集成第三方 JS 库需要添加 Media 配置
  • ForeignKey 访问实际 ID 需要用 _id 后缀
  • JSON 序列化需要注意格式(单引号 vs 双引号)

最新调试记录 (18:57-19:10)

  • 问题Requirement 保存时报"请更正以下错误"
  • 排查:添加模块级 print 日志跟踪 Django 表单加载流程
  • 发现:日志显示 Requirement.full_clean() 被调用时抛出 NameError: name 'sys' is not defined
  • 根因:apps/models/requirement.py 中添加 full_clean() 重写时未导入 sys
  • 修复:添加 import sys
  • 结果POST 返回 200所有验证通过问题解决