Skip to content

Commit 9207653

Browse files
anna-devKagemaru
authored andcommitted
Add oe to member absences form (64537)
1 parent efe4d2a commit 9207653

File tree

9 files changed

+35
-17
lines changed

9 files changed

+35
-17
lines changed

app/controllers/evaluator_controller.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class EvaluatorController < ApplicationController
1313

1414
before_action :set_period
1515

16-
helper_method :search_conditions, :evaluation_type
16+
helper_method :worktime_search_conditions, :evaluation_type
1717

1818
def index
1919
overview
@@ -111,7 +111,7 @@ def set_default_evaluation
111111
params[:evaluation] = 'usersubworkitems'
112112
Evaluations::EmployeeSubWorkItemsEval.new(params[:category_id], @user.id)
113113
when 'userabsences' then Evaluations::EmployeeAbsencesEval.new(
114-
@user.id, **search_conditions
114+
@user.id, **worktime_search_conditions
115115
)
116116
when 'subworkitems' then Evaluations::SubWorkItemsEval.new(params[:category_id])
117117
when 'workitememployees' then Evaluations::WorkItemEmployeesEval.new(params[:category_id])
@@ -140,9 +140,9 @@ def set_management_evaluation
140140
params[:category_id], Regexp.last_match[1]
141141
)
142142
when 'departmentorders' then Evaluations::DepartmentOrdersEval.new(params[:category_id])
143-
when 'absences' then Evaluations::AbsencesEval.new(**search_conditions)
143+
when 'absences' then Evaluations::AbsencesEval.new(params[:department_id], **worktime_search_conditions)
144144
when 'employeeabsences' then Evaluations::EmployeeAbsencesEval.new(
145-
params[:category_id], **search_conditions
145+
params[:category_id], **worktime_search_conditions
146146
)
147147
end
148148
end
@@ -224,7 +224,7 @@ def init_periods
224224
end
225225
end
226226

227-
def search_conditions
227+
def worktime_search_conditions
228228
return {} if params[:absence_id].blank?
229229

230230
{ absence_id: params[:absence_id] }

app/domain/evaluations/absences_eval.rb

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,19 @@ class AbsencesEval < Evaluations::Evaluation
1414
self.detail_columns = detail_columns.reject { |i| i == :billable }
1515
self.detail_labels = detail_labels.merge(account: 'Absenz')
1616

17-
def initialize(**search_conditions)
18-
super(Employee, **search_conditions)
17+
attr_reader :department_id
18+
19+
def initialize(department_id = nil, **worktime_search_conditions)
20+
super(Employee, **worktime_search_conditions)
21+
@department_id = department_id
1922
end
2023

2124
def divisions(period = nil)
22-
Employee.employed_ones(period || Period.current_year)
25+
scope = Employee.employed_ones(period || Period.current_year)
26+
27+
return scope if department_id.blank?
28+
29+
scope.where(department_id:)
2330
end
2431

2532
def employee_id

app/domain/evaluations/employee_absences_eval.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ class EmployeeAbsencesEval < Evaluations::Evaluation
1515
self.detail_columns = detail_columns.reject { |i| i == :billable }
1616
self.detail_labels = detail_labels.merge(account: 'Absenz')
1717

18-
def initialize(employee_id, **search_conditions)
19-
super(Employee.find(employee_id), **search_conditions)
18+
def initialize(employee_id, **worktime_search_conditions)
19+
super(Employee.find(employee_id), **worktime_search_conditions)
2020
end
2121

2222
def for?(user)

app/domain/evaluations/evaluation.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ class Evaluation
6161

6262
attr_reader :category, # category
6363
:division, # selected division for detail Evaluations, nil otherwise
64-
:search_conditions
64+
:worktime_search_conditions
6565

6666
############### Time Evaluation Functions ###############
6767

@@ -111,7 +111,7 @@ def times(period)
111111
def worktime_query(receiver, period = nil, division = nil)
112112
query = receiver.worktimes.where(type: worktime_type).in_period(period)
113113
query = query.where("? = #{category_ref}", category_id) if division && category_ref
114-
query = query.where(search_conditions) if search_conditions.present?
114+
query = query.where(worktime_search_conditions) if worktime_search_conditions.present?
115115
query
116116
end
117117

@@ -234,9 +234,9 @@ def account_id
234234
private
235235

236236
# Initializes a new Evaluation with the given category.
237-
def initialize(category, **search_conditions)
237+
def initialize(category, **worktime_search_conditions)
238238
@category = category
239-
@search_conditions = search_conditions
239+
@worktime_search_conditions = worktime_search_conditions
240240
end
241241

242242
def query_time_sums(query, group_by_column = nil)

app/views/evaluator/_division.html.haml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
%td
1010
- if sub = evaluation.sub_evaluation
1111
= link_to(division.label_verbose,
12-
{ action: 'overview', evaluation: sub, category_id: division.id, **search_conditions },
12+
{ action: 'overview', evaluation: sub, category_id: division.id, **worktime_search_conditions },
1313
title: division.tooltip)
1414
- else
1515
= content_tag :span, division.label_verbose, title: division.tooltip

app/views/evaluator/_employee_absences.html.haml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
%section.employee-absences
88
%h4 Absenzen
99

10-
- evaluation = Evaluations::EmployeeAbsencesEval.new(params[:category_id] || @user.id, **search_conditions)
10+
- evaluation = Evaluations::EmployeeAbsencesEval.new(params[:category_id] || @user.id, **worktime_search_conditions)
1111
= render('category',
1212
evaluation: evaluation,
1313
times: @periods.collect { |p| evaluation.sum_times_grouped(p) },

app/views/evaluator/_evallink.html.haml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@
1010
action: 'overview',
1111
evaluation: evallink[0],
1212
category_id: evallink[1],
13-
**search_conditions
13+
**worktime_search_conditions

app/views/evaluator/overview.html.haml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
= hidden_field_tag :page, 1
1616
= hidden_field_tag :category_id, params[:category_id]
1717
= direct_filter_select(:absence_id, 'Absenztyp', Absence.all)
18+
%br
19+
= direct_filter_select(:department_id, 'Organisationseinheit', Department.list)
1820

1921
= render 'period_link'
2022

test/controllers/evaluator_controller_test.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,15 @@ class EvaluatorControllerTest < ActionController::TestCase
2626
end
2727
end
2828

29+
test 'GET index absences filtered by department' do
30+
employees(:various_pedro).update(department: departments(:devone))
31+
get :index, params: { evaluation: 'absences', department_id: departments(:devone).id }
32+
33+
assert_template 'overview'
34+
35+
assert_equal assigns(:evaluation).divisions.map(&:department_id).uniq, [departments(:devone).id]
36+
end
37+
2938
test 'GET export_csv userworkitems csv format' do
3039
get :export_csv, params: { evaluation: 'userworkitems' }
3140

0 commit comments

Comments
 (0)