Class: Decidim::TimeTracker::Admin::AssignationsController

Inherits:
ApplicationController
  • Object
show all
Defined in:
app/controllers/decidim/time_tracker/admin/assignations_controller.rb

Instance Method Summary collapse

Instance Method Details

#assignationsObject

obtaining the users separately to have them ordered in a nice way



66
67
68
# File 'app/controllers/decidim/time_tracker/admin/assignations_controller.rb', line 66

def assignations
  @assignations = Assignation.where(activity: current_activity.id).sorted_by_status(:pending, :accepted, :rejected)
end

#createObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'app/controllers/decidim/time_tracker/admin/assignations_controller.rb', line 21

def create
  enforce_permission_to :create, :assignations

  @form = form(AssignationForm).from_params(params)

  CreateAssignation.call(@form, current_activity) do
    on(:ok) do
      flash[:notice] = I18n.t("assignations.create.success", scope: "decidim.time_tracker.admin")
      redirect_to EngineRouter.admin_proxy(current_component).task_activity_assignations_path(current_task, current_activity)
    end

    on(:invalid) do
      flash.now[:alert] = I18n.t("assignations.create.error", scope: "decidim.time_tracker.admin")
      render :new
    end
  end
end

#current_activityObject



74
75
76
# File 'app/controllers/decidim/time_tracker/admin/assignations_controller.rb', line 74

def current_activity
  @current_activity ||= Activity.find(params[:activity_id])
end

#current_assignationObject



78
79
80
# File 'app/controllers/decidim/time_tracker/admin/assignations_controller.rb', line 78

def current_assignation
  @current_assignation ||= Assignation.find(params[:id])
end

#current_taskObject



70
71
72
# File 'app/controllers/decidim/time_tracker/admin/assignations_controller.rb', line 70

def current_task
  @current_task ||= Task.find(params[:task_id])
end

#destroyObject



39
40
41
42
43
44
45
46
47
48
# File 'app/controllers/decidim/time_tracker/admin/assignations_controller.rb', line 39

def destroy
  enforce_permission_to :destroy, :assignation, assignation: current_assignation

  DestroyAssignation.call(current_assignation, current_user) do
    on(:ok) do
      flash[:notice] = I18n.t("assignations.destroy.success", scope: "decidim.time_tracker.admin")
      redirect_to EngineRouter.admin_proxy(current_component).task_activity_assignations_path(current_task, current_activity)
    end
  end
end

#indexObject



11
12
13
# File 'app/controllers/decidim/time_tracker/admin/assignations_controller.rb', line 11

def index
  @assignations = assignations
end

#newObject



15
16
17
18
19
# File 'app/controllers/decidim/time_tracker/admin/assignations_controller.rb', line 15

def new
  enforce_permission_to :create, :assignations

  @form = form(AssignationForm).instance
end

#updateObject



50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'app/controllers/decidim/time_tracker/admin/assignations_controller.rb', line 50

def update
  enforce_permission_to :update, :assignation, assignation: current_assignation

  UpdateAssignation.call(current_assignation, current_user, params[:assignation_status].to_sym) do
    on(:ok) do
      flash[:notice] = I18n.t("assignations.update.success", scope: "decidim.time_tracker.admin")
      if params[:success_path].present?
        redirect_to params[:success_path]
      else
        redirect_to EngineRouter.admin_proxy(current_component).task_activity_assignations_path(current_task, current_activity)
      end
    end
  end
end