# HG changeset patch
# User casties
# Date 1360957894 -3600
# Node ID 5db416602e85abd6685e62e10331c3df5ea571b3
# Parent 0a7691055ea3ce355e5ebcc71d034ef584fd07e5
new MPIWGDepartment class.
diff -r 0a7691055ea3 -r 5db416602e85 MPIWGDepartment.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/MPIWGDepartment.py Fri Feb 15 20:51:34 2013 +0100
@@ -0,0 +1,188 @@
+from Products.PageTemplates.PageTemplateFile import PageTemplateFile
+from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
+from Globals import package_home
+import string
+import re
+import os
+import logging
+from OFS.Folder import Folder
+from AccessControl import ClassSecurityInfo
+import MPIWGHelper
+
+class MPIWGDepartment(Folder):
+ """special object for departments on the MPIWG website """
+
+ meta_type="MPIWGDepartment"
+
+ manage_options=Folder.manage_options+(
+ {'label':'Configure','action':'changeForm'},
+ )
+
+ #changeWeightForm = PageTemplateFile('zpt/department/manage_change_weight', globals())
+ 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):
+ self.id = str(id)
+ self.weight = weight
+ self.project_id = project_id
+ if title is None:
+ self.title = id
+ else:
+ self.title = title
+
+ self.director = director
+ self.director_id = director_id
+
+ # add language folders and sample templates
+ mainid = 'main.pt'
+ self.manage_addFolder('en')
+ folder_en = getattr(self, 'en')
+ main_en = ZopePageTemplate(mainid)
+ folder_en[mainid] = main_en
+ main_en.pt_edit(open(os.path.join(package_home(globals()),'zpt/department/default_template_main.zpt')).read(),'text/html')
+ if type_en is not None:
+ folder_en.title = type_en
+ if title_en is not None:
+ main_en.title = title_en
+ self.manage_addFolder('de')
+ folder_de = getattr(self, 'de')
+ main_de = ZopePageTemplate(mainid)
+ folder_de[mainid] = main_de
+ main_de.pt_edit(open(os.path.join(package_home(globals()),'zpt/department/default_template_main.zpt')).read(),'text/html')
+ if type_de is not None:
+ folder_de.title = type_de
+ if title_de is not None:
+ main_de.title = title_de
+
+
+ def index_html(self):
+ """default index page"""
+ return self.getMain()
+
+ def getType(self):
+ """returns the type of department (from /en/ folder)"""
+ # get Language from MPIWGRoot
+ lang = self.getLang()
+ dir = getattr(self, lang, self.en)
+ t = dir.title
+ if not t:
+ t = self.title
+
+ return t
+
+ def getTitle(self):
+ """returns the title of the department (from main.pt)"""
+ # get Language from MPIWGRoot
+ lang = self.getLang()
+ dir = getattr(self, lang, self.en)
+ pt = getattr(dir, 'main.pt')
+ t = pt.title
+ if not t:
+ t = self.title
+
+ return t
+
+ def getDirector(self):
+ """returns the name of the director"""
+ return self.director
+
+ def getDirectorId(self):
+ """returns the id of the director"""
+ return self.director_id
+
+ def getProjectId(self):
+ """return the project id"""
+ return self.project_id
+
+ def getUrl(self, baseUrl=None):
+ """returns URL to this Department"""
+ if baseUrl is None:
+ return self.absolute_url()
+
+ return '%s/%s'%(baseUrl, self.getId())
+
+ def getPath(self, page, relative=True):
+ """returns path to template page"""
+ # get Language from MPIWGRoot
+ lang = self.getLang()
+ dir = getattr(self, lang, self.en)
+ if relative:
+ return '%s/%s/%s'%(self.getId(), dir.getId(), page)
+
+ pt = getattr(dir, page)
+ return pt.absolute_url_path()
+
+ def getMainPath(self):
+ """returns the path to the main template"""
+ return self.getPath('main.pt')
+
+ def getMain(self, **args):
+ """returns the main part as PageTemplate"""
+ # get Language from MPIWGRoot
+ lang = self.getLang()
+ dir = getattr(self, lang, self.en)
+ pt = getattr(dir, 'main.pt')
+ return pt(**args)
+
+ def getThumbImg(self):
+ """returns the image object for the sidebar thumbnail"""
+ img = getattr(self, 'img-thumb.jpg')
+ return img
+
+ def getThumbImgUrl(self):
+ """returns the URL of the image object for the sidebar thumbnail"""
+ img = getattr(self, 'img-thumb.jpg')
+ return img.absolute_url()
+
+ def changeWeight(self,weight,RESPONSE=None):
+ """change weight"""
+ self.weight=weight
+ if RESPONSE is not None:
+ RESPONSE.redirect('manage_main')
+
+ def changeMPIWGDepartment(self, title=None, weight=None, project_id=None, director=None, director_id=None, RESPONSE=None):
+ """change everything"""
+ if title is not None:
+ self.title = title
+ if weight is not None:
+ self.weight = weight
+ if project_id is not None:
+ self.project_id = project_id
+ if director is not None:
+ self.director = director
+ if director_id is not None:
+ self.director_id = director_id
+ 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)]
+ parent = self.aq_parent
+ if hasattr(parent, 'getBreadcrumbs'):
+ if self.title:
+ return parent.getBreadcrumbs() + crumbs
+ else:
+ # if there's no title, skip this level
+ return parent.getBreadcrumbs()
+
+ return crumbs
+
+ getSection = MPIWGHelper.getSection
+
+ getSubSection = MPIWGHelper.getSubSection
+
+
+def manage_addMPIWGDepartmentForm(self):
+ """Form for adding"""
+ 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)
+ self.Destination()._setObject(id,newObj)
+ if RESPONSE is not None:
+ RESPONSE.redirect('manage_main')
diff -r 0a7691055ea3 -r 5db416602e85 MPIWGFeature.py
--- a/MPIWGFeature.py Thu Feb 14 20:38:30 2013 +0100
+++ b/MPIWGFeature.py Fri Feb 15 20:51:34 2013 +0100
@@ -1,4 +1,5 @@
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
+from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
from Globals import package_home
import string
import re
diff -r 0a7691055ea3 -r 5db416602e85 MPIWGRoot.py
--- a/MPIWGRoot.py Thu Feb 14 20:38:30 2013 +0100
+++ b/MPIWGRoot.py Fri Feb 15 20:51:34 2013 +0100
@@ -278,6 +278,16 @@
# return pure list of objects
return [f[1] for f in features]
+ def getDepartments(self):
+ """returns a list of the Departments"""
+ dir = getattr(self, 'departments', None)
+ if dir is None:
+ return []
+
+ depts = dir.objectItems(['MPIWGDepartment'])
+ depts.sort(sortWeight)
+ # return pure list of objects
+ return [f[1] for f in depts]
def getMPIWGRoot(self):
"""returns the MPIWG root"""
@@ -287,15 +297,6 @@
"""returns the URL to the root"""
return self.absolute_url()
- def upDateSQL(self,fileName):
- """updates SQL databases using fm.jar"""
- fmJarPath=os.path.join(package_home(globals()), 'updateSQL/fm.jar')
- xmlPath=os.path.join(package_home(globals()), "updateSQL/%s"%fileName)
- logger("MPIWG Web",logging.INFO,"java -classpath %s -Djava.awt.headless=true Convert %s"%(fmJarPath,xmlPath))
- ret=os.popen("java -classpath %s -Djava.awt.headless=true Convert %s"%(fmJarPath,xmlPath),"r").read()
- logger("MPIWG Web",logging.INFO,"result convert: %s"%ret)
- return 1
-
def patchProjects(self,RESPONSE):
"""patch"""
projects=self.ZopeFind(self.projects,obj_metatypes=['MPIWGProject'])
diff -r 0a7691055ea3 -r 5db416602e85 __init__.py
--- a/__init__.py Thu Feb 14 20:38:30 2013 +0100
+++ b/__init__.py Fri Feb 15 20:51:34 2013 +0100
@@ -3,6 +3,7 @@
import MPIWGLink
import MPIWGTemplate
import MPIWGFeature
+import MPIWGDepartment
import MPIWGFolder
import MPIWGRoot
@@ -75,3 +76,11 @@
)
)
+ context.registerClass(
+ MPIWGDepartment.MPIWGDepartment,
+ constructors = (
+ MPIWGDepartment.manage_addMPIWGDepartmentForm,
+ MPIWGDepartment.manage_addMPIWGDepartment
+ )
+ )
+
diff -r 0a7691055ea3 -r 5db416602e85 zpt/department/default_template_main.zpt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/zpt/department/default_template_main.zpt Fri Feb 15 20:51:34 2013 +0100
@@ -0,0 +1,11 @@
+
+
+