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()
def reply(request): if request['REQUEST_METHOD'] == 'GET': return static_file('static/reply.html') invitedata = read_post_data(request) deltagar_id = invitedata["id"][0] status = invitedata["status"][0] if status == "ja": foto = invitedata["foto"][0] else: foto = "" db.cursor.execute( ''' UPDATE deltagare SET status = ?, foto = ? WHERE id = ? AND status = "inbjuden"; ''', (status, foto, deltagar_id)) db.commit() kodstuga = deltagare.get_kodstuga(deltagar_id) if status == "ja" and kodstuga["epost_status_ja"] != "inaktiv": kontakter = kontaktpersoner.fordeltagare(deltagar_id) this_deltagare = deltagare.get_one(deltagar_id) meddelande = kodstuga["epost_text_ja"] meddelande = meddelande.replace("%namn%", this_deltagare["fornamn"]).replace( "%kodstuga%", kodstuga["namn"]) for kontakt in kontakter: send_email(kontakt["epost"], kodstuga["epost_rubrik_ja"], meddelande) return static_file('static/reply_done.html')
def set(request): if request["BESK_admin"]: post_data = read_post_data(request) if "datum" in post_data: data = [] for i, datum in enumerate(post_data["datum"]): data.append((post_data["kodstugor_id"][0], post_data["datum"][i], post_data["typ"][i])) db.cursor.execute( """ DELETE FROM kodstugor_datum WHERE kodstugor_id = ?; """, (data[0][0], )) for query in data: db.cursor.execute( """ INSERT INTO kodstugor_datum(kodstugor_id,datum,typ) VALUES (?, ?, ?); """, query) db.commit() return all(request)
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)
def delete(request): if request["BESK_admin"]: post_data = read_post_data(request) delete_deltagare(post_data["id"][0]) utdata = all(request) utdata.update(kontaktpersoner.all(request)) return utdata
def add_or_uppdate(request): if request["BESK_admin"]: post_data = read_post_data(request) for i in range(len(post_data["id"])): if "new" not in post_data: data = (post_data["text"][i], post_data["id"][i]) db.cursor.execute( """ UPDATE keyvalue SET text = ? WHERE id = ? """, data) else: data = (post_data["id"][i], post_data["text"][i]) db.cursor.execute( """ INSERT INTO keyvalue (id,text) VALUES (?,?) """, data) db.commit() return all(request)
def delete(request): if request["BESK_admin"]: post_data = read_post_data(request) db.cursor.execute( """ DELETE FROM utskick WHERE id = ? """, (post_data['id'][0], )) return all(request)
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)
def delete(request): post_data = read_post_data(request) if request["BESK_admin"]: deltagar_ids = db.cursor.execute( """ SELECT id FROM deltagare WHERE kodstugor_id == ? """, (post_data['id'][0], )).fetchall() for deltagare_id in deltagar_ids: deltagare.delete_deltagare(deltagare_id[0]) db.cursor.execute( """ DELETE FROM utskick WHERE kodstugor_id = ? """, (post_data['id'][0], )) db.cursor.execute( """ DELETE FROM kodstugor_datum WHERE kodstugor_id = ? """, (post_data['id'][0], )) db.cursor.execute( """ DELETE FROM volontarer_plannering WHERE kodstugor_id = ? """, (post_data['id'][0], )) db.cursor.execute( """ DELETE FROM volontarer_roller WHERE kodstugor_id = ? """, (post_data['id'][0], )) db.cursor.execute( """ DELETE FROM kodstugor WHERE id = ? """, (post_data['id'][0], )) db.commit() return all(request)
def add_or_uppdate(request): if request["BESK_admin"]: post_data = read_post_data(request) if "id" in post_data: data = (post_data["kodstugor_id"][0], post_data["typ"][0], post_data["rubrik"][0], post_data["text"][0], arrow.get(post_data["datum"][0]).timestamp(), post_data["status"][0], post_data["id"][0]) db.cursor.execute( """ UPDATE utskick SET kodstugor_id = ?, typ = ?, rubrik = ?, text = ?, datum = ?, status = ? WHERE id = ? """, data) else: data = ( post_data["kodstugor_id"][0], post_data["typ"][0], post_data["rubrik"][0], post_data["text"][0], arrow.get(post_data["datum"][0]).timestamp(), ) db.cursor.execute( """ INSERT INTO utskick ( kodstugor_id, typ, rubrik, text, datum, status ) VALUES (?,?,?,?,?,"aktiv") """, data) db.commit() return all(request)
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)
def add_or_uppdate(request): post_data = read_post_data(request) for i in range(len(post_data["id"])): if not post_data["id"][i] == "0": data = ( post_data["status"][i], post_data["kommentar"][i], post_data["id"][i], ) db.cursor.execute( """ UPDATE volontarer_plannering SET status = ?, kommentar = ? WHERE id = ? """, data) else: data = ( post_data["volontarer_id"][i], post_data["kodstugor_id"][i], post_data["datum"][i], post_data["status"][i], post_data["kommentar"][i], ) db.cursor.execute( """ INSERT INTO volontarer_plannering ( volontarer_id, kodstugor_id, datum, status, kommentar ) VALUES (?,?,?,?,?) """, data) db.commit() return all(request)
def delete(request): if request["BESK_admin"]: post_data = read_post_data(request) db.cursor.execute(""" DELETE FROM volontarer_plannering WHERE volontarer_id = ? """, (post_data['id'][0],)) db.cursor.execute(""" DELETE FROM volontarer_roller WHERE volontarer_id = ? """, (post_data['id'][0],)) db.cursor.execute(""" DELETE FROM volontarer WHERE id = ? """, (post_data['id'][0],)) db.commit() return all(request)
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}
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
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.")
def add_or_uppdate(request): if request["BESK_admin"]: post_data = read_post_data(request) if "id" in post_data: data = (post_data["namn"][0], post_data["sms_text"][0], post_data["epost_text"][0], post_data["epost_rubrik"][0], post_data["epost_text_ja"][0], post_data["epost_rubrik_ja"][0], post_data["typ"][0], post_data["open"][0], post_data["sms_status"][0], post_data["epost_status"][0], post_data["epost_status_ja"][0], post_data["id"][0]) db.cursor.execute( """ UPDATE kodstugor SET namn = ?, sms_text = ?, epost_text = ?, epost_rubrik = ?, epost_text_ja = ?, epost_rubrik_ja = ?, typ = ?, open = ?, sms_status = ?, epost_status = ?, epost_status_ja = ? WHERE id = ? """, data) else: data = ( post_data["namn"][0], post_data["sms_text"][0], post_data["epost_text"][0], post_data["epost_rubrik"][0], post_data["epost_text_ja"][0], post_data["epost_rubrik_ja"][0], post_data["typ"][0], post_data["open"][0], post_data["sms_status"][0], post_data["epost_status"][0], post_data["epost_status_ja"][0], ) db.cursor.execute( """ INSERT INTO kodstugor ( namn, sms_text, epost_text, epost_rubrik, epost_text_ja, epost_rubrik_ja, typ, open, sms_status, epost_status, epost_status_ja ) VALUES (?,?,?,?,?,?,?,?,?,?,?) """, data) db.commit() return all(request)
def add_or_uppdate(request): if request["BESK_admin"]: post_data = read_post_data(request) if "kontaktperson_id" not in post_data: post_data["kontaktperson_id"] = [] if "id" in post_data: data = (post_data["fornamn"][0], post_data["efternamn"][0], post_data["status"][0], post_data["kon"][0], post_data["foto"][0], post_data["klass"][0], post_data["skola"][0], post_data["kodstuga"][0], post_data["skonto"][0], post_data["slosen"][0], post_data["id"][0]) db.cursor.execute( """ UPDATE deltagare SET fornamn = ?, efternamn = ?, status = ?, kon = ?, foto = ?, klass = ?, skola = ?, kodstugor_id = ?, skonto = ?, slosen = ? WHERE id = ? """, data) db.cursor.execute( """ DELETE FROM kontaktpersoner_deltagare WHERE deltagare_id = ? """, (post_data["id"][0], )) for kontaktperson_id in post_data["kontaktperson_id"]: db.cursor.execute( """ INSERT INTO kontaktpersoner_deltagare (deltagare_id, kontaktpersoner_id) VALUES (?,?) """, (post_data["id"][0], kontaktperson_id)) else: data = ( uuid.uuid4().hex, post_data["fornamn"][0], post_data["efternamn"][0], post_data["status"][0], post_data["kon"][0], post_data["klass"][0], post_data["skola"][0], post_data["kodstuga"][0], post_data["skonto"][0], post_data["slosen"][0], ) db.cursor.execute( """ INSERT INTO deltagare ( id, fornamn, efternamn, status, kon, klass, skola, kodstugor_id, skonto, slosen ) VALUES (?,?,?,?,?,?,?,?,?,?) """, data) for kontaktperson_id in post_data["kontaktperson_id"]: db.cursor.execute( """ INSERT INTO kontaktpersoner_deltagare (deltagare_id, kontaktpersoner_id) VALUES (?,?) """, (data[0], kontaktperson_id)) db.commit() deltagare = all(request) deltagare.update(kontaktpersoner.all(request)) return deltagare