ajout de la logique de modération backend
authorolivier larcheveque <olivier.larcheveque@u-ol.(none)>
Mon, 20 Sep 2010 21:26:11 +0000 (17:26 -0400)
committerolivier larcheveque <olivier.larcheveque@u-ol.(none)>
Mon, 20 Sep 2010 21:26:11 +0000 (17:26 -0400)
auf_savoirs_en_partage/savoirs/admin.py
auf_savoirs_en_partage/savoirs/lib/sep.py
auf_savoirs_en_partage/savoirs/models.py

index eeb2051..9f6c037 100644 (file)
@@ -77,15 +77,15 @@ class RecordAdmin(ReadOnlyAdminFields, admin.ModelAdmin):
         'type',
         'format',
         'language',
-        'listsets',
         'disciplines',
         'thematiques',
+        'validated',
         ]
 
     search_fields = []
     readonly_fields = []
 
-    list_filter = ('server',)
+    list_filter = ('server', 'validated')
     list_display = (
       #OAI et extra AUF
       'title',
@@ -110,6 +110,7 @@ class RecordAdmin(ReadOnlyAdminFields, admin.ModelAdmin):
        #'issued',
        #'isbn',
        #'orig_lang',
+       'validated',
     )
 
     def __init__(self, *args, **kwargs):
index 0ec3925..37c0be6 100644 (file)
@@ -61,8 +61,7 @@ class SEP:
         for set in  [ls for ls in ListSet.objects.all() if ls.spec in value]:
             record.listsets.add(set)
 
-    def _save (self, metadata):
-        r = Record ()
+    def _update_record(self, r, metadata):
         for k in metadata.keys ():
             if hasattr(self, k):
                 method = getattr(self, k)
@@ -73,6 +72,11 @@ class SEP:
         r.last_checksum = hashlib.md5(str(metadata)).hexdigest()
         r.last_update = datetime.datetime.today()
         r.save()
+
+
+    def _save (self, metadata):
+        r = Record ()
+        self._update_record(r, metadata)
         return r.id
 
     def _modify (self, id, metadata):
@@ -81,16 +85,9 @@ class SEP:
         # test si le fichier a été modifié
         if hashlib.md5(str(metadata)).hexdigest() == r.last_checksum:
             return False
-        
-        for k in metadata.keys ():
-            if hasattr(self, k):
-                method = getattr(self, k)
-                method(r, metadata[k])
-            else:
-                setattr (r, k, self.encoder.encode(k, metadata[k]))
 
-        r.last_update = datetime.datetime.today()
-        r.save()
+        self._update_record(r, metadata)
+
         return True
 
     def _combine (self, result_lists, op):
index 2f03507..1a846c1 100644 (file)
@@ -87,6 +87,7 @@ class Record(models.Model):
     server = models.CharField(max_length = 255)
     last_update = models.CharField(max_length = 255)
     last_checksum = models.CharField(max_length = 255)
+    validated = models.BooleanField(default = True)
 
     #OAI
     title = models.TextField(null = True, blank = True)
@@ -103,7 +104,7 @@ class Record(models.Model):
     format = models.TextField(null = True, blank = True)
     language = models.TextField(null = True, blank = True)
 
-    listsets = models.ManyToManyField(ListSet)
+    listsets = models.ManyToManyField(ListSet, null = True, blank = True)
 
     #SEP 2 (aucune données récoltées)
     alt_title = models.TextField(null = True, blank = True)