changeset 44:05754bca0114

updated project not current warning.
author casties
date Sun, 28 Apr 2013 19:12:49 +0200
parents 196db636a8fd
children 5c6ad316e1ce
files MPIWGProjects.py zpt/project/project_template.zpt
diffstat 2 files changed, 22 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/MPIWGProjects.py	Sun Apr 28 14:17:32 2013 +0200
+++ b/MPIWGProjects.py	Sun Apr 28 19:12:49 2013 +0200
@@ -932,6 +932,10 @@
                 self.manage_delObjects([id])
         except:
                 logging.error("ERROR MPIWG: %s %s" % sys.exc_info()[0:2])
+                
+        # invalidate thumbnail
+        self.projectThumb = None
+        
         if RESPONSE:
             self.redirect(RESPONSE, 'manageImages')
 
@@ -966,6 +970,9 @@
         obj.place = self.getLastImageNumber() + 1
         obj.id = filename
 
+        # invalidate thumbnail
+        self.projectThumb = None
+        
         if RESPONSE is not None:
             
             self.redirect(RESPONSE, 'manageImages')
@@ -988,7 +995,7 @@
             return cmp(x[1].archiveTime, y[1].archiveTime)
 
         if not date:
-            if self.isActual():
+            if self.isCurrentVersion():
                 return self
             else:
                 return None
@@ -1021,14 +1028,12 @@
             return None
           
         
-    def isActual(self):
-        """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 isCurrentVersion(self):
+        """Return if project is the current version."""
+        currentTime = time.localtime()
+        # print getattr(self,'archiveTime',currentTime)
+        return (getattr(self, 'archiveTime', currentTime) >= currentTime)
+        
         
     def copyObjectToArchive(self):
         """kopiere aktuelles objekt ins archiv"""
@@ -1248,7 +1253,7 @@
         if not context:
             context = self
             
-        if self.isActiveProject() and self.isActual():
+        if self.isActiveProject() and self.isCurrentVersion():
              templates = self.en.getHarvestCache()
             
              ext = getattr(self, "harvest_main", None)
@@ -1766,6 +1771,7 @@
             # schreibe keys und namen in die Liste
             checkedScientists[names[nr]] = {'name' : name, 'key' : key, 'username' : username}
              
+        # update responsibleScientistsList
         self.setResponsibleScientistsList(checkedScientists)
         self.updateProjectMembers()
         
@@ -2024,7 +2030,7 @@
         """Patch all current projects for legacy problems."""
         cnt = 0
         # go through all projects
-        for project in self.objectValues(spec='MPIWGProject'):
+        for (id, project) in self.ZopeFind(self, obj_metatypes=['MPIWGProject'], search_sub=1):
             cnt += 1
             #
             # hasRelatedPublicationsOldVersion
--- a/zpt/project/project_template.zpt	Sun Apr 28 14:17:32 2013 +0200
+++ b/zpt/project/project_template.zpt	Sun Apr 28 19:12:49 2013 +0200
@@ -15,7 +15,11 @@
 
   <!-- middle column -->
   <div class="center" metal:fill-slot="center">
-    <tal:block tal:replace="structure here/versionHeader" />
+    <h2  tal:condition="not:here/isCurrentVersion">
+      This is an outdated version of this project! For the current version, please refer to 
+      <a tal:define="parentUrl python:here.aq_parent.getUrl(baseUrl=proBaseUrl)" 
+        tal:attributes="href parentUrl" tal:content="parentUrl"/>
+    </h2>
     <tal:x tal:define="started here/getStartedAt" tal:condition="here/isArchivedProject">
       <p>
         (<span tal:condition="started" tal:content="string:$started-"/><span tal:condition="not:started">Completed:</span>