delete all data not present in exports

This commit is contained in:
Serghei Mihai 2014-04-08 14:56:40 +02:00
parent 6fdf800604
commit 7455d85db9
1 changed files with 12 additions and 6 deletions

View File

@ -49,6 +49,7 @@ class PersonneManager(models.Manager):
csv_reader = reader(source, delimiter = ';')
caption = csv_reader.next()
attrs = map(lambda e: self.attribute_mappings[e], caption)
ids = ()
for row in csv_reader:
params = dict(zip(attrs, row))
@ -58,6 +59,7 @@ class PersonneManager(models.Manager):
params[key] = value.decode('utf-8')
obj_id = params['id']
ids += (obj_id, )
try:
obj = self.get(pk = obj_id)
obj_id = params.pop('id')
@ -70,6 +72,7 @@ class PersonneManager(models.Manager):
obj.save()
except models.ObjectDoesNotExist:
self.create(**params)
self.exclude(id__in=ids).delete()
class FamilleManager(models.Manager):
@ -100,6 +103,7 @@ class FamilleManager(models.Manager):
csv_reader = reader(source, delimiter = ';')
caption = csv_reader.next()
attrs = map(lambda e: self.attribute_mappings[e], caption)
ids = ()
for row in csv_reader:
params = dict(zip(attrs, row))
@ -114,6 +118,7 @@ class FamilleManager(models.Manager):
try:
obj = self.get(pk = obj_id)
obj_id = params.pop('id')
ids += (obj_id, )
updated = False
for attr, value in params.iteritems():
if getattr(obj, attr) != value:
@ -139,6 +144,7 @@ class FamilleManager(models.Manager):
personne = member)
except:
pass
self.exclude(id__in=ids).delete()
class FactureManager(models.Manager):
@ -166,6 +172,7 @@ class FactureManager(models.Manager):
csv_reader = reader(source, delimiter = ';')
caption = csv_reader.next()
attrs = map(lambda e: self.attribute_mappings[e], caption)
ids = ()
for row in csv_reader:
params = dict(zip(attrs, row))
@ -184,7 +191,7 @@ class FactureManager(models.Manager):
try:
obj = self.get(pk = params['id'])
params.pop('id')
ids += (params.pop('id'), )
updated = False
for attr, value in params.iteritems():
if getattr(obj, attr) != value:
@ -194,6 +201,7 @@ class FactureManager(models.Manager):
obj.save()
except models.ObjectDoesNotExist:
obj = self.create(**params)
self.exclude(id__in=ids).delete()
class KidManager(models.Manager):
@ -212,6 +220,7 @@ class KidManager(models.Manager):
csv_reader = reader(source, delimiter = ';')
caption = csv_reader.next()
attrs = map(lambda e: self.attribute_mappings[e], caption)
ids = ()
for row in csv_reader:
params = dict(zip(attrs, row))
@ -224,6 +233,7 @@ class KidManager(models.Manager):
except ValueError:
params.pop('date_naissance')
obj_id = params['id']
ids += (obj_id, )
family_id = params.pop('famille')
try:
family = Famille.objects.get(pk = family_id)
@ -244,6 +254,7 @@ class KidManager(models.Manager):
obj.save()
except models.ObjectDoesNotExist:
obj = self.create(**params)
self.exclude(id__in=ids).delete()
class Personne(models.Model):
@ -343,11 +354,6 @@ class Facture(models.Model):
def __unicode__(self):
return 'Facture %s (Famille %s)' % (self.id, self.famille.id)
# def active(self):
# return path.exists(settings.INVOICES_LOCATION_PATTERN.format(invoide_id = self.id))
# active.boolean = True
class Enfant(models.Model):
id = models.AutoField(primary_key = True)
famille = models.ForeignKey(Famille)