• wenwen.tang's avatar
    feat(contracts): 台账新增「合同原件」列(AL),支持上传 / 查阅 / 移除 · 09815170
    wenwen.tang authored
    需求:房租车位费数据表需要支持上传合同留档并可查阅合同,增加合同原件的列。
    
    - 新增 rentos/contracts.py:data/contracts/{id}.{ext} + index.json,
      白名单 pdf/doc/docx/xls/xlsx/png/jpg/gif/webp/bmp,单份 ≤ 20MB;
      save/find/path_of/list_all/remove/parse/dump/describe;clean_id 挡路径穿越
    - config:加 CONTRACT_DIR 并纳入 ensure_dirs
    - tables:列 AL「合同原件」type=files(排 AJ 之后、最右),一格可挂多份;
      coerce 支持 list → 紧凑 JSON;新增 files_text 供导出 xlsx 输出文件名文本
    - server:
      POST /api/contracts(上传,仅管理员)
      GET  /api/contracts(列表)
      GET  /api/contracts/{id}(内联预览;?dl=1 下载;支持 ?token=,便于 <a href> 直接引用)
      DELETE /api/contracts/{id}(仅管理员)
      合同写接口不匹配任何 CAP_ELEC 规则 → 落 _write_cap 兜底 "*" = 仅管理员;
      访客只读仍可查阅(这点由冒烟验证)
    - 列定义以代码为准,故加列不需要数据迁移
    09815170
contracts.py 8.6 KB