예제 #1
0
def taskupdate():
    if 'userid' in session:
        user = User.query.get_or_404(session['userid'])
        if request.method == 'POST':
            updateform = TaskUpdateForm(request.form)
            if updateform.validate():
                task = Task.query.get_or_404(updateform.taskid.data)
                if task.userid == user.id:
                    # update fields
                    task.title = updateform.title.data
                    task.value = updateform.value.data
                    #task.datedue = updateform.datedue.data
                    db.session.commit()
                return redirect(url_for('tasks'))
            else:
                tasks = user.tasks.filter(Task.complete == False).order_by(
                    desc(Task.dateadded)).all()
                return render_template('tasks.html',
                                       username=user.username,
                                       points=user.points,
                                       tasks=tasks,
                                       form=TaskForm(),
                                       idform=TaskIdForm(),
                                       updateform=updateform,
                                       containerclass="listcontainer")
        else:
            return redirect(url_for('tasks'))
    else:
        return redirect(url_for('front'))
예제 #2
0
def update_task(workspace, id, task_id):
    """Update task"""
    form = TaskUpdateForm(csrf_enabled=False, data=request.json)
    if form.validate():
        task = Task.query.filter(Task.team == id, Task.id == task_id).first()
        update_obj_with_data(task, form.data)
        ret_task = conv_obj_to_dict(task)
        db.session.commit()
        return jsonify({"data": ret_task})
    return jsonify({"errors": form.errors}), 400
예제 #3
0
def tasks():

    if 'userid' in session:
        user = User.query.get_or_404(session['userid'])

        if request.method == 'POST':
            form = TaskForm(request.form)
            if form.validate():
                newtask = Task(form.title.data, user, None, form.value.data)
                db.session.add(newtask)
                db.session.commit()
                return redirect(url_for('tasks'))
            else:
                tasks = user.tasks.filter(Task.complete == False).order_by(
                    desc(Task.dateadded)).all()
                return render_template('tasks.html',
                                       username=user.username,
                                       points=user.points,
                                       tasks=tasks,
                                       form=form,
                                       idform=TaskIdForm(),
                                       updateform=TaskUpdateForm(),
                                       containerclass="listcontainer")

        else:
            tasks = user.tasks.filter(Task.complete == False).order_by(
                desc(Task.dateadded)).all()
            return render_template('tasks.html',
                                   username=user.username,
                                   points=user.points,
                                   tasks=tasks,
                                   form=TaskForm(),
                                   idform=TaskIdForm(),
                                   updateform=TaskUpdateForm(),
                                   containerclass="listcontainer")
    # if no session, display default home page. TODO: convert to splash page
    else:
        return redirect(url_for('front'))
예제 #4
0
async def update_task(request, task_id):
    errors = ''
    status_code = 200
    form = TaskUpdateForm().load(request.json)
    if not form.errors:
        async with app.engine.acquire() as conn:
            query = await conn.execute(
                Tasks.select().where(Tasks.c.id == task_id))
            task = await query.fetchone()
            if task:
                await conn.execute(Tasks.update().where(Tasks.c.id == task_id). \
                                   values({k: v for k, v in form.data.items()}))
                await conn.connection.commit()
            else:
                errors = 'Not Found'
                status_code = 404
    else:
        status_code = 400
        errors = form.errors
    return response.json({'errors': errors}, status=status_code)