Newer
Older
#!/usr/bin/python3
import argparse
import csv
import random
import string
import sys
ap = argparse.ArgumentParser()
ap.add_argument("--institution", action="store_true")
ap.add_argument("members_csv", type=argparse.FileType("r"))
args = ap.parse_args()
def generate_password():
return ''.join(random.choice(string.ascii_letters + string.digits) for i in range(0, 12))
openslides_csv = csv.writer(sys.stdout, quoting=csv.QUOTE_ALL, delimiter=';')
openslides_csv.writerow(["Titel", "Vorname", "Nachname", "Gliederungsebene", "Teilnehmernummer", "Gruppen", "Kommentar", "Ist aktiv", "Ist anwesend", "Ist ein Gremium", "Initiales Passwort", "E-Mail", "Benutzername", "Geschlecht", "Stimmgewicht"])
# "ID";"Anrede";"Institution";"Straße";"Nr";"PLZ";"Ort";"Anrede_Ansprechpartner";"Name";"Vorname";"Mailadresse";"PGP";"Mobil";"Telefon";"Fax";"Eintrittsdatum";"Art";"Beitrag";"Sepa";"IBAN";"BIC"
FIRST_NAME_COL = 3
LAST_NAME_COL = 2
LEAVE_DATE_COL = 14
MEMBER_TYPE_COL = 15
EMAIL_COL = 8
else:
# "ID";"Anrede";"Name";"Vorname";"Straße";"Nr";"PLZ";"Ort";"Mailadresse";"PGP";"Mobil";"Telefon";"Geb.Datum";"Eintrittsdatum";"Austrittsdatum";"Art";"Beitrag";"Sepa";"IBAN";"BIC"
FIRST_NAME_COL = 9
LAST_NAME_COL = 8
MEMBER_TYPE_COL = 16
EMAIL_COL = 10
INSTITUTION_COL = 2
member_reader = csv.reader(args.members_csv, delimiter=';')
for member in member_reader:
# Titel,Vorname,Nachname,Gliederungsebene,Teilnehmernummer,Gruppen,Kommentar,Ist aktiv,Ist anwesend,Ist ein Gremium,Initiales Passwort,E-Mail,Benutzername,Geschlecht,Stimmgewicht
firstname = member[FIRST_NAME_COL]
lastname = member[LAST_NAME_COL]
membership_type = member[MEMBER_TYPE_COL]
username = email = member[EMAIL_COL]
institution = ""
if not args.institution:
leave_date = member[LEAVE_DATE_COL]
if leave_date.strip() != "":
print(f"{firstname} {lastname}: Already left, ignoring!", file=sys.stderr)
continue
if membership_type == "OV" or membership_type == "OE":
elif membership_type == "FM":
groups = ""
else:
print(f"{firstname} {lastname}: Unknown membership type '{membership_type}'", file=sys.stderr)
continue
else:
institution = member[INSTITUTION_COL]
if membership_type == "OM":
elif membership_type == "FM":
groups = ""
else:
print(f"{firstname} {lastname}: Unknown membership type '{membership_type}'", file=sys.stderr)
continue
password = generate_password()
openslides_csv.writerow(["", firstname, lastname, institution, "", groups, "", 1, 0, 0, password, email, username, "" ""])