Amélioration de l'importation par url, on détecte les possibles doublons après import
This commit is contained in:
parent
772a0a5854
commit
ae6d73cfb0
@ -245,13 +245,19 @@ class Event(models.Model):
|
|||||||
self.local_image = File(name=basename, file=open(tmpfile, "rb"))
|
self.local_image = File(name=basename, file=open(tmpfile, "rb"))
|
||||||
|
|
||||||
|
|
||||||
|
def is_in_importation_process(self):
|
||||||
|
return hasattr(self, "in_importation_process")
|
||||||
|
|
||||||
|
def set_in_importation_process(self):
|
||||||
|
self.in_importation_process = True
|
||||||
|
|
||||||
def update_dates(self):
|
def update_dates(self):
|
||||||
now = timezone.now()
|
now = timezone.now()
|
||||||
if not self.id:
|
if not self.id:
|
||||||
self.created_date = now
|
self.created_date = now
|
||||||
if hasattr(self, "require_imported_date"):
|
if self.is_in_importation_process():
|
||||||
self.imported_date = now
|
self.imported_date = now
|
||||||
if not hasattr(self, "require_imported_date") or self.modified_date is None:
|
if self.is_in_importation_process() or self.modified_date is None:
|
||||||
self.modified_date = now
|
self.modified_date = now
|
||||||
|
|
||||||
|
|
||||||
@ -267,8 +273,18 @@ class Event(models.Model):
|
|||||||
|
|
||||||
self.prepare_save()
|
self.prepare_save()
|
||||||
|
|
||||||
|
# check for similar events if no duplicated is known
|
||||||
|
if self.possibly_duplicated is None:
|
||||||
|
# and if this is not an importation process
|
||||||
|
if not self.is_in_importation_process():
|
||||||
|
similar_events = self.find_similar_events()
|
||||||
|
|
||||||
|
# if it exists similar events, add this relation to the event
|
||||||
|
if len(similar_events) != 0:
|
||||||
|
self.set_possibly_duplicated(similar_events)
|
||||||
|
|
||||||
|
elif self.possibly_duplicated is not None and self.possibly_duplicated.nb_duplicated() == 1:
|
||||||
# delete duplicated group if it's only with one element
|
# delete duplicated group if it's only with one element
|
||||||
if self.possibly_duplicated is not None and self.possibly_duplicated.nb_duplicated() == 1:
|
|
||||||
self.possibly_duplicated.delete()
|
self.possibly_duplicated.delete()
|
||||||
self.possibly_duplicated = None
|
self.possibly_duplicated = None
|
||||||
|
|
||||||
@ -408,7 +424,7 @@ class Event(models.Model):
|
|||||||
# for each event, check if it's a new one, or a one to be updated
|
# for each event, check if it's a new one, or a one to be updated
|
||||||
for event in events:
|
for event in events:
|
||||||
# imported events should be updated
|
# imported events should be updated
|
||||||
event.require_imported_date = True
|
event.set_in_importation_process()
|
||||||
event.prepare_save()
|
event.prepare_save()
|
||||||
|
|
||||||
# check if the event has already be imported (using uuid)
|
# check if the event has already be imported (using uuid)
|
||||||
@ -421,7 +437,7 @@ class Event(models.Model):
|
|||||||
if same_imported:
|
if same_imported:
|
||||||
# if this event exists, it will be updated with new data
|
# if this event exists, it will be updated with new data
|
||||||
same_imported.update(event)
|
same_imported.update(event)
|
||||||
same_imported.require_imported_date = True
|
same_imported.set_in_importation_process()
|
||||||
same_imported.prepare_save()
|
same_imported.prepare_save()
|
||||||
to_update.append(same_imported)
|
to_update.append(same_imported)
|
||||||
else:
|
else:
|
||||||
@ -441,7 +457,7 @@ class Event(models.Model):
|
|||||||
if same_events is not None and len(same_events) > 0:
|
if same_events is not None and len(same_events) > 0:
|
||||||
# merge with the first one
|
# merge with the first one
|
||||||
same_events[0].update(event)
|
same_events[0].update(event)
|
||||||
same_events[0].require_imported_date = True
|
same_events[0].set_in_importation_process()
|
||||||
same_events[0].prepare_save()
|
same_events[0].prepare_save()
|
||||||
to_update.append(same_events[0])
|
to_update.append(same_events[0])
|
||||||
else:
|
else:
|
||||||
|
Loading…
Reference in New Issue
Block a user