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.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/next_sgad/employee_goal_activities.js +2 -0
  3. data/app/assets/javascripts/next_sgad/goal_units.js +2 -0
  4. data/app/assets/stylesheets/next_sgad/employee_goal_activities.css +4 -0
  5. data/app/assets/stylesheets/next_sgad/goal_units.css +4 -0
  6. data/app/assets/stylesheets/scaffold.css +80 -0
  7. data/app/controllers/next_sgad/employee_goal_activities_controller.rb +62 -0
  8. data/app/controllers/next_sgad/goal_units_controller.rb +62 -0
  9. data/app/helpers/next_sgad/employee_goal_activities_helper.rb +4 -0
  10. data/app/helpers/next_sgad/goal_units_helper.rb +4 -0
  11. data/app/models/next_sgad/employee.rb +23 -1
  12. data/app/models/next_sgad/employee_goal.rb +11 -6
  13. data/app/models/next_sgad/employee_goal_activity.rb +8 -0
  14. data/app/models/next_sgad/goal.rb +10 -4
  15. data/app/models/next_sgad/goal_unit.rb +7 -0
  16. data/app/models/next_sgad/result.rb +17 -5
  17. data/app/views/next_sgad/employee_goal_activities/_form.html.erb +37 -0
  18. data/app/views/next_sgad/employee_goal_activities/edit.html.erb +6 -0
  19. data/app/views/next_sgad/employee_goal_activities/index.html.erb +33 -0
  20. data/app/views/next_sgad/employee_goal_activities/new.html.erb +5 -0
  21. data/app/views/next_sgad/employee_goal_activities/show.html.erb +24 -0
  22. data/app/views/next_sgad/goal_units/_form.html.erb +32 -0
  23. data/app/views/next_sgad/goal_units/edit.html.erb +6 -0
  24. data/app/views/next_sgad/goal_units/index.html.erb +31 -0
  25. data/app/views/next_sgad/goal_units/new.html.erb +5 -0
  26. data/app/views/next_sgad/goal_units/show.html.erb +19 -0
  27. data/config/routes.rb +2 -0
  28. data/db/migrate/20180208110338_add_period_to_goals.rb +5 -0
  29. data/db/migrate/20180211132528_create_next_sgad_goal_units.rb +12 -0
  30. data/db/migrate/20180211181108_change_results_columns.rb +12 -0
  31. data/db/migrate/20180211181949_change_note_from_results.rb +5 -0
  32. data/db/migrate/20180211221158_create_next_sgad_employee_goal_activities.rb +12 -0
  33. data/lib/next_sgad/version.rb +1 -1
  34. metadata +29 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2f701333d4d9ee374df27a4da29f5f97942f3419
4
- data.tar.gz: 65ae0250538628b41c0fd2f06c847c73af75c12a
3
+ metadata.gz: bcc017b41396ade968b0033b40a32d39504336fc
4
+ data.tar.gz: df4336c878c3b0081295dd35fa1a791ffad23ed4
5
5
  SHA512:
6
- metadata.gz: 6264868970816b09132e7e07416b0e43488284fc9835588e802237c26f55987c4b0c4293718a399c0b54b5d9e56d77cc46455c2227ca6d1887a8b2eeff8de86b
7
- data.tar.gz: 8a489d32dc9921de82dfed4e76d350a962d21a8fee6db162d3ab7e2b946e0a2cbb967cdd965bf606af5491b577022feda2632ba2c1a284e0d5f7f9b37608c389
6
+ metadata.gz: ff1e60e520dad02cc784aa1a1d9b77d743afc285f6003f124930aafccb46d095212d1e944b2ec5750c9351daa353769be4d527f527474365e4f2879de0ecbd2c
7
+ data.tar.gz: 30739b2b0a6377c26d992a081fe1215488a6342221a54aefd56d50c0521c46e802da4aaf266f6173e8cca215bef92c46488241d15166edf865cc48a10b27eebf
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -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
@@ -0,0 +1,4 @@
1
+ module NextSgad
2
+ module EmployeeGoalActivitiesHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module NextSgad
2
+ module GoalUnitsHelper
3
+ end
4
+ 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 :employees_assessments, dependent: :destroy
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
- v = (amount.to_f/target.to_f)*5
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
- self.self_assessment = value_amount
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
@@ -0,0 +1,8 @@
1
+ module NextSgad
2
+ class EmployeeGoalActivity < NextSgad::ApplicationRecord
3
+ belongs_to :employee_goal
4
+ belongs_to :creator, polymorphic: true
5
+
6
+ validates_presence_of :employee_goal_id, :creator_id, :creator_type, :description
7
+ end
8
+ 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)
@@ -0,0 +1,7 @@
1
+ module NextSgad
2
+ class GoalUnit < NextSgad::ApplicationRecord
3
+ enum status: {active: 0, inactive: 1}
4
+
5
+ validates_presence_of :singular_name, :plural_name
6
+ end
7
+ end
@@ -1,12 +1,16 @@
1
1
  module NextSgad
2
2
  class Result < NextSgad::ApplicationRecord
3
3
  belongs_to :employee_goal
4
- belongs_to :employee
5
- belongs_to :assessment
6
- belongs_to :goal
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 state: {result_valid: 0, result_invalid: 1}
9
- enum result_nature: {numeric: 0, objective_base: 1}
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,6 @@
1
+ <h1>Editing Employee Goal Activity</h1>
2
+
3
+ <%= render 'form', employee_goal_activity: @employee_goal_activity %>
4
+
5
+ <%= link_to 'Show', @employee_goal_activity %> |
6
+ <%= link_to 'Back', employee_goal_activities_path %>
@@ -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,5 @@
1
+ <h1>New Employee Goal Activity</h1>
2
+
3
+ <%= render 'form', employee_goal_activity: @employee_goal_activity %>
4
+
5
+ <%= link_to 'Back', employee_goal_activities_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,6 @@
1
+ <h1>Editing Goal Unit</h1>
2
+
3
+ <%= render 'form', goal_unit: @goal_unit %>
4
+
5
+ <%= link_to 'Show', @goal_unit %> |
6
+ <%= link_to 'Back', goal_units_path %>
@@ -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,5 @@
1
+ <h1>New Goal Unit</h1>
2
+
3
+ <%= render 'form', goal_unit: @goal_unit %>
4
+
5
+ <%= link_to 'Back', goal_units_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 %>
@@ -1,4 +1,6 @@
1
1
  NextSgad::Engine.routes.draw do
2
+ resources :employee_goal_activities
3
+ resources :goal_units
2
4
  resources :employee_messages
3
5
  resources :messages
4
6
  resources :activities
@@ -0,0 +1,5 @@
1
+ class AddPeriodToGoals < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :next_sgad_goals, :period, :integer, default: 0, null: false
4
+ end
5
+ end
@@ -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,5 @@
1
+ class ChangeNoteFromResults < ActiveRecord::Migration[5.1]
2
+ def change
3
+ change_column :next_sgad_results, :note, :text
4
+ end
5
+ 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
@@ -1,3 +1,3 @@
1
1
  module NextSgad
2
- VERSION = '0.3.7'
2
+ VERSION = '0.3.8'
3
3
  end
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.7
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-01-24 00:00:00.000000000 Z
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.13
324
+ rubygems_version: 2.6.14
299
325
  signing_key:
300
326
  specification_version: 4
301
327
  summary: SGAD