hr_lite 0.12.0 → 0.14.0

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +67 -1
  3. data/app/assets/stylesheets/hr_lite/hr_lite.css +6 -0
  4. data/app/controllers/hr_lite/admin/assets_controller.rb +53 -0
  5. data/app/controllers/hr_lite/admin/checklists_controller.rb +32 -0
  6. data/app/controllers/hr_lite/admin/employees_controller.rb +4 -0
  7. data/app/controllers/hr_lite/admin/expenses_controller.rb +45 -0
  8. data/app/controllers/hr_lite/admin/hr_requests_controller.rb +38 -0
  9. data/app/controllers/hr_lite/admin/reports_controller.rb +151 -0
  10. data/app/controllers/hr_lite/benefits_controller.rb +17 -0
  11. data/app/controllers/hr_lite/expenses_controller.rb +50 -0
  12. data/app/controllers/hr_lite/hr_requests_controller.rb +43 -0
  13. data/app/controllers/hr_lite/policies_controller.rb +26 -0
  14. data/app/helpers/hr_lite/application_helper.rb +10 -1
  15. data/app/models/hr_lite/asset.rb +57 -0
  16. data/app/models/hr_lite/asset_assignment.rb +24 -0
  17. data/app/models/hr_lite/checklist_item.rb +43 -0
  18. data/app/models/hr_lite/checklist_template.rb +50 -0
  19. data/app/models/hr_lite/employee_profile.rb +13 -0
  20. data/app/views/hr_lite/admin/assets/index.html.erb +59 -0
  21. data/app/views/hr_lite/admin/assets/new.html.erb +23 -0
  22. data/app/views/hr_lite/admin/checklists/index.html.erb +50 -0
  23. data/app/views/hr_lite/admin/expenses/index.html.erb +54 -0
  24. data/app/views/hr_lite/admin/hr_requests/index.html.erb +41 -0
  25. data/app/views/hr_lite/admin/hr_requests/show.html.erb +47 -0
  26. data/app/views/hr_lite/admin/reports/index.html.erb +40 -0
  27. data/app/views/hr_lite/admin/reports/show.html.erb +32 -0
  28. data/app/views/hr_lite/benefits/index.html.erb +33 -0
  29. data/app/views/hr_lite/expenses/index.html.erb +68 -0
  30. data/app/views/hr_lite/expenses/new.html.erb +38 -0
  31. data/app/views/hr_lite/hr_requests/index.html.erb +39 -0
  32. data/app/views/hr_lite/hr_requests/new.html.erb +28 -0
  33. data/app/views/hr_lite/hr_requests/show.html.erb +25 -0
  34. data/app/views/hr_lite/policies/index.html.erb +34 -0
  35. data/app/views/hr_lite/policies/show.html.erb +23 -0
  36. data/config/routes.rb +23 -0
  37. data/db/migrate/20260818010401_create_hr_lite_assets_and_onboarding.rb +76 -0
  38. data/lib/hr_lite/permissions.rb +3 -0
  39. data/lib/hr_lite/role_seeds.rb +5 -3
  40. data/lib/hr_lite/version.rb +1 -1
  41. data/lib/tasks/hr_lite_tasks.rake +2 -1
  42. metadata +31 -1
