add task deleting

This commit is contained in:
2024-01-18 14:04:00 +01:00
parent a1c41349bd
commit d0d9529e41
6 changed files with 102 additions and 6 deletions

View File

@@ -2,6 +2,15 @@ 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():
@@ -15,7 +24,17 @@ def addtask():
elif request.method == 'POST':
taskname = request.form['taskname']
taskdesc = request.form['taskdesc']
sqladdtask = Task(name = taskname, desc = 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 <a href="/register">register</a>.'
if creatorid is None:
return 'No user with this username. Please <a href="/register">register</a>.'
sqladdtask = Task(name = taskname, desc = taskdesc, creatorid = creatorid)
try:
db.session.add(sqladdtask)
db.session.commit()
@@ -45,12 +64,14 @@ def register():
@app.route('/projects/<int:task_id>', 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':
try:
task = Task.query.get(task_id)
except:
return 'Task not found, bad URL'
return render_template("project.html", task = task, users = users)
elif request.method == 'POST':
username = request.form['username']
@@ -60,6 +81,8 @@ def project(task_id:int):
userid = User.query.filter_by(username = username).first().id
except:
return 'User not found, please <a href="/register">register</a>.'
if userid is None:
return 'User not found, please <a href="/register">register</a>.'
sqladduser = TaskUser(userid = userid, taskid = task_id)
try:
db.session.add(sqladduser)
@@ -68,3 +91,34 @@ def project(task_id:int):
except:
return 'Adding user failed'
@app.route('/projects/<int:task_id>/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'