Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
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)
Beispiel #4
0
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") 
Beispiel #5
0
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("/")
Beispiel #6
0
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
Beispiel #7
0
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)
Beispiel #8
0
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
Beispiel #9
0
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
Beispiel #10
0
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("/")
Beispiel #11
0
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
Beispiel #12
0
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")
Beispiel #13
0
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")
Beispiel #14
0
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
Beispiel #15
0
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
Beispiel #16
0
def new_author():
    if not accounts.is_admin():
        flash("Ei oikeutta tietojen päivittämiseen.", "warning")
        return redirect("/")
    return render_template("new_author.html")