diff managePurls/manageIndexMetaPURLs.py @ 36:be8640c08d99

Updatedri in harbestToPUrl ge?ndert. jetzt werden gegebenenfalls dris aus den index.meta gelesen und in die db geschrieben, falls sie noch nicht existieren. ausserdem wird in den daten isdri=TRUE gesetzt, wenn es ich bei der PURL um eine handelt die auf ein DRI in den index.meta verweist.
author dwinter
date Mon, 03 Mar 2014 17:32:06 +0100
parents bcd8076ff7ec
children 6a0873a913c5
line wrap: on
line diff
--- a/managePurls/manageIndexMetaPURLs.py	Wed Oct 23 12:28:22 2013 +0200
+++ b/managePurls/manageIndexMetaPURLs.py	Mon Mar 03 17:32:06 2014 +0100
@@ -174,7 +174,7 @@
         
         #erzeuge eine neue purl
         while self.exists(purl):
-            purl = self.gneratePurl()
+            purl = self.generatePurl()
         
         
         seq= self.purlDB.insert('purls',path=path,purl=purl,is_index_meta=isIndexMeta, image_path=imagePath,
@@ -186,34 +186,53 @@
     #register a new path
     
     
-    def updatePurl(self,purl,isIndexMeta,path="",imagePath="",server_url="",user=""):
+    def updatePurl(self,purl,isIndexMeta,path="",imagePath="",server_url="",user="",isDri=False):
         
         update= self.purlDB.update('purls',where="purl = '%s'"%web.sqlparam(purl),path=path,is_index_meta=isIndexMeta, image_path=imagePath,
+                                server_url=server_url,validity=1,last_change_by=user,last_change_at=web.SQLLiteral("NOW()"),isdri=isDri)
+        
+        
+        return update
+    
+    
+    def updatePurlForPath(self,purl,isIndexMeta,path="",imagePath="",server_url="",user=""):
+        """schreibt zu einem Pfad die entsprechende purl"""
+        
+        
+        update= self.purlDB.update('purls',where="path = '%s'"%web.sqlparam(path),purl=purl,is_index_meta=isIndexMeta, image_path=imagePath,
                                 server_url=server_url,validity=1,last_change_by=user,last_change_at=web.SQLLiteral("NOW()"))
         
         
         return update
     
-    def register(self,path=None,isIndexMeta=False,imagePath="",server_url="",user="",update=False):
+    def register(self,path=None,isIndexMeta=False,imagePath="",server_url="",user="",driIndexMeta=None,update=False):
         
         
         #teste ob es zu dem Pfad schon eine Purl gibt
         
-        if path: # wenn ein pfad definiert ist teste ob es schon eine purl dazu gibt.
-            purl = self.getPurl(path)
+        if path: # wenn ein pfad definiert ist teste ob es schon eine purl in der Datenbank gibt.
+            purl = self.getPurl(path)  
+            
         else:
             purl =None
+            
+        if update: # wenn update compare this with the purl which is stored in the index.meta file.
+            if (driIndexMeta is not None) & (purl!=driIndexMeta):
+                #wenn nicht gleich, dann trage die driIndexMeta in die purl db!
+                purl=driIndexMeta
+            
+        
         if purl!=None:
             
             if update:
-                up= self.updatePurl(purl, isIndexMeta, path, imagePath, server_url, user)
-                if up>0:
-                    return UPDATED,purl
-                else:
-                    return ERROR,None
-                
+                    up= self.updatePurl(driIndexMeta, isIndexMeta, path, imagePath, server_url, user,isDri=True)
+                    if up>0:
+                        return UPDATED,purl
+                    else:
+                        return ERROR,None
+                    
             return ALREADY_EXISTS,purl
-        
+            
         
         #wenn nicht dann neue erzeugen
         else: