changeset 94:7aaed5218d55

added staffdb_key to departments. getDepartment also gets by id.
author casties
date Thu, 16 May 2013 12:34:30 +0200
parents 48e88706cfc3
children 1b8be917a167
files MPIWGDepartment.py MPIWGRoot.py zpt/department/manage_add_MPIWGDepartment.zpt zpt/department/manage_config.zpt
diffstat 4 files changed, 30 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/MPIWGDepartment.py	Thu May 16 10:51:51 2013 +0200
+++ b/MPIWGDepartment.py	Thu May 16 12:34:30 2013 +0200
@@ -25,7 +25,7 @@
     changeForm = PageTemplateFile('zpt/department/manage_config', globals())
 
     def __init__(self, id, title=None, weight=0, project_id=0, director='', director_id='', 
-                 type_en=None, type_de=None, title_en=None, title_de=None):
+                 type_en=None, type_de=None, title_en=None, title_de=None, staffdb_key=None):
         self.id = str(id)
         self.weight = weight
         self.project_id = project_id
@@ -36,6 +36,8 @@
 
         self.director = director
         self.director_id = director_id
+        
+        self.staffdb_key = staffdb_key
 
         # add language folders and sample templates
         mainid = 'main.pt'
@@ -99,6 +101,10 @@
         """return the project number"""
         return self.project_id
     
+    def getStaffDbKey(self):
+        """Return the key for this department in the staff db (personalwww)."""
+        return getattr(self, 'staffdb_key', None)
+    
     def getUrl(self, baseUrl=None):
         """returns URL to this Department"""
         if baseUrl is None:
@@ -170,8 +176,9 @@
         if RESPONSE is not None:
             RESPONSE.redirect('manage_main')
             
+
     def changeMPIWGDepartment(self, title=None, weight=None, project_id=None, director=None, director_id=None, 
-                              type_en=None, type_de=None, title_en=None, title_de=None, RESPONSE=None):
+                              type_en=None, type_de=None, title_en=None, title_de=None, staffdb_key=None, RESPONSE=None):
         """change everything"""
         if title is not None:
             self.title = title
@@ -183,6 +190,8 @@
             self.director = director
         if director_id is not None:
             self.director_id = director_id
+        if staffdb_key is not None:
+            self.staffdb_key = staffdb_key
         folder_en = self.get('en', None)
         if folder_en is not None:
             if type_en is not None:
@@ -201,6 +210,7 @@
         if RESPONSE is not None:
             RESPONSE.redirect('manage_main')
        
+
     def getBreadcrumbs(self):
         """return list of breadcrumbs from here to the root"""
         crumbs = [(self.getFullTitle(), self.absolute_url(), self)]
@@ -220,14 +230,16 @@
     
 
 def manage_addMPIWGDepartmentForm(self):
-    """Form for adding"""
+    """Form for adding a MPIWGDepartment"""
     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/department/manage_add_MPIWGDepartment.zpt')).__of__(self)
     return pt()
 
+
 def manage_addMPIWGDepartment(self, id, title=None, weight=0, project_id=0, director=None, director_id=None, 
-                              type_en=None, type_de=None, title_en=None, title_de=None, RESPONSE=None):
-    "Add a MPIWG Department object"
-    newObj=MPIWGDepartment(id,title,weight,project_id,director,director_id,type_en,type_de,title_en,title_de)
+                              type_en=None, type_de=None, title_en=None, title_de=None, staffdb_key=None, RESPONSE=None):
+    """Add a MPIWGDepartment object"""
+    newObj = MPIWGDepartment(id, title, weight, project_id, director, director_id, type_en, type_de, title_en, title_de, staffdb_key)
     self.Destination()._setObject(id,newObj)
     if RESPONSE is not None:
         RESPONSE.redirect('manage_main')
+
--- a/MPIWGRoot.py	Thu May 16 10:51:51 2013 +0200
+++ b/MPIWGRoot.py	Thu May 16 12:34:30 2013 +0200
@@ -207,12 +207,15 @@
         return items
 
 
-    def getDepartment(self, projectNumber=None):
+    def getDepartment(self, id=None, projectNumber=None):
         """returns a Department object"""
         dir = getattr(self, 'departments', None)
         if dir is None:
             return None
 
+        if id is not None:
+            return dir.get(id, None)
+
         if projectNumber is not None:
             for dep in dir.objectValues(spec='MPIWGDepartment'):
                 if dep.getProjectNumber() == projectNumber:
--- a/zpt/department/manage_add_MPIWGDepartment.zpt	Thu May 16 10:51:51 2013 +0200
+++ b/zpt/department/manage_add_MPIWGDepartment.zpt	Thu May 16 12:34:30 2013 +0200
@@ -17,6 +17,10 @@
         <td><input type="text" size="5" name="project_id"></td>
       </tr>
       <tr>
+        <td><i>Key in staff database (personalwww)</i></td>
+        <td><input type="text" size="10" name="staffdb_key"></td>
+      </tr>
+      <tr>
         <td><i>Director</i></td>
         <td><input type="text" size="20" name="director"></td>
       </tr>
--- a/zpt/department/manage_config.zpt	Thu May 16 10:51:51 2013 +0200
+++ b/zpt/department/manage_config.zpt	Thu May 16 12:34:30 2013 +0200
@@ -15,6 +15,10 @@
       <td><input type="text" size="5" name="project_id" tal:attributes="value here/project_id|string:0"></td>
     </tr>
     <tr>
+      <td><i>Key in staff db (personalwww)</i></td>
+      <td><input type="text" size="20" name="staffdb_key" tal:attributes="value here/staffdb_key|nothing"></td>
+    </tr>
+    <tr>
       <td><i>Director</i></td>
       <td><input type="text" size="40" name="director" tal:attributes="value here/director|nothing"></td>
     </tr>