diff MPIWGDepartment.py @ 27:9a75eb1b31b3

more work on projects.
author casties
date Mon, 22 Apr 2013 21:01:00 +0200
parents 6a4996805505
children aa4ab114c28a
line wrap: on
line diff
--- a/MPIWGDepartment.py	Thu Apr 18 20:39:01 2013 +0200
+++ b/MPIWGDepartment.py	Mon Apr 22 21:01:00 2013 +0200
@@ -7,6 +7,9 @@
 import logging
 from OFS.Folder import Folder
 from AccessControl import ClassSecurityInfo
+
+from SrvTxtUtils import getAt
+
 import MPIWGHelper
 
 class MPIWGDepartment(Folder):
@@ -136,7 +139,12 @@
         img = getattr(self, 'img-thumb.jpg')
         return img.absolute_url()
 
-    def getProjects(self, onlyActive=0, onlyArchived=0):
+    def getProject(self):
+        """returns the default project"""
+        proj = self.getProjects(count=1, onlyActive=1, onlyArchived=1)
+        return getAt(proj, 0, None) 
+
+    def getProjects(self, count=0, onlyActive=0, onlyArchived=0):
         """returns a list of projects of this department.
         
         onlyActive = 0 : all projects
@@ -147,12 +155,11 @@
         onlyArchived = 1 : current projects
         onlyArchived = 2 : archived projects
         """
-        # getTree: jeder Eintrag ist ein Tupel (Tiefe, ProjektNummer,Titel,ProjektObject)
-        tree = self.getTree(dep=self.getProjectId(), date=None, onlyActive=onlyActive, onlyArchived=onlyArchived)
-        # re-pack into simple list
-        projects = []
-        for item in tree:
-            projects.append(item[3])
+        pf = self.en.getProjectsFolder()
+        projects = pf.getProjectList(self.getProjectId(), active=onlyActive, archived=onlyArchived)
+        #logging.debug("getProjects projects=%s"%repr(projects))
+        if count > 0:
+            return projects[:count]
             
         return projects