Wiki source code of PerYear

Show last authors
1 {{include document="Main.MacroSheet"/}}{{include document="Theses.MacroSheet"/}}{{velocity filter="none"}}#set( $thesisMenu = true )#### get parameters
2 ## hypothesis: $thesisStatus set, default "Completed"
3 ## to do: get from parameter
4 #if( $thesisStatus == "Available" )
5 #set( $orderingDateFieldName = "availabilityDate" )
6 #elseif( $thesisStatus == "Ongoing" )
7 #set( $orderingDateFieldName = "startDate" )
8 #else
9 #set( $thesisStatus = "Completed" )
10 #set( $orderingDateFieldName = "endDate" )
11 #end
12 ## invariant: $thesisStatus set, $orderingDateFieldName set correspondingly
13 ## who
14 #set( $userNamePar = $context.getRequest().getParameter("user") )
15 #set( $supervisorNamePar = $context.getRequest().getParameter("supervisor") )
16 #set( $cosupervisorNamePar = $context.getRequest().getParameter("cosupervisor") )
17 #set( $contactNamePar = $context.getRequest().getParameter("contact") )
18 #### set default values
19 #set( $userSelected = false )
20 #set( $roleSelected = false )
21 #set( $userFirstName = "" )
22 #set( $userLastName = "" )
23 #set( $supervisorName = "" )
24 #set( $supervisorFirstName = "" )
25 #set( $supervisorLastName = "" )
26 #set( $cosupervisorName = "" )
27 #set( $cosupervisorFirstName = "" )
28 #set( $cosupervisorLastName = "" )
29 #set( $contactName = "" )
30 #set( $contactFirstName = "" )
31 #set( $contactLastName = "" )
32 ##
33 #### handle who & roles
34 ##
35 #if ( $userName || $userNamePar ) ## a user is specified for all roles
36 #set( $userSelected = true )
37 #if ( !$userName )#set( $userName = "XWiki.$userNamePar" )#end
38 #set( $userdoc = $xwiki.getDocument($userName) )
39 #set( $userFirstName = $userdoc.display("first_name") )
40 #set( $userLastName = $userdoc.display("last_name") )
41 #elseif ( $supervisorNamePar || $cosupervisorNamePar || $contactNamePar )
42 #set( $roleSelected = true )
43 #if ( $supervisorNamePar )
44 #set( $supervisorName = "XWiki.$supervisorNamePar" )
45 #set( $supervisordoc = $xwiki.getDocument($supervisorName) )
46 #set( $supervisorFirstName = $supervisordoc.display("first_name") )
47 #set( $supervisorLastName = $supervisordoc.display("last_name") )
48 #end
49 #if ( $cosupervisorNamePar )
50 #set( $cosupervisorName = "XWiki.$cosupervisorNamePar" )
51 #set( $cosupervisordoc = $xwiki.getDocument($cosupervisorName) )
52 #set( $cosupervisorFirstName = $cosupervisordoc.display("first_name") )
53 #set( $cosupervisorLastName = $cosupervisordoc.display("last_name") )
54 #end
55 #if ( $contactNamePar )
56 #set( $contactName = "XWiki.$contactNamePar" )
57 #set( $contactdoc = $xwiki.getDocument($contactName) )
58 #set( $contactFirstName = $contactdoc.display("first_name") )
59 #set( $contactLastName = $contactdoc.display("last_name") )
60 #end
61 #end
62 #if( $supervisor )
63 #set( $roleSelected = true )
64 #set( $supervisorName = $userName )
65 #set( $supervisordoc = $xwiki.getDocument($supervisorName) )
66 #set( $supervisorFirstName = $supervisordoc.display("first_name") )
67 #set( $supervisorLastName = $supervisordoc.display("last_name") )
68 #end
69 #if( $cosupervisor )
70 #set( $roleSelected = true )
71 #set( $cosupervisorName = $userName )
72 #set( $cosupervisordoc = $xwiki.getDocument($cosupervisorName) )
73 #set( $cosupervisorFirstName = $cosupervisordoc.display("first_name") )
74 #set( $cosupervisorLastName = $cosupervisordoc.display("last_name") )
75 #end
76 #if( $contact )
77 #set( $roleSelected = true )
78 #set( $contactName = $userName )
79 #set( $contactdoc = $xwiki.getDocument($contactName) )
80 #set( $contactFirstName = $contactdoc.display("first_name") )
81 #set( $contactLastName = $contactdoc.display("last_name") )
82 #end
83 ##
84 ## $userSelected true and $roleSelected false means one user for all roles
85 ## $userSelected true and $roleSelected true for one user with one specific role
86 ## if $userSelected false and $roleSelected true mean at least one role with an assigned user
87 ## both false means all theses
88 #if( $userSelected )
89 #if( $roleSelected ) // //
90 > #FullThesisStatusesString($thesisStatus) / $userFirstName $userLastName / #if( $supervisor ){{stringEngIta eng="Supervisor" ita="Relatore"/}}#end#if( $cosupervisor ){{stringEngIta eng="Co-supervisor" ita="Correlatore"/}}#end#if( $contact ){{stringEngIta eng="Contact" ita="Contatto"/}}#end // //
91 #else // //
92 > #FullThesisStatusesString($thesisStatus) / $userFirstName $userLastName // //
93 #end
94 #else
95 #if( $roleSelected ) // //
96 > #FullThesisStatusesString($thesisStatus)#if( $supervisorLastName != "" ) / $supervisorFirstName $supervisorLastName //({{stringEngIta eng="supervisor" ita="relatore"/}})//#end#if( $cosupervisorLastName != "" ) / $cosupervisorFirstName $cosupervisorLastName //({{stringEngIta eng="co-supervisor" ita="correlatore"/}})//#end#if( $contactLastName != "" ) / $contactFirstName $contactLastName //({{stringEngIta eng="Contact" ita="Contatto"/}})//#end // //
97 #else // //
98 ## > #FullThesisStatusesString($thesisStatus) // //
99 #end
100 #end
101 ##
102 #if ( $cosupervisor )
103 #set ( $roleSelectedFieldName = "coSupervisors" )
104 #elseif ( $contact )
105 #set ( $roleSelectedFieldName = "contact" )
106 #else
107 #set ( $roleSelectedFieldName = "supervisor" )
108 #end
109 ##
110 #if ($userSelected)
111 #if ( $roleSelected )
112 #set ($sql = ", BaseObject as obj, StringProperty as prop, LargeStringProperty as prop1, DateProperty as prop2
113 where obj.name=doc.fullName and
114 obj.className='Theses.ThesisClass' and
115 obj.name<>'Theses.ThesisClassTemplate' and
116 prop.id.id=obj.id and
117 prop1.id.id=obj.id and
118 prop2.id.id=obj.id and
119 prop.name='status' and
120 prop.value='$thesisStatus' and
121 prop1.name='$roleSelectedFieldName' and
122 prop2.name='$orderingDateFieldName' and
123 prop1.value like '%$userName%'
124 order by prop2.value desc")
125 #else
126 #set ($sql = ", BaseObject as obj, StringProperty as prop, LargeStringProperty as prop1, LargeStringProperty as prop2, LargeStringProperty as prop3, DateProperty as prop4
127 where obj.name=doc.fullName and
128 obj.className='Theses.ThesisClass' and
129 obj.name<>'Theses.ThesisClassTemplate' and
130 prop.id.id=obj.id and
131 prop1.id.id=obj.id and
132 prop2.id.id=obj.id and
133 prop3.id.id=obj.id and
134 prop4.id.id=obj.id and
135 prop.name='status' and
136 prop.value = '$thesisStatus' and
137 prop1.name='supervisor' and
138 prop2.name='coSupervisors' and
139 prop3.name='contact' and
140 prop4.name='$orderingDateFieldName' and
141 ( prop1.value like '%$userName%' or
142 prop2.value like '%$userName%' or
143 prop3.value like '%$userName%')
144 order by prop4.value desc")
145 #end
146 #elseif ( $roleSelected )
147 #set ($sql = ", BaseObject as obj, StringProperty as prop, LargeStringProperty as prop1, LargeStringProperty as prop2, LargeStringProperty as prop3, DateProperty as prop4
148 where obj.name=doc.fullName and
149 obj.className='Theses.ThesisClass' and
150 obj.name<>'Theses.ThesisClassTemplate' and
151 prop.id.id=obj.id and
152 prop1.id.id=obj.id and
153 prop2.id.id=obj.id and
154 prop3.id.id=obj.id and
155 prop4.id.id=obj.id and
156 prop.name='status' and
157 prop.value = '$thesisStatus' and
158 prop1.name='supervisor' and
159 prop2.name='coSupervisors' and
160 prop3.name='contact' and
161 prop4.name='$orderingDateFieldName' and
162 prop1.value like '%$supervisorName%' and
163 prop2.value like '%$cosupervisorName%' and
164 prop3.value like '%$contactName%'
165 order by prop4.value desc")
166 #else
167 #set ($sql = ", BaseObject as obj, StringProperty as prop, DateProperty as prop1
168 where obj.name=doc.fullName and
169 obj.className='Theses.ThesisClass' and
170 obj.name<>'Theses.ThesisClassTemplate' and
171 prop.id.id=obj.id and
172 prop1.id.id=obj.id and
173 prop.name='status' and
174 prop.value = '$thesisStatus' and
175 prop1.name='$orderingDateFieldName'
176 order by prop1.value desc")
177 #end
178 #set($thesisFound = $xwiki.searchDocuments($sql))
179 ##
180 #foreach ($thesis in $thesisFound)#set($thesisDoc = $xwiki.getDocument($thesis))
181 * #thesisTitleLink($thesis)#if( $thesisDoc.getValue("studentUserName") != "" || $thesisDoc.getValue("studentName") != "" || ( $thesisDoc.getValue("studentFirstName") != "" && $thesisDoc.getValue("studentLastName") != "" ) ) //(#thesisAuthorLink($thesis)#if( $thesisDoc.display("endDate") != "" ), #thesisYear($thesis)#end)//#end
182
183 #end
184 {{/velocity}}