Beispiel #1
0
def details(id):
    task = Task.query.get(id)
    form = TaskForm(request.form, obj=task)
    if request.method == "POST":
        if form.validate_on_submit():
            form.populate_obj(task)
            print(task)
            task.save()
            return redirect(url_for('tasks.list'))
    return render_template('task_details.html', form=form)
Beispiel #2
0
def create_task():
    form = TaskForm()
    form['csrf_token'].data = request.cookies['csrf_token']
    if form.validate_on_submit():
        data = Task()
        form.populate_obj(data)
        print(str(form))
        data.assigneeId = current_user.id
        db.session.add(data)
        db.session.commit()
        return data.to_dict()
    return ('Invalid Info')
Beispiel #3
0
def edit_task(task_id):
    task = Task.query.filter_by(user_id=current_user.get_id())
    current_task = Task.query.get_or_404(task_id)
    if current_task.task_due:
        current_task.task_due = current_task.task_due.astimezone(
            get_localzone())
    if current_task.task_remind:
        current_task.task_remind = current_task.task_remind.astimezone(
            get_localzone())
    task_form = TaskForm(obj=current_task)

    if request.method == 'POST':
        if not task_form.task_name.data:
            flash('task name can\'t be blank')
        else:
            #convert local datetime to UTC
            if task_form.task_due.data:
                task_form.task_due.data = task_form.task_due.data.astimezone(
                    pytz.utc)
            if task_form.task_remind.data:
                task_form.task_remind.data = task_form.task_remind.data.astimezone(
                    pytz.utc)

            task_form.populate_obj(current_task)
            db.session.commit()
            flash('task is edited successfully')

            #check task_remind and send scheduled reminder by email
            if current_task.task_remind:
                if current_task.task_remind < datetime.utcnow().replace(
                        tzinfo=pytz.utc):
                    flash('...but task reminder is past')
                else:
                    send_email_reminder.apply_async(
                        args=(current_task.task_id, ),
                        eta=current_task.task_remind)
                    flash('task reminder is also scheduled')

            return redirect(url_for('index'))
    return render_template('edit.html',
                           title='edit',
                           task=task,
                           task_form=task_form)