next_sgad 0.3.1 → 0.3.2

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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/next_sgad/employee_messages.js +2 -0
  3. data/app/assets/javascripts/next_sgad/messages.js +2 -0
  4. data/app/assets/stylesheets/next_sgad/employee_messages.css +4 -0
  5. data/app/assets/stylesheets/next_sgad/messages.css +4 -0
  6. data/app/controllers/next_sgad/employee_messages_controller.rb +62 -0
  7. data/app/controllers/next_sgad/messages_controller.rb +62 -0
  8. data/app/helpers/next_sgad/employee_messages_helper.rb +4 -0
  9. data/app/helpers/next_sgad/messages_helper.rb +4 -0
  10. data/app/models/next_sgad/activity.rb +1 -1
  11. data/app/models/next_sgad/application_record.rb +1 -1
  12. data/app/models/next_sgad/assessment.rb +1 -1
  13. data/app/models/next_sgad/attendance.rb +1 -1
  14. data/app/models/next_sgad/configuration.rb +1 -1
  15. data/app/models/next_sgad/department.rb +1 -1
  16. data/app/models/next_sgad/employee.rb +6 -1
  17. data/app/models/next_sgad/employee_assessment.rb +1 -1
  18. data/app/models/next_sgad/employee_goal.rb +1 -1
  19. data/app/models/next_sgad/employee_message.rb +16 -0
  20. data/app/models/next_sgad/function.rb +2 -1
  21. data/app/models/next_sgad/goal.rb +1 -1
  22. data/app/models/next_sgad/justification.rb +1 -1
  23. data/app/models/next_sgad/message.rb +29 -0
  24. data/app/models/next_sgad/position.rb +1 -1
  25. data/app/models/next_sgad/result.rb +1 -1
  26. data/app/models/next_sgad/setting.rb +1 -1
  27. data/app/views/next_sgad/employee_messages/_form.html.erb +47 -0
  28. data/app/views/next_sgad/employee_messages/edit.html.erb +6 -0
  29. data/app/views/next_sgad/employee_messages/index.html.erb +37 -0
  30. data/app/views/next_sgad/employee_messages/new.html.erb +5 -0
  31. data/app/views/next_sgad/employee_messages/show.html.erb +34 -0
  32. data/app/views/next_sgad/messages/_form.html.erb +42 -0
  33. data/app/views/next_sgad/messages/edit.html.erb +6 -0
  34. data/app/views/next_sgad/messages/index.html.erb +35 -0
  35. data/app/views/next_sgad/messages/new.html.erb +5 -0
  36. data/app/views/next_sgad/messages/show.html.erb +29 -0
  37. data/config/routes.rb +2 -0
  38. data/db/migrate/20180103084157_create_next_sgad_messages.rb +13 -0
  39. data/db/migrate/20180103084324_create_join_table_message_function.rb +7 -0
  40. data/db/migrate/20180103085525_create_next_sgad_employee_messages.rb +14 -0
  41. data/db/migrate/20180103123801_add_read_date_to_next_sgad_employee_messages.rb +5 -0
  42. data/lib/next_sgad/version.rb +1 -1
  43. metadata +26 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 72a744629f167ae3acab7dad410f83ec7a27ee3e
4
- data.tar.gz: a63b661e3d2eb049d189b9995c90cf5fbc59c10d
3
+ metadata.gz: 95ad6519114181004c4f7ab8761a082014ec3616
4
+ data.tar.gz: 157a9e5d56543377848ef818b818ec9d4318f762
5
5
  SHA512:
