def add_new_material(name, author_id, issued, amount, type_id, age): if not accounts.is_admin(): return False fault = False if name == None or author_id == None or amount == None or type_id == None: fault = True if issued == "": issued = 2000 fault = True if amount == "": amount = 0 fault = True if int(amount) < 0: fault = True if age == "": age = 0 if int(age) < 0: fault = True if int(age) > 18: fault = True if fault: return False sql = "INSERT INTO librarymaterial (name, author_id, issued, amount, type_id, age) " \ "VALUES (:name, :author_id, :issued, :amount, :type_id, :age)" db.session.execute(sql, {"name":name, "author_id":author_id, "issued":issued, "amount":amount, "type_id":type_id, "age":age}) db.session.commit() return True
def update_material(id, new_name, new_author_id, new_issued, new_amount, new_type_id, new_age, csrf_token): if session["csrf_token"] != csrf_token: abort(403) if not accounts.is_admin(): return False if new_issued == "": new_issued = 1000 return False if new_amount == "": new_amount = 0 return False if int(new_amount) < 0: return False if new_age == "": age = 0 return False if int(new_age) < 0: return False if int(new_age) > 18: return False try: material = Librarymaterial.query.get(id) material.name = new_name material.author_id = new_author_id material.issued = new_issued material.amount = new_amount material.type_id = new_type_id material.age = new_age db.session.commit() return True except: return False
def account(id): if not accounts.is_admin(): id = accounts.user_id() account = accounts.get_account(id) l_list = loans.get_loans(id) l_history = loans.get_personal_loan_history(id) return render_template("account.html", account=account, l_list=l_list, l_history=l_history)
def add_new_author(): if not accounts.is_admin(): flash("Ei oikeutta sisällöntuottajien lisäämiseen.", "warning") return redirect("/") csrf_token = request.form["csrf_token"] fault = False first_name = request.form["first_name"].strip() if len(first_name) > 40: flash("Liian pitkä etunimi.", "warning") fault = True surname = request.form["surname"].strip() if len(surname) == 0: flash("Liian lyhyt sukunimi.", "warning") fault = True if len(surname) > 40: flash("Liian pitkä sukunimi.", "warning") fault = True description = request.form["description"].strip() if len(description) > 5000: flash("Liian pitkä kuvaus.", "warning") fault = True if fault: flash("Tietojen lisääminen ei onnistunut", "danger") return redirect("/") if authors.add_new_author(first_name, surname, description, csrf_token): flash("Sisällöntuottajan lisääminen järjestelmään onnistui.", "success") return redirect("/") else: flash("Tietojen lisääminen ei onnistunut. Varmista, että olet antanut kaikki tiedot oikein.", "danger") return redirect("/add_new_author")
def update_material(): if not accounts.is_admin(): flash("Ei oikeutta tietojen päivittämiseen.", "warning") return redirect("/") csrf_token = request.form["csrf_token"] id = request.form["id"] fault = False new_name = request.form["new_name"].strip() if len(new_name) == 0: flash("Nimi on liian lyhyt.", "warning") fault = True if len(new_name) > 140: flash("Nimi on liian pitkä.", "warning") fault = True new_author_id = request.form["new_author_id"] new_issued = request.form["new_issued"] if new_issued == "": new_issued = 1000 flash("Anna kelvollinen julkaisuvuosi.", "warning") if int(new_issued) < 1700: flash("Tarkista julkaisuvuosi. Tällainen sisältö kuuluu museoon.", "warning") fault = True if int(new_issued) > datetime.datetime.now().year: flash("Tarkista julkaisuvuosi. Kirjastoon otetaan vain jo julkaistua sisältöä.", "warning") fault = True new_amount = request.form["new_amount"] if new_amount == "": new_amount = 0 flash("Anna kelvollinen lukumäärä.", "warning") fault = True if int(new_amount) <= 0: flash("Sisältöä on oltava vähintään 1 kappale.", "warning") fault = True if int(new_amount) > 100: flash("Tämä on nyt jo liikaa...", "warning") fault = True new_type_id = request.form["new_type_id"] new_age = request.form["new_age"] if new_age == "": new_age = 0 flash("Anna kelvollinen ikä.", "warning") fault = True if int(new_age) < 0: flash("Ikäraja ei voi olla negatiivinen.", "warning") fault = True if int(new_age) > 18: flash("Kaiken kirjaston materiaalin tulee olla sallittua täysi-ikäisille.", "warning") fault = True if fault: flash("Tietojen lisääminen ei onnistunut.", "danger") return redirect("/") if librarymaterial.update_material(id, new_name, new_author_id, new_issued, new_amount, new_type_id, new_age, csrf_token): flash("Tietojen päivittäminen onnistui.", "success") return redirect("/") else: flash("Tietojen päivittäminen ei onnistunut.", "danger") return redirect("/")
def delete_material(id): if not accounts.is_admin(): return False try: material = Librarymaterial.query.get(id) db.session.delete(material) db.session.commit() return True except: return False
def statistics(): if not accounts.is_admin(): flash("Ei oikeuksia ylläpitosivulle.", "warning") return redirect("/") auth_list = authors.get_authors() m_list = librarymaterial.get_material_by_name() type_list = materialtypes.get_types() acc_list = accounts.get_accounts() loan_history = loans.get_loan_history() return render_template("statistics.html", auth_list=auth_list, m_list=m_list, type_list=type_list, acc_list=acc_list, loan_history=loan_history)
def delete_type(id): if not accounts.is_admin(): return False try: type = Materialtypes.query.get(id) db.session.delete(type) db.session.commit() return True except: return False
def edit_type(id, new_name): if not accounts.is_admin(): return False try: type = Materialtypes.query.get(id) type.name = new_name db.session.commit() return True except: return False
def add_new_material(): if not accounts.is_admin(): flash("Ei oikeutta tietojen päivittämiseen.", "warning") return redirect("/") fault = False name = request.form["name"].strip() if len(name) == 0: flash("Sisällöllä täytyy olla nimi.", "warning") fault = True if len(name) > 140: flash("Nimi on liian pitkä.", "warning") fault = True author_id = request.form["author_id"] issued = request.form["issued"] if issued == "": flash("Anna julkaisuvuosi.", "warning") issued = 1000 fault = True if int(issued) < 1700: flash("Tarkista julkaisuvuosi.", "warning") fault = True if int(issued) > datetime.datetime.now().year: flash("Tarkista julkaisuvuosi. Kirjastoon otetaan vain jo julkaistua sisältöä.", "warning") fault = True amount = request.form["amount"] if amount == "": amount = 0 flash("Anna kelvollinen lukumäärä.", "warning") if int(amount) <= 0: flash("Uutta sisältöä on oltava vähintään 1 kappale.", "warning") fault = True if int(amount) > 100: flash("Tämä on nyt jo liikaa...", "warning") fault = True type_id = request.form["type_id"] age = request.form["age"] if age == "": flash("Anna kelvollinen ikä.", "warning") age = 0 fault = True if int(age) < 0: flash("Ikäraja ei voi olla negatiivinen.", "warning") fault = True if int(age) > 18: flash("Kaiken kirjaston materiaalin tulee olla sallittua täysi-ikäisille.", "warning") fault = True if fault: flash("Tietojen lisääminen ei onnistunut.", "danger") return redirect("/") if librarymaterial.add_new_material(name, author_id, issued, amount, type_id, age): flash("Tiedot on lisätty järjestelmään.", "success") return redirect("/") else: flash("Tietojen lisääminen ei onnistunut. Varmista, että olet antanut kaikki tiedot oikein.", "danger") return redirect("/")
def delete_author(id, csrf_token): if session["csrf_token"] != csrf_token: abort(403) if not accounts.is_admin(): return False try: author = Authors.query.get(id) db.session.delete(author) db.session.commit() return True except: return False
def reset_password(): csrf_token = request.form["csrf_token"] if not accounts.is_admin(): flash("Ei oikeutta salasanan nollaamiseen.", "warning") return redirect("/") id = request.form["id"] username = request.form["username"] if accounts.reset_password(id, username, csrf_token): flash("Salasanan nollaus onnistui.", "success") return redirect("/statistics") else: flash("Salasanan nollaus ei onnistunut.", "danger") return redirect("/statistics")
def edit_type(): if not accounts.is_admin(): flash("Ei oikeuksia tyyppien muuttamiseen.", "warning") return redirect("/") id = request.form["id"] new_name = request.form["new_name"].strip() if not 0 < len(new_name) < 20: flash("Tyypillä kuuluu olla korkeintaan 20 merkkiä pitkä nimi.", "warning") if materialtypes.edit_type(id, new_name): flash("Tyypin muuttaminen onnistui.", "success") return redirect("/statistics") else: flash("Tyypin muuttaminen ei onnistunut.", "danger") return redirect("/statistics")
def edit_author(id, new_surname, new_first_name, new_description, csrf_token): if session["csrf_token"] != csrf_token: abort(403) if not accounts.is_admin(): return False try: author = Authors.query.get(id) author.surname = new_surname author.first_name = new_first_name author.description = new_description db.session.commit() return True except: return False
def add_new_author(first_name, surname, description, csrf_token): if session["csrf_token"] != csrf_token: abort(403) if not accounts.is_admin(): return False if first_name == None or surname == None or description == None: return False sql = "INSERT INTO authors (first_name, surname, description) VALUES " \ "(:first_name, :surname, :description)" db.session.execute(sql, { "first_name": first_name, "surname": surname, "description": description }) db.session.commit() return True
def new_author(): if not accounts.is_admin(): flash("Ei oikeutta tietojen päivittämiseen.", "warning") return redirect("/") return render_template("new_author.html")