From c88d78dc36e3c1f1f4122f5e0d5ddba8a30e8836 Mon Sep 17 00:00:00 2001 From: olivier larcheveque Date: Mon, 20 Sep 2010 17:26:11 -0400 Subject: [PATCH] =?utf8?q?ajout=20de=20la=20logique=20de=20mod=C3=A9ration=20?= =?utf8?q?backend?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- auf_savoirs_en_partage/savoirs/admin.py | 5 +++-- auf_savoirs_en_partage/savoirs/lib/sep.py | 19 ++++++++----------- auf_savoirs_en_partage/savoirs/models.py | 3 ++- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/auf_savoirs_en_partage/savoirs/admin.py b/auf_savoirs_en_partage/savoirs/admin.py index eeb2051..9f6c037 100644 --- a/auf_savoirs_en_partage/savoirs/admin.py +++ b/auf_savoirs_en_partage/savoirs/admin.py @@ -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): diff --git a/auf_savoirs_en_partage/savoirs/lib/sep.py b/auf_savoirs_en_partage/savoirs/lib/sep.py index 0ec3925..37c0be6 100644 --- a/auf_savoirs_en_partage/savoirs/lib/sep.py +++ b/auf_savoirs_en_partage/savoirs/lib/sep.py @@ -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): diff --git a/auf_savoirs_en_partage/savoirs/models.py b/auf_savoirs_en_partage/savoirs/models.py index 2f03507..1a846c1 100644 --- a/auf_savoirs_en_partage/savoirs/models.py +++ b/auf_savoirs_en_partage/savoirs/models.py @@ -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) -- 1.7.10.4