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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +67 -1
- data/app/assets/stylesheets/hr_lite/hr_lite.css +6 -0
- data/app/controllers/hr_lite/admin/assets_controller.rb +53 -0
- data/app/controllers/hr_lite/admin/checklists_controller.rb +32 -0
- data/app/controllers/hr_lite/admin/employees_controller.rb +4 -0
- data/app/controllers/hr_lite/admin/expenses_controller.rb +45 -0
- data/app/controllers/hr_lite/admin/hr_requests_controller.rb +38 -0
- data/app/controllers/hr_lite/admin/reports_controller.rb +151 -0
- data/app/controllers/hr_lite/benefits_controller.rb +17 -0
- data/app/controllers/hr_lite/expenses_controller.rb +50 -0
- data/app/controllers/hr_lite/hr_requests_controller.rb +43 -0
- data/app/controllers/hr_lite/policies_controller.rb +26 -0
- data/app/helpers/hr_lite/application_helper.rb +10 -1
- data/app/models/hr_lite/asset.rb +57 -0
- data/app/models/hr_lite/asset_assignment.rb +24 -0
- data/app/models/hr_lite/checklist_item.rb +43 -0
- data/app/models/hr_lite/checklist_template.rb +50 -0
- data/app/models/hr_lite/employee_profile.rb +13 -0
- data/app/views/hr_lite/admin/assets/index.html.erb +59 -0
- data/app/views/hr_lite/admin/assets/new.html.erb +23 -0
- data/app/views/hr_lite/admin/checklists/index.html.erb +50 -0
- data/app/views/hr_lite/admin/expenses/index.html.erb +54 -0
- data/app/views/hr_lite/admin/hr_requests/index.html.erb +41 -0
- data/app/views/hr_lite/admin/hr_requests/show.html.erb +47 -0
- data/app/views/hr_lite/admin/reports/index.html.erb +40 -0
- data/app/views/hr_lite/admin/reports/show.html.erb +32 -0
- data/app/views/hr_lite/benefits/index.html.erb +33 -0
- data/app/views/hr_lite/expenses/index.html.erb +68 -0
- data/app/views/hr_lite/expenses/new.html.erb +38 -0
- data/app/views/hr_lite/hr_requests/index.html.erb +39 -0
- data/app/views/hr_lite/hr_requests/new.html.erb +28 -0
- data/app/views/hr_lite/hr_requests/show.html.erb +25 -0
- data/app/views/hr_lite/policies/index.html.erb +34 -0
- data/app/views/hr_lite/policies/show.html.erb +23 -0
- data/config/routes.rb +23 -0
- data/db/migrate/20260818010401_create_hr_lite_assets_and_onboarding.rb +76 -0
- data/lib/hr_lite/permissions.rb +3 -0
- data/lib/hr_lite/role_seeds.rb +5 -3
- data/lib/hr_lite/version.rb +1 -1
- data/lib/tasks/hr_lite_tasks.rake +2 -1
- 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
|
data/lib/hr_lite/permissions.rb
CHANGED
|
@@ -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" ],
|
data/lib/hr_lite/role_seeds.rb
CHANGED
|
@@ -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 => {
|
data/lib/hr_lite/version.rb
CHANGED
|
@@ -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.
|
|
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
|