Changes for page Per Year

From version 146.1
edited by Andrea Omicini
on 30/06/2023 17:13
Change comment: There is no comment for this version
To version 149.1
edited by Andrea Omicini
on 30/06/2023 20:37
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,4 +1,5 @@
1 1  {{velocity}}
2 +{{html wiki="true" clean="false"}}
2 2  #template('apice_boolean.vm')
3 3  #### HANDLE PARAMETERS / START
4 4  #template('apice_theses.vm')
... ... @@ -88,12 +88,12 @@
88 88  ## INVARIANT: $oneCycle and $cycleList are correctly and coherently initialised
89 89  #### HANDLE PARAMETERS / END
90 90  ##
91 -## query to structures
92 +## DATA STRUCTURES / START
92 92  #set( $itemMap = {} )
93 93  #set( $itemNo = 0 )
94 94  #foreach( $year in $yearList )
95 - #set( $query = ", BaseObject as obj, StringProperty as prop0, DateProperty as prop1, StringProperty as prop2, LargeStringProperty as prop3, LargeStringProperty as prop4, LargeStringProperty as prop5
96 - where obj.name = doc.fullName and obj.className = '${objectSpace}.${objectClass}' and obj.name <> '${objectSpace}.${objectTemplate}' and prop0.id.id = obj.id and prop1.id.id = obj.id and prop2.id.id = obj.id and prop3.id.id = obj.id and prop4.id.id = obj.id and prop5.id.id = obj.id and prop0.name = 'cycle' and prop1.name = 'end' and prop2.name = 'status' and prop3.name = 'supervisors' and prop4.name = 'cosupervisors' and prop5.name = 'contacts' #if( $oneCycle ) and prop0.value = '$cycle'#end and year(prop1.value) = $year and lower(prop2.value) = 'completed' #if( $oneUser )and ( prop3.value like '%$userString%' or prop4.value like '%$userString%' or prop5.value like '%$userString%' )#end order by prop1.value desc" )
96 + #set( $query = ", BaseObject as objThesis #if( $oneCycle ), StringProperty as propCycle #end, DateProperty as propEnddate, StringProperty as propStatus, LargeStringProperty as propSupervisor, LargeStringProperty as propCosupervisor, LargeStringProperty as propContact
97 + where objThesis.name = doc.fullName and objThesis.className = '${objectSpace}.${objectClass}' and objThesis.name <> '${objectSpace}.${objectTemplate}' and propEnddate.id.id = objThesis.id and propStatus.id.id = objThesis.id and propSupervisor.id.id = objThesis.id and propCosupervisor.id.id = objThesis.id and propContact.id.id = objThesis.id and propEnddate.name = 'end' and propStatus.name = 'status' and propSupervisor.name = 'supervisors' and propCosupervisor.name = 'cosupervisors' and propContact.name = 'contacts' #if( $oneCycle ) and propCycle.id.id = objThesis.id and propCycle.name = 'cycle' and propCycle.value = '$cycle' #end and year(propEnddate.value) = $year and lower(propStatus.value) = 'completed' #if( $oneUser )and ( propSupervisor.value like '%$userString%' or propCosupervisor.value like '%$userString%' or propContact.value like '%$userString%' )#end order by propEnddate.value desc" )
97 97  ## do query
98 98   #set( $itemFound = $xwiki.searchDocuments($query) )
99 99  ## set counters
... ... @@ -103,12 +103,36 @@
103 103   #set( $itemNo = $itemNo + $itemYearNo )
104 104   #end
105 105  #end
107 +## DATA STRUCTURES / END
106 106  ##
107 -## output results
109 +## DISPLAY / START
108 108  ## page subtitle
109 -{{id name="top"/}}
110 ->(%%)$itemNo #if( $itemNo == 1 )#if( $oneCycle ){{thesisCycle plural="false" uppercase="false"}}$cycle{{/thesisCycle}}#else$services.localization.render('thesis').toLowerCase()#end#{else}#if( $oneCycle ){{thesisCycle plural="true" uppercase="false"}}$cycle{{/thesisCycle}}#else$services.localization.render('theses').toLowerCase()#end#{end} / #if( $oneYear )$year#else$firstYear–$lastYear#{end}#if( $oneUser ) / $userFirstName $userLastName#{end}(%%)
111 -
111 +<div class="mainheader">
112 +$itemNo
113 +#if( $itemNo == 1 )
114 + #if( $oneCycle )
115 + {{thesisCycle plural="false" uppercase="false"}}$cycle{{/thesisCycle}}
116 + #else
117 + $services.localization.render('thesis').toLowerCase()
118 + #end
119 +#{else}
120 + #if( $oneCycle )
121 + {{thesisCycle plural="true" uppercase="false"}}$cycle{{/thesisCycle}}
122 + #else
123 + $services.localization.render('theses').toLowerCase()
124 + #end
125 +#{end}
126 +<span class="textsecondary">&ensp;/&ensp;</span>
127 +#if( $oneYear )
128 + $year
129 +#else
130 + $firstYear–$lastYear
131 +#{end}
132 +#if( $oneUser )
133 + <span class="textsecondary">&ensp;/&ensp;</span>
134 + $userFirstName $userLastName
135 +#end
136 +</div>
112 112  ## stop if no thesis is found
113 113  #if( $itemNo == 0 || $itemMap.keySet().size() == 0 )
114 114  ## redundant double check
... ... @@ -127,15 +127,14 @@
127 127  ##
128 128  #foreach( $year in $itemMap.keySet() )
129 129  (% style="border-style:solid hidden hidden solid; border-color:$theme.borderColor; text-align:left; font-style:oblique" %)|{{id name='$year'/}}[[$year>>$doc||style="text-decoration:none; color:$theme.textPrimaryColor" queryString='year=$year#if( $oneUser )#if( $apiceUser )&user=$userName#{else}&name=$userFirstName&surname=$userLastName#end#end#if( $oneCycle )&cycle=$cycle#end']]
130 -{{html wiki="true" clean="false"}}
131 131  <div style="font-style: normal"><ul>
132 132  #foreach( $item in $itemMap[$year] )
133 133  <li>#thesislinked($item)</li>
134 134  #end
135 135  </ul></div>
136 -{{/html}}
137 137   #set( $itemYearNo = $itemMap[$year].size() )
138 138  (% style="border-style:hidden solid solid hidden; border-color:$theme.borderColor; text-align:right; font-style:oblique; font-size:smaller" %)|($itemYearNo #if( $oneCycle )#if( $itemYearNo == 1 ){{thesisCycle plural="false" uppercase="false"}}$cycle{{/thesisCycle}}#{else}{{thesisCycle plural="true" uppercase="false"}}$cycle{{/thesisCycle}}#end#else#if( $itemYearNo == 1 )$services.localization.render('thesis').toLowerCase()#else$services.localization.render('theses').toLowerCase()#end#end / $year) [[[{{stringEngIta eng='top' ita='in cima'/}}]>>||anchor="top"]] [[[{{stringEngIta eng='bottom' ita='in fondo'/}}]>>||anchor="bottom"]]
139 139  #end
163 +{{/html}}
140 140  {{/velocity}}
141 141  {{id name="bottom"/}}