@@ -0,0 +1,39 @@
1
+ <% content_for(:page_title) { "Ask HR" } %>
2
+ <div class="hrl-page__head">
3
+ <h1 class="hrl-page__title">Ask HR</h1>
4
+ <div class="hrl-page__actions">
5
+ <a class="hrl-btn hrl-btn--primary" href="<%= hr_lite.new_hr_request_path %>">New request</a>
6
+ </div>
7
+ </div>
8
+
9
+ <section class="hrl-card">
10
+ <% if @requests.empty? %>
11
+ <p class="hrl-muted">Nothing raised yet.</p>
12
+ <% else %>
13
+ <div class="hrl-table-wrap">
14
+ <table class="hrl-table hrl-table--stack">
15
+ <thead><tr><th>Request</th><th>Raised</th><th>Status</th><th></th></tr></thead>
16
+ <tbody>
17
+ <% @requests.each do |request| %>
18
+ <tr>
19
+ <td data-label="Request">
20
+ <a href="<%= hr_lite.hr_request_path(request) %>"><%= request.subject %></a>
21
+ <div class="hrl-small hrl-muted"><%= request.category_label %></div>
22
+ </td>
23
+ <td data-label="Raised"><%= request.created_at.to_date.strftime("%d %b %Y") %></td>
24
+ <td data-label="Status"><%= hrl_request_status_badge(request.status) %></td>
25
+ <td data-label="">
26
+ <% if request.open? || request.in_progress? %>
27
+ <%= button_to "Withdraw", hr_lite.cancel_hr_request_path(request),
28
+ class: "hrl-btn",
29
+ form: { data: { turbo_confirm: "Withdraw this request?" } } %>
30
+ <% end %>
31
+ </td>
32
+ </tr>
33
+ <% end %>
34
+ </tbody>
35
+ </table>
36
+ </div>
37
+ <%= hrl_pagination %>
38
+ <% end %>
39
+ </section>
@@ -0,0 +1,28 @@
1
+ <% content_for(:page_title) { "New request" } %>
2
+ <div class="hrl-page__head"><h1 class="hrl-page__title">Ask HR</h1></div>
3
+
4
+ <section class="hrl-card">
5
+ <%= form_with model: @request, url: hr_lite.hr_requests_path, method: :post, local: true do |f| %>
6
+ <%= render "hr_lite/shared/form_errors", record: @request %>
7
+
8
+ <div class="hrl-field">
9
+ <%= f.label :category, "What is this about" %>
10
+ <%= f.select :category,
11
+ HrLite::HrRequest::CATEGORIES.map { |c| [ c.humanize, c ] },
12
+ { include_blank: "Choose one" } %>
13
+ </div>
14
+ <div class="hrl-field">
15
+ <%= f.label :subject, "In one line" %>
16
+ <%= f.text_field :subject %>
17
+ </div>
18
+ <div class="hrl-field">
19
+ <%= f.label :body, "Anything else HR should know" %>
20
+ <%= f.text_area :body, rows: 5 %>
21
+ </div>
22
+
23
+ <div class="hrl-form-actions">
24
+ <%= f.submit "Send to HR", class: "hrl-btn hrl-btn--primary" %>
25
+ <a class="hrl-btn" href="<%= hr_lite.hr_requests_path %>">Cancel</a>
26
+ </div>
27
+ <% end %>
28
+ </section>
@@ -0,0 +1,25 @@
1
+ <% content_for(:page_title) { @request.subject } %>
2
+ <div class="hrl-page__head">
3
+ <h1 class="hrl-page__title"><%= @request.subject %></h1>
4
+ </div>
5
+
6
+ <section class="hrl-card">
7
+ <p class="hrl-small hrl-muted">
8
+ <%= @request.category_label %> · raised
9
+ <%= @request.created_at.to_date.strftime("%d %b %Y") %> ·
10
+ <%= hrl_request_status_badge(@request.status) %>
11
+ </p>
12
+ <% if @request.body.present? %>
13
+ <div class="hrl-prose"><%= simple_format(@request.body) %></div>
14
+ <% end %>
15
+ </section>
16
+
17
+ <% if @request.resolution.present? %>
18
+ <section class="hrl-card">
19
+ <h2 class="hrl-card__title">HR's answer</h2>
20
+ <div class="hrl-prose"><%= simple_format(@request.resolution) %></div>
21
+ <p class="hrl-small hrl-muted">
22
+ <%= @request.resolved_at&.to_date&.strftime("%d %b %Y") %>
23
+ </p>
24
+ </section>
25
+ <% end %>
@@ -0,0 +1,34 @@
1
+ <% content_for(:page_title) { "Policies" } %>
2
+ <div class="hrl-page__head"><h1 class="hrl-page__title">Policies</h1></div>
3
+
4
+ <section class="hrl-card">
5
+ <% if @policies.empty? %>
6
+ <p class="hrl-muted">No policies are published yet.</p>
7
+ <% else %>
8
+ <div class="hrl-table-wrap">
9
+ <table class="hrl-table hrl-table--stack">
10
+ <thead><tr><th>Policy</th><th>In force</th><th></th></tr></thead>
11
+ <tbody>
12
+ <% @policies.each do |policy| %>
13
+ <tr>
14
+ <td data-label="Policy">
15
+ <a href="<%= hr_lite.policy_path(policy) %>"><%= policy.title %></a>
16
+ <span class="hrl-badge hrl-badge--muted">v<%= policy.version %></span>
17
+ </td>
18
+ <td data-label="In force"><%= policy.effective_from.strftime("%d %b %Y") %></td>
19
+ <td data-label="">
20
+ <% if policy.acknowledgement_required %>
21
+ <% if @acknowledged.include?(policy.id) %>
22
+ <span class="hrl-badge hrl-badge--ok">Read</span>
23
+ <% else %>
24
+ <span class="hrl-badge hrl-badge--warn">Needs your acknowledgement</span>
25
+ <% end %>
26
+ <% end %>
27
+ </td>
28
+ </tr>
29
+ <% end %>
30
+ </tbody>
31
+ </table>
32
+ </div>
33
+ <% end %>
34
+ </section>
@@ -0,0 +1,23 @@
1
+ <% content_for(:page_title) { @policy.title } %>
2
+ <div class="hrl-page__head">
3
+ <h1 class="hrl-page__title"><%= @policy.title %></h1>
4
+ </div>
5
+
6
+ <section class="hrl-card">
7
+ <p class="hrl-small hrl-muted">
8
+ Version <%= @policy.version %>, in force from
9
+ <%= @policy.effective_from.strftime("%d %b %Y") %>.
10
+ </p>
11
+ <div class="hrl-prose"><%= simple_format(@policy.body) %></div>
12
+ </section>
13
+
14
+ <% if @policy.acknowledgement_required %>
15
+ <section class="hrl-card">
16
+ <% if @policy.acknowledged_by?(hr_current_user) %>
17
+ <p class="hrl-muted">You acknowledged this version.</p>
18
+ <% else %>
19
+ <%= button_to "I have read this", hr_lite.acknowledge_policy_path(@policy),
20
+ class: "hrl-btn hrl-btn--primary" %>
21
+ <% end %>
22
+ </section>
23
+ <% end %>
data/config/routes.rb CHANGED
@@ -20,6 +20,16 @@ HrLite::Engine.routes.draw do
20
20
  member { post :cancel }