6
- metadata.gz: c1d7160180c4726bba1a543f8b4dc0243c18f89df785d3674b4463572db63dd2f3c3f83e3950a2dc94e7a3d99bac02613de9253e40a19b982f1392c76e8e5da9
7
- data.tar.gz: 864e6dac0d20fdaeeb6f28cf31d41d64079b3656e9d77e9aaff990e89079203fc218337f6da5f1cf636186cff8c677d170030f02dc32e889fc434f718788547f
6
+ metadata.gz: 6ac58a24bcc8239c5b062e279f07b29e01e34a0d795a92719789398bcff709d4cf9029b8f33c022999c8973fdc6b9ede9dfa6b358b7191d14f03f4b363c0069b
7
+ data.tar.gz: c7ddcc81d2d63234f2e500dd9daec823cd1dc2cee155c88637e1ef1e27e73b54d6ad1e0ec365e0ebc5659b41eca4d5bda51ef40f3bddb65d68e1c786fcf06f3d
@@ -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,62 @@
1
+ require_dependency "next_sgad/application_controller"
2
+
3
+ module NextSgad
4
+ class EmployeeMessagesController < ::ApplicationController
5
+ before_action :set_employee_message, only: [:show, :edit, :update, :destroy]
6
+
7
+ # GET /employee_messages
8
+ def index
9
+ @employee_messages = EmployeeMessage.all
10
+ end
11
+
12
+ # GET /employee_messages/1
13
+ def show
14
+ end
15
+
16
+ # GET /employee_messages/new
17
+ def new
18
+ @employee_message = EmployeeMessage.new
19
+ end
20
+
21
+ # GET /employee_messages/1/edit
22
+ def edit
23
+ end
24
+
25
+ # POST /employee_messages
26
+ def create
27
+ @employee_message = EmployeeMessage.new(employee_message_params)
28
+
29
+ if @employee_message.save
30
+ redirect_to @employee_message, notice: 'Employee message was successfully created.'
31
+ else
32
+ render :new
33
+ end
34
+ end
35
+
36
+ # PATCH/PUT /employee_messages/1
37
+ def update
38
+ if @employee_message.update(employee_message_params)
39
+ redirect_to @employee_message, notice: 'Employee message was successfully updated.'
40
+ else
41
+ render :edit
42
+ end
43
+ end
44
+
45
+ # DELETE /employee_messages/1
46
+ def destroy
47
+ @employee_message.destroy
48
+ redirect_to employee_messages_url, notice: 'Employee message was successfully destroyed.'
49
+ end
50
+
51
+ private
52
+ # Use callbacks to share common setup or constraints between actions.
53
+ def set_employee_message
54
+ @employee_message = EmployeeMessage.find(params[:id])
55
+ end
56
+
57
+ # Only allow a trusted parameter "white list" through.
58
+ def employee_message_params
59
+ params.require(:employee_message).permit(:message, :employee, :status, :title, :body, :signature)
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,62 @@
1
+ require_dependency "next_sgad/application_controller"
2
+
3
+ module NextSgad
4
+ class MessagesController < ::ApplicationController
5
+ before_action :set_message, only: [:show, :edit, :update, :destroy]
6
+
7
+ # GET /messages
8
+ def index
9
+ @messages = Message.all
10
+ end
11
+
12
+ # GET /messages/1
13
+ def show
14
+ end
15
+
16
+ # GET /messages/new
17
+ def new
18
+ @message = Message.new
19
+ end
20
+
21
+ # GET /messages/1/edit
22
+ def edit
23
+ end
24
+
25
+ # POST /messages
26
+ def create
27
+ @message = Message.new(message_params)
28
+
29
+ if @message.save
30
+ redirect_to @message, notice: 'Message was successfully created.'
31
+ else
32
+ render :new
33
+ end
34
+ end
35
+
36
+ # PATCH/PUT /messages/1
37
+ def update
38
+ if @message.update(message_params)
39
+ redirect_to @message, notice: 'Message was successfully updated.'
40
+ else
41
+ render :edit
42
+ end
43
+ end
44
+
45
+ # DELETE /messages/1
46
+ def destroy
47
+ @message.destroy
48
+ redirect_to messages_url, notice: 'Message was successfully destroyed.'
49
+ end
50
+
51
+ private
52
+ # Use callbacks to share common setup or constraints between actions.
53
+ def set_message
54
+ @message = Message.find(params[:id])
55
+ end
56
+
57
+ # Only allow a trusted parameter "white list" through.
58
+ def message_params
59
+ params.require(:message).permit(:title, :body, :signature, :send_to_all, :status)
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,4 @@
1
+ module NextSgad
2
+ module EmployeeMessagesHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module NextSgad
2
+ module MessagesHelper
3
+ end
4
+ end
@@ -1,5 +1,5 @@
1
1
  module NextSgad
