--- MPIWGWeb/MPIWGProjects.py 2010/09/14 06:22:50 1.47.2.118 +++ MPIWGWeb/MPIWGProjects.py 2012/01/09 10:36:48 1.47.2.125 @@ -140,6 +140,7 @@ class MPIWGProject_publication(Folder): self._setObject('publicationImage2',nO) + self.ZCacheable_invalidate() if RESPONSE: self.redirect(RESPONSE,"../managePublications") @@ -196,7 +197,7 @@ class MPIWGProject_relatedProject(Folder self.projectWEB_title=object.getContent('WEB_title')[0:] self.enabled=True; - + self.ZCacheable_invalidate() if RESPONSE: self.redirect(RESPONSE,"../manageRelatedProjects") @@ -236,6 +237,7 @@ class MPIWGProject(CatalogAware,Folder,C security=ClassSecurityInfo() meta_type='MPIWGProject' default_catalog='ProjectCatalog' + def redirect(self,RESPONSE,url): """mache ein redirect mit einem angehaengten time stamp um ein reload zu erzwingen""" @@ -308,7 +310,7 @@ class MPIWGProject(CatalogAware,Folder,C """test ob es digital sources gibt""" - ret = (self.getContent('xdata_11')=='' and self.getContent('xdata_13')=='') + ret = (self.getContent('xdata_11').lstrip().rstrip()=='') @@ -518,8 +520,11 @@ class MPIWGProject(CatalogAware,Folder,C def addPublication(self,text,RESPONSE=None): """add an MPIWG_Publication""" - - name="publication_"+str(self.getLastPublicationNumber()+1) + number=self.getLastPublicationNumber()+1 + name="publication_"+str(number) + while hasattr(self,name): + number+=1 + name="publication_"+str(number) newPublication=MPIWGProject_publication(name) @@ -529,7 +534,7 @@ class MPIWGProject(CatalogAware,Folder,C obj.enabled=True; obj.place=self.getLastPublicationNumber()+1 obj.id=name - + self.ZCacheable_invalidate() if RESPONSE is not None: self.redirect(RESPONSE,'managePublications') @@ -542,7 +547,13 @@ class MPIWGProject(CatalogAware,Folder,C def addRelatedProject(self,link,RESPONSE=None): """add an MPIWG_Publication""" - name="RelatedProject"+str(self.getLastRelatedProjectNumber()+1) + + + number=self.getLastPublicationNumber()+1 + name="RelatedProject"+str(number) + while hasattr(self,name): + number+=1 + name="RelatedProject_"+str(number) # hole die id des projektes splitted=link.split("/") @@ -570,7 +581,7 @@ class MPIWGProject(CatalogAware,Folder,C obj.enabled=True; obj.place=self.getLastRelatedProjectNumber()+1 obj.id=name - + self.ZCacheable_invalidate() if RESPONSE is not None: self.redirect(RESPONSE,'manageRelatedProjects') @@ -579,7 +590,7 @@ class MPIWGProject(CatalogAware,Folder,C def getLastPublicationNumber(self): publications=self.getPublications() - + if not publications: return 0 else: @@ -596,6 +607,7 @@ class MPIWGProject(CatalogAware,Folder,C def deletePublication(self,id,RESPONSE=None): """delete Publication id""" self.manage_delObjects([id]) + self.ZCacheable_invalidate() if RESPONSE: self.redirect(RESPONSE,'managePublications') @@ -603,6 +615,7 @@ class MPIWGProject(CatalogAware,Folder,C def deleteRelatedProject(self,id,RESPONSE=None): """delete Publication id""" self.manage_delObjects([id]) + self.ZCacheable_invalidate() if RESPONSE: self.redirect(RESPONSE,'manageRelatedProjects') @@ -747,6 +760,17 @@ class MPIWGProject(CatalogAware,Folder,C else: return 1 + def isActualForIndex(self): #isActual kann nicht indiziert werden, da intern fom ZCAtalog verwendete Funktion + """gibt 1 zurueck wenn aktuell, 0 sonst""" + actualTime=time.localtime() + + + #print getattr(self,'archiveTime',actualTime) + if getattr(self,'archiveTime',actualTime)< actualTime: + return 0 + else: + return 1 + def copyObjectToArchive(self): """kopiere aktuelles objekt ins archiv""" logging.info("copytoarchive 1") @@ -1019,20 +1043,30 @@ class MPIWGProject(CatalogAware,Folder,C return pt() - def harvest_page(self,context=None): + def harvest_page(self,context=None,mode="normal"): """seite fuer harvesting fuer die Projektsuche""" if not context: context=self if self.isActiveProject() and self.isActual(): + templates = self.en.getHarvestCache() + ext=getattr(self,"harvest_main",None) if ext: - return getattr(self,ext.getId())() + rendered = getattr(self,ext.getId())() + templates[self.absolute_url()]=rendered + + return rendered + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','harvest_main')).__of__(context) - - - return pt() + + rendered = pt() + templates[self.absolute_url()]=rendered + + return rendered + + def index_html(self,request=True,context=None): """show homepage""" @@ -1655,6 +1689,14 @@ class MPIWGProject(CatalogAware,Folder,C if RESPONSE is not None: RESPONSE.redirect('manage_main') + def tagTheProject(self,RESPONSE=None): + """TAG""" + id=self.getId(); + tmpl =getattr(self.thesaurus,"main.html") + if RESPONSE: + RESPONSE.redirect("./thesaurus/main.html?project="+id) + return + def manage_addMPIWGProjectForm(self): """form for adding the project""" pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addMPIWGProjectForm.zpt')).__of__(self)