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
|