2
- class Activity < ApplicationRecord
2
+ class Activity < NextSgad::ApplicationRecord
3
3
  def self.notification_result_validate(current_user, result)
4
4
  NextSgad::Activity.create(created_by: "#{current_user.first_name} #{current_user.last_name}", description: "Validou resultado")
5
5
  end
@@ -1,5 +1,5 @@
1
1
  module NextSgad
2
- class ApplicationRecord < ActiveRecord::Base
2
+ class ApplicationRecord < ::ApplicationRecord
3
3
  self.abstract_class = true
4
4
 
5
5
  def create_number
@@ -1,5 +1,5 @@
1
1
  module NextSgad
2
- class Assessment < ApplicationRecord
2
+ class Assessment < NextSgad::ApplicationRecord
3
3
  has_many :employee_goals, dependent: :destroy
4
4
  has_many :goals, dependent: :destroy
5
5
  has_many :attendances, dependent: :destroy
@@ -1,5 +1,5 @@
1
1
  module NextSgad
2
- class Attendance < ApplicationRecord
2
+ class Attendance < NextSgad::ApplicationRecord
3
3
  belongs_to :position, optional: true
4
4
  belongs_to :assessment, optional: true
5
5
  belongs_to :employee
@@ -1,4 +1,4 @@
1
1
  module NextSgad
2
- class Configuration < ApplicationRecord
2
+ class Configuration < NextSgad::ApplicationRecord
3
3
  end
4
4
  end
@@ -1,5 +1,5 @@
1
1
  module NextSgad
2
- class Department < ApplicationRecord
2
+ class Department < NextSgad::ApplicationRecord
3
3
  belongs_to :department, optional: true
4
4
  has_many :departments
5
5
  has_many :attendances
@@ -1,7 +1,8 @@
1
1
  module NextSgad
2
- class Employee < ApplicationRecord
2
+ class Employee < NextSgad::ApplicationRecord
3
3
  # belongs_to :position
4
4
  has_many :employee_goals, dependent: :destroy
5
+ has_many :employee_messages, dependent: :destroy
5
6
  has_and_belongs_to_many :positions, association_foreign_key: :next_sgad_position_id, foreign_key: :next_sgad_employee_id
6
7
  has_one :efective_position, class_name: NextSgad::Position.name, foreign_key: :efective_id
7
8
  has_many :employees_assessments, dependent: :destroy
@@ -22,6 +23,10 @@ module NextSgad
22
23
  "#{number} - #{first_name} #{last_name}"
23
24
  end
24
25
 
26
+ def unread_messages
27
+ employee_messages.unread
28
+ end
29
+
25
30
  INITIAL_LETTER = "E"
26
31
  before_save :create_number, on: :create
27
32
  validates_presence_of :first_name, :last_name
@@ -1,5 +1,5 @@
1
1
  module NextSgad
2
- class EmployeeAssessment < ApplicationRecord
2
+ class EmployeeAssessment < NextSgad::ApplicationRecord
3
3
  belongs_to :employee
4
4
  belongs_to :assessment
5
5
  enum self_assessment_status: {self_pending: 0, self_in_progress: 1, self_completed: 2}
@@ -1,5 +1,5 @@
1
1
  module NextSgad
2
- class EmployeeGoal < ApplicationRecord
2
+ class EmployeeGoal < NextSgad::ApplicationRecord
3
3
  belongs_to :goal
4
4
  belongs_to :employee
5
5
  belongs_to :assessment
@@ -0,0 +1,16 @@
1
+ module NextSgad
2
+ class EmployeeMessage < NextSgad::ApplicationRecord
3
+ belongs_to :message
4
+ belongs_to :employee
5
+ enum status: {unread: 0, read: 1, removed: 2}
6
+ # recall message read and unread
7
+ validates_presence_of :employee_id, :message_id
8
+ validates_uniqueness_of :employee_id, scope: [:message_id]
9
+
10
+ def mark_as_read(curr_employee = nil)
11
+ return false unless curr_employee.class.name.eql?(NextSgad::Employee.name)
12
+ return false if read?
13
+ self.update(status: :read, read_at: DateTime.now)
14
+ end
15
+ end
16
+ end
@@ -1,9 +1,10 @@
1
1
  module NextSgad
