summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2015-05-21 17:36:17 +0200
committerÉtienne Loks <etienne.loks@proxience.com>2015-05-21 17:36:17 +0200
commit126affc426744c2d6afdce06a1eb807343c1c65a (patch)
treef4c685894bc9826b2a2d5639a20405d7b827184e
parentf09a00dddb0ae015f024f6b1a603b6d3969ab732 (diff)
downloadChimère-126affc426744c2d6afdce06a1eb807343c1c65a.tar.bz2
Chimère-126affc426744c2d6afdce06a1eb807343c1c65a.zip
Imports: "modified_since_import" now take description, start_date into account
-rw-r--r--chimere/models.py19
1 files changed, 11 insertions, 8 deletions
diff --git a/chimere/models.py b/chimere/models.py
index 5727098..74555ae 100644
--- a/chimere/models.py
+++ b/chimere/models.py
@@ -697,7 +697,8 @@ class Marker(GeographicItem):
PRE_ATTRS = {
- 'Marker':('name', 'geometry', 'import_version', 'modified_since_import'),
+ 'Marker':('name', 'description', 'start_date', 'geometry', 'import_version',
+ 'modified_since_import'),
'Route':('name', 'geometry', 'import_version', 'modified_since_import'),
'Area':('urn', 'name'),
}
@@ -708,8 +709,9 @@ def geometry_pre_save(cls, pre_save_geom_values):
instance = kwargs['instance']
try:
instance = cls.objects.get(pk=instance.pk)
- pre_save_geom_values[instance.pk] = [getattr(instance, attr)
- for attr in PRE_ATTRS[cls.__name__]]
+ pre_save_geom_values[instance.pk] = dict(
+ [(attr, getattr(instance, attr))
+ for attr in PRE_ATTRS[cls.__name__]])
except ObjectDoesNotExist:
pass
return geom_pre_save
@@ -727,19 +729,20 @@ def geometry_post_save(pre_save_geom_values):
or kwargs['instance'].pk not in pre_save_geom_values:
return
instance = kwargs['instance']
- name, geometry, import_version, modified_since_import = \
- pre_save_geom_values[instance.pk]
+ pre = pre_save_geom_values[instance.pk]
# force the reinit of modified_since_import
- if modified_since_import != instance.modified_since_import:
+ if pre['modified_since_import'] != instance.modified_since_import:
return
- if (instance.import_version != import_version
+ if (instance.import_version != pre['import_version']
and instance.modified_since_import):
instance.modified_since_import = False
instance.save()
return
if instance.modified_since_import:
return
- if instance.name != name or instance.geometry != geometry:
+ if [key for key in pre if pre not in ('import_version',
+ 'modified_since_import') and
+ getattr(instance, key) != pre[key]]:
instance.modified_since_import = True
instance.save()
return geom_post_save