contract_versions.html 4.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. {% extends "base.html" %}
  2. {% block title %}逐鹿人才-证件合同管理系统-合同版本历史{% endblock %}
  3. {% block content %}
  4. <h2>合同版本历史 - {{ contract.name }}</h2>
  5. <div class="accordion" id="versionsAccordion">
  6. {% set contracts_grouped = {} %}
  7. {# 先按合同分组 parsed_versions #}
  8. {% for v in parsed_versions %}
  9. {% if v.belongs_to.id not in contracts_grouped %}
  10. {% set _ = contracts_grouped.update({v.belongs_to.id: []}) %}
  11. {% endif %}
  12. {% set _ = contracts_grouped[v.belongs_to.id].append(v) %}
  13. {% endfor %}
  14. {% for contract_id, versions in contracts_grouped.items() %}
  15. {% set latest_version_num = versions | map(attribute='version_obj.version') | max %}
  16. <h3 class="mt-3">合同编号: {{ versions[0].belongs_to.contract_number }} | 合同名称: {{ versions[0].belongs_to.name }}</h3>
  17. {% for v in versions %}
  18. <div class="accordion-item {% if v.version_obj.version == latest_version_num %}bg-light border border-primary{% endif %}">
  19. <h2 class="accordion-header" id="heading{{ v.version_obj.id }}">
  20. <button class="accordion-button {% if v.version_obj.version != latest_version_num %}collapsed{% endif %}" type="button" data-bs-toggle="collapse"
  21. data-bs-target="#collapse{{ v.version_obj.id }}" aria-expanded="{% if v.version_obj.version == latest_version_num %}true{% else %}false{% endif %}"
  22. aria-controls="collapse{{ v.version_obj.id }}">
  23. 版本 {{ v.version_obj.version }} | 修改人: {{ v.version_obj.modifier.name }} |
  24. 修改时间: {{ v.version_obj.modified_at.strftime('%Y-%m-%d %H:%M:%S') }}
  25. {% if v.version_obj.version == latest_version_num %}
  26. <span class="badge bg-primary ms-2">最新版本</span>
  27. {% endif %}
  28. </button>
  29. </h2>
  30. <div id="collapse{{ v.version_obj.id }}" class="accordion-collapse collapse {% if v.version_obj.version == latest_version_num %}show{% endif %}"
  31. aria-labelledby="heading{{ v.version_obj.id }}" data-bs-parent="#versionsAccordion">
  32. <div class="accordion-body">
  33. <table class="table table-sm table-bordered">
  34. <tbody>
  35. <tr>
  36. <th>合同名称</th>
  37. <td>{{ v.data.name }}</td>
  38. </tr>
  39. <tr>
  40. <th>合同编号</th>
  41. <td>{{ v.data.contract_number }}</td>
  42. </tr>
  43. <tr>
  44. <th>合同类型</th>
  45. <td>{{ contract_types.get(v.data.type_id, '未知类型') }}</td>
  46. </tr>
  47. <tr>
  48. <th>公司实体</th>
  49. <td>{{ company_entities.get(v.data.company_entity_id, '未知实体') }}</td>
  50. </tr>
  51. <tr>
  52. <th>开始日期</th>
  53. <td>{{ v.data.start_date }}</td>
  54. </tr>
  55. <tr>
  56. <th>结束日期</th>
  57. <td>{{ v.data.end_date }}</td>
  58. </tr>
  59. <tr>
  60. <th>提醒天数</th>
  61. <td>{{ v.data.remind_before }}</td>
  62. </tr>
  63. <tr>
  64. <th>合同方</th>
  65. <td>
  66. {% for cp in v.data.counterparties %}
  67. {{ cp }}{% if not loop.last %}, {% endif %}
  68. {% endfor %}
  69. </td>
  70. </tr>
  71. <tr>
  72. <th>备注</th>
  73. <td>{{ v.data.notes }}</td>
  74. </tr>
  75. </tbody>
  76. </table>
  77. </div>
  78. </div>
  79. </div>
  80. {% endfor %}
  81. {% endfor %}
  82. </div>
  83. <a href="{{ url_for('view_contract', contract_id=contract.id) }}" class="btn btn-secondary mt-3">返回合同详情</a>
  84. {% endblock %}