from flask import render_template, request, redirect from taskmanager import app, db from taskmanager.functions import * from taskmanager.models import * import configparser #CONFIG_PATH = "/var/taskmanager/taskmanager/config.ini" CONFIG_PATH = "/home/anon/src/taskmanager/taskmanager/config.ini" config = configparser.ConfigParser() config.read(CONFIG_PATH) ADMINPASS = config.get('credentials', 'ADMINPASS') @app.route('/', methods=['GET']) def index(): tasks = Task.query.all() return render_template('index.html', tasks = tasks) @app.route('/addtask', methods=['GET','POST']) def addtask(): if request.method == 'GET': return render_template('addtask.html') elif request.method == 'POST': taskname = request.form['taskname'] taskdesc = request.form['taskdesc'] username = request.form['username'] if username == "": creatorid = None else: try: creatorid = User.query.filter_by(username = username).first().id except: return 'No user with this username. Please register.' if creatorid is None: return 'No user with this username. Please register.' sqladdtask = Task(name = taskname, desc = taskdesc, creatorid = creatorid) try: db.session.add(sqladdtask) db.session.commit() return 'Task added' except: return 'Adding task failed' @app.route('/register', methods=['POST', 'GET']) def register(): if request.method == 'GET': return render_template('register.html') elif request.method == 'POST': username = request.form['username'] contact = request.form['contact'] password = request.form['password'] sqladduser = User(username = username, contact = contact, password = password) try: db.session.add(sqladduser) db.session.commit() return 'User added' except: return 'Adding user failed' else: return 'HTTP request method not recogniezed' @app.route('/projects/', methods=['GET','POST']) def project(task_id:int): try: task = Task.query.get(task_id) except: return 'Task not found, bad URL' if task is None: return 'Task not found, bad URL' users = gettaskusers(task_id) if request.method == 'GET': return render_template("project.html", task = task, users = users) elif request.method == 'POST': username = request.form['username'] if username in users: return 'User already added to task' try: userid = User.query.filter_by(username = username).first().id except: return 'User not found, please register.' if userid is None: return 'User not found, please register.' sqladduser = TaskUser(userid = userid, taskid = task_id) try: db.session.add(sqladduser) db.session.commit() return 'User added' except: return 'Adding user failed' @app.route('/projects//del', methods=['GET','POST']) def deltask(task_id:int): try: task = Task.query.get(task_id) except: return 'Task not found, bad URL' if task is None: return 'Task not found, bad URL' creatorid = task.creatorid if request.method == 'GET': if creatorid is None: try: db.session.delete(task) db.session.commit() return 'Task deleted' except: return 'Deleting task failed' else: return render_template('deltask.html', task = task) if request.method == 'POST': password = request.form['password'] # Check password if password != ADMINPASS and password != User.query.get(creatorid).password: return 'Wrong password' # Delete task try: db.session.delete(task) db.session.commit() return 'Task deleted' except: return 'Deleting task failed'