diff options
Diffstat (limited to 'chimere/models.py')
| -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 | 
