next_sgad 0.3.7 → 0.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/next_sgad/employee_goal_activities.js +2 -0
- data/app/assets/javascripts/next_sgad/goal_units.js +2 -0
- data/app/assets/stylesheets/next_sgad/employee_goal_activities.css +4 -0
- data/app/assets/stylesheets/next_sgad/goal_units.css +4 -0
- data/app/assets/stylesheets/scaffold.css +80 -0
- data/app/controllers/next_sgad/employee_goal_activities_controller.rb +62 -0
- data/app/controllers/next_sgad/goal_units_controller.rb +62 -0
- data/app/helpers/next_sgad/employee_goal_activities_helper.rb +4 -0
- data/app/helpers/next_sgad/goal_units_helper.rb +4 -0
- data/app/models/next_sgad/employee.rb +23 -1
- data/app/models/next_sgad/employee_goal.rb +11 -6
- data/app/models/next_sgad/employee_goal_activity.rb +8 -0
- data/app/models/next_sgad/goal.rb +10 -4
- data/app/models/next_sgad/goal_unit.rb +7 -0
- data/app/models/next_sgad/result.rb +17 -5
- data/app/views/next_sgad/employee_goal_activities/_form.html.erb +37 -0
- data/app/views/next_sgad/employee_goal_activities/edit.html.erb +6 -0
- data/app/views/next_sgad/employee_goal_activities/index.html.erb +33 -0
- data/app/views/next_sgad/employee_goal_activities/new.html.erb +5 -0
- data/app/views/next_sgad/employee_goal_activities/show.html.erb +24 -0
- data/app/views/next_sgad/goal_units/_form.html.erb +32 -0
- data/app/views/next_sgad/goal_units/edit.html.erb +6 -0
- data/app/views/next_sgad/goal_units/index.html.erb +31 -0
- data/app/views/next_sgad/goal_units/new.html.erb +5 -0
- data/app/views/next_sgad/goal_units/show.html.erb +19 -0
- data/config/routes.rb +2 -0
- data/db/migrate/20180208110338_add_period_to_goals.rb +5 -0
- data/db/migrate/20180211132528_create_next_sgad_goal_units.rb +12 -0
- data/db/migrate/20180211181108_change_results_columns.rb +12 -0
- data/db/migrate/20180211181949_change_note_from_results.rb +5 -0
- data/db/migrate/20180211221158_create_next_sgad_employee_goal_activities.rb +12 -0
- data/lib/next_sgad/version.rb +1 -1
- metadata +29 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bcc017b41396ade968b0033b40a32d39504336fc
|
|
4
|
+
data.tar.gz: df4336c878c3b0081295dd35fa1a791ffad23ed4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ff1e60e520dad02cc784aa1a1d9b77d743afc285f6003f124930aafccb46d095212d1e944b2ec5750c9351daa353769be4d527f527474365e4f2879de0ecbd2c
|
|
7
|
+
data.tar.gz: 30739b2b0a6377c26d992a081fe1215488a6342221a54aefd56d50c0521c46e802da4aaf266f6173e8cca215bef92c46488241d15166edf865cc48a10b27eebf
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
body {
|
|
2
|
+
background-color: #fff;
|
|
3
|
+
color: #333;
|
|
4
|
+
margin: 33px;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
body, p, ol, ul, td {
|
|
8
|
+
font-family: verdana, arial, helvetica, sans-serif;
|
|
9
|
+
font-size: 13px;
|
|
10
|
+
line-height: 18px;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
pre {
|
|
14
|
+
background-color: #eee;
|
|
15
|
+
padding: 10px;
|
|
16
|
+
font-size: 11px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
a {
|
|
20
|
+
color: #000;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
a:visited {
|
|
24
|
+
color: #666;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
a:hover {
|
|
28
|
+
color: #fff;
|
|
29
|
+
background-color: #000;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
th {
|
|
33
|
+
padding-bottom: 5px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
td {
|
|
37
|
+
padding: 0 5px 7px;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
div.field,
|
|
41
|
+
div.actions {
|
|
42
|
+
margin-bottom: 10px;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
#notice {
|
|
46
|
+
color: green;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.field_with_errors {
|
|
50
|
+
padding: 2px;
|
|
51
|
+
background-color: red;
|
|
52
|
+
display: table;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
#error_explanation {
|
|
56
|
+
width: 450px;
|
|
57
|
+
border: 2px solid red;
|
|
58
|
+
padding: 7px 7px 0;
|
|
59
|
+
margin-bottom: 20px;
|
|
60
|
+
background-color: #f0f0f0;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
#error_explanation h2 {
|
|
64
|
+
text-align: left;
|
|
65
|
+
font-weight: bold;
|
|
66
|
+
padding: 5px 5px 5px 15px;
|
|
67
|
+
font-size: 12px;
|
|
68
|
+
margin: -7px -7px 0;
|
|
69
|
+
background-color: #c00;
|
|
70
|
+
color: #fff;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
#error_explanation ul li {
|
|
74
|
+
font-size: 12px;
|
|
75
|
+
list-style: square;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
label {
|
|
79
|
+
display: block;
|
|
80
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
require_dependency "next_sgad/application_controller"
|
|
2
|
+
|
|
3
|
+
module NextSgad
|
|
4
|
+
class EmployeeGoalActivitiesController < ::ApplicationController
|
|
5
|
+
before_action :set_employee_goal_activity, only: [:show, :edit, :update, :destroy]
|
|
6
|
+
|
|
7
|
+
# GET /employee_goal_activities
|
|
8
|
+
def index
|
|
9
|
+
@employee_goal_activities = EmployeeGoalActivity.all
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# GET /employee_goal_activities/1
|
|
13
|
+
def show
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# GET /employee_goal_activities/new
|
|
17
|
+
def new
|
|
18
|
+
@employee_goal_activity = EmployeeGoalActivity.new
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# GET /employee_goal_activities/1/edit
|
|
22
|
+
def edit
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# POST /employee_goal_activities
|
|
26
|
+
def create
|
|
27
|
+
@employee_goal_activity = EmployeeGoalActivity.new(employee_goal_activity_params)
|
|
28
|
+
|
|
29
|
+
if @employee_goal_activity.save
|
|
30
|
+
redirect_to @employee_goal_activity, notice: 'Employee goal activity was successfully created.'
|
|
31
|
+
else
|
|
32
|
+
render :new
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# PATCH/PUT /employee_goal_activities/1
|
|
37
|
+
def update
|
|
38
|
+
if @employee_goal_activity.update(employee_goal_activity_params)
|
|
39
|
+
redirect_to @employee_goal_activity, notice: 'Employee goal activity was successfully updated.'
|
|
40
|
+
else
|
|
41
|
+
render :edit
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# DELETE /employee_goal_activities/1
|
|
46
|
+
def destroy
|
|
47
|
+
@employee_goal_activity.destroy
|
|
48
|
+
redirect_to employee_goal_activities_url, notice: 'Employee goal activity was successfully destroyed.'
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
private
|
|
52
|
+
# Use callbacks to share common setup or constraints between actions.
|
|
53
|
+
def set_employee_goal_activity
|
|
54
|
+
@employee_goal_activity = EmployeeGoalActivity.find(params[:id])
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Only allow a trusted parameter "white list" through.
|
|
58
|
+
def employee_goal_activity_params
|
|
59
|
+
params.require(:employee_goal_activity).permit(:description, :employee_goal_id, :creator_id, :creator_type, :attachment)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
require_dependency "next_sgad/application_controller"
|
|
2
|
+
|
|
3
|
+
module NextSgad
|
|
4
|
+
class GoalUnitsController < ::ApplicationController
|
|
5
|
+
before_action :set_goal_unit, only: [:show, :edit, :update, :destroy]
|
|
6
|
+
|
|
7
|
+
# GET /goal_units
|
|
8
|
+
def index
|
|
9
|
+
@goal_units = GoalUnit.all
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# GET /goal_units/1
|
|
13
|
+
def show
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# GET /goal_units/new
|
|
17
|
+
def new
|
|
18
|
+
@goal_unit = GoalUnit.new
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# GET /goal_units/1/edit
|
|
22
|
+
def edit
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# POST /goal_units
|
|
26
|
+
def create
|
|
27
|
+
@goal_unit = GoalUnit.new(goal_unit_params)
|
|
28
|
+
|
|
29
|
+
if @goal_unit.save
|
|
30
|
+
redirect_to @goal_unit, notice: 'Goal unit was successfully created.'
|
|
31
|
+
else
|
|
32
|
+
render :new
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# PATCH/PUT /goal_units/1
|
|
37
|
+
def update
|
|
38
|
+
if @goal_unit.update(goal_unit_params)
|
|
39
|
+
redirect_to @goal_unit, notice: 'Goal unit was successfully updated.'
|
|
40
|
+
else
|
|
41
|
+
render :edit
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# DELETE /goal_units/1
|
|
46
|
+
def destroy
|
|
47
|
+
@goal_unit.destroy
|
|
48
|
+
redirect_to goal_units_url, notice: 'Goal unit was successfully destroyed.'
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
private
|
|
52
|
+
# Use callbacks to share common setup or constraints between actions.
|
|
53
|
+
def set_goal_unit
|
|
54
|
+
@goal_unit = GoalUnit.find(params[:id])
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Only allow a trusted parameter "white list" through.
|
|
58
|
+
def goal_unit_params
|
|
59
|
+
params.require(:goal_unit).permit(:singular_name, :plural_name, :status)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -6,7 +6,7 @@ module NextSgad
|
|
|
6
6
|
has_many :attendances, dependent: :destroy
|
|
7
7
|
has_and_belongs_to_many :positions, association_foreign_key: :next_sgad_position_id, foreign_key: :next_sgad_employee_id
|
|
8
8
|
has_one :efective_position, class_name: NextSgad::Position.name, foreign_key: :efective_id
|
|
9
|
-
has_many :
|
|
9
|
+
has_many :employee_assessments, dependent: :destroy
|
|
10
10
|
has_many :employee_paygrades
|
|
11
11
|
has_many :employee_work_periods
|
|
12
12
|
has_many :salaries, through: :employee_paygrades
|
|
@@ -70,6 +70,28 @@ module NextSgad
|
|
|
70
70
|
!is_assessed?
|
|
71
71
|
end
|
|
72
72
|
|
|
73
|
+
# creates a new employee_paygrade
|
|
74
|
+
def new_paygrade(options = {})
|
|
75
|
+
options.merge!({employee_id: id})
|
|
76
|
+
EmployeePaygrade.new(options)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# creates a new employee_work_period
|
|
80
|
+
def new_work_period(options = {})
|
|
81
|
+
options.merge!({employee_id: id})
|
|
82
|
+
EmployeeWorkPeriod.new(options)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# Creates a new goal just for this employee
|
|
86
|
+
def new_goal(options = {})
|
|
87
|
+
NextSgad::Goal.new(options)
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def has_this_assessment?(assessment_ids)
|
|
91
|
+
employee_assessments.select{|e| [assessment_ids].flatten.uniq.compact.include?(e.assessment_id)}.present?
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
|
|
73
95
|
INITIAL_LETTER = "E"
|
|
74
96
|
before_save :create_number, on: :create
|
|
75
97
|
after_save :remove_assessment_data_if_employee_not_assessed
|
|
@@ -4,7 +4,8 @@ module NextSgad
|
|
|
4
4
|
belongs_to :employee
|
|
5
5
|
belongs_to :assessment
|
|
6
6
|
belongs_to :position
|
|
7
|
-
has_many :results
|
|
7
|
+
has_many :results, dependent: :destroy
|
|
8
|
+
has_many :employee_goal_activities, dependent: :destroy
|
|
8
9
|
|
|
9
10
|
enum status: NextSgad::Assessment.statuses
|
|
10
11
|
enum goal_type: NextSgad::Goal.goal_types
|
|
@@ -19,18 +20,18 @@ module NextSgad
|
|
|
19
20
|
|
|
20
21
|
before_save :calcular_self_assessment
|
|
21
22
|
|
|
23
|
+
|
|
22
24
|
def calcular_self_assessment
|
|
23
25
|
return unless self.numeric?
|
|
24
|
-
|
|
26
|
+
return if self.new_record?
|
|
27
|
+
am = results.result_valid.sum(&:result_value)
|
|
28
|
+
v = ((am.to_f/target.to_f)*5).round(2)
|
|
25
29
|
value_amount = v >= 5 ? 5 : v
|
|
26
|
-
|
|
27
|
-
self.supervisor_assessment = value_amount
|
|
28
|
-
self.final_assessment = value_amount
|
|
30
|
+
update_columns(amount: am, self_assessment: value_amount, supervisor_assessment: value_amount, final_assessment: value_amount)
|
|
29
31
|
end
|
|
30
32
|
|
|
31
33
|
def update_amount
|
|
32
34
|
return unless self.numeric?
|
|
33
|
-
update_columns(amount: results.where(state: 0).sum(&:result_value))
|
|
34
35
|
calcular_self_assessment
|
|
35
36
|
save
|
|
36
37
|
end
|
|
@@ -79,5 +80,9 @@ module NextSgad
|
|
|
79
80
|
NextSgad::EmployeeAssessment.create(employee_id: employee_id, assessment_id: assessment_id)
|
|
80
81
|
end
|
|
81
82
|
end
|
|
83
|
+
|
|
84
|
+
def self.select_where_assessment_id(assessment_ids)
|
|
85
|
+
select{|e| [assessment_ids].flatten.uniq.compact.includes?(e.assessment_id) }
|
|
86
|
+
end
|
|
82
87
|
end
|
|
83
88
|
end
|
|
@@ -1,26 +1,32 @@
|
|
|
1
1
|
module NextSgad
|
|
2
2
|
class Goal < NextSgad::ApplicationRecord
|
|
3
3
|
belongs_to :assessment
|
|
4
|
+
#belongs_to :goal_unit, optional: true
|
|
4
5
|
has_many :employee_goals, dependent: :destroy
|
|
5
6
|
has_and_belongs_to_many :positions, association_foreign_key: :next_sgad_position_id, foreign_key: :next_sgad_goal_id
|
|
6
7
|
has_and_belongs_to_many :functions, association_foreign_key: :next_sgad_function_id, foreign_key: :next_sgad_goal_id
|
|
7
8
|
|
|
9
|
+
attribute :for_a_single_employee, :boolean, default: false
|
|
10
|
+
|
|
8
11
|
enum goal_type: {skill: 0, objective: 1}
|
|
9
12
|
enum status: NextSgad::Assessment.statuses
|
|
10
|
-
enum unit: {contracts: 0, currency: 1, clients: 2}
|
|
11
|
-
enum nature: {numeric: 0, objective_base: 1}
|
|
13
|
+
enum unit: {contracts: 0, currency: 1, clients: 2 }
|
|
14
|
+
enum nature: {numeric: 0, objective_base: 1 }
|
|
15
|
+
enum period: {all_year: 0,
|
|
16
|
+
first_quarter: 31, second_quarter: 32, third_quarter: 33, fourth_quarter: 34,
|
|
17
|
+
first_semester: 61, second_semester: 62 }
|
|
12
18
|
|
|
13
19
|
scope :goal_type, -> (data) {data = [data].flatten.compact.uniq; data.blank? || data.include?('all') ? all : where(goal_type: data)}
|
|
14
20
|
scope :assessment_id, -> (data) {data = [data].flatten.compact.uniq; data.blank? || data.include?('all') ? all : where(assessment_id: data)}
|
|
15
21
|
|
|
16
22
|
validates_presence_of :name, :assessment_id, :status, :nature, :goal_type
|
|
23
|
+
#validates_presence_of :goal_unit_id, if: :numeric?
|
|
17
24
|
validates :target, numericality: {greater_than: 0, message: 'Deve ser Maior do que 0'}, if:->(goal){goal.numeric?}
|
|
18
25
|
#validates :name, uniqueness: {scope: [:assessment_id]}
|
|
19
26
|
after_save :create_employee_goals
|
|
20
27
|
|
|
21
28
|
|
|
22
29
|
def create_employee_goals
|
|
23
|
-
|
|
24
30
|
# checks the positions who should have this Goal
|
|
25
31
|
# if the employee goal is for everyone
|
|
26
32
|
positions_to = if for_everyone
|
|
@@ -34,7 +40,7 @@ module NextSgad
|
|
|
34
40
|
end
|
|
35
41
|
|
|
36
42
|
positions_ids = positions_to.map(&:id)
|
|
37
|
-
# Update existing employee goals
|
|
43
|
+
# # Update existing employee goals
|
|
38
44
|
employee_goals_to_update = employee_goals.where(position_id: positions_ids).to_a
|
|
39
45
|
employee_goals_to_update.each do |employee_goal|
|
|
40
46
|
employee_goal.update(status: status, goal_type: goal_type, name: name, unit: unit, nature: nature, target: target, assessment_id: assessment_id, goal_id: id)
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
module NextSgad
|
|
2
2
|
class Result < NextSgad::ApplicationRecord
|
|
3
3
|
belongs_to :employee_goal
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
has_one :employee, through: :employee_goal
|
|
5
|
+
has_one :assessment, through: :employee_goal
|
|
6
|
+
has_one :goal, through: :employee_goal
|
|
7
7
|
|
|
8
|
-
enum
|
|
9
|
-
|
|
8
|
+
enum status: {result_valid: 0, result_invalid: 1}
|
|
9
|
+
|
|
10
|
+
validates_presence_of :status, :result_value, :employee_goal_id
|
|
11
|
+
validates_numericality_of :result_value, greater_than: 0
|
|
12
|
+
after_create :update_employee_goal
|
|
13
|
+
after_destroy :update_employee_goal
|
|
10
14
|
|
|
11
15
|
|
|
12
16
|
# enum result_type: NextSgad::Goal.goal_types
|
|
@@ -22,6 +26,14 @@ module NextSgad
|
|
|
22
26
|
self.save
|
|
23
27
|
end
|
|
24
28
|
|
|
29
|
+
def write_value
|
|
30
|
+
result_value == result_value.to_i ? result_value.to_i : result_value
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def update_employee_goal
|
|
34
|
+
employee_goal.save
|
|
35
|
+
end
|
|
36
|
+
|
|
25
37
|
|
|
26
38
|
end
|
|
27
39
|
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<%= form_with(model: employee_goal_activity, local: true) do |form| %>
|
|
2
|
+
<% if employee_goal_activity.errors.any? %>
|
|
3
|
+
<div id="error_explanation">
|
|
4
|
+
<h2><%= pluralize(employee_goal_activity.errors.count, "error") %> prohibited this employee_goal_activity from being saved:</h2>
|
|
5
|
+
|
|
6
|
+
<ul>
|
|
7
|
+
<% employee_goal_activity.errors.full_messages.each do |message| %>
|
|
8
|
+
<li><%= message %></li>
|
|
9
|
+
<% end %>
|
|
10
|
+
</ul>
|
|
11
|
+
</div>
|
|
12
|
+
<% end %>
|
|
13
|
+
|
|
14
|
+
<div class="field">
|
|
15
|
+
<%= form.label :description %>
|
|
16
|
+
<%= form.text_area :description, id: :employee_goal_activity_description %>
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
<div class="field">
|
|
20
|
+
<%= form.label :employee_goal_id %>
|
|
21
|
+
<%= form.text_field :employee_goal_id, id: :employee_goal_activity_employee_goal_id %>
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
<div class="field">
|
|
25
|
+
<%= form.label :creator_id %>
|
|
26
|
+
<%= form.text_field :creator_id, id: :employee_goal_activity_creator_id %>
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<div class="field">
|
|
30
|
+
<%= form.label :attachment %>
|
|
31
|
+
<%= form.text_field :attachment, id: :employee_goal_activity_attachment %>
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
<div class="actions">
|
|
35
|
+
<%= form.submit %>
|
|
36
|
+
</div>
|
|
37
|
+
<% end %>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<p id="notice"><%= notice %></p>
|
|
2
|
+
|
|
3
|
+
<h1>Employee Goal Activities</h1>
|
|
4
|
+
|
|
5
|
+
<table>
|
|
6
|
+
<thead>
|
|
7
|
+
<tr>
|
|
8
|
+
<th>Description</th>
|
|
9
|
+
<th>Employee goal</th>
|
|
10
|
+
<th>Creator</th>
|
|
11
|
+
<th>Attachment</th>
|
|
12
|
+
<th colspan="3"></th>
|
|
13
|
+
</tr>
|
|
14
|
+
</thead>
|
|
15
|
+
|
|
16
|
+
<tbody>
|
|
17
|
+
<% @employee_goal_activities.each do |employee_goal_activity| %>
|
|
18
|
+
<tr>
|
|
19
|
+
<td><%= employee_goal_activity.description %></td>
|
|
20
|
+
<td><%= employee_goal_activity.employee_goal %></td>
|
|
21
|
+
<td><%= employee_goal_activity.creator %></td>
|
|
22
|
+
<td><%= employee_goal_activity.attachment %></td>
|
|
23
|
+
<td><%= link_to 'Show', employee_goal_activity %></td>
|
|
24
|
+
<td><%= link_to 'Edit', edit_employee_goal_activity_path(employee_goal_activity) %></td>
|
|
25
|
+
<td><%= link_to 'Destroy', employee_goal_activity, method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
|
26
|
+
</tr>
|
|
27
|
+
<% end %>
|
|
28
|
+
</tbody>
|
|
29
|
+
</table>
|
|
30
|
+
|
|
31
|
+
<br>
|
|
32
|
+
|
|
33
|
+
<%= link_to 'New Employee Goal Activity', new_employee_goal_activity_path %>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<p id="notice"><%= notice %></p>
|
|
2
|
+
|
|
3
|
+
<p>
|
|
4
|
+
<strong>Description:</strong>
|
|
5
|
+
<%= @employee_goal_activity.description %>
|
|
6
|
+
</p>
|
|
7
|
+
|
|
8
|
+
<p>
|
|
9
|
+
<strong>Employee goal:</strong>
|
|
10
|
+
<%= @employee_goal_activity.employee_goal %>
|
|
11
|
+
</p>
|
|
12
|
+
|
|
13
|
+
<p>
|
|
14
|
+
<strong>Creator:</strong>
|
|
15
|
+
<%= @employee_goal_activity.creator %>
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
<p>
|
|
19
|
+
<strong>Attachment:</strong>
|
|
20
|
+
<%= @employee_goal_activity.attachment %>
|
|
21
|
+
</p>
|
|
22
|
+
|
|
23
|
+
<%= link_to 'Edit', edit_employee_goal_activity_path(@employee_goal_activity) %> |
|
|
24
|
+
<%= link_to 'Back', employee_goal_activities_path %>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<%= form_with(model: goal_unit, local: true) do |form| %>
|
|
2
|
+
<% if goal_unit.errors.any? %>
|
|
3
|
+
<div id="error_explanation">
|
|
4
|
+
<h2><%= pluralize(goal_unit.errors.count, "error") %> prohibited this goal_unit from being saved:</h2>
|
|
5
|
+
|
|
6
|
+
<ul>
|
|
7
|
+
<% goal_unit.errors.full_messages.each do |message| %>
|
|
8
|
+
<li><%= message %></li>
|
|
9
|
+
<% end %>
|
|
10
|
+
</ul>
|
|
11
|
+
</div>
|
|
12
|
+
<% end %>
|
|
13
|
+
|
|
14
|
+
<div class="field">
|
|
15
|
+
<%= form.label :singular_name %>
|
|
16
|
+
<%= form.text_field :singular_name, id: :goal_unit_singular_name %>
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
<div class="field">
|
|
20
|
+
<%= form.label :plural_name %>
|
|
21
|
+
<%= form.text_field :plural_name, id: :goal_unit_plural_name %>
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
<div class="field">
|
|
25
|
+
<%= form.label :status %>
|
|
26
|
+
<%= form.number_field :status, id: :goal_unit_status %>
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<div class="actions">
|
|
30
|
+
<%= form.submit %>
|
|
31
|
+
</div>
|
|
32
|
+
<% end %>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<p id="notice"><%= notice %></p>
|
|
2
|
+
|
|
3
|
+
<h1>Goal Units</h1>
|
|
4
|
+
|
|
5
|
+
<table>
|
|
6
|
+
<thead>
|
|
7
|
+
<tr>
|
|
8
|
+
<th>Singular name</th>
|
|
9
|
+
<th>Plural name</th>
|
|
10
|
+
<th>Status</th>
|
|
11
|
+
<th colspan="3"></th>
|
|
12
|
+
</tr>
|
|
13
|
+
</thead>
|
|
14
|
+
|
|
15
|
+
<tbody>
|
|
16
|
+
<% @goal_units.each do |goal_unit| %>
|
|
17
|
+
<tr>
|
|
18
|
+
<td><%= goal_unit.singular_name %></td>
|
|
19
|
+
<td><%= goal_unit.plural_name %></td>
|
|
20
|
+
<td><%= goal_unit.status %></td>
|
|
21
|
+
<td><%= link_to 'Show', goal_unit %></td>
|
|
22
|
+
<td><%= link_to 'Edit', edit_goal_unit_path(goal_unit) %></td>
|
|
23
|
+
<td><%= link_to 'Destroy', goal_unit, method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
|
24
|
+
</tr>
|
|
25
|
+
<% end %>
|
|
26
|
+
</tbody>
|
|
27
|
+
</table>
|
|
28
|
+
|
|
29
|
+
<br>
|
|
30
|
+
|
|
31
|
+
<%= link_to 'New Goal Unit', new_goal_unit_path %>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<p id="notice"><%= notice %></p>
|
|
2
|
+
|
|
3
|
+
<p>
|
|
4
|
+
<strong>Singular name:</strong>
|
|
5
|
+
<%= @goal_unit.singular_name %>
|
|
6
|
+
</p>
|
|
7
|
+
|
|
8
|
+
<p>
|
|
9
|
+
<strong>Plural name:</strong>
|
|
10
|
+
<%= @goal_unit.plural_name %>
|
|
11
|
+
</p>
|
|
12
|
+
|
|
13
|
+
<p>
|
|
14
|
+
<strong>Status:</strong>
|
|
15
|
+
<%= @goal_unit.status %>
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
<%= link_to 'Edit', edit_goal_unit_path(@goal_unit) %> |
|
|
19
|
+
<%= link_to 'Back', goal_units_path %>
|
data/config/routes.rb
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
class CreateNextSgadGoalUnits < ActiveRecord::Migration[5.1]
|
|
2
|
+
def change
|
|
3
|
+
create_table :next_sgad_goal_units do |t|
|
|
4
|
+
t.string :singular_name, null: false
|
|
5
|
+
t.string :plural_name, null: false
|
|
6
|
+
t.integer :status, default: 0, null: false
|
|
7
|
+
|
|
8
|
+
t.timestamps
|
|
9
|
+
end
|
|
10
|
+
add_reference :next_sgad_goals, :goal_unit, foreign_key: {to_table: :next_sgad_goal_units}, index: true
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
class ChangeResultsColumns < ActiveRecord::Migration[5.1]
|
|
2
|
+
def change
|
|
3
|
+
remove_column :next_sgad_results, :result_type
|
|
4
|
+
remove_column :next_sgad_results, :created_by
|
|
5
|
+
remove_column :next_sgad_results, :employee_id
|
|
6
|
+
remove_column :next_sgad_results, :assessment_id
|
|
7
|
+
remove_column :next_sgad_results, :goal_id
|
|
8
|
+
remove_column :next_sgad_results, :state
|
|
9
|
+
remove_column :next_sgad_results, :result_nature
|
|
10
|
+
add_column :next_sgad_results, :status, :integer, default: 0, null: false
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
class CreateNextSgadEmployeeGoalActivities < ActiveRecord::Migration[5.1]
|
|
2
|
+
def change
|
|
3
|
+
create_table :next_sgad_employee_goal_activities do |t|
|
|
4
|
+
t.text :description
|
|
5
|
+
t.references :employee_goal, foreign_key: {to_table: :next_sgad_employee_goals}
|
|
6
|
+
t.references :creator, polymorphic: true, index: {name: 'index_employee_goal_activities_on_creator_type_and_creator_id'}
|
|
7
|
+
t.string :attachment
|
|
8
|
+
|
|
9
|
+
t.timestamps
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
data/lib/next_sgad/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: next_sgad
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sergio Maziano
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-
|
|
11
|
+
date: 2018-02-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: pg
|
|
@@ -41,10 +41,12 @@ files:
|
|
|
41
41
|
- app/assets/javascripts/next_sgad/attendances.js
|
|
42
42
|
- app/assets/javascripts/next_sgad/configurations.js
|
|
43
43
|
- app/assets/javascripts/next_sgad/departments.js
|
|
44
|
+
- app/assets/javascripts/next_sgad/employee_goal_activities.js
|
|
44
45
|
- app/assets/javascripts/next_sgad/employee_goals.js
|
|
45
46
|
- app/assets/javascripts/next_sgad/employee_messages.js
|
|
46
47
|
- app/assets/javascripts/next_sgad/employees.js
|
|
47
48
|
- app/assets/javascripts/next_sgad/functions.js
|
|
49
|
+
- app/assets/javascripts/next_sgad/goal_units.js
|
|
48
50
|
- app/assets/javascripts/next_sgad/goals.js
|
|
49
51
|
- app/assets/javascripts/next_sgad/jquery.orgchart.min.js
|
|
50
52
|
- app/assets/javascripts/next_sgad/justifications.js
|
|
@@ -57,26 +59,31 @@ files:
|
|
|
57
59
|
- app/assets/stylesheets/next_sgad/attendances.css
|
|
58
60
|
- app/assets/stylesheets/next_sgad/configurations.css
|
|
59
61
|
- app/assets/stylesheets/next_sgad/departments.css
|
|
62
|
+
- app/assets/stylesheets/next_sgad/employee_goal_activities.css
|
|
60
63
|
- app/assets/stylesheets/next_sgad/employee_goals.css
|
|
61
64
|
- app/assets/stylesheets/next_sgad/employee_messages.css
|
|
62
65
|
- app/assets/stylesheets/next_sgad/employees.css
|
|
63
66
|
- app/assets/stylesheets/next_sgad/functions.css
|
|
67
|
+
- app/assets/stylesheets/next_sgad/goal_units.css
|
|
64
68
|
- app/assets/stylesheets/next_sgad/goals.css
|
|
65
69
|
- app/assets/stylesheets/next_sgad/jquery.orgchart.min.css
|
|
66
70
|
- app/assets/stylesheets/next_sgad/justifications.css
|
|
67
71
|
- app/assets/stylesheets/next_sgad/messages.css
|
|
68
72
|
- app/assets/stylesheets/next_sgad/positions.css
|
|
69
73
|
- app/assets/stylesheets/next_sgad/results.css
|
|
74
|
+
- app/assets/stylesheets/scaffold.css
|
|
70
75
|
- app/controllers/next_sgad/activities_controller.rb
|
|
71
76
|
- app/controllers/next_sgad/application_controller.rb
|
|
72
77
|
- app/controllers/next_sgad/assessments_controller.rb
|
|
73
78
|
- app/controllers/next_sgad/attendances_controller.rb
|
|
74
79
|
- app/controllers/next_sgad/configurations_controller.rb
|
|
75
80
|
- app/controllers/next_sgad/departments_controller.rb
|
|
81
|
+
- app/controllers/next_sgad/employee_goal_activities_controller.rb
|
|
76
82
|
- app/controllers/next_sgad/employee_goals_controller.rb
|
|
77
83
|
- app/controllers/next_sgad/employee_messages_controller.rb
|
|
78
84
|
- app/controllers/next_sgad/employees_controller.rb
|
|
79
85
|
- app/controllers/next_sgad/functions_controller.rb
|
|
86
|
+
- app/controllers/next_sgad/goal_units_controller.rb
|
|
80
87
|
- app/controllers/next_sgad/goals_controller.rb
|
|
81
88
|
- app/controllers/next_sgad/justifications_controller.rb
|
|
82
89
|
- app/controllers/next_sgad/messages_controller.rb
|
|
@@ -88,10 +95,12 @@ files:
|
|
|
88
95
|
- app/helpers/next_sgad/attendances_helper.rb
|
|
89
96
|
- app/helpers/next_sgad/configurations_helper.rb
|
|
90
97
|
- app/helpers/next_sgad/departments_helper.rb
|
|
98
|
+
- app/helpers/next_sgad/employee_goal_activities_helper.rb
|
|
91
99
|
- app/helpers/next_sgad/employee_goals_helper.rb
|
|
92
100
|
- app/helpers/next_sgad/employee_messages_helper.rb
|
|
93
101
|
- app/helpers/next_sgad/employees_helper.rb
|
|
94
102
|
- app/helpers/next_sgad/functions_helper.rb
|
|
103
|
+
- app/helpers/next_sgad/goal_units_helper.rb
|
|
95
104
|
- app/helpers/next_sgad/goals_helper.rb
|
|
96
105
|
- app/helpers/next_sgad/justifications_helper.rb
|
|
97
106
|
- app/helpers/next_sgad/messages_helper.rb
|
|
@@ -108,9 +117,11 @@ files:
|
|
|
108
117
|
- app/models/next_sgad/employee.rb
|
|
109
118
|
- app/models/next_sgad/employee_assessment.rb
|
|
110
119
|
- app/models/next_sgad/employee_goal.rb
|
|
120
|
+
- app/models/next_sgad/employee_goal_activity.rb
|
|
111
121
|
- app/models/next_sgad/employee_message.rb
|
|
112
122
|
- app/models/next_sgad/function.rb
|
|
113
123
|
- app/models/next_sgad/goal.rb
|
|
124
|
+
- app/models/next_sgad/goal_unit.rb
|
|
114
125
|
- app/models/next_sgad/justification.rb
|
|
115
126
|
- app/models/next_sgad/message.rb
|
|
116
127
|
- app/models/next_sgad/position.rb
|
|
@@ -142,6 +153,11 @@ files:
|
|
|
142
153
|
- app/views/next_sgad/departments/index.html.erb
|
|
143
154
|
- app/views/next_sgad/departments/new.html.erb
|
|
144
155
|
- app/views/next_sgad/departments/show.html.erb
|
|
156
|
+
- app/views/next_sgad/employee_goal_activities/_form.html.erb
|
|
157
|
+
- app/views/next_sgad/employee_goal_activities/edit.html.erb
|
|
158
|
+
- app/views/next_sgad/employee_goal_activities/index.html.erb
|
|
159
|
+
- app/views/next_sgad/employee_goal_activities/new.html.erb
|
|
160
|
+
- app/views/next_sgad/employee_goal_activities/show.html.erb
|
|
145
161
|
- app/views/next_sgad/employee_goals/_form.html.erb
|
|
146
162
|
- app/views/next_sgad/employee_goals/edit.html.erb
|
|
147
163
|
- app/views/next_sgad/employee_goals/index.html.erb
|
|
@@ -163,6 +179,11 @@ files:
|
|
|
163
179
|
- app/views/next_sgad/functions/index.html.erb
|
|
164
180
|
- app/views/next_sgad/functions/new.html.erb
|
|
165
181
|
- app/views/next_sgad/functions/show.html.erb
|
|
182
|
+
- app/views/next_sgad/goal_units/_form.html.erb
|
|
183
|
+
- app/views/next_sgad/goal_units/edit.html.erb
|
|
184
|
+
- app/views/next_sgad/goal_units/index.html.erb
|
|
185
|
+
- app/views/next_sgad/goal_units/new.html.erb
|
|
186
|
+
- app/views/next_sgad/goal_units/show.html.erb
|
|
166
187
|
- app/views/next_sgad/goals/_form.html.erb
|
|
167
188
|
- app/views/next_sgad/goals/edit.html.erb
|
|
168
189
|
- app/views/next_sgad/goals/index.html.erb
|
|
@@ -264,6 +285,11 @@ files:
|
|
|
264
285
|
- db/migrate/20180107204755_create_join_table_message_department.rb
|
|
265
286
|
- db/migrate/20180107204810_create_join_table_message_position.rb
|
|
266
287
|
- db/migrate/20180107204831_create_join_table_message_employee.rb
|
|
288
|
+
- db/migrate/20180208110338_add_period_to_goals.rb
|
|
289
|
+
- db/migrate/20180211132528_create_next_sgad_goal_units.rb
|
|
290
|
+
- db/migrate/20180211181108_change_results_columns.rb
|
|
291
|
+
- db/migrate/20180211181949_change_note_from_results.rb
|
|
292
|
+
- db/migrate/20180211221158_create_next_sgad_employee_goal_activities.rb
|
|
267
293
|
- lib/concerns/models/employee.rb
|
|
268
294
|
- lib/generators/initializer/USAGE
|
|
269
295
|
- lib/generators/initializer/initializer_generator.rb
|
|
@@ -295,7 +321,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
295
321
|
version: '0'
|
|
296
322
|
requirements: []
|
|
297
323
|
rubyforge_project:
|
|
298
|
-
rubygems_version: 2.6.
|
|
324
|
+
rubygems_version: 2.6.14
|
|
299
325
|
signing_key:
|
|
300
326
|
specification_version: 4
|
|
301
327
|
summary: SGAD
|