Example #1
0
def update_as_vol(request):
    post_data = read_post_data(request)
    if not get_by_id(post_data["id"][0])["epost"] == request["BESK_login"]["user"]["user"]["email"]:
        return
    try:
        phone_number = phonenumbers.parse(post_data["telefon"][0], "SE")
        phone_number_str = phonenumbers.format_number(phone_number, phonenumbers.PhoneNumberFormat.E164)
    except Exception:
        raise Error400("Fyll i ett giltigt telefonummer.")
    if not phonenumbers.is_valid_number(phone_number):
        raise Error400("Fyll i ett giltigt telefonummer.")
    if "id" in post_data:
        data = (
            post_data["namn"][0],
            phone_number_str,
            post_data["id"][0]
        )
        db.cursor.execute("""
            UPDATE volontarer
                SET
                    namn = ?,
                    telefon = ?
                WHERE
                    id = ?
            """, data)
    db.commit()
Example #2
0
def add_or_uppdate(request):
    post_data = read_post_data(request)
    if "id" not in post_data:
        raise Error400("Inga ändringar sparade.")
    for i in range(len(post_data["id"])):
        if not post_data["id"][i] == "0":
            data = (
                post_data["status"][i],
                post_data["id"][i]
            )
            db.cursor.execute("""
                UPDATE deltagande_närvaro
                    SET
                        status = ?
                    WHERE
                        id = ?
                """, data)
        else:
            data = (
                post_data["deltagare_id"][i],
                post_data["datum"][i],
                post_data["status"][i],
                int(time())

            )
            db.cursor.execute("""
                INSERT
                    INTO deltagande_närvaro
                        (deltagare_id, datum, status, skapad)
                    VALUES
                        (?,?,?,?)
                """, data)
    db.commit()
    return all(request)
Example #3
0
def set_admins(request):
    if not request["BESK_admin"]:
        return {}
    post_data = read_post_data(request)
    new_ini_string = ",".join(post_data["admins"])
    if request["BESK_login"]["user"]["user"]["email"] not in new_ini_string:
        raise Error400("Du kan inte ta bort dig själv.")
    config['general']['admins'] = new_ini_string
    with open('../BESK.ini', 'w') as configfile:
        config.write(configfile)
    return get_admins(request)
Example #4
0
def new(request):
    if request["BESK_admin"]:
        post_data = read_post_data(request)
        if "invite" not in post_data:
            raise Error400("Inga deltagare valda.")
        invites = post_data["invite"]
        for invite in invites:
            db.cursor.execute(
                '''
                UPDATE
                    deltagare
                SET
                    status = "inbjudan"
                WHERE
                    id = ?;
                ''', (invite, ))
        db.commit()
    return deltagare.all(request)