21
21
  end
22
22
  resources :approvals, only: :index
23
+ resources :expenses, only: %i[index new create] do
24
+ member { post :cancel }
25
+ end
26
+ resources :hr_requests, only: %i[index show new create] do
27
+ member { post :cancel }
28
+ end
29
+ resources :policies, only: %i[index show] do
30
+ member { post :acknowledge }
31
+ end
32
+ resources :benefits, only: :index
23
33
  get "team", to: "team#show"
24
34
  get "org", to: "org#show"
25
35
  resources :holidays, only: :index
@@ -51,6 +61,19 @@ HrLite::Engine.routes.draw do
51
61
  resources :assignments, only: %i[create destroy], controller: "role_assignments"
52
62
  end
53
63
  resources :statutory_rate_cards, only: %i[index new create edit update]
64
+ resources :reports, only: %i[index show]
65
+ resources :expenses, only: :index do
66
+ member { post :approve; post :reject; post :reimburse }
67
+ end
68
+ resources :hr_requests, only: %i[index show] do
69
+ member { post :assign; post :resolve }
70
+ end
71
+ resources :assets, only: %i[index new create] do
72
+ member { post :assign; post :take_back }
73
+ end
74
+ resources :checklists, only: :index do
75
+ member { post :complete; post :reopen }
76
+ end
54
77
  resources :leave_types, except: :show
55
78
  resources :office_locations, except: :show
56
79
  resources :holidays, only: %i[index create update destroy] do
