Project

General

Profile

Download (2.76 KB) Statistics
| Branch: | Tag: | Revision:

calebasse / scripts / import_db.py @ ee47faa1

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

    
(3-3/3)