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

90 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 2026-03-22 开发任务汇总
source:
author: shenwei
published:
created:
description:
tags: []
---
# 2026-03-22 开发任务汇总
## 完成的功能
### 1. EasyMDE Markdown 编辑器集成
- 在 Django Admin 的行程详情页集成 EasyMDE 编辑器
- 应用于 `description``itinerary_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所有验证通过问题解决