mirror of
https://github.com/QingdaoU/OnlineJudge.git
synced 2024-09-21 08:23:20 +00:00
删除每个页面上单独查询公告的逻辑,改为使用 templatetag 实现。
This commit is contained in:
parent
c1e0c7cd3a
commit
d6499c71aa
@ -335,10 +335,7 @@ def contest_problems_list_page(request, contest_id):
|
||||
item.state = 2
|
||||
else:
|
||||
item.state = 0
|
||||
# 右侧的公告列表
|
||||
announcements = Announcement.objects.filter(is_global=True, visible=True).order_by("-create_time")
|
||||
return render(request, "oj/contest/contest_problems_list.html", {"contest_problems": contest_problems,
|
||||
"announcements": announcements,
|
||||
"contest": {"id": contest_id}})
|
||||
|
||||
|
||||
@ -378,14 +375,10 @@ def contest_list_page(request, page=1):
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
# 右侧的公告列表
|
||||
announcements = Announcement.objects.filter(is_global=True, visible=True).order_by("-create_time")
|
||||
|
||||
return render(request, "oj/contest/contest_list.html",
|
||||
{"contests": current_page, "page": int(page),
|
||||
"previous_page": previous_page, "next_page": next_page,
|
||||
"keyword": keyword, "announcements": announcements,
|
||||
"join": join})
|
||||
"keyword": keyword, "join": join})
|
||||
|
||||
|
||||
def _cmp(x, y):
|
||||
|
@ -254,9 +254,6 @@ class JoinGroupRequestAdminAPIView(APIView, GroupAPIViewBase):
|
||||
|
||||
@login_required
|
||||
def group_list_page(request, page=1):
|
||||
# 右侧的公告列表
|
||||
announcements = Announcement.objects.filter(is_global=True, visible=True).order_by("-create_time")
|
||||
|
||||
groups = Group.objects.filter(visible=True, join_group_setting__lte=2)
|
||||
# 搜索的情况
|
||||
keyword = request.GET.get("keyword", None)
|
||||
@ -282,10 +279,10 @@ def group_list_page(request, page=1):
|
||||
pass
|
||||
|
||||
return render(request, "oj/group/group_list.html", {
|
||||
"groups": groups, "announcements": announcements,
|
||||
"groups": groups,
|
||||
"contests": current_page, "page": int(page),
|
||||
"previous_page": previous_page, "next_page": next_page,
|
||||
"keyword": keyword, "announcements": announcements,
|
||||
"keyword": keyword
|
||||
})
|
||||
|
||||
|
||||
|
@ -255,8 +255,6 @@ def problem_list_page(request, page=1):
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
# 右侧的公告列表
|
||||
announcements = Announcement.objects.filter(is_global=True, visible=True).order_by("-create_time")
|
||||
# 右侧标签列表 按照关联的题目的数量排序 排除题目数量为0的
|
||||
tags = ProblemTag.objects.annotate(problem_number=Count("problem")).filter(problem_number__gt=0).order_by("-problem_number")
|
||||
|
||||
@ -264,4 +262,4 @@ def problem_list_page(request, page=1):
|
||||
{"problems": current_page, "page": int(page),
|
||||
"previous_page": previous_page, "next_page": next_page,
|
||||
"keyword": keyword, "tag": tag_text,
|
||||
"announcements": announcements, "tags": tags})
|
||||
"tags": tags})
|
||||
|
@ -1,3 +1,4 @@
|
||||
{% load announcement_list %}
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">
|
||||
@ -5,8 +6,9 @@
|
||||
公告
|
||||
</h3></div>
|
||||
<div class="panel-body">
|
||||
{% public_announcement_list as announcements %}
|
||||
{% if announcements %}
|
||||
{% for item in announcements %}
|
||||
{% for item in announcements%}
|
||||
<p>{{ forloop.counter }}. <a href="/announcement/{{ item.id }}/" target="_blank">{{ item.title }}</a>
|
||||
</p>
|
||||
{% endfor %}
|
||||
|
@ -3,7 +3,7 @@
|
||||
{% block body %}
|
||||
{% load submission %}
|
||||
<div class="container main">
|
||||
<div class="col-md-9 col-lg-9">
|
||||
<div class="col-md-12 col-lg-12">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -92,8 +92,6 @@
|
||||
<p>你还没有提交记录!</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-3 col-lg-3">
|
||||
{% include "oj/announcement/_announcement_panel.html" %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{% endblock %}
|
10
utils/templatetags/announcement_list.py
Normal file
10
utils/templatetags/announcement_list.py
Normal file
@ -0,0 +1,10 @@
|
||||
# coding=utf-8
|
||||
from django import template
|
||||
|
||||
from announcement.models import Announcement
|
||||
|
||||
def public_announcement_list():
|
||||
return Announcement.objects.filter(is_global=True, visible=True).order_by("-create_time")
|
||||
|
||||
register = template.Library()
|
||||
register.assignment_tag(public_announcement_list, name="public_announcement_list")
|
Loading…
Reference in New Issue
Block a user