2
- class Function < ApplicationRecord
2
+ class Function < NextSgad::ApplicationRecord
3
3
  INITIAL_LETTER = "F"
4
4
  validates_presence_of :name
5
5
  validates_uniqueness_of :name
6
6
  before_save :create_number, on: :create
7
7
  has_and_belongs_to_many :goals, association_foreign_key: :next_sgad_goal_id, foreign_key: :next_sgad_function_id
8
+ has_and_belongs_to_many :messages, association_foreign_key: :next_sgad_message_id, foreign_key: :next_sgad_function_id
8
9
  end
9
10
  end
@@ -1,5 +1,5 @@
1
1
  module NextSgad
2
- class Goal < ApplicationRecord
2
+ class Goal < NextSgad::ApplicationRecord
3
3
  belongs_to :assessment
4
4
  has_many :employee_goals, dependent: :destroy
5
5
  has_and_belongs_to_many :positions, association_foreign_key: :next_sgad_position_id, foreign_key: :next_sgad_goal_id
@@ -1,5 +1,5 @@
1
1
  module NextSgad
2
- class Justification < ApplicationRecord
2
+ class Justification < NextSgad::ApplicationRecord
3
3
  # belongs_to :position
4
4
  # belongs_to :assessment
5
5
  belongs_to :employee
@@ -0,0 +1,29 @@
1
+ module NextSgad
2
+ class Message < NextSgad::ApplicationRecord
3
+ has_many :employee_messages
4
+ has_and_belongs_to_many :functions, association_foreign_key: :next_sgad_function_id, foreign_key: :next_sgad_message_id
5
+ enum status: {draft: 0, sent: 1}
6
+
7
+
8
+ validates_presence_of :title, :body
9
+ validates_presence_of :functions, unless: -> (message){message.send_to_all}
10
+
11
+ after_save :create_messages
12
+
13
+ def create_messages
14
+ return unless sent?
15
+ empl_message = NextSgad::EmployeeMessage.new(message_id: id, title: title, body: body, signature: signature)
16
+
17
+ if send_to_all
18
+ all_employees_ids = NextSgad::Employee.ids
19
+ else
20
+ all_employees_ids = NextSgad::Position.where(function_id: functions.ids).map(&:efective_id)
21
+ end
22
+ all_employees_ids.each do |employee_id|
23
+ duped_empl_message = empl_message.dup
24
+ duped_empl_message.employee_id = employee_id
25
+ duped_empl_message.save
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,5 +1,5 @@
1
1
  module NextSgad
2
- class Position < ApplicationRecord
2
+ class Position < NextSgad::ApplicationRecord
3
3
  belongs_to :department, optional: true
4
4
  belongs_to :position, optional: true
5
5
  belongs_to :function, optional: true
@@ -1,5 +1,5 @@
1
1
  module NextSgad
2
- class Result < ApplicationRecord
2
+ class Result < NextSgad::ApplicationRecord
3
3
  belongs_to :employee_goal
4
4
  belongs_to :employee
5
5
  belongs_to :assessment
@@ -1,6 +1,6 @@
1
1
  module NextSgad
2
2
  require 'singleton'
3
- class Setting < ApplicationRecord
3
+ class Setting < NextSgad::ApplicationRecord
4
4
  include Singleton
5
5
  #
6
6
  # This class can't be instantiated... accessing the singleton is done using the 'instance' method
