Mercurial > hg > MPIWGWeb
changeset 40:fd8e78bbc5ed
more work on projects.
new member template uses new getProjectsOfMember.
new isActiveMember in MPIWGStaffFolder.
author | casties |
---|---|
date | Fri, 26 Apr 2013 21:18:01 +0200 |
parents | bbad6a092861 |
children | cacba38c268c |
files | MPIWGProjects.py MPIWGRoot.py MPIWGStaff.py zpt/project/project_template.zpt zpt/staff/member_index_html.zpt |
diffstat | 5 files changed, 35 insertions(+), 29 deletions(-) [+] |
line wrap: on
line diff
--- a/MPIWGProjects.py Fri Apr 26 20:31:21 2013 +0200 +++ b/MPIWGProjects.py Fri Apr 26 21:18:01 2013 +0200 @@ -1759,9 +1759,9 @@ username = None if key: # get username from db - member = self.executeZSQL("select * from personal_www where lower(key) = %s", [key.lower()]) - if len(member) > 0: - username = re.sub('@mpiwg-berlin\.mpg\.de', '', member[0].e_mail) + member = self.getMPIWGRoot().getStaffFolder().getMember(key=key) + if member is not None: + username = member.getUsername() # schreibe keys und namen in die Liste checkedScientists[names[nr]] = {'name' : name, 'key' : key, 'username' : username} @@ -2016,6 +2016,7 @@ return "updated %s projects!" % cnt + security.declareProtected('View management screens', 'updateAllProjects') def updateAllProjects(self, updateResponsibleScientistsList=False): """patches all current projects for old problems""" @@ -2046,9 +2047,9 @@ key = key[0] # get username from db - member = self.executeZSQL("select * from personal_www where lower(key) = %s", [key.lower()]) - if len(member) > 0: - username = re.sub('@mpiwg-berlin\.mpg\.de', '', member[0].e_mail) + member = self.getMPIWGRoot().getStaffFolder().getMember(key=key) + if member is not None: + username = member.getUsername() newScientists[name] = {'name': name, 'key' : key, 'username' : username}
--- a/MPIWGRoot.py Fri Apr 26 20:31:21 2013 +0200 +++ b/MPIWGRoot.py Fri Apr 26 21:18:01 2013 +0200 @@ -286,27 +286,28 @@ return None + def getProjectFolder(self): """returns the MPIWGProjectFolder""" dir = getattr(self, 'projects', None) return dir + + def getStaffFolder(self): + """returns the MPIWGStaffFolder""" + dir = getattr(self, 'members_test', None) # TODO: fix the test + return dir + + def getMPIWGRoot(self): """returns the MPIWG root""" return self + def MPIWGrootURL(self): """returns the URL to the root""" return self.absolute_url() - - #WTF? - def patchProjects(self,RESPONSE): - """patch""" - projects=self.ZopeFind(self.projects,obj_metatypes=['MPIWGProject']) - for project in projects: - tmp=project[1].WEB_project_description[0].replace("/CD/projects/","")[0:] - setattr(project[1],'WEB_project_description',[tmp[0:]]) - RESPONSE.write("<p>%s</p>\n"%project[0]) + def replaceNotEmpty(self,format,field): """replace not empty""" @@ -325,7 +326,7 @@ _op_publish_the_data='eq', publish_the_data='yes'), 0) - logging.info("ACTIVE_MEMBER %s"%ret) + logging.info("MPIWGROOT ACTIVE_MEMBER %s"%ret) if ret: return True else:
--- a/MPIWGStaff.py Fri Apr 26 20:31:21 2013 +0200 +++ b/MPIWGStaff.py Fri Apr 26 21:18:01 2013 +0200 @@ -1093,13 +1093,20 @@ member = MPIWGStaffMember(self, dbresult=content) elif key is not None: - content = folder.executeZSQL("select * from personal_www where key = %s", [key]) + # TODO: sometimes key is lowercased (e.g. responsibleScientistsList), we should fix the data + content = self.executeZSQL("select * from personal_www where lower(key) = %s", [key.lower()]) if len(content) > 0: member = MPIWGStaffMember(self, dbresult=content) return member + def isActiveMember(self, key): + """returns if member key is active""" + res = self.executeZSQL("select * from personal_www where lower(key) = %s and publish_the_data = 'yes'", [key.lower()]) + return len(res) > 0 + + def sortPriority(self,list): def sort(x,y): try: @@ -1544,7 +1551,7 @@ REQUEST.response.redirect(self.REQUEST['HTTP_REFERER']) - def invalidate_chache(self): + def invalidate_cache(self): #TODO: How to invalidate the varnish cache from the member object pass;
--- a/zpt/project/project_template.zpt Fri Apr 26 20:31:21 2013 +0200 +++ b/zpt/project/project_template.zpt Fri Apr 26 21:18:01 2013 +0200 @@ -26,7 +26,7 @@ <h1 tal:content="here/getProjectTitle">History of Scientific Objectivity, 18th-19th Cs</h1> <p class="maintext_authors"> <tal:block tal:repeat="person here/getResponsibleScientistsList"> - <a tal:omit-tag="python:not (person['username'] and here.isActiveMember(person['key']))" + <a tal:omit-tag="python:not (person['username'] and here.getStaffFolder().isActiveMember(key=person['key']))" tal:attributes="href string:$root/${secmap/staff}/members/${person/username}" tal:content="person/name"> Name of responsible person</a><tal:block tal:condition="not:repeat/person/end">, </tal:block> </tal:block> @@ -68,7 +68,7 @@ tal:define="parents here/getSuperProjects;" tal:condition="parents"> <div class="project parent"> Part of: - <a tal:define="parent python:parents[-1]" tal:content="parent/getProjectTitle" + <a tal:define="parent python:parents[-1]" tal:content="parent/getLabel" tal:attributes="href python:parent.getUrl(baseUrl=proBaseUrl)+test(here.isArchivedProject(),'?showArchive=yes','')" /> </div> <!-- end parent --> @@ -79,9 +79,8 @@ <div class="sideblock" tal:define="projects here/getRelatedProjects" tal:condition="projects"> <h2>Related Projects</h2> <div class="item" tal:repeat="project python:projects"> - <a tal:attributes="href - python:root+'/'+secmap['research']+'/projects/'+project[1].objid" - tal:content="python:project[1].projectWEB_title" /> + <a tal:attributes="href python:proBaseUrl+'/'+project.objid" + tal:content="python:project.projectWEB_title" /> </div> <!-- end item --> </div>
--- a/zpt/staff/member_index_html.zpt Fri Apr 26 20:31:21 2013 +0200 +++ b/zpt/staff/member_index_html.zpt Fri Apr 26 21:18:01 2013 +0200 @@ -138,13 +138,11 @@ </div> </div> - <div class="sideblock" tal:condition="python:here.getProjectsOfMember(key=key)"> + <div class="sideblock" tal:define="projects python:here.getProjectFolder().getProjectsOfMember(key=key)" tal:condition="projects"> <h2>Projects</h2> - <div class="project" tal:repeat="project python:here.getProjectsOfMember(key=key)"> - <tal:x tal:condition="python:here.isActual(project)"> - <a tal:attributes="href python:root+'/'+secmap['research']+'/projects/'+project.getId()+'/index.html'" - tal:content="python:here.decode(project.getContent('WEB_title'))" /> - </tal:x> + <div class="project" tal:repeat="project projects"> + <a tal:attributes="href python:project.getUrl(baseUrl=root+'/'+secmap['research']+'/projects/')" + tal:content="project/getLabel" /> </div> </div>