@@ -0,0 +1,76 @@
1
+ class CreateHrLiteAssetsAndOnboarding < ActiveRecord::Migration[8.1]
2
+ # The two ends of employment that were still manual: the laptop somebody is
3
+ # given on day one, and the checklist nobody remembers on their last.
4
+ #
5
+ # An asset that is never returned is a cost nobody notices, and access that
6
+ # is never revoked is a security problem that outlives the employment.
7
+ def change
8
+ create_table :hr_lite_assets do |t|
9
+ t.string :name, null: false
10
+ # laptop | phone | sim | id_card | accessory | vehicle | other
11
+ t.string :category, null: false, default: "other"
12
+ t.string :serial_number
13
+ t.date :purchased_on
14
+ # available | assigned | returned | lost | damaged | retired
15
+ t.string :status, null: false, default: "available"
16
+ t.text :notes
17
+ t.timestamps
18
+ end
19
+ add_index :hr_lite_assets, :status
20
+ add_index :hr_lite_assets, :serial_number, unique: true,
21
+ where: "serial_number IS NOT NULL"
22
+ add_check_constraint :hr_lite_assets,
23
+ "status IN ('available', 'assigned', 'returned', 'lost', 'damaged', 'retired')",
24
+ name: "hr_lite_assets_status_check"
25
+
26
+ # Append-only: who had it, when, and what state it came back in. Editing
27
+ # an assignment away is how a missing laptop stops being anybody's.
28
+ create_table :hr_lite_asset_assignments do |t|
29
+ t.references :asset, null: false, index: true,
30
+ foreign_key: { to_table: :hr_lite_assets, on_delete: :cascade }
31
+ t.bigint :user_id, null: false
32
+ t.date :assigned_on, null: false
33
+ t.date :returned_on
34
+ t.string :condition_note
35
+ t.bigint :assigned_by_id
36
+ t.timestamps
37
+ end
38
+ add_index :hr_lite_asset_assignments, %i[user_id returned_on]
39
+ # One live holder at a time — two open assignments means the asset is in
40
+ # two places, which it is not.
41
+ add_index :hr_lite_asset_assignments, :asset_id,
42
+ unique: true, where: "returned_on IS NULL",
43
+ name: "index_hr_lite_asset_assignments_one_live_per_asset"
44
+
45
+ create_table :hr_lite_checklist_templates do |t|
46
+ # onboarding | offboarding
47
+ t.string :kind, null: false
48
+ t.string :title, null: false
49
+ t.integer :position, null: false, default: 0
50
+ # Which permission the person who ticks it should hold — IT hands back
51
+ # a laptop, HR collects a document, and neither should be the other.
52
+ t.string :owner_permission
53
+ # Days from the joining or leaving date this is due.
54
+ t.integer :due_offset_days, null: false, default: 0
55
+ t.boolean :active, null: false, default: true
56
+ t.timestamps
57
+ end
58
+ add_index :hr_lite_checklist_templates, %i[kind position]
59
+ add_check_constraint :hr_lite_checklist_templates, "kind IN ('onboarding', 'offboarding')",
60
+ name: "hr_lite_checklist_templates_kind_check"
61
+
62
+ create_table :hr_lite_checklist_items do |t|
63
+ t.bigint :user_id, null: false
64
+ t.references :template, index: true,
65
+ foreign_key: { to_table: :hr_lite_checklist_templates, on_delete: :nullify }
66
+ t.string :kind, null: false
67
+ t.string :title, null: false
68
+ t.date :due_on
69
+ t.datetime :completed_at
70
+ t.bigint :completed_by_id
71
+ t.string :note
72
+ t.timestamps
73
+ end
74
+ add_index :hr_lite_checklist_items, %i[user_id kind completed_at]
75
+ end
76
+ end
@@ -56,6 +56,9 @@ module HrLite
56
56
  "hr_request.manage" => [ "Help desk", "Answer and assign HR requests" ],
57
57
  "policy.view" => [ "Policies", "Read published policies" ],
58
58
  "policy.manage" => [ "Policies", "Write, publish and re-issue policies" ],
59
+ "asset.view" => [ "Assets", "See company assets and who holds them" ],
60
+ "asset.manage" => [ "Assets", "Assign and take back company assets" ],
61
+ "checklist.manage" => [ "Lifecycle", "Work through joining and leaving checklists" ],
59
62
  "settings.manage" => [ "Administration", "Change company settings, offices and policy" ],
60
63
  "audit.view" => [ "Administration", "Read the audit trail" ],
