20 |
20 |
|
21 |
21 |
from passerelle.base.models import BaseResource
|
22 |
22 |
|
|
23 |
|
23 |
24 |
class EncombrantsManagement(BaseResource):
|
24 |
25 |
category = _('Business Process Connectors')
|
25 |
26 |
|
... | ... | |
41 |
42 |
def get_add_url(cls):
|
42 |
43 |
return reverse('montpellier-encombrants-add')
|
43 |
44 |
|
|
45 |
def export_json(self):
|
|
46 |
d = super(EncombrantsManagement, self).export_json()
|
|
47 |
d['sectors'] = [sector.export_json() for sector in Sector.objects.all()]
|
|
48 |
return d
|
|
49 |
|
|
50 |
@classmethod
|
|
51 |
def import_json_real(cls, d, **kwargs):
|
|
52 |
sectors = d.pop('sectors', [])
|
|
53 |
instance = super(EncombrantsManagement, cls).import_json_real(d, **kwargs)
|
|
54 |
Sector.objects.delete()
|
|
55 |
for sector in sectors:
|
|
56 |
Sector.import_json(sector)
|
|
57 |
return instance
|
|
58 |
|
44 |
59 |
|
45 |
60 |
class Sector(models.Model):
|
46 |
61 |
contact_email = models.CharField(max_length=1024, blank=True,
|
... | ... | |
56 |
71 |
return '(%s)' % self.id
|
57 |
72 |
return ', '.join([x.name for x in communes])
|
58 |
73 |
|
|
74 |
def export_json(self):
|
|
75 |
return {
|
|
76 |
'contact_email': self.contact_email,
|
|
77 |
'communes': [commune.export_json() for commune in Commune.objects.filter(sector=self)],
|
|
78 |
}
|
|
79 |
|
|
80 |
@classmethod
|
|
81 |
def import_json(cls, d):
|
|
82 |
d = d.copy()
|
|
83 |
communes = d.pop('communes', [])
|
|
84 |
sector = Sector.objects.get_or_create(**d)
|
|
85 |
Commune.objects.filter(sector=sector).delete()
|
|
86 |
for commune in communes:
|
|
87 |
Commune.import_json(commune, sector=sector)
|
|
88 |
|
59 |
89 |
|
60 |
90 |
class Commune(models.Model):
|
61 |
91 |
name = models.CharField(max_length=50, blank=False,
|
... | ... | |
67 |
97 |
def __unicode__(self):
|
68 |
98 |
return u'%s (%s)' % (self.name, self.insee)
|
69 |
99 |
|
|
100 |
def export_json(self):
|
|
101 |
return {
|
|
102 |
'name': self.name,
|
|
103 |
'insee': self.insee,
|
|
104 |
'streets': [street.export_json() for street in Street.objects.filter(commune=self)],
|
|
105 |
}
|
|
106 |
|
|
107 |
@classmethod
|
|
108 |
def import_json(self, d, **kwargs):
|
|
109 |
streets = d.pop('streets', [])
|
|
110 |
kwargs.update(d)
|
|
111 |
commune = Commune.objects.create(**kwargs)
|
|
112 |
for street in streets:
|
|
113 |
Street.import_json(street, commune=commune)
|
|
114 |
|
70 |
115 |
|
71 |
116 |
class Street(models.Model):
|
72 |
117 |
commune = models.ForeignKey(Commune)
|
... | ... | |
76 |
121 |
def __unicode__(self):
|
77 |
122 |
return '%s, %s' % (self.name, self.commune)
|
78 |
123 |
|
|
124 |
def export_json(self):
|
|
125 |
return {
|
|
126 |
'name': self.name,
|
|
127 |
}
|
|
128 |
|
|
129 |
@classmethod
|
|
130 |
def import_json(self, d, **kwargs):
|
|
131 |
kwargs.update(d)
|
|
132 |
return Street.objects.create(**kwargs)
|
|
133 |
|
79 |
134 |
|
80 |
135 |
class CollectDay(models.Model):
|
81 |
136 |
sector = models.ForeignKey(Sector,
|
... | ... | |
88 |
143 |
|
89 |
144 |
def __unicode__(self):
|
90 |
145 |
return '%s: %s' % (self.date, self.sector)
|
|
146 |
|
|
147 |
def export_json(self):
|
|
148 |
date = self.date.isoformat()
|
|
149 |
if self.date.microsecond:
|
|
150 |
date = date[:23] + date[26:]
|
|
151 |
if date.endswith('+00:00'):
|
|
152 |
date = date[:-6] + 'Z'
|
|
153 |
return {
|
|
154 |
'date': date,
|
|
155 |
}
|
91 |
|
-
|