Changes for page 学校一覧

Last modified by Super Admin on 2026/03/23 10:15

From version Icon 37.1
edited by Super Admin
on 2026/03/23 10:15
Change comment: There is no comment for this version
To version Icon 20.1 Icon
edited by XWikiGuest
on 2026/03/10 22:20
Change comment: There is no comment for this version

Summary

Details

Icon Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.superadmin
1 +XWiki.XWikiGuest
Content
... ... @@ -3,50 +3,19 @@
3 3  ## ソート: 更新順(デフォルト)/ 都道府県順
4 4  ## カード形式で表示し、活動数・投稿数・最終更新日を表示
5 5  
6 -## --- 閲覧者情報(非表示校フィルタ用) ---
7 -#set($listViewerUser = $xcontext.user)
8 -#set($isListAdmin = false)
9 -#if($listViewerUser != 'XWiki.XWikiGuest')
10 - #set($listViewerDoc = $xwiki.getDocument($listViewerUser))
11 - #set($listViewerAccountType = $!listViewerDoc.getValue('accountType'))
12 - #if($listViewerAccountType == 'admin')
13 - #set($isListAdmin = true)
14 - #end
15 -#end
16 -
17 17  #set($sortParam = $!request.sort)
18 18  #if(!$sortParam || $sortParam == '')
19 19   #set($sortParam = 'updated')
20 20  #end
21 21  
22 -## ソート順に応じたXWQLクエリ(非表示校フィルタ付き)
23 -#if($isListAdmin)
24 - ## 管理者: 全校表示
25 - #if($sortParam == 'pref')
26 - #set($query = $services.query.xwql("from doc.object(SeitokaiCode.SchoolClass) as school order by school.prefecture, school.schoolName"))
27 - #else
28 - #set($query = $services.query.xwql("from doc.object(SeitokaiCode.SchoolClass) as school order by doc.date desc"))
29 - #end
11 +## ソート順に応じたXWQLクエリ
12 +#if($sortParam == 'pref')
13 + #set($query = $services.query.xwql("from doc.object(SeitokaiCode.SchoolClass) as school order by school.prefecture, school.schoolName"))
30 30  #else
31 - ## 一般: 非表示校を除外
32 - #if($sortParam == 'pref')
33 - #set($query = $services.query.xwql("from doc.object(SeitokaiCode.SchoolClass) as school where (school.hidden <> 1 or school.hidden is null) order by school.prefecture, school.schoolName"))
34 - #else
35 - #set($query = $services.query.xwql("from doc.object(SeitokaiCode.SchoolClass) as school where (school.hidden <> 1 or school.hidden is null) order by doc.date desc"))
36 - #end
15 + ## 更新順: ドキュメントの最終更新日でソート(降順)
16 + #set($query = $services.query.xwql("from doc.object(SeitokaiCode.SchoolClass) as school order by doc.date desc"))
37 37  #end
38 38  #set($results = $query.execute())
39 -## サンプル高等学校を常に先頭に表示
40 -#set($samplePageName = 'Schools.D100000000001.WebHome')
41 -#set($sortedResults = [])
42 -#foreach($r in $results)
43 - #if($r == $samplePageName)
44 - #set($discard = $sortedResults.add(0, $r))
45 - #else
46 - #set($discard = $sortedResults.add($r))
47 - #end
48 -#end
49 -#set($results = $sortedResults)
50 50  
51 51  {{html clean="false"}}
52 52  <h1 class="home-section-title">登録されている学校</h1>
... ... @@ -63,11 +63,6 @@
63 63   class="sort-toggle #if($sortParam == 'pref')active#end">
64 64   <svg class="ico ico-fixed-14" viewBox="0 0 24 24"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z"/><circle cx="12" cy="10" r="3"/></svg> 都道府県順
65 65   </a>
66 - #if($listViewerUser != 'XWiki.XWikiGuest')
67 - <a href="/bin/SeitokaiCode/CreateSchool" class="sort-toggle" style="margin-left:var(--sp-2); color:var(--primary); border-color:var(--primary);">
68 - <svg class="ico ico-fixed-14" viewBox="0 0 24 24"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg> 学校を追加
69 - </a>
70 - #end
71 71   </div>
72 72  </div>
73 73  {{/html}}
... ... @@ -95,15 +95,13 @@
95 95   #set($actCount = $schoolDoc.getObjects('SeitokaiCode.ActivityClass').size())
96 96   ## 投稿数をカウント(全活動の投稿合計)
97 97   #set($postCount = $schoolDoc.getObjects('SeitokaiCode.ActivityPostClass').size())
98 - ## 特色ある活動の数とタイトル収集
62 + ## 特色ある活動の数をカウント
99 99   #set($schoolActivities = $schoolDoc.getObjects('SeitokaiCode.ActivityClass'))
100 100   #set($featuredCount = 0)
101 - #set($featuredTitles = [])
102 102   #if($schoolActivities)
103 103   #foreach($sa in $schoolActivities)
104 104   #if($!sa.getValue('featured') == '1')
105 105   #set($featuredCount = $featuredCount + 1)
106 - #set($discard = $featuredTitles.add($!sa.getValue('title')))
107 107   #end
108 108   #end
109 109   #end
... ... @@ -116,14 +116,10 @@
116 116   </div>
117 117   #end
118 118  
119 - #set($sHidden = $!schoolObj.getValue('hidden'))
120 - <a href="$schoolDoc.getURL('view')" class="school-card #if($sHidden == 1)school-card-hidden#end">
81 + <a href="$schoolDoc.getURL('view')" class="school-card">
121 121   <div class="school-card-body">
122 122   <div class="school-card-header-row">
123 123   <div class="school-card-name">$!escapetool.xml($sName)</div>
124 - #if($sHidden == 1)
125 - <span class="badge-hidden">非表示</span>
126 - #end
127 127   #if($sEst)
128 128   <span class="school-card-badge #if($sEst == '公立')public#elseif($sEst == '私立')private#else national#end">$!escapetool.xml($sEst)</span>
129 129   #end
... ... @@ -131,14 +131,12 @@
131 131   <div class="school-card-meta">
132 132   $!escapetool.xml($sPref) $!escapetool.xml($sCity)
133 133   #if($sCoed) ・ $!escapetool.xml($sCoed)#end
134 - #if($sSystem && !$sSystem.isEmpty())#foreach($__sys in $sSystem)#if($foreach.count > 1)・#end$!escapetool.xml($__sys)#end#end
92 + #if($sSystem) ・ $!escapetool.xml($sSystem)#end
135 135   </div>
136 - ## 特色ある活動タイトル
94 + ## 特色ある活動バッジ
137 137   #if($featuredCount > 0)
138 - <div class="school-card-featured-titles">
139 - #foreach($ft in $featuredTitles)
140 - <span class="featured-title-item"><svg class="ico ico-fixed-12" viewBox="0 0 24 24" fill="currentColor" stroke="none"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg> $!escapetool.xml($ft)</span>
141 - #end
96 + <div class="school-card-featured-wrap">
97 + <span class="badge-featured"><svg class="ico ico-fixed-14" viewBox="0 0 24 24" fill="currentColor" stroke="none"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg> 特色ある活動 ${featuredCount}件</span>
142 142   </div>
143 143   #end
144 144   <div class="school-card-stats">