# HG changeset patch # User casties # Date 1368035965 -7200 # Node ID b1893c4c9d2c58140f8389705b01d9d43359febe # Parent 7f26c8e6c8e9d62c50f753f047dfb1f0b6a09339 more display of project pages. diff -r 7f26c8e6c8e9 -r b1893c4c9d2c MPIWGHelper.py --- a/MPIWGHelper.py Wed May 08 17:03:50 2013 +0200 +++ b/MPIWGHelper.py Wed May 08 19:59:25 2013 +0200 @@ -148,3 +148,11 @@ return subsec + +def getUrl(self, baseUrl=None): + """returns URL to this object""" + if baseUrl is None: + return self.absolute_url() + + return '%s/%s' % (baseUrl, self.getId()) + diff -r 7f26c8e6c8e9 -r b1893c4c9d2c MPIWGProjects.py --- a/MPIWGProjects.py Wed May 08 17:03:50 2013 +0200 +++ b/MPIWGProjects.py Wed May 08 19:59:25 2013 +0200 @@ -15,21 +15,19 @@ import re import os import email -import xmlhelper # Methoden zur Verwaltung der projekt xml import sys import logging import time +import unicodedata import xml.etree.ElementTree as ET from SrvTxtUtils import getInt, unicodify, utf8ify, serialize, refreshingImageFileIndexHtml, shortenString from Products.ZDBInterface.ZDBInterfaceFolder import ZDBInterfaceFolder +import xmlhelper # Methoden zur Verwaltung der projekt xml from HashTree import HashTree - -import MPIWGRoot -import MPIWGLink -import MPIWGTemplate +import MPIWGHelper # TODO: better names for the fields fieldLabels = {'WEB_title':'WEB_Title', @@ -57,6 +55,10 @@ # die folgenden Klassen sind jetzt in einzelne Files ausgelagert aus Kompatibilitaetsgruenden, bleiben die Klassen hier noch drin. # Sonst funktionieren die alten Webseiten nicht mehr. +import MPIWGRoot +import MPIWGLink +import MPIWGTemplate + class MPIWGRoot(MPIWGRoot.MPIWGRoot): """depricated""" @@ -65,6 +67,7 @@ class MPIWGTemplate(MPIWGTemplate.MPIWGTemplate): """depricated""" + class MPIWGProject_publication(Folder): """publications object fuer project""" @@ -122,6 +125,9 @@ return self.bookId + getUrl = MPIWGHelper.getUrl + + def editPublication(self, text=None, description=None, link=None, RESPONSE=None): """edit a publication""" @@ -151,9 +157,9 @@ objid = None projectLabel = None + # templates editDescription = PageTemplateFile('zpt/project/related_project/edit_basic', globals()) - def redirect(self, RESPONSE, url): """mache ein redirect mit einem angehaengten time stamp um ein reload zu erzwingen""" @@ -197,6 +203,9 @@ return label + getUrl = MPIWGHelper.getUrl + + def editRelatedProject(self, link=None, RESPONSE=None): """edit a publication""" @@ -238,6 +247,8 @@ showImage = PageTemplateFile('zpt/project/image/projectImageView', globals()) editForm = PageTemplateFile('zpt/project/image/edit_basic', globals()) + getUrl = MPIWGHelper.getUrl + def editImage(self, file=None, caption=None, RESPONSE=None): """edit the Image""" if (not file) and (not caption): @@ -373,14 +384,21 @@ return n - def getProjectTitle(self): + def getProjectTitle(self, forSorting=False): """returns the project title""" t = getattr(self, 'WEB_title', None) if isinstance(t, list): # compat with old lists - return t[0] - else: - return t + t = t[0] + + if forSorting and t is not None: + # remove stopwords and signs for sorting + if t.lower().startswith('a '): + t = t[2:] + elif isinstance(t, unicode) and unicodedata.category(t[0])[0] != 'L': + t = t[1:] + + return t def getLabel(self): @@ -460,12 +478,7 @@ return self.absolute_url() - def getUrl(self, baseUrl=None): - """returns URL to this Project""" - if baseUrl is None: - return self.absolute_url() - - return '%s/%s' % (baseUrl, self.getId()) + getUrl = MPIWGHelper.getUrl def getThumbUrl(self, default=None): @@ -491,7 +504,7 @@ if pp > 0: num = num[:pp] - return self.getMPIWGRoot().getDepartment(projectNumber=num) + return self.en.getMPIWGRoot().getDepartment(projectNumber=num) def getDepartmentId(self): @@ -1119,7 +1132,6 @@ return self.preview(newcontent) self.copyObjectToArchive() - self.ZCacheable_invalidate() self.WEB_project_description = newcontent[0:] self.REQUEST.RESPONSE.redirect("./index.html") @@ -1178,7 +1190,7 @@ for resp in self.getResponsibleScientistsList(): logging.debug("resp=%s key=%s"%(repr(resp),repr(key))) # TODO: we need to get ASCII keys!! - if utf8ify(resp.get('key', '').lower()) == utf8ify(key).lower(): + if utf8ify(resp.get('key', '')).lower() == utf8ify(key).lower(): return True return False @@ -1284,7 +1296,7 @@ username = None if key: # get username from db - member = self.getMPIWGRoot().getStaffFolder().getMember(key=key) + member = self.en.getMPIWGRoot().getStaffFolder().getMember(key=key) if member is not None: username = member.getUsername() @@ -1810,7 +1822,7 @@ key = key[0] # get username from db - member = self.getMPIWGRoot().getStaffFolder().getMember(key=key) + member = self.en.getMPIWGRoot().getStaffFolder().getMember(key=key) if member is not None: username = member.getUsername() diff -r 7f26c8e6c8e9 -r b1893c4c9d2c MPIWGStaff.py --- a/MPIWGStaff.py Wed May 08 17:03:50 2013 +0200 +++ b/MPIWGStaff.py Wed May 08 19:59:25 2013 +0200 @@ -1741,13 +1741,10 @@ logging.error(escidocid) logging.error(value) + def getSelectedPublications(self): """hole publications aus der datenbank""" - - query="select * from pubmanbiblio where lower(key_main) = lower(%s) order by priority DESC" - - return self.executeZSQL(query,[self.getKey()]) @@ -1756,17 +1753,14 @@ ret="" #founds=self.ZSQLInlineSearch(_table='research_interest',key_main=person.getKeyUTF8()) - founds=self.ZSQLInlineSearch(_table='research_interest',key_main=self.getKey()) + founds=self.executeZSQL('select * from research_interest where lower(key_main) = %s', [self.getKey().lower()]) if founds: ret="
Research interests:
Current work:
Curriculum Vitae:
- Other involved scholars: Scholars -
-- Cooperation Partners: Partners -
+ - -