@@ -0,0 +1,47 @@
1
+ <%= form_with(model: employee_message, local: true) do |form| %>
2
+ <% if employee_message.errors.any? %>
3
+ <div id="error_explanation">
4
+ <h2><%= pluralize(employee_message.errors.count, "error") %> prohibited this employee_message from being saved:</h2>
5
+
6
+ <ul>
7
+ <% employee_message.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 :message %>
16
+ <%= form.text_field :message, id: :employee_message_message %>
17
+ </div>
18
+
19
+ <div class="field">
20
+ <%= form.label :employee %>
21
+ <%= form.text_field :employee, id: :employee_message_employee %>
22
+ </div>
23
+
24
+ <div class="field">
25
+ <%= form.label :status %>
26
+ <%= form.number_field :status, id: :employee_message_status %>
27
+ </div>
28
+
29
+ <div class="field">
30
+ <%= form.label :title %>
31
+ <%= form.text_field :title, id: :employee_message_title %>
32
+ </div>
33
+
34
+ <div class="field">
35
+ <%= form.label :body %>
36
+ <%= form.text_area :body, id: :employee_message_body %>
37
+ </div>
38
+
39
+ <div class="field">
40
+ <%= form.label :signature %>
41
+ <%= form.text_field :signature, id: :employee_message_signature %>
42
+ </div>
43
+
44
+ <div class="actions">
45
+ <%= form.submit %>
46
+ </div>
47
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <h1>Editing Employee Message</h1>
2
+
3
+ <%= render 'form', employee_message: @employee_message %>
4
+
5
+ <%= link_to 'Show', @employee_message %> |
6
+ <%= link_to 'Back', employee_messages_path %>
@@ -0,0 +1,37 @@
1
+ <p id="notice"><%= notice %></p>
2
+
3
+ <h1>Employee Messages</h1>
4
+
5
+ <table>
6
+ <thead>
7
+ <tr>
8
+ <th>Message</th>
9
+ <th>Employee</th>
10
+ <th>Status</th>
11
+ <th>Title</th>
12
+ <th>Body</th>
13
+ <th>Signature</th>
14
+ <th colspan="3"></th>
15
+ </tr>
16
+ </thead>
17
+
18
+ <tbody>
19
+ <% @employee_messages.each do |employee_message| %>
20
+ <tr>
21
+ <td><%= employee_message.message %></td>
22
+ <td><%= employee_message.employee %></td>
23
+ <td><%= employee_message.status %></td>
24
+ <td><%= employee_message.title %></td>
25
+ <td><%= employee_message.body %></td>
26
+ <td><%= employee_message.signature %></td>
27
+ <td><%= link_to 'Show', employee_message %></td>
28
+ <td><%= link_to 'Edit', edit_employee_message_path(employee_message) %></td>
29
+ <td><%= link_to 'Destroy', employee_message, method: :delete, data: { confirm: 'Are you sure?' } %></td>
30
+ </tr>
31
+ <% end %>
32
+ </tbody>
33
+ </table>
34
+
35
+ <br>
36
+
37
+ <%= link_to 'New Employee Message', new_employee_message_path %>
@@ -0,0 +1,5 @@
1
+ <h1>New Employee Message</h1>
2
+
3
+ <%= render 'form', employee_message: @employee_message %>
4
+
5
+ <%= link_to 'Back', employee_messages_path %>
@@ -0,0 +1,34 @@
1
+ <p id="notice"><%= notice %></p>
2
+
3
+ <p>
4
+ <strong>Message:</strong>
5
+ <%= @employee_message.message %>
6
+ </p>
7
+
8
+ <p>
9
+ <strong>Employee:</strong>
10
+ <%= @employee_message.employee %>
11
+ </p>
12
+
13
+ <p>
14
+ <strong>Status:</strong>
15
+ <%= @employee_message.status %>
16
+ </p>
17
+
18
+ <p>
19
+ <strong>Title:</strong>
20
+ <%= @employee_message.title %>
21
+ </p>
22
+
23
+ <p>
24
+ <strong>Body:</strong>
25
+ <%= @employee_message.body %>
26
+ </p>
27
+
28
+ <p>
29
+ <strong>Signature:</strong>
30
+ <%= @employee_message.signature %>
31
+ </p>
32
+
33
+ <%= link_to 'Edit', edit_employee_message_path(@employee_message) %> |
34
+ <%= link_to 'Back', employee_messages_path %>
@@ -0,0 +1,42 @@
1
+ <%= form_with(model: message, local: true) do |form| %>
2
+ <% if message.errors.any? %>
3
+ <div id="error_explanation">
4
+ <h2><%= pluralize(message.errors.count, "error") %> prohibited this message from being saved:</h2>
5
+
6
+ <ul>
7
+ <% message.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 :title %>
16
+ <%= form.text_field :title, id: :message_title %>
17
+ </div>
18
+
19
+ <div class="field">
20
+ <%= form.label :body %>
21
+ <%= form.text_area :body, id: :message_body %>
22
+ </div>
23
+
24
+ <div class="field">
25
+ <%= form.label :signature %>
26
+ <%= form.text_field :signature, id: :message_signature %>
27
+ </div>
28
+
29
+ <div class="field">
30
+ <%= form.label :send_to_all %>
31
+ <%= form.check_box :send_to_all, id: :message_send_to_all %>
32
+ </div>
33
+
34
+ <div class="field">
35
+ <%= form.label :status %>
36
+ <%= form.number_field :status, id: :message_status %>
37
+ </div>
38
+
39
+ <div class="actions">
40
+ <%= form.submit %>
41
+ </div>
42
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <h1>Editing Message</h1>
2
+
3
+ <%= render 'form', message: @message %>
4
+
5
+ <%= link_to 'Show', @message %> |
6
+ <%= link_to 'Back', messages_path %>
@@ -0,0 +1,35 @@
1
+ <p id="notice"><%= notice %></p>
2
+
3
+ <h1>Messages</h1>
4
+
5
+ <table>
6
+ <thead>
7
+ <tr>
8
+ <th>Title</th>
9
+ <th>Body</th>
10
+ <th>Signature</th>
11
+ <th>Send to all</th>
12
+ <th>Status</th>
13
+ <th colspan="3"></th>
14
+ </tr>
15
+ </thead>
16
+
17
+ <tbody>
18
+ <% @messages.each do |message| %>
19
+ <tr>
20
+ <td><%= message.title %></td>
21
+ <td><%= message.body %></td>
22
+ <td><%= message.signature %></td>
23
+ <td><%= message.send_to_all %></td>
24
+ <td><%= message.status %></td>
25
+ <td><%= link_to 'Show', message %></td>
26
+ <td><%= link_to 'Edit', edit_message_path(message) %></td>
27
+ <td><%= link_to 'Destroy', message, method: :delete, data: { confirm: 'Are you sure?' } %></td>
28
+ </tr>
29
+ <% end %>
30
+ </tbody>
31
+ </table>
32
+
33
+ <br>
34
+
35
+ <%= link_to 'New Message', new_message_path %>
@@ -0,0 +1,5 @@
1
+ <h1>New Message</h1>
2
+
3
+ <%= render 'form', message: @message %>
4
+
5
+ <%= link_to 'Back', messages_path %>
@@ -0,0 +1,29 @@
1
+ <p id="notice"><%= notice %></p>
2
+
3
+ <p>
4
+ <strong>Title:</strong>
5
+ <%= @message.title %>
6
+ </p>
7
+
8
+ <p>
9
+ <strong>Body:</strong>
10
+ <%= @message.body %>
11
+ </p>
12
+
13
+ <p>
14
+ <strong>Signature:</strong>
15
+ <%= @message.signature %>
16
+ </p>
17
+
18
+ <p>
19
+ <strong>Send to all:</strong>
20
+ <%= @message.send_to_all %>
21
+ </p>
22
+
23
+ <p>
24
+ <strong>Status:</strong>
25
+ <%= @message.status %>
26
+ </p>
27
+
28
+ <%= link_to 'Edit', edit_message_path(@message) %> |
29
+ <%= link_to 'Back', messages_path %>
data/config/routes.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  NextSgad::Engine.routes.draw do
2
+ resources :employee_messages
3
+ resources :messages
2
4
  resources :activities
