Class: TasksController
Instance Method Summary
collapse
current
Methods included from PathHelper
#finance_group_transactions_path
Instance Method Details
#accept ⇒ Object
assign current_user to the task and set the assignment to “accepted” if there is already an assignment, only accepted will be set to true
79
80
81
82
83
84
85
86
87
|
# File 'app/controllers/tasks_controller.rb', line 79
def accept
task = Task.find(params[:id])
if ass = task.is_assigned?(current_user)
ass.update_attribute(:accepted, true)
else
task.assignments.create(user: current_user, accepted: true)
end
redirect_to user_tasks_path, notice: I18n.t('tasks.accept.notice')
end
|
#archive ⇒ Object
Shows all tasks, which are already done
101
102
103
|
# File 'app/controllers/tasks_controller.rb', line 101
def archive
@tasks = Task.done.page(params[:page]).per(@per_page).order('tasks.updated_on DESC').includes(assignments: :user)
end
|
#create ⇒ Object
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'app/controllers/tasks_controller.rb', line 28
def create
@task = Task.new(current_user_id: current_user.id)
@task.created_by = current_user
@task.attributes = (task_params)
@task.periodic_task_group = PeriodicTaskGroup.new if params[:periodic]
if @task.save
@task.periodic_task_group.create_tasks_for_upfront_days if params[:periodic]
redirect_to tasks_url, notice: I18n.t('tasks.create.notice')
else
render template: 'tasks/new'
end
end
|
#destroy ⇒ Object
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# File 'app/controllers/tasks_controller.rb', line 62
def destroy
task = Task.find(params[:id])
user_ids = task.user_ids
if params[:periodic]
task.periodic_task_group.exclude_tasks_before(task)
task.periodic_task_group.destroy
else
task.destroy
end
task.update_ordergroup_stats(user_ids)
redirect_to tasks_url, notice: I18n.t('tasks.destroy.notice')
end
|
#edit ⇒ Object
22
23
24
25
26
|
# File 'app/controllers/tasks_controller.rb', line 22
def edit
@task = Task.find(params[:id])
@periodic = !!params[:periodic]
@task.current_user_id = current_user.id
end
|
#index ⇒ Object
auto_complete_for :user, :nick
4
5
6
7
|
# File 'app/controllers/tasks_controller.rb', line 4
def index
@non_group_tasks = Task.non_group.order('due_date', 'name').includes(assignments: :user)
@groups = Workgroup.order(:name).includes(open_tasks: { assignments: :user })
end
|
#new ⇒ Object
18
19
20
|
# File 'app/controllers/tasks_controller.rb', line 18
def new
@task = Task.new(current_user_id: current_user.id)
end
|
#reject ⇒ Object
deletes assignment between current_user and given taskcurrent_user_id: current_user.id
90
91
92
93
|
# File 'app/controllers/tasks_controller.rb', line 90
def reject
Task.find(params[:id]).users.delete(current_user)
redirect_to action: 'index'
end
|
#set_done ⇒ Object
95
96
97
98
|
# File 'app/controllers/tasks_controller.rb', line 95
def set_done
Task.find(params[:id]).update_attribute :done, true
redirect_to tasks_url, notice: I18n.t('tasks.set_done.notice')
end
|
#show ⇒ Object
14
15
16
|
# File 'app/controllers/tasks_controller.rb', line 14
def show
@task = Task.find(params[:id])
end
|
#update ⇒ Object
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'app/controllers/tasks_controller.rb', line 41
def update
@task = Task.find(params[:id])
task_group = @task.periodic_task_group
was_periodic = @task.periodic?
prev_due_date = @task.due_date
@task.current_user_id = current_user.id
@task.attributes = (task_params)
if @task.errors.empty? && @task.save
task_group.update_tasks_including(@task, prev_due_date) if params[:periodic]
flash[:notice] = I18n.t('tasks.update.notice')
flash[:notice] = I18n.t('tasks.update.notice_converted') if was_periodic && !@task.periodic?
if @task.workgroup
redirect_to workgroup_tasks_url(workgroup_id: @task.workgroup_id)
else
redirect_to tasks_url
end
else
render template: 'tasks/edit'
end
end
|
#workgroup ⇒ Object
shows workgroup (normal group) to edit weekly_tasks_template
106
107
108
109
110
111
|
# File 'app/controllers/tasks_controller.rb', line 106
def workgroup
@group = Group.find(params[:workgroup_id])
return unless @group.is_a? Ordergroup
redirect_to tasks_url, alert: I18n.t('tasks.error_not_found')
end
|