61
64
  "audit.view_money" => [ "Administration", "Read audit rows about pay, appraisals and promotions" ],
@@ -19,7 +19,7 @@ module HrLite
19
19
  "profile.view" => "self", "appraisal.view" => "self",
20
20
  "resignation.view" => "self", "document.view" => "self", "tax.view" => "self",
21
21
  "expense.claim" => "self", "benefit.view" => "self",
22
- "hr_request.raise" => "self", "policy.view" => "all"
22
+ "hr_request.raise" => "self", "policy.view" => "all", "asset.view" => "self"
23
23
  }
24
24
  },
25
25
  Role::MANAGER => {
@@ -40,7 +40,8 @@ module HrLite
40
40
  "appraisal.view" => "self", "resignation.view" => "all",
41
41
  "document.view" => "all", "tax.view" => "self",
42
42
  "expense.claim" => "self", "benefit.view" => "all", "benefit.manage" => "all",
43
- "hr_request.raise" => "self", "hr_request.manage" => "all", "policy.view" => "all"
43
+ "hr_request.raise" => "self", "hr_request.manage" => "all", "policy.view" => "all",
44
+ "asset.view" => "all", "asset.manage" => "all", "checklist.manage" => "all"
44
45
  }
45
46
  },
46
47
  Role::FINANCE => {
@@ -65,7 +66,8 @@ module HrLite
65
66
  "resignation.view" => "all", "resignation.manage" => "all",
66
67
  "settings.manage" => "all", "audit.view" => "all", "payroll.view" => "self",
67
68
  "document.view" => "all", "expense.approve" => "all", "benefit.manage" => "all",
68
- "hr_request.manage" => "all", "policy.view" => "all", "policy.manage" => "all"
69
+ "hr_request.manage" => "all", "policy.view" => "all", "policy.manage" => "all",
70
+ "asset.view" => "all", "asset.manage" => "all", "checklist.manage" => "all"
69
71
  }
70
72
  },
