[UPDT] HELPDESK: Added load faqs to faq view

This commit is contained in:
Horilla
2025-05-21 11:16:47 +05:30
parent 3479708a70
commit 3164464f49
13 changed files with 1769 additions and 130 deletions

View File

@@ -261,8 +261,8 @@ class FAQCategory(HorillaModel):
class FAQ(HorillaModel):
question = models.CharField(max_length=255)
answer = models.TextField(max_length=255)
tags = models.ManyToManyField(Tags)
answer = models.TextField()
tags = models.ManyToManyField(Tags, blank=True)
category = models.ForeignKey(FAQCategory, on_delete=models.PROTECT)
company_id = models.ForeignKey(
Company, null=True, editable=False, on_delete=models.PROTECT

View File

@@ -47,6 +47,39 @@
</select>
{% endcomment %}
</div>
<div class="oh-accordion-meta__actions" onclick="event.stopPropagation()">
<div class="oh-dropdown" x-data="{open: false}">
<button
class="oh-btn oh-stop-prop oh-accordion-meta__btn"
@click="open = !open"
@click.outside="open = false"
>
{% trans "Actions" %}
<ion-icon
class="ms-2 oh-accordion-meta__btn-icon"
name="caret-down-outline"
></ion-icon>
</button>
<div
class="oh-dropdown__menu oh-dropdown__menu--right"
x-show="open"
>
<ul class="oh-dropdown__items">
<li class="oh-dropdown__item" role="button">
<a
class="oh-dropdown__link"
hx-get="{% url 'load-faqs' %}"
hx-target="#objectCreateModalTarget"
data-target="#objectCreateModal"
data-toggle="oh-modal-toggle"
>
{% trans "Load Faqs" %}
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="oh-main__titlebar oh-main__titlebar--right">
<form
method="post"
@@ -66,7 +99,7 @@
</form>
{% if perms.helpdesk.add_faqcategory %}
<div class="oh-main__titlebar-button-container">
<div class="oh-btn-group ml-2">
<div class="oh-btn-group m-0">
<div class="oh-dropdown" x-data="{open: false}">
<button
class="oh-btn oh-btn--secondary oh-btn--shadow"

View File

@@ -1,62 +1,92 @@
{% load i18n static %}
{% include 'filter_tags.html' %}
{% load i18n static %} {% include 'filter_tags.html' %}
<div class="oh-card mb-4">
<div class="oh-faq">
<ul class="oh-faq__items">
{% for faq in faqs %}
<li class="oh-faq__item fade-me-out" id="faqItem{{faq.id}}">
<div class="oh-faq__item-header icon-inner" onclick="show_answer(this)">
<div class="oh-faq__item-header__left icon-inner">
<span class="oh-faq__item-title icon-inner"> {{faq.question}} </span>
<ul class="oh-faq__tags">
{% for tag in faq.tags.all %}
<li class="oh-faq__tag text-light" style="background:{{tag.color}};">{{tag|capfirst}}</li>
{% endfor %}
</ul>
</div>
<div class="oh-faq__item-header__right">
{% if perms.helpdesk.change_faq %}
<button class="oh-btn oh-btn--sq oh-btn--transparent" title="{% trans 'Edit' %}"
data-toggle="oh-modal-toggle" data-target="#objectCreateModal"
hx-get="{% url 'faq-update' faq.id %}" hx-target="#objectCreateModalTarget"
onclick='event.stopPropagation()'>
<ion-icon name="create-outline"></ion-icon>
</button>
{% endif %}
{% if perms.helpdesk.delete_faq %}
<form hx-confirm="{% trans 'Are you sure you want to delete this FAQ?' %}"
hx-target="#faqItem{{faq.id}}" hx-post="{% url 'faq-delete' faq.id %}" class="w-50"
hx-on:click="event.stopPropagation();"
hx-on-htmx-after-request="setTimeout(() => {reloadMessage(this);},100);"
hx-swap="outerHTML swap:.5s">
{% csrf_token %}
<button type="submit" class="oh-btn oh-btn--sq oh-btn--danger-text oh-btn--transparent">
<ion-icon class="me-1 md hydrated" name="trash-outline" role="img"
aria-label="trash outline"></ion-icon>
</button>
</form>
{% endif %}
</div>
</div>
<div class="oh-faq__item-body">{{faq.answer}}</div>
</li>
{% empty %}
<div style="
height: 70vh;
display: flex;
align-items: center;
justify-content: center;
position:relative;
">
<div class="oh-404">
<img style="display: block; width: 150px; height: 150px; margin: 10px auto"
src="{% static 'images/ui/faq.png' %}" class="mb-4" alt="" />
<h3 style="font-size: 20px" class="oh-404__subtitle">
{% trans "There are no FAQs at the moment." %}
</h3>
</div>
</div>
{% endfor %}
</ul>
</div>
<div class="oh-faq">
<ul class="oh-faq__items">
{% for faq in faqs %}
<li class="oh-faq__item fade-me-out" id="faqItem{{faq.id}}">
<div
class="oh-faq__item-header icon-inner"
onclick="show_answer(this)"
>
<div class="oh-faq__item-header__left icon-inner">
<span class="oh-faq__item-title icon-inner">
{{faq.question}}
</span>
<ul class="oh-faq__tags">
{% for tag in faq.tags.all %}
<li
class="oh-faq__tag text-light"
style="background:{{tag.color}};"
>
{{tag|capfirst}}
</li>
{% endfor %}
</ul>
</div>
<div class="oh-faq__item-header__right">
{% if perms.helpdesk.change_faq %}
<button
class="oh-btn oh-btn--sq oh-btn--transparent"
title="{% trans 'Edit' %}"
data-toggle="oh-modal-toggle"
data-target="#objectCreateModal"
hx-get="{% url 'faq-update' faq.id %}"
hx-target="#objectCreateModalTarget"
onclick="event.stopPropagation()"
>
<ion-icon name="create-outline"></ion-icon>
</button>
{% endif %}
{% if perms.helpdesk.delete_faq %}
<form
hx-confirm="{% trans 'Are you sure you want to delete this FAQ?' %}"
hx-target="#faqItem{{faq.id}}"
hx-post="{% url 'faq-delete' faq.id %}"
class="w-50"
hx-on:click="event.stopPropagation();"
hx-on-htmx-after-request="setTimeout(() => {reloadMessage(this);},100);"
hx-swap="outerHTML swap:.5s"
>
{% csrf_token %}
<button
type="submit"
class="oh-btn oh-btn--sq oh-btn--danger-text oh-btn--transparent"
>
<ion-icon
class="me-1 md hydrated"
name="trash-outline"
role="img"
aria-label="trash outline"
></ion-icon>
</button>
</form>
{% endif %}
</div>
</div>
<div class="oh-faq__item-body">{{faq.answer}}</div>
</li>
{% empty %}
<div
style="
height: 70vh;
display: flex;
align-items: center;
justify-content: center;
position: relative;
"
>
<div class="oh-404">
<img
src="{% static 'images/ui/faq.png' %}"
class="mb-4 oh-404__image"
alt=""
/>
<h3 style="font-size: 20px" class="oh-404__subtitle">
{% trans "There are no FAQs at the moment." %}
</h3>
</div>
</div>
{% endfor %}
</ul>
</div>
</div>

View File

@@ -1,75 +1,82 @@
{% extends 'index.html' %} {% block content %} {% load static %} {% load i18n %}
<div id="faqContainer">
{% include 'helpdesk/faq/faq_nav.html'%}
<div class="oh-wrapper">
<div id="faqList">{% include "helpdesk/faq/faq_list.html" %}</div>
</div>
{% include 'helpdesk/faq/faq_nav.html'%}
<div class="oh-wrapper">
{% if faqs %}
<div id="faqList">
{% include "helpdesk/faq/faq_list.html" %}
</div>
{% endif %}
</div>
<div
class="oh-modal"
id="faqCreate"
role="dialog"
aria-labelledby="faqCreate"
aria-hidden="true"
></div>
<div class="oh-modal" id="faqCreate" role="dialog" aria-labelledby="faqCreate" aria-hidden="true"></div>
<div id="addTagTargetModal">
<div id="addTagTarget"></div>
</div>
<div id="addTagTargetModal">
<div id="addTagTarget">
</div>
</div>
<div class="oh-modal" id="addTagModal" role="dialog" aria-labelledby="editDialogModal" aria-hidden="true"
style="z-index: 1100;">
<div class="oh-modal__dialog">
<div class="oh-modal__dialog-header">
<h2 class="oh-modal__dialog-title" id="editTitle">
{% trans "Create Tag" %}
</h2>
<button class="oh-modal__close--custom"
onclick="$(this).parents().closest('.oh-modal--show').toggleClass('oh-modal--show')" aria-label="Close">
<ion-icon name="close-outline"></ion-icon>
</button>
</div>
<div class="oh-modal__dialog-body" id="editTarget">
<form {% comment %} hx-post="{% url 'ticket-create-tag' %}" hx-target="#addTagTarget" method="post"
hx-encoding="multipart/form-data" {% endcomment %} id="addTagForm">
{% csrf_token %}
{{create_tag_f.as_p}}
{% comment %} <button type="submit" class="oh-btn oh-btn--secondary mt-2 mr-0 oh-btn--w-100-resp">
{% trans "Save" %}
</button> {% endcomment %}
</form>
</div>
</div>
</div>
<div
class="oh-modal"
id="addTagModal"
role="dialog"
aria-labelledby="editDialogModal"
aria-hidden="true"
style="z-index: 1100"
>
<div class="oh-modal__dialog">
<div class="oh-modal__dialog-header">
<h2 class="oh-modal__dialog-title" id="editTitle">
{% trans "Create Tag" %}
</h2>
<button
class="oh-modal__close--custom"
onclick="$(this).parents().closest('.oh-modal--show').toggleClass('oh-modal--show')"
aria-label="Close"
>
<ion-icon name="close-outline"></ion-icon>
</button>
</div>
<div class="oh-modal__dialog-body" id="editTarget">
<form id="addTagForm">
{% csrf_token %} {{create_tag_f.as_p}}
</form>
</div>
</div>
</div>
</div>
<script>
function updateTag(event) {
const selectedValues = Array.from(event.selectedOptions).map(option => option.value);
if (selectedValues.includes('create_new_tag')) {
$("#addTagModal").addClass("oh-modal--show");
}
}
function updateTag(event) {
const selectedValues = Array.from(event.selectedOptions).map(
(option) => option.value
);
if (selectedValues.includes("create_new_tag")) {
$("#addTagModal").addClass("oh-modal--show");
}
}
$("#addTagForm").on('submit', function () {
event.preventDefault();
$.ajax({
type: 'POST',
url: '/helpdesk/ticket-create-tag',
data: $(this).serialize(),
success: function (response) {
var newOption = $("<option selected></option>")
.val(response.tag_id)
.text(response.title);
$("#addTagForm").on("submit", function () {
event.preventDefault();
$.ajax({
type: "POST",
url: "/helpdesk/ticket-create-tag",
data: $(this).serialize(),
success: function (response) {
var newOption = $("<option selected></option>")
.val(response.tag_id)
.text(response.title);
$("#id_tags option[value='create_new_tag']").before(newOption);
$("#id_tags option[value='create_new_tag']").prop("selected", false);
$("#addTagModal").removeClass("oh-modal--show");
$('#addTagForm').find('input[name="title"]').val('');
},
})
})
$("#id_tags option[value='create_new_tag']").before(newOption);
$("#id_tags option[value='create_new_tag']").prop(
"selected",
false
);
$("#addTagModal").removeClass("oh-modal--show");
$("#addTagForm").find('input[name="title"]').val("");
},
});
});
</script>
{% endblock %}

View File

@@ -4,7 +4,20 @@
{% include 'helpdesk/faq/faq_category_nav.html'%}
<div class="oh-wrapper">
<div id="faqCategoryList">
{% include "helpdesk/faq/faq_category_list.html" %}
{% if faq_categories %}
{% include "helpdesk/faq/faq_category_list.html" %}
{% else %}
<div class="oh-404">
<img
src="{% static 'images/ui/faq.png' %}"
class="mb-4 oh-404__image"
alt=""
/>
<h3 style="font-size: 20px" class="oh-404__subtitle">
{% trans "There are no FAQs at the moment." %}
</h3>
</div>
{% endif %}
</div>
</div>

View File

@@ -0,0 +1,111 @@
{% load static i18n %}
<div class="oh-modal__dialog-header">
<span class="oh-modal__dialog-title">{% trans "Load FAQs" %}</span>
<button class="oh-modal__close" aria-label="Close">
<ion-icon name="close-outline"></ion-icon>
</button>
</div>
<div class="oh-modal__dialog-body">
<div class="oh-card">
<form hx-post="{{request.path}}" hx-target="#objectCreateModalTarget">
<div class="oh-checkpoint-badge text-success mb-2 selectFaqs"
style="cursor: pointer"
>
{% trans "Select All Faqs" %}
</div>
<div class="oh-checkpoint-badge text-secondary mb-2 unSelectFaqs"
style="cursor: pointer"
>
{% trans "Unselect All Faqs" %}
</div>
{% csrf_token %}
{% for cat_id, category in catagories.items %}
<div class="oh-accordion">
<div class="oh-accordion-header">{{category}}</div>
<div
class="oh-accordion-body"
style="
max-height: 500px; overflow-y: auto;
"
>
<span class="d-flex flex-row-reverse mb-2 me-3">
<input
type="checkbox"
title="{% trans 'Select All' %}"
class="custom-radio-checkmark my-2 selectAll"
/>
</span>
<div
class="oh-layout--grid-3 faqs-list"
style="
grid-template-columns: repeat(auto-fill, minmax(48%, 1fr));
"
>
{% for faq in faqs %}
{% if faq.fields.category == cat_id %}
<div class="oh-card rounded">
<div class="oh-kanban-card__details">
<div class="d-flex-justify-between mb-2">
<span class="oh-kanban-card__title"
>{{faq.fields.question}}</span
>
<span>
<input
name="{{faq.pk}}"
type="checkbox"
class="custom-radio-checkmark"
/>
</span>
</div>
<div
class="oh-kanban-card__subtitle truncated-text"
style="
height: 70px;
white-space: wrap;
"
>
{{faq.fields.answer}}
</div>
<ul class="oh-faq__tags m-0 flex-wrap">
{% for tag in faq.tags %}
<li class="oh-faq__tag {% cycle 'bg-primary' 'bg-danger' 'bg-warning' %}">
<span class="oh-faq__tag-text text-light">{{tag}}</span>
</li>
{% endfor %}
</ul>
</div>
</div>
{% endif %}
{% endfor %}
</div>
</div>
</div>
{% endfor %}
<div class="d-flex flex-row-reverse">
<button
type="submit"
class="oh-btn oh-btn--secondary mt-2 mr-0 pl-4 pr-5 oh-btn--w-100-resp"
>
{% trans "Add" %}
</button>
</div>
</form>
</div>
</div>
<script>
$(document).ready(function () {
$(".selectAll").click(function () {
var isChecked = $(this).prop("checked");
$(this).parent().siblings(".faqs-list").find(".custom-radio-checkmark").prop("checked", isChecked);
});
$(".selectFaqs").click(function () {
$(".selectAll").prop("checked", false);
$(".selectAll").click();
});
$(".unSelectFaqs").click(function () {
$(".selectAll").prop("checked", true);
$(".selectAll").click();
});
});
</script>

View File

@@ -115,7 +115,7 @@
</div>
<div class = "oh-modal__button-container text-center mt-3" onclick="event.stopPropagation()">
<div class="oh-btn-group" style="border:none">
{% if ticket|calim_request_exists:request.user.employee_get or request.user.employee_get in ticket.assigned_to.all %}
{% if ticket|claim_request_exists:request.user.employee_get or request.user.employee_get in ticket.assigned_to.all %}
<a
href="#"
class="oh-btn oh-btn--info w-100 oh-btn--disabled"

View File

@@ -6,8 +6,8 @@ from helpdesk.models import ClaimRequest, DepartmentManager
register = template.Library()
@register.filter(name="calim_request_exists")
def calim_request_exists(ticket, employee):
@register.filter(name="claim_request_exists")
def claim_request_exists(ticket, employee):
return ClaimRequest.objects.filter(ticket_id=ticket, employee_id=employee).exists()

View File

@@ -153,4 +153,5 @@ urlpatterns = [
views.delete_ticket_document,
name="delete-ticket-document",
),
path("load-faqs/", views.load_faqs, name="load-faqs"),
]

