def project(project_id): if current_user.is_in_project(project_id): project = Project.query.filter_by(id=project_id).first_or_404() return render_template('main/project.html', project=project) else: flash("You cannot access this project.") return redirect(url_for('main.index'))
def new_task(project_id, tasklist_id): form = NewComponentForm() project = Project.query.filter_by(id=project_id).first_or_404() tasklist = TaskList.query.filter_by(id=tasklist_id).first_or_404() if form.validate_on_submit(): # Check if current user and the task list is in the project if current_user.is_in_project( project_id) and tasklist.project_id == project_id: task = Task(name=form.name.data, description=form.description.data) db.session.add(task) tasklist.tasks.append(task) db.session.commit() flash("Task - \"{}\" created successfully!".format(task.name)) return redirect(url_for( 'main.project', project_id=project_id, )) else: flash("You cannot add tasks to this project.") return redirect(url_for('main.index')) return render_template('main/new_task.html', form=form, project_id=project_id, tasklist_id=tasklist_id, project_name=project.name, tasklist_name=tasklist.name)
def edit_tasklist(project_id, tasklist_id): form = NewComponentForm() project = Project.query.filter_by(id=project_id).first_or_404() tasklist = TaskList.query.filter_by(id=tasklist_id).first_or_404() # Check if current user and the task list is in the project if current_user.is_in_project( project_id) and tasklist.project_id == project_id: if form.validate_on_submit(): tasklist.name = form.name.data tasklist.description = form.description.data db.session.commit() flash("Task List - \"{}\" changed successfully!".format( tasklist.name)) return redirect(url_for('main.project', project_id=project_id)) else: form.name.data = tasklist.name form.description.data = tasklist.description return render_template('main/edit_tasklist.html', form=form, project_id=project_id, tasklist_id=tasklist_id, project_name=project.name, tasklist_name=tasklist.name, tasklist=tasklist) else: flash("You cannot edit task lists for this project.") return redirect(url_for('main.index'))
def delete_project(project_id): # Check if current user is in the project if current_user.is_in_project(project_id): project = Project.query.filter_by(id=project_id).first_or_404() flash("Deleted Project - \"{}\"".format(project.name)) db.session.delete(project) db.session.commit() else: flash("You cannot delete this project.") return redirect(url_for('main.index'))
def delete_tasklist(project_id, tasklist_id): tasklist = TaskList.query.filter_by(id=tasklist_id).first_or_404() # Check if current user and the task list is in the project if current_user.is_in_project( project_id) and tasklist.project_id == project_id: flash("Deleted Task List - \"{}\"".format(tasklist.name)) db.session.delete(tasklist) db.session.commit() else: flash("You cannot delete task lists from this project.") return redirect(url_for('main.project', project_id=project_id))
def edit_tasklog(project_id, tasklist_id, task_id, tasklog_id): form = NewTaskLogForm() project = Project.query.filter_by(id=project_id).first_or_404() tasklist = TaskList.query.filter_by(id=tasklist_id).first_or_404() task = Task.query.filter_by(id=task_id).first_or_404() tasklog = TaskLog.query.filter_by(id=tasklog_id).first_or_404() # Check if current user, task list, task and task log is in the project if current_user.is_in_project( project_id ) and tasklist.project_id == project_id and task.tasklist_id == tasklist_id and tasklog.task_id == task_id: if form.validate_on_submit(): minutesTimezoneOffset = timedelta( minutes=int(form.minutesTimezoneOffset.data)) start_time = form.start_time.data - minutesTimezoneOffset end_time = form.end_time.data - minutesTimezoneOffset time_diff = end_time - start_time # Check if end time is greater than start time if time_diff.total_seconds() <= 0: flash("Task end time cannot be earlier than start time") return redirect( url_for('main.edit_task', project_id=project_id, tasklist_id=tasklist_id, task_id=task_id)) else: tasklog.note = form.note.data tasklog.start_time = start_time tasklog.end_time = end_time db.session.commit() flash("Task Log - \"{}\" changed successfully!".format( tasklog.note)) return redirect( url_for('main.edit_task', project_id=project_id, tasklist_id=tasklist_id, task_id=task_id)) else: form.note.data = tasklog.note form.start_time.data = tasklog.start_time form.end_time.data = tasklog.end_time return render_template('main/edit_tasklog.html', form=form, project_id=project_id, tasklist_id=tasklist_id, task_id=task_id, tasklog_id=tasklog_id, project_name=project.name, tasklist_name=tasklist.name, task_name=task.name, tasklog_name=tasklog.note) else: flash("You cannot edit task logs for this project.") return redirect(url_for('main.index'))
def delete_tasklog(project_id, tasklist_id, task_id, tasklog_id): tasklist = TaskList.query.filter_by(id=tasklist_id).first_or_404() task = Task.query.filter_by(id=task_id).first_or_404() tasklog = TaskLog.query.filter_by(id=tasklog_id).first_or_404() # Check if current user, task list, task and task log is in the project if current_user.is_in_project( project_id ) and tasklist.project_id == project_id and task.tasklist_id == tasklist_id and tasklog.task_id == task_id: flash("Deleted Task Log - \"{}\"".format(tasklog.note)) db.session.delete(tasklog) db.session.commit() else: flash("You cannot delete task logs from this project.") return redirect( url_for('main.edit_task', project_id=project_id, tasklist_id=tasklist_id, task_id=task_id))
def edit_task(project_id, tasklist_id, task_id): form = EditTaskForm() project = Project.query.filter_by(id=project_id).first_or_404() tasklist = TaskList.query.filter_by(id=tasklist_id).first_or_404() task = Task.query.filter_by(id=task_id).first_or_404() form.tasklists.choices = [(ele.id, ele.name) for ele in project.tasklists] # Check if current user, task list and task is in the project if current_user.is_in_project( project_id ) and tasklist.project_id == project_id and task.tasklist_id == tasklist_id: if form.validate_on_submit(): new_tasklist = TaskList.query.filter_by( id=form.tasklists.data).first_or_404() # Check if new task list is in the project if new_tasklist.project_id != project_id: flash("You cannot move the task to this task list.") return redirect( url_for('main.edit_task', project_id=project_id, tasklist_id=tasklist_id, task_id=task_id)) else: task.name = form.name.data task.description = form.description.data task.is_complete = form.is_complete.data task.tasklist_id = new_tasklist.id db.session.commit() flash("Task - \"{}\" changed successfully!".format(task.name)) return redirect(url_for('main.project', project_id=project_id)) else: form.name.data = task.name form.description.data = task.description form.is_complete.data = task.is_complete return render_template('main/edit_task.html', form=form, project_id=project_id, tasklist_id=tasklist_id, task_id=task_id, project_name=project.name, tasklist_name=tasklist.name, task=task) else: flash("You cannot edit tasks for this project.") return redirect(url_for('main.index'))
def edit_project(project_id): form = NewComponentForm() project = Project.query.filter_by(id=project_id).first_or_404() if current_user.is_in_project(project_id): if form.validate_on_submit(): project.name = form.name.data project.description = form.description.data db.session.commit() flash("Project - \"{}\" changed successfully!".format( project.name)) return redirect(url_for('main.project', project_id=project.id)) else: form.name.data = project.name form.description.data = project.description return render_template('main/edit_project.html', form=form, project_name=project.name, project_id=project_id, project=project) else: flash("You cannot edit this project.") return redirect(url_for('main.index'))