1
|
#!/usr/bin/env python
|
2
|
|
3
|
import os
|
4
|
import csv
|
5
|
|
6
|
from datetime import datetime
|
7
|
|
8
|
import calebasse.settings
|
9
|
import django.core.management
|
10
|
|
11
|
django.core.management.setup_environ(calebasse.settings)
|
12
|
|
13
|
from calebasse.ressources.models import Service
|
14
|
|
15
|
# Config
|
16
|
db_path = "/home/jschneider/temp/20121213-185146/"
|
17
|
|
18
|
dbs = ["F_ST_ETIENNE_CMPP", "F_ST_ETIENNE_CAMSP", "F_ST_ETIENNE_SESSAD", "F_ST_ETIENNE_SESSAD_TED"]
|
19
|
tables = ["discipline", "intervenants", "notes", "ev", "conge"]
|
20
|
|
21
|
|
22
|
def discipline_mapper(tables_data, service):
|
23
|
from calebasse.ressources.models import WorkerType
|
24
|
for line in tables_data['discipline']:
|
25
|
# Insert workertype
|
26
|
if not WorkerType.objects.filter(name=line['libelle']):
|
27
|
WorkerType.objects.create(name=line['libelle'])
|
28
|
|
29
|
|
30
|
def intervenants_mapper(tables_data, service):
|
31
|
from calebasse.personnes.models import Worker
|
32
|
from calebasse.ressources.models import WorkerType
|
33
|
for line in tables_data['intervenants']:
|
34
|
# Insert workers
|
35
|
for disp in tables_data['discipline']:
|
36
|
if disp['id'] == line['discipline']:
|
37
|
type = WorkerType.objects.get(name=disp['libelle'])
|
38
|
# TODO : import actif or not
|
39
|
Worker.objects.create(
|
40
|
type=type,
|
41
|
last_name=line['nom'],
|
42
|
first_name=line['prenom'],
|
43
|
email=line['email'],
|
44
|
phone=line['tel'],
|
45
|
gender=int(line['titre']),
|
46
|
)
|
47
|
|
48
|
|
49
|
def conge_mapper(tables_data, service):
|
50
|
""" """
|
51
|
pass
|
52
|
|
53
|
def ev_mapper(tables_data, service):
|
54
|
""" """
|
55
|
pass
|
56
|
|
57
|
def notes_mapper(tables_data, service):
|
58
|
""" """
|
59
|
pass
|
60
|
|
61
|
def _get_dict(cols, line):
|
62
|
""""""
|
63
|
res = {}
|
64
|
for i, data in enumerate(line):
|
65
|
res[cols[i]] = data.decode('utf-8')
|
66
|
return res
|
67
|
|
68
|
tables_data = {}
|
69
|
|
70
|
def main():
|
71
|
""" """
|
72
|
for db in dbs:
|
73
|
if "F_ST_ETIENNE_CMPP" == db:
|
74
|
service = Service.objects.get(name="CMPP")
|
75
|
elif "F_ST_ETIENNE_CAMSP" == db:
|
76
|
service = Service.objects.get(name="CAMSP")
|
77
|
elif "F_ST_ETIENNE_SESSAD_TED" == db:
|
78
|
service = Service.objects.get(name="SESSAD TED")
|
79
|
elif "F_ST_ETIENNE_SESSAD" == db:
|
80
|
service = Service.objects.get(name="SESSAD DYS")
|
81
|
for table in tables:
|
82
|
tables_data[table] = None
|
83
|
csvfile = open(os.path.join(db_path, db, '%s.csv' % table), 'rb')
|
84
|
csvlines = csv.reader(csvfile, delimiter=',', quotechar='"')
|
85
|
cols = csvlines.next()
|
86
|
tables_data[table] = []
|
87
|
for line in csvlines:
|
88
|
data = _get_dict(cols, line)
|
89
|
tables_data[table].append(data)
|
90
|
func = eval("%s_mapper" % table)
|
91
|
func(tables_data, service)
|
92
|
csvfile.close()
|
93
|
|
94
|
|
95
|
if __name__ == "__main__":
|
96
|
main()
|
97
|
|