Example #5
0
def add_or_update_admin(request):
    post_data = read_post_data(request)
    if "flytta" in post_data:
        for flytta_id in post_data["flytta"]:
            add_roller(post_data["kodstugor_id"][0], "volontär", flytta_id)
    elif "flera" in post_data:
        for i, namn in enumerate(post_data["namn"]):
            data = (
                post_data["namn"][i],
                post_data["epost"][i],
                phonenumber_to_format(post_data["telefon"][i]),
                arrow.get("2090-01-01").timestamp(),
            )
            try:
                db.cursor.execute("""
                    INSERT
                        INTO volontarer
                            (namn, epost, telefon, utdrag_datum)
                        VALUES
                            (?,?,?,?)
                    """, data)

                db.commit()
                add_roller(
                    post_data["kodstugor_id"][0],
                    "volontär",
                    get_id(post_data["epost"][i])
                )
                send_email(
                    post_data["epost"][i],
                    "BESK-konto aktiverat",
                    texter.get_one("BESK-konto aktiverat")["text"]
                )
            except db.sqlite3.IntegrityError:
                pass
    else:
        try:
            phone_number = phonenumbers.parse(post_data["telefon"][0], "SE")
            phone_number_str = phonenumbers.format_number(phone_number, phonenumbers.PhoneNumberFormat.E164)
        except Exception:
            raise Error400("Fyll i ett giltigt telefonummer.")
        if not phonenumbers.is_valid_number(phone_number):
            raise Error400("Fyll i ett giltigt telefonummer.")
        if "id" in post_data:
            data = (
                post_data["namn"][0],
                post_data["epost"][0],
                phone_number_str,
                arrow.get("2090-01-01").timestamp(),
                post_data["id"][0]
            )
            db.cursor.execute("""
                UPDATE volontarer
                    SET
                        namn = ?,
                        epost = ?,
                        telefon = ?,
                        utdrag_datum = ?
                    WHERE
                        id = ?
                """, data)
            db.commit()
            roll_list = []
            if "kodstugor_id" in post_data:
                for form_index, value in enumerate(post_data["kodstugor_id"]):
                    roll_list.append(
                        {
                            "kodstugor_id": value,
                            "roll": post_data["roller"][form_index]
                        }
                    )
                add_or_update_roller(roll_list, post_data["id"][0])
            else:
                add_or_update_roller([], post_data["id"][0])
        else:
            data = (
                post_data["namn"][0],
                post_data["epost"][0],
                phone_number_str,
                arrow.get("2090-01-01").timestamp(),
            )
            try:
                db.cursor.execute("""
                    INSERT
                        INTO volontarer
                            (namn, epost, telefon, utdrag_datum)
                        VALUES
                            (?,?,?,?)
                    """, data)
                db.commit()
                send_email(
                    post_data["epost"][0],
                    "BESK-konto aktiverat",
                    texter.get_one("BESK-konto aktiverat")["text"]
                )
                roll_list = []
                if "kodstugor_id" in post_data:
                    for form_index, value in enumerate(post_data["kodstugor_id"]):
                        roll_list.append(
                            {
                                "kodstugor_id": value,
                                "roll": post_data["roller"][form_index]
                            }
                        )
                    add_or_update_roller(roll_list, get_id(post_data["epost"][0]))
            except db.sqlite3.IntegrityError:
                raise Error400("E-Postadressen finns redan.")
Example #6
0
def handle(request):
    if request['REQUEST_METHOD'] == 'GET':
        return all(request)
    Error400("Du kan bara visa loggar inte ändra")
Example #7
0
def add_or_uppdate(request):
    post_data = read_post_data(request)
    try:
        phone_number = phonenumbers.parse(post_data["telefon"][0], "SE")
    except Exception:
        raise Error400("Fyll i ett giltigt telefonummer.")
    if not phonenumbers.is_valid_number(phone_number):
        raise Error400("Fyll i ett giltigt telefonummer.")

    if request["BESK_admin"]:
        if "deltagare_id" not in post_data:
            post_data["deltagare_id"] = []
        if "id" in post_data:
            data = (post_data["fornamn"][0], post_data["efternamn"][0],
                    post_data["epost"][0],
                    phonenumbers.format_number(
                        phone_number, phonenumbers.PhoneNumberFormat.E164),
                    post_data["id"][0])
            db.cursor.execute(
                """
                UPDATE kontaktpersoner
                    SET
                        fornamn = ?,
                        efternamn = ?,
                        epost = ?,
                        telefon = ?
                    WHERE
                        id = ?
                """, data)
            db.cursor.execute(
                """
                DELETE FROM
                    kontaktpersoner_deltagare
                WHERE
                    kontaktpersoner_id = ?
                """, (post_data["id"][0], ))
            for deltagare_id in post_data["deltagare_id"]:
                db.cursor.execute(
                    """
                INSERT
                    INTO kontaktpersoner_deltagare
                        (deltagare_id, kontaktpersoner_id)
                    VALUES
                        (?,?)
                """, (deltagare_id, post_data["id"][0]))
        else:
            data = (uuid.uuid4().hex, post_data["fornamn"][0],
                    post_data["efternamn"][0], post_data["epost"][0],
                    phonenumbers.format_number(
                        phone_number, phonenumbers.PhoneNumberFormat.E164))
            db.cursor.execute(
                """
                INSERT
                    INTO kontaktpersoner
                        (id, fornamn, efternamn, epost, telefon)
                    VALUES
                        (?,?,?,?,?)
                """, data)
            for deltagare_id in post_data["deltagare_id"]:
                db.cursor.execute(
                    """
                INSERT
                    INTO kontaktpersoner_deltagare
                        (deltagare_id, kontaktpersoner_id)
                    VALUES
                        (?,?)
                """, (deltagare_id, data[0]))
        db.commit()

    kontaktpersoner = all(request)
    kontaktpersoner.update(deltagare.all(request))
    return kontaktpersoner
