diff options
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 |
commit | 126affc426744c2d6afdce06a1eb807343c1c65a (patch) | |
tree | f4c685894bc9826b2a2d5639a20405d7b827184e | |
parent | f09a00dddb0ae015f024f6b1a603b6d3969ab732 (diff) | |
download | Chimère-126affc426744c2d6afdce06a1eb807343c1c65a.tar.bz2 Chimère-126affc426744c2d6afdce06a1eb807343c1c65a.zip |
Imports: "modified_since_import" now take description, start_date into account
-rw-r--r-- | chimere/models.py | 19 |
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 |