File size: 2,591 Bytes
ce0719e
 
 
 
 
 
02a8414
ce0719e
 
 
 
 
 
 
02a8414
ce0719e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
02a8414
 
ce0719e
 
02a8414
 
ce0719e
 
 
 
 
 
02a8414
ce0719e
 
 
 
 
 
02a8414
ce0719e
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
{% extends 'base.html' %}

{% block content %}
  <section class="hero-card">
    <div>
      <p class="eyebrow">Welcome Back</p>
      <h2>{{ user.full_name }},和你的小组一起继续前进吧</h2>
      <p class="lead">
        当前小组:<strong>{{ user.group.name if user.group else '暂未分组' }}</strong>
      </p>
    </div>
    <div class="hero-badges">
      <span class="pill">学号 {{ user.student_id }}</span>
      <span class="pill">{{ activity_cards|length }} 个活动</span>
      <span class="pill">共享进度模式</span>
    </div>
  </section>

  <section class="card-grid activity-grid">
    {% for card in activity_cards %}
      <article class="glass-card activity-card">
        <div class="card-topline">
          <span class="eyebrow">Activity {{ loop.index }}</span>
          {% if card.is_overdue %}
            <span class="status-badge status-rejected">已截止</span>
          {% elif card.is_active %}
            <span class="status-badge status-approved">进行中</span>
          {% else %}
            <span class="status-badge">未开始</span>
          {% endif %}
        </div>
        <h3>{{ card.activity.title }}</h3>
        <p class="muted">{{ card.activity.description or '管理员暂未填写活动说明。' }}</p>
        <div class="meta-grid">
          <div>
            <span>开始时间</span>
            <strong>{{ card.activity.start_at|datetime_local }}</strong>
          </div>
          <div>
            <span>截止时间</span>
            <strong>{{ card.activity.deadline_at|datetime_local }}</strong>
          </div>
          <div>
            <span>已完成点位</span>
            <strong>{{ card.approved_count }}/{{ card.total_tasks }}</strong>
          </div>
          <div>
            <span>待审核点位</span>
            <strong>{{ card.pending_count }}</strong>
          </div>
        </div>
        <div class="progress-line">
          <div style="width: {{ 0 if card.total_tasks == 0 else (card.approved_count / card.total_tasks * 100)|round(0) }}%"></div>
        </div>
        <div class="card-footer">
          <span class="mini-note">驳回 {{ card.rejected_count }} 项 · 小组共享</span>
          <a class="btn btn-primary" href="/activities/{{ card.activity.id }}">查看任务</a>
        </div>
      </article>
    {% else %}
      <article class="empty-state">
        <h3>还没有活动</h3>
        <p>管理员发布活动后,这里会展示你所在小组的共享任务进度。</p>
      </article>
    {% endfor %}
  </section>
{% endblock %}