Example #8
0
def new(request):
    data_to_db = {"kids": [], "adults": []}
    status = "ansökt"
    formdata = read_post_data(request)
    if request["BESK_login"]["user"]:
        user_is_admin = login.is_admin(
            request["BESK_login"]["user"]["user"]["email"])
    else:
        user_is_admin = False
    if "invite_now" in formdata:
        if user_is_admin and formdata["invite_now"][0] == "inbjudan":
            status = "inbjudan"
        if user_is_admin and formdata["invite_now"][0] == "ja":
            status = "ja"

    if "approve" not in formdata:
        raise Error400("Du måste acceptera Kodcentrums Integritetspolicy.")
    try:
        kodstugaid = formdata["kodstuga"][0]
        (kodstuga, kodstuga_typ) = db.cursor.execute(
            """
            SELECT namn, typ
            FROM kodstugor WHERE id = ?;
        """, (kodstugaid, )).fetchone()
    except Exception:
        raise Error400("Välj en aktivitet.")
    now = int(time.time())

    for i, _ in enumerate(formdata["barn_efternamn"]):
        if user_is_admin:
            foto = formdata["foto"][i]
        else:
            foto = None
        if formdata["barn_fornamn"][i] == "":
            raise Error400("Fyll i förnamn för samtliga barn.")
        if formdata["barn_efternamn"][i] == "":
            raise Error400("Fyll i efternamn för samtliga barn.")
        if formdata["kon"][i] == "":
            raise Error400("Fyll i kön för samtliga barn.")
        if formdata["klass"][i] == "":
            raise Error400("Fyll i klass för samtliga barn.")
        if formdata["skola"][i] == "":
            raise Error400("Fyll i skola för samtliga barn.")
        data_to_db["kids"].append(
            (uuid.uuid4().hex, kodstugaid, formdata["barn_fornamn"][i],
             formdata["barn_efternamn"][i], formdata["kon"][i],
             formdata["klass"][i], formdata["skola"][i], foto, now, status))

    for i, value in enumerate(formdata["vuxen_efternamn"]):
        try:
            phone_number = phonenumbers.parse(formdata["telefon"][i], "SE")
        except Exception:
            raise Error400("Fyll i ett giltigt telefonummer för alla målsmän.")
        if not phonenumbers.is_valid_number(phone_number):
            raise Error400("Fyll i ett giltigt telefonummer för alla målsmän.")
        if formdata["vuxen_fornamn"][i] == "":
            raise Error400("Fyll i förnamn för alla målsmän.")
        if formdata["vuxen_efternamn"][i] == "":
            raise Error400("Fyll i efternamn för alla målsmän.")
        if formdata["email"][i] == "":
            raise Error400("Fyll i en email för alla målsmän.")
        data_to_db["adults"].append(
            (uuid.uuid4().hex, formdata["vuxen_fornamn"][i],
             formdata["vuxen_efternamn"][i], formdata["email"][i],
             phonenumbers.format_number(phone_number,
                                        phonenumbers.PhoneNumberFormat.E164)))

    for kid in data_to_db["kids"]:
        db.cursor.execute(
            "INSERT INTO deltagare (id,kodstugor_id,fornamn,efternamn,kon,klass,skola,foto,datum,status) VALUES (?,?,?,?,?,?,?,?,?,?)",
            kid)  # noqa: E501

    for adult in data_to_db["adults"]:
        db.cursor.execute(
            "INSERT INTO kontaktpersoner (id,fornamn,efternamn,epost,telefon) VALUES (?,?,?,?,?)",
            adult)

    for adult in data_to_db["adults"]:
        for kid in data_to_db["kids"]:
            db.cursor.execute(
                "INSERT INTO kontaktpersoner_deltagare (kontaktpersoner_id, deltagare_id) VALUES (?,?)",
                (adult[0], kid[0]))

    hittade = (formdata["hittade"][0], )
    db.cursor.execute("INSERT INTO hittade (hittade) VALUES (?)", hittade)
    db.commit()
    if status == "ansökt":
        mailmessage = texter.get_one("Intresseanmälan " +
                                     kodstuga_typ)["text"].replace(
                                         "%kodstuga%", kodstuga)
        mailsubject = "Tack för din intresseanmälan"
        for email in formdata["email"]:
            send_email(email, mailsubject, mailmessage)

    return {"applied": data_to_db}