3
5
  resources :results
4
6
  resources :justifications
@@ -0,0 +1,13 @@
1
+ class CreateNextSgadMessages < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :next_sgad_messages do |t|
4
+ t.string :title
5
+ t.text :body
6
+ t.string :signature
7
+ t.boolean :send_to_all, default: false, null: false
8
+ t.integer :status, default: 0, null: false
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,7 @@
1
+ class CreateJoinTableMessageFunction < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_join_table :next_sgad_messages, :next_sgad_functions do |t|
4
+ t.index [:next_sgad_message_id, :next_sgad_function_id], name: 'idx_sgad_funions_mesges_on_sgad_mesge_id_and_sgad_funion_id'
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,14 @@
1
+ class CreateNextSgadEmployeeMessages < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :next_sgad_employee_messages do |t|
4
+ t.references :message, foreign_key: {to_table: :next_sgad_messages}, index: true
5
+ t.references :employee, foreign_key: {to_table: :next_sgad_employees}, index: true
6
+ t.integer :status, default: 0, null: false
7
+ t.string :title
8
+ t.text :body
9
+ t.string :signature
10
+
11
+ t.timestamps
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,5 @@
1
+ class AddReadDateToNextSgadEmployeeMessages < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :next_sgad_employee_messages, :read_at, :datetime
4
+ end
5
+ end
@@ -1,3 +1,3 @@
1
1
  module NextSgad
