mirror of
https://github.com/TracksApp/tracks.git
synced 2026-01-01 23:08:49 +01:00
Push conversion of a todo to a project down.
Refactor the conversion of a todo to a project and move it from the TodosController to the Project model.
This commit is contained in:
parent
2911036ff7
commit
b01c7878d1
3 changed files with 27 additions and 7 deletions
|
|
@ -900,13 +900,10 @@ class TodosController < ApplicationController
|
|||
end
|
||||
|
||||
def convert_to_project
|
||||
@todo = current_user.todos.find_by_id(params[:id])
|
||||
@project = current_user.projects.new(:name => @todo.description, :description => @todo.notes,
|
||||
:default_context => @todo.context)
|
||||
|
||||
unless @project.invalid?
|
||||
@todo.destroy
|
||||
@project.save!
|
||||
todo = current_user.todos.find_by_id(params[:id])
|
||||
@project = Project.create_from_todo(todo)
|
||||
|
||||
if @project.valid?
|
||||
redirect_to project_url(@project)
|
||||
else
|
||||
flash[:error] = "Could not create project from todo: #{@project.errors.full_messages[0]}"
|
||||
|
|
|
|||
|
|
@ -47,6 +47,21 @@ class Project < ActiveRecord::Base
|
|||
NullProject.new
|
||||
end
|
||||
|
||||
def self.create_from_todo(todo)
|
||||
project = Project.new(:name => todo.description,
|
||||
:description => todo.notes,
|
||||
:default_context => todo.context)
|
||||
|
||||
project.user = todo.user
|
||||
|
||||
if project.valid?
|
||||
todo.destroy
|
||||
project.save!
|
||||
end
|
||||
|
||||
project
|
||||
end
|
||||
|
||||
def hide_todos
|
||||
todos.each do |t|
|
||||
unless t.completed? || t.deferred?
|
||||
|
|
|
|||
|
|
@ -166,5 +166,13 @@ class ProjectTest < ActiveSupport::TestCase
|
|||
@moremoney.todos[0].complete!
|
||||
assert_equal 3, @moremoney.todos.not_completed.count
|
||||
end
|
||||
|
||||
def test_convert_from_todo
|
||||
todo = todos(:upgrade_rails)
|
||||
project = Project.create_from_todo(todo)
|
||||
assert_equal project.name, todo.description
|
||||
assert_equal project.description, todo.notes
|
||||
assert_equal project.default_context, todo.context
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue