On 3/14/06, jjanssen(a)nl.swets.com <jjanssen(a)nl.swets.com> wrote:
Hello,
I've got a generic question. In my wiki I'm using many sorted lists. But there
must be a smarter way of creating these lists then what I'm doing now. Currently
I'm doing the following:
Form 1 used to fill out object of type Project, with several attributes such as the
project name and status. On a overview page I want to order the projects by name based on
their status. This will create something like:
- active:
- project1
- project4
- closed:
- project2
- project5
- deprecated:
- project3
In which all the projects are links to the pages of the projects, containing all the
project information.
Has anybody any idea of a smart way of doing this. Currently I'm looping through all
project objects for every possible status. This is way too much overhead.
You can restrict you query to the selected status of project.
here is a sample I used in a project :
#macro (showCandidatStatus $status)
#set ($sql = ", BaseObject as obj, StringProperty as prop,
IntegerProperty as ended where obj.name=doc.fullName and
obj.className='XWiki.CandidatAnnounceClass' and
obj.name<>'XWiki.CandidatAnnounceClassTemplate' and obj.id=prop.id.id
and prop.id.name='status' and prop.value='$status' and
ended.id.id=obj.id and ended.value!=1 order by prop.value desc")
#foreach ($item in $xwiki.searchDocuments($sql))
#set($bentrydoc = $xwiki.getDocument($item))
#set($bentryobj = $bentrydoc.getObject("XWiki.CandidatClass"))
#set($CAobjs = $bentrydoc.getObjects("XWiki.CandidatAnnounceClass"))
#foreach ($obj in $CAobjs)
#if ($obj.status == $status)
1.1.1 [$bentrydoc.display("name","view",
$bentryobj)>$bentrydoc.FullName]
$bentrydoc.display("AnnounceName","view", $obj)
#end
#end
#end
#end
Jérémi
--
Blog:
http://www.jeremi.info
LinkedIn:
https://www.linkedin.com/profile?viewProfile=&key=1437724
Project Manager XWiki:
http://www.xwiki.org
skype: jeremi23 -- msn et gtalk : jeremi23(a)gmail.com