2
- VERSION = '0.3.1'
2
+ VERSION = '0.3.2'
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.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergio Maziano
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-29 00:00:00.000000000 Z
11
+ date: 2018-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg
@@ -42,11 +42,13 @@ files:
42
42
  - app/assets/javascripts/next_sgad/configurations.js
43
43
  - app/assets/javascripts/next_sgad/departments.js
44
44
  - app/assets/javascripts/next_sgad/employee_goals.js
45
+ - app/assets/javascripts/next_sgad/employee_messages.js
45
46
  - app/assets/javascripts/next_sgad/employees.js
46
47
  - app/assets/javascripts/next_sgad/functions.js
47
48
  - app/assets/javascripts/next_sgad/goals.js
48
49
  - app/assets/javascripts/next_sgad/jquery.orgchart.min.js
49
50
  - app/assets/javascripts/next_sgad/justifications.js
51
+ - app/assets/javascripts/next_sgad/messages.js
50
52
  - app/assets/javascripts/next_sgad/positions.js
51
53
  - app/assets/javascripts/next_sgad/results.js
52
54
  - app/assets/stylesheets/next_sgad/activities.css
@@ -56,11 +58,13 @@ files:
56
58
  - app/assets/stylesheets/next_sgad/configurations.css
57
59
  - app/assets/stylesheets/next_sgad/departments.css
58
60
  - app/assets/stylesheets/next_sgad/employee_goals.css
61
+ - app/assets/stylesheets/next_sgad/employee_messages.css
59
62
  - app/assets/stylesheets/next_sgad/employees.css
60
63
  - app/assets/stylesheets/next_sgad/functions.css
61
64
  - app/assets/stylesheets/next_sgad/goals.css
62
65
  - app/assets/stylesheets/next_sgad/jquery.orgchart.min.css
63
66
  - app/assets/stylesheets/next_sgad/justifications.css
67
+ - app/assets/stylesheets/next_sgad/messages.css
64
68
  - app/assets/stylesheets/next_sgad/positions.css
65
69
  - app/assets/stylesheets/next_sgad/results.css
66
70
  - app/controllers/next_sgad/activities_controller.rb
@@ -70,10 +74,12 @@ files:
70
74
  - app/controllers/next_sgad/configurations_controller.rb
71
75
  - app/controllers/next_sgad/departments_controller.rb
72
76
  - app/controllers/next_sgad/employee_goals_controller.rb
77
+ - app/controllers/next_sgad/employee_messages_controller.rb
73
78
  - app/controllers/next_sgad/employees_controller.rb
74
79
  - app/controllers/next_sgad/functions_controller.rb
75
80
  - app/controllers/next_sgad/goals_controller.rb
76
81
  - app/controllers/next_sgad/justifications_controller.rb
82
+ - app/controllers/next_sgad/messages_controller.rb
77
83
  - app/controllers/next_sgad/positions_controller.rb
78
84
  - app/controllers/next_sgad/results_controller.rb