View File

@@ -6,7 +6,9 @@ from distutils.util import strtobool
from operator import itemgetter
from urllib.parse import parse_qs
from django.conf import settings
from django.contrib import messages
from django.core import serializers
from django.db.models import ProtectedError
from django.http import HttpResponse, HttpResponseRedirect, JsonResponse
from django.shortcuts import redirect, render
@@ -203,6 +205,10 @@ def faq_view(request, obj_id, **kwargs):
"""
faqs = FAQ.objects.filter(category=obj_id)
faq_category = FAQCategory.objects.filter(id=obj_id)
if not faq_category:
messages.info(request, _("No FAQ found for the given category."))
return redirect(faq_category_view)
context = {
"faqs": faqs,
"f": FAQFilter(request.GET),
@@ -1691,3 +1697,116 @@ def get_department_employees(request):
context = {"employees": employees}
employee_html = render_to_string("employee/employees_select.html", context)
return HttpResponse(employee_html)
@login_required
def load_faqs(request):
base_dir = settings.BASE_DIR
faq_file = os.path.join(base_dir, "load_data", "faq.json")
faq_category_file = os.path.join(base_dir, "load_data", "faq_category.json")
tags_file = os.path.join(base_dir, "load_data", "tags.json")
with open(faq_category_file, "r") as cats:
faq_category_raw = json.load(cats)
with open(tags_file, "r") as t:
tags_raw = json.load(t)
with open(faq_file, "r") as faqs:
faq_raw = json.load(faqs)
category_lookup = {item["pk"]: item["fields"]["title"] for item in faq_category_raw}
tag_lookup = {item["pk"]: item["fields"]["title"] for item in tags_raw}
if request.method == "POST":
selected_ids = [int(k) for k in request.POST.keys() if k.isdigit()]
selected_faqs = [a for a in faq_raw if a["pk"] in selected_ids]
category_needed = [
faq["fields"].get("category")
for faq in selected_faqs
if faq["fields"].get("category")
]
tags_needed_list = [
faq["fields"].get("tags")
for faq in selected_faqs
if faq["fields"].get("tags")
]
tags_needed = [item for item_list in tags_needed_list for item in item_list]
for category_json in faq_category_raw:
if category_json["pk"] in category_needed:
category_data = list(
serializers.deserialize("json", json.dumps([category_json]))
)[0].object
existing = FAQCategory.objects.filter(title=category_data.title).first()
if not existing:
category_data.pk = None
category_data.save()
for tag_json in tags_raw:
if tag_json["pk"] in tags_needed:
tag_data = list(
serializers.deserialize("json", json.dumps([tag_json]))
)[0].object
existing = Tags.objects.filter(title=tag_data.title).first()
if not existing:
tag_data.pk = None
tag_data.save()
for faq_json in selected_faqs:
deserialized = list(
serializers.deserialize("json", json.dumps([faq_json]))
)[0]
faq_obj = deserialized.object
category_pk = faq_json["fields"].get("category")
tag_pk = faq_json["fields"].get("tags")
category_title = category_lookup.get(category_pk)
tags_title = [tag_lookup.get(pk, "") for pk in tag_pk]
category = FAQCategory.objects.filter(title=category_title).first()
tags = Tags.objects.filter(title__in=tags_title)
faq_obj.category = category
if not FAQ.objects.filter(question=faq_obj.question).exists():
faq_obj.pk = None
faq_obj.save()
faq_obj.tags.set(tags)
messages.success(
request, f"Automation '{faq_obj.question}' created successfully."
)
else:
messages.warning(
request, f"Automation '{faq_obj.question}' already exists."
)
script = """
<script>
$('.oh-modal--show').removeClass('oh-modal--show');
$('#reloadMessagesButton').click();
$('.filterButton').click();
</script>
"""
return HttpResponse(script)
processed_faqs = []
for faq in faq_raw:
processed = faq.copy()
category_pk = faq["fields"].get("category")
tag_pk = faq["fields"].get("tags")
processed["tags"] = [tag_lookup.get(pk, "") for pk in tag_pk]
processed["category"] = category_lookup.get(category_pk, "")
processed_faqs.append(processed)
return render(
request,
"helpdesk/faq/load_faq.html",
{
"faqs": processed_faqs,
"catagories": category_lookup,
},
)

977
load_data/faq.json Normal file
View File

@@ -0,0 +1,977 @@
[
{
"model": "helpdesk.faq",
"pk": 1,
"fields": {
"created_at": "2025-05-05T11:31:40.360Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How to create an Employee?",
"answer": "Employee > Employees > Create > Fill out the form",
"category": 1,
"company_id": null,
"tags": [9]
}
},
{
"model": "helpdesk.faq",
"pk": 2,
"fields": {
"created_at": "2025-05-05T11:31:40.424Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How are document requests handled?",
"answer": "Admins or managers create document requests specifying details like title, format, and size. Employees upload documents directly from their profile.",
"category": 1,
"company_id": null,
"tags": [2, 9]
}
},
{
"model": "helpdesk.faq",
"pk": 3,
"fields": {
"created_at": "2025-05-05T11:31:40.474Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is the Payroll module in Horilla HRMS?",
"answer": "The Payroll module in Horilla HRMS enables businesses to manage employee allowances, deductions, taxes, and generate accurate payslips, ensuring streamlined and efficient payroll processes.",
"category": 2,
"company_id": null,
"tags": [10]
}
},
{
"model": "helpdesk.faq",
"pk": 4,
"fields": {
"created_at": "2025-05-05T11:31:40.529Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is the Allowance Management feature?",
"answer": "Allowance Management enables users to create and customize allowances, set eligibility conditions, and specify fixed or variable allowances. It simplifies targeting allowances to employee groups and ensures fairness.",
"category": 2,
"company_id": null,
"tags": [10]
}
},
{
"model": "helpdesk.faq",
"pk": 5,
"fields": {
"created_at": "2025-05-05T11:31:40.580Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How to create a leave request?",
"answer": "Click on My Leave Request > Select Leave Type > Fill out the form",
"category": 3,
"company_id": null,
"tags": []
}
},
{
"model": "helpdesk.faq",
"pk": 6,
"fields": {
"created_at": "2025-05-05T11:31:40.615Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How to export work records?",
"answer": "Click on Work Records inside Attendance, filter the data and click on Export button",
"category": 4,
"company_id": null,
"tags": [7, 13]
}
},
{
"model": "helpdesk.faq",
"pk": 7,
"fields": {
"created_at": "2025-05-05T11:31:40.666Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How to create a shift request?",
"answer": "go to employee --> shift request --> create --> Fill out the form",
"category": 1,
"company_id": null,
"tags": [9]
}
},
{
"model": "helpdesk.faq",
"pk": 8,
"fields": {
"created_at": "2025-05-05T11:31:40.718Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How to add stage managers to an existing stage?",
"answer": "Recruitment --> Stage 3 dot --> Edit --> Managers",
"category": 6,
"company_id": null,
"tags": [4, 5, 6]
}
},
{
"model": "helpdesk.faq",
"pk": 9,
"fields": {
"created_at": "2025-05-05T11:31:40.772Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is recruitment pipeline?",
"answer": "All the details about the recruitment, stage, and candidate can be controlled from here.",
"category": 6,
"company_id": null,
"tags": [4]
}
},
{
"model": "helpdesk.faq",
"pk": 10,
"fields": {
"created_at": "2025-05-05T11:31:40.826Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How to assign leave type to employee",
"answer": "Leave > Assigned Leave > Assign",
"category": 3,
"company_id": null,
"tags": [8]
}
},
{
"model": "helpdesk.faq",
"pk": 11,
"fields": {
"created_at": "2025-05-05T11:31:40.881Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How to create leave types",
"answer": "Leave > Leave Types > Create > Fill Out Form",
"category": 3,
"company_id": null,
"tags": [8]
}
},
{
"model": "helpdesk.faq",
"pk": 12,
"fields": {
"created_at": "2025-05-05T11:31:40.932Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is the Attendance Module used for?",
"answer": "The Attendance Module tracks and manages employee attendance, including check-ins, check-outs, and biometric integration.",
"category": 4,
"company_id": null,
"tags": [7]
}
},
{
"model": "helpdesk.faq",
"pk": 13,
"fields": {
"created_at": "2025-05-05T11:31:40.991Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is the Check-In/Check-Out system?",
"answer": "It records employee working hours by tracking their check-in and check-out times.",
"category": 4,
"company_id": null,
"tags": [7]
}
},
{
"model": "helpdesk.faq",
"pk": 14,
"fields": {
"created_at": "2025-05-05T11:31:41.066Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is the purpose of Biometric Devices?",
"answer": "Biometric devices, such as ZKTeco,Matrix COSEC & Anviz synchronize attendance data automatically for accurate tracking.",
"category": 4,
"company_id": null,
"tags": [7, 12]
}
},
{
"model": "helpdesk.faq",
"pk": 15,
"fields": {
"created_at": "2025-05-05T11:31:41.162Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How can employees edit their attendance records?",
"answer": "Employees can submit an Attendance Request to edit or add missing attendance records.",
"category": 4,
"company_id": null,
"tags": [7]
}
},
{
"model": "helpdesk.faq",
"pk": 16,
"fields": {
"created_at": "2025-05-05T11:31:41.242Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is the Hour Account feature?",
"answer": "It tracks total worked hours for employees by month and year.",
"category": 4,
"company_id": null,
"tags": [7]
}
},
{
"model": "helpdesk.faq",
"pk": 17,
"fields": {
"created_at": "2025-05-05T11:31:41.308Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What does the Work Records feature do?",
"answer": "It compiles daily attendance statuses (e.g., present, absent) into monthly records.",
"category": 4,
"company_id": null,
"tags": [7]
}
},
{
"model": "helpdesk.faq",
"pk": 18,
"fields": {
"created_at": "2025-05-05T11:31:41.361Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is Attendance Activity?",
"answer": "It shows attendance records generated from check-ins, check-outs, or biometric devices.",
"category": 4,
"company_id": null,
"tags": [7]
}
},
{
"model": "helpdesk.faq",
"pk": 19,
"fields": {
"created_at": "2025-05-05T11:31:41.431Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What does Late Come Early Out mean?",
"answer": "It flags employees who check in late or leave early based on their shift schedule.",
"category": 4,
"company_id": null,
"tags": [7]
}
},
{
"model": "helpdesk.faq",
"pk": 20,
"fields": {
"created_at": "2025-05-05T11:31:41.502Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What can employees see in My Attendance?",
"answer": "Employees can view their previous attendance records and statuses.",
"category": 4,
"company_id": null,
"tags": [7]
}
},
{
"model": "helpdesk.faq",
"pk": 21,
"fields": {
"created_at": "2025-05-05T11:31:41.637Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What are Attendance Requests?",
"answer": "They allow employees to request modifications to attendance records if errors occur.",
"category": 4,
"company_id": null,
"tags": [2, 7]
}
},
{
"model": "helpdesk.faq",
"pk": 22,
"fields": {
"created_at": "2025-05-05T11:31:41.698Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is the Employee Profile view used for?",
"answer": "The Employee Profile view displays all details about an employee, including personal, work, bank information, and more. It also allows employees to customize visible tabs.",
"category": 1,
"company_id": null,
"tags": [9]
}
},
{
"model": "helpdesk.faq",
"pk": 23,
"fields": {
"created_at": "2025-05-05T11:31:41.762Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How can an employee request a shift change?",
"answer": "Employees can request a shift change through the 'Reallocate Shift' option in the Work Type & Shift tab in their profile. Admin approval is required for changes.",
"category": 1,
"company_id": null,
"tags": [2, 9]
}
},
{
"model": "helpdesk.faq",
"pk": 24,
"fields": {
"created_at": "2025-05-05T11:31:41.819Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What details can employees view in the Attendance tab?",
"answer": "The Attendance tab shows all attendance records for the employee in a detailed tabular view.",
"category": 1,
"company_id": null,
"tags": [7, 9]
}
},
{
"model": "helpdesk.faq",
"pk": 25,
"fields": {
"created_at": "2025-05-05T11:31:41.886Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What actions are available in the Employee Directory?",
"answer": "The Employee Directory allows actions like importing, exporting, bulk archiving, unarchiving, updating, and deleting employee data.",
"category": 1,
"company_id": null,
"tags": [9]
}
},
{
"model": "helpdesk.faq",
"pk": 26,
"fields": {
"created_at": "2025-05-05T11:31:41.950Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is the Shift Request feature?",
"answer": "The Shift Request feature allows employees to request temporary or permanent shift changes. Approval by a manager or admin is required.",
"category": 1,
"company_id": null,
"tags": [2, 9]
}
},
{
"model": "helpdesk.faq",
"pk": 27,
"fields": {
"created_at": "2025-05-05T11:31:42.017Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is a Rotating Work Type Assign?",
"answer": "A Rotating Work Type Assign automates frequent changes in work types based on conditions like intervals, weekends, or specific dates.",
"category": 1,
"company_id": null,
"tags": [9]
}
},
{
"model": "helpdesk.faq",
"pk": 28,
"fields": {
"created_at": "2025-05-05T11:31:42.078Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How can managers manage disciplinary actions for employees?",
"answer": "Admins can create disciplinary actions like warnings or suspensions, and these may block employee logins for the specified period.",
"category": 1,
"company_id": null,
"tags": [9]
}
},
{
"model": "helpdesk.faq",
"pk": 29,
"fields": {
"created_at": "2025-05-05T11:31:42.137Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What can employees find in the Policies section?",
"answer": "Employees can access company policies and guidelines in the Policies section for reference.",
"category": 1,
"company_id": null,
"tags": [9]
}
},
{
"model": "helpdesk.faq",
"pk": 30,
"fields": {
"created_at": "2025-05-05T11:31:42.188Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is the Organization Chart feature?",
"answer": "The Organization Chart provides a visual representation of reporting structures, helping to identify team members and managers.",
"category": 1,
"company_id": null,
"tags": [9]
}
},
{
"model": "helpdesk.faq",
"pk": 31,
"fields": {
"created_at": "2025-05-05T11:31:42.238Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is the Recruitment module in Horilla HRMS?",
"answer": "The Recruitment module allows HR professionals to create and manage job postings, receive and review resumes, manage interviews, and track candidate progress throughout the hiring process.",
"category": 6,
"company_id": null,
"tags": [4]
}
},
{
"model": "helpdesk.faq",
"pk": 32,
"fields": {
"created_at": "2025-05-05T11:31:42.289Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is the Recruitment Pipeline feature?",
"answer": "The Recruitment Pipeline is a comprehensive feature that organizes candidates through various stages using tabular and Kanban views. It supports multiple recruitment drives, each represented as a tab for easy management.",
"category": 6,
"company_id": null,
"tags": [4, 15]
}
},
{
"model": "helpdesk.faq",
"pk": 33,
"fields": {
"created_at": "2025-05-05T11:31:42.341Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How can I create a new recruitment in Horilla?",
"answer": "To create a new recruitment, click on the '+ Create' button from Recruitment > Recruitments , specify the job position, description, vacancies, managers, start and end dates, and select a recruitment survey.",
"category": 6,
"company_id": null,
"tags": [4]
}
},
{
"model": "helpdesk.faq",
"pk": 34,
"fields": {
"created_at": "2025-05-05T11:31:42.395Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What are the main stage types in the recruitment process?",
"answer": "The main stage types are Initial, Interview, Hired, and Cancelled. Each type serves a specific purpose, such as automatically registering candidates or marking them as hired.",
"category": 6,
"company_id": null,
"tags": [4, 5]
}
},
{
"model": "helpdesk.faq",
"pk": 35,
"fields": {
"created_at": "2025-05-05T11:31:42.440Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How do I add a new stage to the recruitment process?",
"answer": "To add a new stage, click on the '+ Stage' button from Recruitment Pipeline, provide the stage title, assign stage managers, and specify the stage type (e.g., Initial, Interview, Hired).",
"category": 6,
"company_id": null,
"tags": [4, 5]
}
},
{
"model": "helpdesk.faq",
"pk": 36,
"fields": {
"created_at": "2025-05-05T11:31:42.493Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is Resume Shortlisting and how does it work?",
"answer": "Resume Shortlisting is a feature that uses skill-based keyword optimization to rank resumes. The system calculates scores for each resume based on matching skills and displays them in descending order.",
"category": 6,
"company_id": null,
"tags": [4, 16]
}
},
{
"model": "helpdesk.faq",
"pk": 37,
"fields": {
"created_at": "2025-05-05T11:31:42.542Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is the Skill Zone feature?",
"answer": "The Skill Zone categorizes candidates based on their skills, helping recruiters match them to relevant job positions more efficiently.",
"category": 6,
"company_id": null,
"tags": [4, 17]
}
},
{
"model": "helpdesk.faq",
"pk": 38,
"fields": {
"created_at": "2025-05-05T11:31:42.610Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How can I manage interviews within the Recruitment module?",
"answer": "You can manage interviews through the 'Scheduled Interviews' page, where you can add, edit, or delete interviews, assign interviewers, and track the status of interviews.",
"category": 6,
"company_id": null,
"tags": [4, 18]
}
},
{
"model": "helpdesk.faq",
"pk": 39,
"fields": {
"created_at": "2025-05-05T11:31:42.664Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "Can I customize application forms in Horilla HRMS?",
"answer": "Yes, the Recruitment Survey feature allows HR managers to create custom questionnaires for candidates, which are integrated into the application forms.",
"category": 6,
"company_id": null,
"tags": [4]
}
},
{
"model": "helpdesk.faq",
"pk": 40,
"fields": {
"created_at": "2025-05-05T11:31:42.734Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What are the available views for managing candidates?",
"answer": "Candidates can be managed using the Kanban view, list view, and detailed view. These views allow for filtering, grouping, and performing actions like editing, exporting, or converting candidates to employees.",
"category": 6,
"company_id": null,
"tags": [4, 19]
}
},
{
"model": "helpdesk.faq",
"pk": 41,
"fields": {
"created_at": "2025-05-05T11:31:42.797Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What features does the Payroll Dashboard offer?",
"answer": "The Payroll Dashboard provides visual insights into payroll processes, including charts for payslips, contract details, and department-wise payslips. Managers can also download data as Excel files.",
"category": 2,
"company_id": null,
"tags": [10, 11]
}
},
{
"model": "helpdesk.faq",
"pk": 42,
"fields": {
"created_at": "2025-05-05T11:31:42.850Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How does Contract Management work in Horilla?",
"answer": "Contract Management allows users to create contracts, define compensation, set contract duration, and manage leave settings. It supports various wage types for customized work arrangements.",
"category": 2,
"company_id": null,
"tags": [10]
}
},
{
"model": "helpdesk.faq",
"pk": 43,
"fields": {
"created_at": "2025-05-05T11:31:42.903Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How are deductions managed in Horilla?",
"answer": "The Deduction Management feature allows users to create and personalize deductions, set eligibility conditions, and choose fixed or variable amounts. It ensures streamlined deductions and fair practices.",
"category": 2,
"company_id": null,
"tags": [10]
}
},
{
"model": "helpdesk.faq",
"pk": 44,
"fields": {
"created_at": "2025-05-05T11:31:42.964Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is the Loan and Advance Salary module?",
"answer": "This module helps manage employee loans, installments, and advance salary transactions, ensuring accurate and transparent financial dealings.",
"category": 2,
"company_id": null,
"tags": [10]
}
},
{
"model": "helpdesk.faq",
"pk": 45,
"fields": {
"created_at": "2025-05-05T11:31:43.039Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What does the Encashments & Reimbursements feature offer?",
"answer": "This feature supports reimbursements for company-related expenses, leave encashments, and bonus point encashments, simplifying the process for diverse employee needs.",
"category": 2,
"company_id": null,
"tags": [10]
}
},
{
"model": "helpdesk.faq",
"pk": 46,
"fields": {
"created_at": "2025-05-05T11:31:43.114Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How does the Federal Tax feature work?",
"answer": "The Federal Tax feature automates tax calculations, defines tax brackets, and sets rates based on income. It ensures compliance and smooth payroll processing. Admins or users with permission need to create the tax brackets and then can be used in the contract",
"category": 2,
"company_id": null,
"tags": [10]
}
},
{
"model": "helpdesk.faq",
"pk": 47,
"fields": {
"created_at": "2025-05-05T11:31:43.212Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How are payslips generated in Horilla?",
"answer": "The Payslip Generation feature calculates salaries, including allowances, deductions, and taxes, and creates accurate and detailed payslips for each pay period.",
"category": 2,
"company_id": null,
"tags": [10]
}
},
{
"model": "helpdesk.faq",
"pk": 48,
"fields": {
"created_at": "2025-05-05T11:31:43.308Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is the Asset Management System in Horilla HRMS?",
"answer": "The Asset Management System enables employees to request and manage work-related assets like computers and equipment. It categorizes assets, tracks requests, and ensures efficient allocation.",
"category": 7,
"company_id": null,
"tags": [1]
}
},
{
"model": "helpdesk.faq",
"pk": 49,
"fields": {
"created_at": "2025-05-05T11:31:43.367Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What features are available on the Asset Dashboard?",
"answer": "The Asset Dashboard displays the total number of assets, asset requests, and assets in use. It includes pie charts and tables for asset allocation and provides tools for admins to approve requests and allocate assets directly.",
"category": 7,
"company_id": null,
"tags": [1, 11]
}
},
{
"model": "helpdesk.faq",
"pk": 50,
"fields": {
"created_at": "2025-05-05T11:31:43.430Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How can admin search for assets in Horilla HRMS?",
"answer": "Admin can search for specific asset categories or individual assets using the search bar. The system dynamically filters results based on the search term.",
"category": 7,
"company_id": null,
"tags": [1]
}
},
{
"model": "helpdesk.faq",
"pk": 51,
"fields": {
"created_at": "2025-05-05T11:31:43.484Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is the Asset Import feature?",
"answer": "The Asset Import feature allows admin to upload large amounts of asset data, such as names, purchase dates, and categories, from an external file like Excel, improving efficiency in asset management.",
"category": 7,
"company_id": null,
"tags": [1, 14]
}
},
{
"model": "helpdesk.faq",
"pk": 52,
"fields": {
"created_at": "2025-05-05T11:31:43.543Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is the purpose of the Asset Export feature?",
"answer": "The Asset Export feature enables admin to download asset data, either filtered or in full, for reporting or further processing.",
"category": 7,
"company_id": null,
"tags": [1, 13]
}
},
{
"model": "helpdesk.faq",
"pk": 53,
"fields": {
"created_at": "2025-05-05T11:31:43.604Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How can asset categories be managed in Horilla HRMS?",
"answer": "Admin can create, update, and delete asset categories. Categories can only be deleted if they are empty, ensuring no associated assets remain in use.",
"category": 7,
"company_id": null,
"tags": [1]
}
},
{
"model": "helpdesk.faq",
"pk": 54,
"fields": {
"created_at": "2025-05-05T11:31:43.657Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is the Asset Request and Allocation feature?",
"answer": "This feature allows employees to request new assets or return allocated ones, while admins can allocate or reallocate assets based on requests and availability.",
"category": 7,
"company_id": null,
"tags": [1, 2, 3]
}
},
{
"model": "helpdesk.faq",
"pk": 55,
"fields": {
"created_at": "2025-05-05T11:31:43.713Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What details can be updated in the Asset Updation form?",
"answer": "Admin can update details like asset name, description, tracking ID, purchase date, cost, status, and expiry date. Notifications can also be set for upcoming expiry dates.",
"category": 7,
"company_id": null,
"tags": [1]
}
},
{
"model": "helpdesk.faq",
"pk": 56,
"fields": {
"created_at": "2025-05-05T11:31:43.772Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How does Asset History tracking work?",
"answer": "The Asset History feature tracks details of returned assets, allowing admin to filter, group, and sort asset usage data as needed.",
"category": 7,
"company_id": null,
"tags": [1]
}
},
{
"model": "helpdesk.faq",
"pk": 57,
"fields": {
"created_at": "2025-05-05T11:31:43.869Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is the 'Candidate Self Tracking' feature, and how can I enable it?",
"answer": "The 'Candidate Self Tracking' feature allows candidates to monitor the status of their job applications. To enable it:\r\n\r\nNavigate to Settings > Recruitment > Candidate Self Tracking.\r\n\r\nToggle the feature to Enabled.\r\n\r\nClick Save to apply the changes.\r\n\r\nOnce enabled, candidates can log in to their profiles to view updates on their application status.",
"category": 5,
"company_id": null,
"tags": [4, 20]
}
},
{
"model": "helpdesk.faq",
"pk": 58,
"fields": {
"created_at": "2025-05-05T11:31:43.992Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How can I manage user permissions and user groups in Horilla HRMS?",
"answer": "Horilla HRMS allows administrators to define granular user permissions and create user groups to streamline access control:\r\n\r\nUser Permissions: Administrators can specify who can access specific modules and perform certain actions within the system. settings > general > Employee permissions\r\n\r\nUser Groups: By creating user groups, administrators can assign permissions to entire groups, simplifying the management of access levels and functionalities. settings > general > User group",
"category": 5,
"company_id": null,
"tags": [20]
}
},
{
"model": "helpdesk.faq",
"pk": 59,
"fields": {
"created_at": "2025-05-05T11:31:44.121Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How to customize date and time formats in Horilla HRMS?",
"answer": "Admins can configure the date and time formats from the settings > general > date and time format",
"category": 5,
"company_id": null,
"tags": [20]
}
},
{
"model": "helpdesk.faq",
"pk": 60,
"fields": {
"created_at": "2025-05-05T11:31:44.217Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How do I set up and manage departments in Horilla HRMS?",
"answer": "Navigate to Settings > Base Configuration > Departments.\r\nClick on Create to add a new department.",
"category": 5,
"company_id": null,
"tags": [20]
}
},
{
"model": "helpdesk.faq",
"pk": 61,
"fields": {
"created_at": "2025-05-05T11:31:44.308Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How to create Compny, Department, Job position, Job role?",
"answer": "Navigate to settings > Base\r\n\r\nyou can create Company, Department, Job position and job role by filling out the respective forms.",
"category": 5,
"company_id": null,
"tags": [20]
}
},
{
"model": "helpdesk.faq",
"pk": 62,
"fields": {
"created_at": "2025-05-05T11:31:44.382Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is IP restriction?",
"answer": "Admins can enable Ip restriction from settings > attendance > Ip restriction.\r\nif enabled, Admins can add the Ips from which users can mark the attendance (office wifi ip, or vpn ip etc). Then the Employees can only mark the attendance from that ips only.",
"category": 5,
"company_id": null,
"tags": [7, 20]
}
},
{
"model": "helpdesk.faq",
"pk": 63,
"fields": {
"created_at": "2025-05-05T11:31:44.453Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "What is Grace time, and how to configure it?",
"answer": "Horilla automatically add an employee as late come or early out (if track late come early out is enabled) , if an employee marked checking after the starting time of shift schedule (even 1 minute after) the employee is considered late, same for early out also. Admins can add some grace time to the shift that only after the grace time the employees are marked as late.\r\n\r\nnavigate to settings> Attendance > Grace time to create and add the grace time.",
"category": 5,
"company_id": null,
"tags": [7, 20]
}
},
{
"model": "helpdesk.faq",
"pk": 64,
"fields": {
"created_at": "2025-05-05T11:31:44.502Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How to enable 'Compensatory Leave'?",
"answer": "Navigate to settings > Leave > Compensatory Leave > enable",
"category": 3,
"company_id": null,
"tags": [7, 20]
}
},
{
"model": "helpdesk.faq",
"pk": 65,
"fields": {
"created_at": "2025-05-05T11:31:44.556Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"question": "How can employees manage disciplinary actions?",
"answer": "Admins can create disciplinary actions like warnings or suspensions, and these may block employee logins for the specified period.",
"category": 1,
"company_id": null,
"tags": [9]
}
}
]

View File

@@ -0,0 +1,86 @@
[
{
"model": "helpdesk.faqcategory",
"pk": 1,
"fields": {
"created_at": "2025-05-05T11:31:39.594Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Employee",
"description": "FAQs related to employee are shown here"
}
},
{
"model": "helpdesk.faqcategory",
"pk": 2,
"fields": {
"created_at": "2025-05-05T11:31:39.660Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Payroll",
"description": "FAQs related to attendance are shown here"
}
},
{
"model": "helpdesk.faqcategory",
"pk": 3,
"fields": {
"created_at": "2025-05-05T11:31:39.686Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Leave",
"description": "FAQs related to leave are shown here"
}
},
{
"model": "helpdesk.faqcategory",
"pk": 4,
"fields": {
"created_at": "2025-05-05T11:31:39.712Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Attendance",
"description": "FAQs related to attendance are shown here"
}
},
{
"model": "helpdesk.faqcategory",
"pk": 5,
"fields": {
"created_at": "2025-05-05T11:31:39.737Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Base",
"description": "FAQs related to base are shown here"
}
},
{
"model": "helpdesk.faqcategory",
"pk": 6,
"fields": {
"created_at": "2025-05-05T11:31:39.761Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Recruitment",
"description": "FAQs related to recruitment are shown here"
}
},
{
"model": "helpdesk.faqcategory",
"pk": 7,
"fields": {
"created_at": "2025-05-05T11:31:39.787Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Asset",
"description": "FAQs related to attendance are shown here"
}
}
]

262
load_data/tags.json Normal file
View File

@@ -0,0 +1,262 @@
[
{
"model": "base.tags",
"pk": 1,
"fields": {
"created_at": "2025-05-05T11:31:39.815Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Asset",
"color": "#4cbdef",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 2,
"fields": {
"created_at": "2025-05-05T11:31:39.846Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Request",
"color": "#bec30c",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 3,
"fields": {
"created_at": "2025-05-05T11:31:39.871Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Allocation",
"color": "#046d88;",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 4,
"fields": {
"created_at": "2025-05-05T11:31:39.904Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Recruitment",
"color": "#fb8787",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 5,
"fields": {
"created_at": "2025-05-05T11:31:39.935Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Stage",
"color": "#b8a5fa;",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 6,
"fields": {
"created_at": "2025-05-05T11:31:39.963Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Manager",
"color": "#00b2ba",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 7,
"fields": {
"created_at": "2025-05-05T11:31:39.989Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Attendance",
"color": "#afbcee",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 8,
"fields": {
"created_at": "2025-05-05T11:31:40.013Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Leave",
"color": "#66cffd",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 9,
"fields": {
"created_at": "2025-05-05T11:31:40.042Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Employee",
"color": "#806d8d",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 10,
"fields": {
"created_at": "2025-05-05T11:31:40.065Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Payroll",
"color": "#a16879",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 11,
"fields": {
"created_at": "2025-05-05T11:31:40.091Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Dashboard",
"color": "#8a8585",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 12,
"fields": {
"created_at": "2025-05-05T11:31:40.117Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Biometric",
"color": "#e35959",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 13,
"fields": {
"created_at": "2025-05-05T11:31:40.144Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Export",
"color": "#70a5eb",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 14,
"fields": {
"created_at": "2025-05-05T11:31:40.170Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Import",
"color": "#1dc56e",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 15,
"fields": {
"created_at": "2025-05-05T11:31:40.190Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Pipeline",
"color": "#843787",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 16,
"fields": {
"created_at": "2025-05-05T11:31:40.220Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Resume",
"color": "#63a189",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 17,
"fields": {
"created_at": "2025-05-05T11:31:40.245Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Skill Zone",
"color": "#f4b74e",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 18,
"fields": {
"created_at": "2025-05-05T11:31:40.272Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Interview",
"color": "#f5dcb3",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 19,
"fields": {
"created_at": "2025-05-05T11:31:40.298Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "Candidate",
"color": "#b2e1f5",
"company_id": null
}
},
{
"model": "base.tags",
"pk": 20,
"fields": {
"created_at": "2025-05-05T11:31:40.325Z",
"created_by": 1,
"modified_by": 1,
"is_active": true,
"title": "settings",
"color": "#ba9ca8",
"company_id": null
}
}
]