71
73
  Role::SUPER_ADMIN => {
@@ -1,3 +1,3 @@
1
1
  module HrLite
2
- VERSION = "0.12.0"
2
+ VERSION = "0.14.0"
3
3
  end
@@ -5,7 +5,8 @@ namespace :hr_lite do
5
5
  require "hr_lite/role_seeds"
6
6
  require "hr_lite/statutory_seeds"
7
7
  created = HrLite::Seeds.run! + HrLite::RoleSeeds.call + HrLite::StatutorySeeds.call +
8
- HrLite::SalaryComponent.seed_defaults!
8
+ HrLite::SalaryComponent.seed_defaults! +
9
+ HrLite::ChecklistTemplate.seed_defaults!
9
10
  puts created.any? ? "hr_lite:seed created: #{created.join(', ')}" : "hr_lite:seed — nothing to do"
10
11
  end
11
12
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hr_lite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - kshitiz sinha
@@ -56,13 +56,17 @@ files:
56
56
  - app/assets/stylesheets/hr_lite/application.css
57
57
  - app/assets/stylesheets/hr_lite/hr_lite.css
58
58
  - app/controllers/hr_lite/admin/appraisals_controller.rb
59
+ - app/controllers/hr_lite/admin/assets_controller.rb
59
60
  - app/controllers/hr_lite/admin/attendances_controller.rb
60
61
  - app/controllers/hr_lite/admin/audit_logs_controller.rb
61
62
  - app/controllers/hr_lite/admin/base_controller.rb
63
+ - app/controllers/hr_lite/admin/checklists_controller.rb
62
64
  - app/controllers/hr_lite/admin/comp_off_requests_controller.rb
63
65
  - app/controllers/hr_lite/admin/designation_changes_controller.rb
64
66
  - app/controllers/hr_lite/admin/employees_controller.rb
67
+ - app/controllers/hr_lite/admin/expenses_controller.rb
65
68
  - app/controllers/hr_lite/admin/holidays_controller.rb
69
+ - app/controllers/hr_lite/admin/hr_requests_controller.rb
66
70
  - app/controllers/hr_lite/admin/leadership_controller.rb
67
71
  - app/controllers/hr_lite/admin/leave_balances_controller.rb
68
72
  - app/controllers/hr_lite/admin/leave_requests_controller.rb
@@ -71,6 +75,7 @@ files:
71
75
  - app/controllers/hr_lite/admin/overview_controller.rb
72
76
  - app/controllers/hr_lite/admin/payroll_runs_controller.rb
73
77
  - app/controllers/hr_lite/admin/regularization_requests_controller.rb
78
+ - app/controllers/hr_lite/admin/reports_controller.rb
74
79
  - app/controllers/hr_lite/admin/resignations_controller.rb
75
80
  - app/controllers/hr_lite/admin/role_assignments_controller.rb
76
81
  - app/controllers/hr_lite/admin/roles_controller.rb
@@ -83,16 +88,20 @@ files:
83
88
  - app/controllers/hr_lite/appraisals_controller.rb
84
89
  - app/controllers/hr_lite/approvals_controller.rb
85
90
  - app/controllers/hr_lite/attendance_controller.rb
91
+ - app/controllers/hr_lite/benefits_controller.rb
86
92
  - app/controllers/hr_lite/calendar_controller.rb
87
93
  - app/controllers/hr_lite/career_controller.rb
88
94
  - app/controllers/hr_lite/comp_off_requests_controller.rb
89
95
  - app/controllers/hr_lite/employee_profiles_controller.rb
96
+ - app/controllers/hr_lite/expenses_controller.rb
90
97
  - app/controllers/hr_lite/holidays_controller.rb
91
98
  - app/controllers/hr_lite/home_controller.rb
99
+ - app/controllers/hr_lite/hr_requests_controller.rb
92
100
  - app/controllers/hr_lite/kudos_controller.rb
93
101
  - app/controllers/hr_lite/leave_balances_controller.rb
94
102
  - app/controllers/hr_lite/leave_requests_controller.rb
95
103
  - app/controllers/hr_lite/org_controller.rb
104
+ - app/controllers/hr_lite/policies_controller.rb
96
105
  - app/controllers/hr_lite/regularization_requests_controller.rb
97
106
  - app/controllers/hr_lite/resignations_controller.rb
98
107
  - app/controllers/hr_lite/salary_slips_controller.rb
@@ -116,10 +125,14 @@ files:
116
125
  - app/models/hr_lite/approval_delegation.rb
117
126
  - app/models/hr_lite/approval_flow.rb
118
127
  - app/models/hr_lite/approval_step.rb
128
+ - app/models/hr_lite/asset.rb
129
+ - app/models/hr_lite/asset_assignment.rb
119
130
  - app/models/hr_lite/attendance_record.rb
120
131
  - app/models/hr_lite/audit_log.rb
121
132
  - app/models/hr_lite/benefit.rb
122
133
  - app/models/hr_lite/benefit_enrolment.rb
134
+ - app/models/hr_lite/checklist_item.rb
135
+ - app/models/hr_lite/checklist_template.rb
123
136
  - app/models/hr_lite/comp_off_request.rb
124
137
  - app/models/hr_lite/designation_change.rb
125
138
  - app/models/hr_lite/document.rb
@@ -173,9 +186,12 @@ files:
173
186
  - app/views/hr_lite/admin/appraisals/_form.html.erb
174
187
  - app/views/hr_lite/admin/appraisals/edit.html.erb
175
188
  - app/views/hr_lite/admin/appraisals/new.html.erb
189
+ - app/views/hr_lite/admin/assets/index.html.erb
190
+ - app/views/hr_lite/admin/assets/new.html.erb
176
191
  - app/views/hr_lite/admin/attendances/index.html.erb
177
192
  - app/views/hr_lite/admin/attendances/show.html.erb
178
193
  - app/views/hr_lite/admin/audit_logs/index.html.erb
194
+ - app/views/hr_lite/admin/checklists/index.html.erb
179
195
  - app/views/hr_lite/admin/comp_off_requests/index.html.erb
180
196
  - app/views/hr_lite/admin/comp_off_requests/show.html.erb
181
197
  - app/views/hr_lite/admin/designation_changes/new.html.erb
@@ -184,7 +200,10 @@ files:
184
200
  - app/views/hr_lite/admin/employees/index.html.erb
185
201
  - app/views/hr_lite/admin/employees/new.html.erb
186
202
  - app/views/hr_lite/admin/employees/show.html.erb
203
+ - app/views/hr_lite/admin/expenses/index.html.erb
187
204
  - app/views/hr_lite/admin/holidays/index.html.erb
205
+ - app/views/hr_lite/admin/hr_requests/index.html.erb
206
+ - app/views/hr_lite/admin/hr_requests/show.html.erb
188
207
  - app/views/hr_lite/admin/leave_balances/index.html.erb
189
208
  - app/views/hr_lite/admin/leave_requests/index.html.erb
190
209
  - app/views/hr_lite/admin/leave_requests/show.html.erb
@@ -202,6 +221,8 @@ files:
202
221
  - app/views/hr_lite/admin/payroll_runs/show.html.erb
203
222
  - app/views/hr_lite/admin/regularization_requests/index.html.erb
204
223
  - app/views/hr_lite/admin/regularization_requests/show.html.erb
224
+ - app/views/hr_lite/admin/reports/index.html.erb
225
+ - app/views/hr_lite/admin/reports/show.html.erb
205
226
  - app/views/hr_lite/admin/roles/_form.html.erb
206
227
  - app/views/hr_lite/admin/roles/edit.html.erb
207
228
  - app/views/hr_lite/admin/roles/index.html.erb
@@ -222,6 +243,7 @@ files:
222
243
  - app/views/hr_lite/attendance/_month_grid.html.erb
223
244
  - app/views/hr_lite/attendance/_punch_card.html.erb
224
245
  - app/views/hr_lite/attendance/show.html.erb
246
+ - app/views/hr_lite/benefits/index.html.erb
225
247
  - app/views/hr_lite/calendar/show.html.erb
226
248
  - app/views/hr_lite/career/show.html.erb
227
249
  - app/views/hr_lite/comp_off_requests/index.html.erb
@@ -231,9 +253,14 @@ files:
231
253
  - app/views/hr_lite/event_mailer/event.text.erb
232
254
  - app/views/hr_lite/event_mailer/leadership.html.erb
233
255
  - app/views/hr_lite/event_mailer/leadership.text.erb
256
+ - app/views/hr_lite/expenses/index.html.erb
257
+ - app/views/hr_lite/expenses/new.html.erb
234
258
  - app/views/hr_lite/holidays/_next_holiday.html.erb
235
259
  - app/views/hr_lite/holidays/index.html.erb
236
260
  - app/views/hr_lite/home/index.html.erb
261
+ - app/views/hr_lite/hr_requests/index.html.erb
262
+ - app/views/hr_lite/hr_requests/new.html.erb
263
+ - app/views/hr_lite/hr_requests/show.html.erb
237
264
  - app/views/hr_lite/kudos/_kudo.html.erb
238
265
  - app/views/hr_lite/kudos/index.html.erb
239
266
  - app/views/hr_lite/leave_balances/index.html.erb
@@ -243,6 +270,8 @@ files:
243
270
  - app/views/hr_lite/leave_requests/show.html.erb
244
271
  - app/views/hr_lite/org/_node.html.erb
245
272
  - app/views/hr_lite/org/show.html.erb
273
+ - app/views/hr_lite/policies/index.html.erb
274
+ - app/views/hr_lite/policies/show.html.erb
246
275
  - app/views/hr_lite/regularization_requests/index.html.erb
247
276
  - app/views/hr_lite/regularization_requests/new.html.erb
248
277
  - app/views/hr_lite/resignations/show.html.erb
@@ -291,6 +320,7 @@ files:
291
320
  - db/migrate/20260818002627_create_hr_lite_payroll_components_and_loans.rb
292
321
  - db/migrate/20260818003616_create_hr_lite_documents_and_declarations.rb
293
322
  - db/migrate/20260818004707_create_hr_lite_employee_services.rb
323
+ - db/migrate/20260818010401_create_hr_lite_assets_and_onboarding.rb
294
324
  - lib/generators/hr_lite/install/install_generator.rb
295
325
  - lib/generators/hr_lite/install/templates/AFTER_INSTALL
296
326
  - lib/generators/hr_lite/install/templates/initializer.rb