79
85
  - app/helpers/next_sgad/activities_helper.rb
@@ -83,10 +89,12 @@ files:
83
89
  - app/helpers/next_sgad/configurations_helper.rb
84
90
  - app/helpers/next_sgad/departments_helper.rb
85
91
  - app/helpers/next_sgad/employee_goals_helper.rb
92
+ - app/helpers/next_sgad/employee_messages_helper.rb
86
93
  - app/helpers/next_sgad/employees_helper.rb
87
94
  - app/helpers/next_sgad/functions_helper.rb
88
95
  - app/helpers/next_sgad/goals_helper.rb
89
96
  - app/helpers/next_sgad/justifications_helper.rb
97
+ - app/helpers/next_sgad/messages_helper.rb
90
98
  - app/helpers/next_sgad/positions_helper.rb
91
99
  - app/helpers/next_sgad/results_helper.rb
92
100
  - app/jobs/next_sgad/application_job.rb
@@ -100,9 +108,11 @@ files:
100
108
  - app/models/next_sgad/employee.rb
101
109
  - app/models/next_sgad/employee_assessment.rb
102
110
  - app/models/next_sgad/employee_goal.rb
111
+ - app/models/next_sgad/employee_message.rb
103
112
  - app/models/next_sgad/function.rb
104
113
  - app/models/next_sgad/goal.rb
105
114
  - app/models/next_sgad/justification.rb
115
+ - app/models/next_sgad/message.rb
106
116
  - app/models/next_sgad/position.rb
107
117
  - app/models/next_sgad/result.rb
108
118
  - app/models/next_sgad/setting.rb
@@ -137,6 +147,11 @@ files:
137
147
  - app/views/next_sgad/employee_goals/index.html.erb
138
148
  - app/views/next_sgad/employee_goals/new.html.erb
139
149
  - app/views/next_sgad/employee_goals/show.html.erb
150
+ - app/views/next_sgad/employee_messages/_form.html.erb
151
+ - app/views/next_sgad/employee_messages/edit.html.erb
152
+ - app/views/next_sgad/employee_messages/index.html.erb
153
+ - app/views/next_sgad/employee_messages/new.html.erb
154
+ - app/views/next_sgad/employee_messages/show.html.erb
140
155
  - app/views/next_sgad/employees/_form.html.erb
141
156
  - app/views/next_sgad/employees/_organigrama.html.erb
142
157
  - app/views/next_sgad/employees/edit.html.erb
@@ -158,6 +173,11 @@ files:
158
173
  - app/views/next_sgad/justifications/index.html.erb
159
174
  - app/views/next_sgad/justifications/new.html.erb
160
175
  - app/views/next_sgad/justifications/show.html.erb
176
+ - app/views/next_sgad/messages/_form.html.erb
177
+ - app/views/next_sgad/messages/edit.html.erb
178
+ - app/views/next_sgad/messages/index.html.erb
179
+ - app/views/next_sgad/messages/new.html.erb
180
+ - app/views/next_sgad/messages/show.html.erb
161
181
  - app/views/next_sgad/positions/_form.html.erb
162
182
  - app/views/next_sgad/positions/edit.html.erb
163
183
  - app/views/next_sgad/positions/index.html.erb
@@ -236,6 +256,10 @@ files:
236
256
  - db/migrate/20171125001559_add_aproved_by_supervisor_to_next_sgad_justifications.rb
237
257
  - db/migrate/20171129131333_create_next_sgad_employees_assessments.rb
238
258
  - db/migrate/20171229114341_add_supervisor_supervisor_note_to_next_sgad_employee_goals.rb
259
+ - db/migrate/20180103084157_create_next_sgad_messages.rb
260
+ - db/migrate/20180103084324_create_join_table_message_function.rb
261
+ - db/migrate/20180103085525_create_next_sgad_employee_messages.rb
262
+ - db/migrate/20180103123801_add_read_date_to_next_sgad_employee_messages.rb
239
263
  - lib/concerns/models/employee.rb
240
264
  - lib/generators/initializer/USAGE
241
265
  - lib/generators/initializer/initializer_generator.rb