Forráskód Böngészése

# feat:教师团队模块搭建完成

yang yi 1 hete
szülő
commit
e06eb9a4c9
2 módosított fájl, 98 hozzáadás és 32 törlés
  1. 62 4
      pythonweb/teamApp/templates/team.html
  2. 36 28
      pythonweb/teamApp/views.py

+ 62 - 4
pythonweb/teamApp/templates/team.html

@@ -1,11 +1,69 @@
 {% extends "base.html" %}
 
-{% block title %}
-师资队伍
-{% endblock %}
+{% block title %}{{ title }}{% endblock %}
 
 {% block content %}
 <div class="container">
-    <h1>师资队伍</h1>
+    <div class="row">
+        <div class="col-md-3">
+            <div class="model-title">{{ title }}</div>
+            <div class="model-list">
+                <ul class="list-group">
+                    <li class="list-group-item" id="academic_leader">
+                        <a href="{% url 'teamApp:academic_leader' %}">学院学科建设带头人</a>
+                    </li>
+                    <li class="list-group-item" id="computer_science">
+                        <a href="{% url 'teamApp:computer_science' %}">计算机系</a>
+                    </li>
+                    <li class="list-group-item" id="software_engineering">
+                        <a href="{% url 'teamApp:software_engineering' %}">软件工程系</a>
+                    </li>
+                    <li class="list-group-item" id="digital_media">
+                        <a href="{% url 'teamApp:digital_media' %}">数字媒体技术系</a>
+                    </li>
+                    <li class="list-group-item" id="iot_networking">
+                        <a href="{% url 'teamApp:iot_networking' %}">物联网与网络工程系</a>
+                    </li>
+                    <li class="list-group-item" id="math_teaching">
+                        <a href="{% url 'teamApp:math_teaching' %}">数学教研室</a>
+                    </li>
+                    <li class="list-group-item" id="party_work">
+                        <a href="{% url 'teamApp:party_work' %}">党政学工队伍</a>
+                    </li>
+                </ul>
+            </div>
+        </div>
+        <div class="col-md-9">
+            <div class="model-details-title">{{ title }}</div>
+            <div class="row">
+                {% for article in list %}
+                <div class="col-md-4">
+                    <div class="thumbnail">
+                        {% if article.cover %}
+                        <img src="{{ article.cover }}" alt="{{ article.title }}" class="img-responsive" style="height:200px;object-fit:cover;">
+                        {% endif %}
+                        <div class="caption">
+                            <h4 style="text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">{{ article.title }}</h4>
+                            <p style="text-align:center;color:#999;">{{ article.created_at|date:"Y-m-d" }}</p>
+                        </div>
+                    </div>
+                </div>
+                {% endfor %}
+            </div>
+            {% if list.has_other_pages %}
+            <nav>
+                <ul class="pagination">
+                    {% if list.has_previous %}
+                    <li><a href="?page={{ list.previous_page_number }}">&laquo;上一页</a></li>
+                    {% endif %}
+                    <li><span>第 {{ list.number }} / {{ list.paginator.num_pages }} 页</span></li>
+                    {% if list.has_next %}
+                    <li><a href="?page={{ list.next_page_number }}">下一页&raquo;</a></li>
+                    {% endif %}
+                </ul>
+            </nav>
+            {% endif %}
+        </div>
+    </div>
 </div>
 {% endblock %}

+ 36 - 28
pythonweb/teamApp/views.py

@@ -1,29 +1,37 @@
 from django.shortcuts import render
-
-
-def academic_leader(request):
-    return render(request, 'team.html')
-
-
-def computer_science(request):
-    return render(request, 'team.html')
-
-
-def software_engineering(request):
-    return render(request, 'team.html')
-
-
-def digital_media(request):
-    return render(request, 'team.html')
-
-
-def iot_networking(request):
-    return render(request, 'team.html')
-
-
-def math_teaching(request):
-    return render(request, 'team.html')
-
-
-def party_work(request):
-    return render(request, 'team.html')
+from django.core.paginator import Paginator
+from common.models import Article
+
+
+TEAM_CATEGORIES = {
+    'academic_leader': ('学院学科建设带头人', 'academic_leader'),
+    'computer_science': ('计算机系', 'computer_science'),
+    'software_engineering': ('软件工程系', 'software_engineering'),
+    'digital_media': ('数字媒体技术系', 'digital_media'),
+    'iot_networking': ('物联网与网络工程系', 'iot_networking'),
+    'math_teaching': ('数学教研室', 'math_teaching'),
+    'party_work': ('党政学工队伍', 'party_work'),
+}
+
+def get_view(category):
+    def view(request):
+        articles = Article.objects.filter(category=category).all()
+        paginator = Paginator(articles, 12)
+        page_number = request.GET.get('page')
+        page_obj = paginator.get_page(page_number)
+        title, active_menu = TEAM_CATEGORIES.get(category, ('', category))
+        context = {
+            'title': title,
+            'list': page_obj,
+            'active_menu': active_menu,
+        }
+        return render(request, 'team.html', context)
+    return view
+
+academic_leader = get_view('academic_leader')
+computer_science = get_view('computer_science')
+software_engineering = get_view('software_engineering')
+digital_media = get_view('digital_media')
+iot_networking = get_view('iot_networking')
+math_teaching = get_view('math_teaching')
+party_work = get_view('party_work')