Skip to content
Snippets Groups Projects
Unverified Commit 0c3a1c24 authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Reimplement CSV import for teachers.

parent 120a629f
No related branches found
No related tags found
No related merge requests found
from biscuit.core.models import Person
import codecs
import csv
from collections import OrderedDict
import pandas
import phonenumbers
def schild_import_csv(teachers_csv, students_csv, guardians_csv):
teachers_reader = csv.DictReader(codecs.iterdecode(teachers_csv, 'utf-8'),
fieldnames=('guid', 'email', 'email_business', 'date_of_birth',
'sex', 'abbrev', 'last_name', 'first_name', 'street', 'postal_code', 'place', 'phone_number', 'mobile_number', 'visible'))
teachers_csv_cols = OrderedDict([('import_ref', str), ('email', str), ('_email_business', str),
('date_of_birth', str), ('sex',
str), ('_abbrev', str),
('last_name', str), ('first_name',
str), ('street', str),
('postal_code', str), ('place',
str), ('phone_number', str),
('mobile_number', str), ('is_active', 'bool')])
teachers_csv_converters = {'phone_number': lambda v: phonenumbers.parse(v, 'DE') if v else None,
'mobile_number': lambda v: phonenumbers.parse(v, 'DE') if v else None,
'sex': lambda v: 'f' if v == 'w' else v}
teachers = pandas.read_csv(teachers_csv, sep=';', names=teachers_csv_cols.keys(), dtype=teachers_csv_cols, usecols=lambda k: not k.startswith('_'), keep_default_na=False, converters=teachers_csv_converters,
parse_dates=['date_of_birth'], quotechar='"', encoding='utf-8-sig', true_values=['+', 'Ja'], false_values=['-', 'Nein'])
for teacher_row in teachers_reader:
if teacher_row['visible'] == '+':
for teacher_row in teachers.transpose().to_dict().values():
if teacher_row['is_active']:
person, created = Person.objects.get_or_create(
guid=teacher_row['guid'], defaults=teacher_row)
person.save()
import_ref=teacher_row['import_ref'], defaults=teacher_row)
......@@ -18,6 +18,7 @@ setup(
include_package_data=True,
install_requires=[
'BiscuIT-ng',
'phonenumbers'
],
classifiers=[
"Development Status :: 3 - Alpha",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment