diff --git a/hr_disciplinary_tracking/README.rst b/hr_disciplinary_tracking/README.rst new file mode 100755 index 000000000..aadf34006 --- /dev/null +++ b/hr_disciplinary_tracking/README.rst @@ -0,0 +1,52 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Open HRMS Disciplinary Tracking +====================================== +The "Open HRMS Disciplinary Tracking" module in Odoo 17 is specifically designed to monitor and +manage the disciplinary status of employees within an organization. + +Configuration +============= +* No Additional configuration is needed. + +License +------- +GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (AGPLv3) +(http://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developer: + Ajmal J K , + (V14) : Muhammed Nafih, + (V15) : Mily Shajan, + (V16) : Aiswarya, + (V17) : Dhanya Babu, + (V18) Raneesha M K +Contact : odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com, https://www.openhrms.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +For support and more information, please visit https://www.cybrosys.com + +Further information +=================== +HTML Description: ``__ diff --git a/hr_disciplinary_tracking/__init__.py b/hr_disciplinary_tracking/__init__.py new file mode 100755 index 000000000..ea25661f3 --- /dev/null +++ b/hr_disciplinary_tracking/__init__.py @@ -0,0 +1,23 @@ +# -- coding: utf-8 -- +################################################################################ +# A part of Open HRMS Project +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2025-TODAY Cybrosys Technologies () +# Author: Cybrosys () +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################ +from . import models diff --git a/hr_disciplinary_tracking/__manifest__.py b/hr_disciplinary_tracking/__manifest__.py new file mode 100755 index 000000000..b03706a44 --- /dev/null +++ b/hr_disciplinary_tracking/__manifest__.py @@ -0,0 +1,56 @@ +# -- coding: utf-8 -- +################################################################################ +# A part of Open HRMS Project +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2025-TODAY Cybrosys Technologies () +# Author: Cybrosys () +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################ +{ + 'name': 'Open HRMS Disciplinary Tracking', + 'version': '18.0.1.0.0', + 'category': 'Human Resources', + 'summary': """Employee Disciplinary Tracking Management""", + 'description': """The primary goal of disciplinary tracking is to ensure + that employees adhere to company policies and regulations, and when + violations occur, to address them appropriately.""", + 'live_test_url': 'https://youtu.be/LFuw2iY4Deg', + 'author': 'Cybrosys Techno solutions,Open HRMS', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.openhrms.com", + 'depends': ['mail', 'hr'], + 'data': [ + 'security/ir.model.access.csv', + 'security/hr_disciplinary_tracking_security.xml', + 'data/ir_sequence_data.xml', + 'views/disciplinary_action_views.xml', + 'views/discipline_category_views.xml', + ], + 'demo': [ + 'data/disciplinary_action_demo.xml', + 'data/hr_department_demo.xml', + 'data/hr_employee_demo.xml' + 'data/hr_work_location_demo.xml', + 'data/discipline_category_demo.xml', + ], + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/hr_disciplinary_tracking/data/disciplinary_action_demo.xml b/hr_disciplinary_tracking/data/disciplinary_action_demo.xml new file mode 100755 index 000000000..3567e0ba2 --- /dev/null +++ b/hr_disciplinary_tracking/data/disciplinary_action_demo.xml @@ -0,0 +1,12 @@ + + + + + + + + 2020-03-02 + + + + diff --git a/hr_disciplinary_tracking/data/discipline_category_demo.xml b/hr_disciplinary_tracking/data/discipline_category_demo.xml new file mode 100644 index 000000000..da479de86 --- /dev/null +++ b/hr_disciplinary_tracking/data/discipline_category_demo.xml @@ -0,0 +1,75 @@ + + + + + + Violation of Company Rules + VIOLATION + disciplinary + + + + Mis-behaviour to Co-workers + 102 + action + + + + Damage to company properties + 103 + disciplinary + + + + Not Follow Management Instructions + INSTRUCTION + disciplinary + + + + INSTRUCTION + Work Performance Issues + disciplinary + + + + NOACTION + No Action + action + + + + VERBAL + Verbal Warning + action + + + + WRITTEN + Written Warning + action + + + + MEET + Meet the Manager + action + + + + SUSPENSION + Suspend the Employee + Suspend the Employee for one Week + action + + + + TERMINATE + Terminate the Employee + action + + + diff --git a/hr_disciplinary_tracking/data/hr_department_demo.xml b/hr_disciplinary_tracking/data/hr_department_demo.xml new file mode 100644 index 000000000..59504922d --- /dev/null +++ b/hr_disciplinary_tracking/data/hr_department_demo.xml @@ -0,0 +1,9 @@ + + + + + + Marketing + + + diff --git a/hr_disciplinary_tracking/data/hr_employee_demo.xml b/hr_disciplinary_tracking/data/hr_employee_demo.xml new file mode 100644 index 000000000..3d806986d --- /dev/null +++ b/hr_disciplinary_tracking/data/hr_employee_demo.xml @@ -0,0 +1,13 @@ + + + + + + Jack Mark Rose + Sales Manager + + (376)-3852-7987 + jack@example.com + + + diff --git a/hr_disciplinary_tracking/data/hr_work_location_demo.xml b/hr_disciplinary_tracking/data/hr_work_location_demo.xml new file mode 100644 index 000000000..9cd5437b3 --- /dev/null +++ b/hr_disciplinary_tracking/data/hr_work_location_demo.xml @@ -0,0 +1,10 @@ + + + + + + Building 3, Third Floor + + + + diff --git a/hr_disciplinary_tracking/data/ir_sequence_data.xml b/hr_disciplinary_tracking/data/ir_sequence_data.xml new file mode 100755 index 000000000..add542b1f --- /dev/null +++ b/hr_disciplinary_tracking/data/ir_sequence_data.xml @@ -0,0 +1,12 @@ + + + + + + Open HRMS Disciplinary Action + disciplinary.action + DIS + 3 + + + diff --git a/hr_disciplinary_tracking/docs/RELEASE_NOTES.md b/hr_disciplinary_tracking/docs/RELEASE_NOTES.md new file mode 100755 index 000000000..b10d23fa5 --- /dev/null +++ b/hr_disciplinary_tracking/docs/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module hr_disciplinary_tracking + +#### 09.04.2025 +#### Version 18.0.1.0.0 +##### ADD +- Initial Commit for Open HRMS Disciplinary Tracking diff --git a/hr_disciplinary_tracking/i18n/ar_001.po b/hr_disciplinary_tracking/i18n/ar_001.po new file mode 100755 index 000000000..ae4d2fa77 --- /dev/null +++ b/hr_disciplinary_tracking/i18n/ar_001.po @@ -0,0 +1,526 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_disciplinary_tracking +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-02-12 08:42+0000\n" +"PO-Revision-Date: 2020-02-12 08:42+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__action_id +#: model_terms:ir.ui.view,arch_db:hr_disciplinary_tracking.disciplinary_action_view_form +msgid "Action" +msgstr "عمل" + +#. module: hr_disciplinary_tracking +#: model:ir.actions.act_window,name:hr_disciplinary_tracking.action_category_action_view +#: model_terms:ir.ui.view,arch_db:hr_disciplinary_tracking.category_action_view_tree +msgid "Action Categories" +msgstr "فئات العمل" + +#. module: hr_disciplinary_tracking +#: model:ir.model,name:hr_disciplinary_tracking.model_action_category +#: model:ir.ui.menu,name:hr_disciplinary_tracking.action_category_view +#: model_terms:ir.ui.view,arch_db:hr_disciplinary_tracking.category_action_view_form +msgid "Action Category" +msgstr "فئة العمل" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__action_details +#: model:ir.ui.menu,name:hr_disciplinary_tracking.disciplinary_action_view +msgid "Action Details" +msgstr "تفاصيل العمل" + +#. module: hr_disciplinary_tracking +#: model_terms:ir.ui.view,arch_db:hr_disciplinary_tracking.disciplinary_action_view_form +msgid "Action Information" +msgstr "معلومات العمل" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__message_needaction +msgid "Action Needed" +msgstr "الإجراءات اللازمة" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields.selection,name:hr_disciplinary_tracking.selection__disciplinary_action__state__action +msgid "Action Validated" +msgstr "التحقق من صحة العمل" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__activity_ids +msgid "Activities" +msgstr "أنشطة" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "نشاط استثناء الديكور" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__activity_state +msgid "Activity State" +msgstr "حالة النشاط" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__message_attachment_count +msgid "Attachment Count" +msgstr "عدد المرفقات" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__attachment_ids +msgid "Attachments" +msgstr "مرفقات" + +#. module: hr_disciplinary_tracking +#: model_terms:ir.ui.view,arch_db:hr_disciplinary_tracking.disciplinary_action_view_form +msgid "Cancel" +msgstr "إلغاء" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields.selection,name:hr_disciplinary_tracking.selection__disciplinary_action__state__cancel +msgid "Cancelled" +msgstr "ألغيت" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_action_category__code +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_discipline_category__code +msgid "Code" +msgstr "الشفرة" + +#. module: hr_disciplinary_tracking +#: model:ir.ui.menu,name:hr_disciplinary_tracking.disciplinary_action_create +msgid "Create Action" +msgstr "خلق العمل" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_action_category__create_uid +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__create_uid +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_discipline_category__create_uid +msgid "Created by" +msgstr "انشأ من قبل" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_action_category__create_date +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__create_date +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_discipline_category__create_date +msgid "Created on" +msgstr "تم إنشاؤها على" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__department_id +msgid "Department" +msgstr "قسم" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_action_category__description +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_discipline_category__description +msgid "Details" +msgstr "تفاصيل" + +#. module: hr_disciplinary_tracking +#: model:ir.actions.act_window,name:hr_disciplinary_tracking.disciplinary_action_action +#: model:ir.model,name:hr_disciplinary_tracking.model_disciplinary_action +#: model_terms:ir.ui.view,arch_db:hr_disciplinary_tracking.disciplinary_action_view_form +#: model_terms:ir.ui.view,arch_db:hr_disciplinary_tracking.employee_disciplinary_view_tree +#: model_terms:ir.ui.view,arch_db:hr_disciplinary_tracking.view_employee_form +msgid "Disciplinary Action" +msgstr "إجراءات تأديبية" + +#. module: hr_disciplinary_tracking +#: model:ir.actions.act_window,name:hr_disciplinary_tracking.disciplinary_action_details_view +msgid "Disciplinary Action Details" +msgstr "تفاصيل الإجراءات التأديبية" + +#. module: hr_disciplinary_tracking +#: model:ir.actions.act_window,name:hr_disciplinary_tracking.disciplinary_action_details +#: model:ir.ui.menu,name:hr_disciplinary_tracking.disciplinary_action +msgid "Disciplinary Actions" +msgstr "اجراءات تأديبية" + +#. module: hr_disciplinary_tracking +#: model:ir.actions.act_window,name:hr_disciplinary_tracking.action_disciplinary_category_view +#: model_terms:ir.ui.view,arch_db:hr_disciplinary_tracking.disciplinary_category_view_tree +msgid "Discipline Categories" +msgstr "فئات الانضباط" + +#. module: hr_disciplinary_tracking +#: model:ir.ui.menu,name:hr_disciplinary_tracking.disciplinary_category_view +#: model_terms:ir.ui.view,arch_db:hr_disciplinary_tracking.disciplinary_category_view_form +msgid "Discipline Category" +msgstr "فئة الانضباط" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_hr_employee__discipline_count +msgid "Discipline Count" +msgstr "عدد الانضباط" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_action_category__display_name +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__display_name +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_discipline_category__display_name +msgid "Display Name" +msgstr "اسم العرض" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields.selection,name:hr_disciplinary_tracking.selection__disciplinary_action__state__draft +msgid "Draft" +msgstr "مشروع" + +#. module: hr_disciplinary_tracking +#: model:ir.model,name:hr_disciplinary_tracking.model_hr_employee +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__employee_id +#: model_terms:ir.ui.view,arch_db:hr_disciplinary_tracking.disciplinary_action_view_form +msgid "Employee" +msgstr "الموظف" + +#. module: hr_disciplinary_tracking +#: model_terms:ir.ui.view,arch_db:hr_disciplinary_tracking.disciplinary_action_view_form +msgid "Employee Information" +msgstr "معلومات الموظف" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,help:hr_disciplinary_tracking.field_disciplinary_action__attachment_ids +msgid "Employee can submit any documents which supports their explanation" +msgstr "يمكن للموظف تقديم أي مستندات تدعم شرحهم" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,help:hr_disciplinary_tracking.field_disciplinary_action__explanation +msgid "" +"Employee have to give Explanationto manager about the violation of " +"discipline" +msgstr "" +"يجب على الموظف إعطاء الشرح للمدير حول انتهاك" +"انضباط" +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__explanation +msgid "Explanation by Employee" +msgstr "شرح الموظف" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__message_follower_ids +msgid "Followers" +msgstr "متابعون" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__message_channel_ids +msgid "Followers (Channels)" +msgstr "(المتابعون (القنوات" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__message_partner_ids +msgid "Followers (Partners)" +msgstr "(المتابعون (الشركاء" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_action_category__id +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__id +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_discipline_category__id +msgid "ID" +msgstr "هوية شخصية" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__activity_exception_icon +msgid "Icon" +msgstr "أيقونة" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,help:hr_disciplinary_tracking.field_disciplinary_action__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr ".أيقونة للإشارة إلى نشاط استثناء" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,help:hr_disciplinary_tracking.field_disciplinary_action__message_needaction +#: model:ir.model.fields,help:hr_disciplinary_tracking.field_disciplinary_action__message_unread +msgid "If checked, new messages require your attention." +msgstr ".إذا تم تحديد ذلك ، فإن الرسائل الجديدة تتطلب اهتمامك" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,help:hr_disciplinary_tracking.field_disciplinary_action__message_has_error +#: model:ir.model.fields,help:hr_disciplinary_tracking.field_disciplinary_action__message_has_sms_error +msgid "If checked, some messages have a delivery error." +msgstr ".إذا تم التحقق ، فبعض الرسائل بها خطأ في التسليم" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__note +msgid "Internal Note" +msgstr "مذكرة داخلية" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__message_is_follower +msgid "Is Follower" +msgstr "هو تابع" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__joined_date +#: model_terms:ir.ui.view,arch_db:hr_disciplinary_tracking.disciplinary_action_view_form +msgid "Joined Date" +msgstr "تاريخ الانضمام" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_action_category____last_update +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action____last_update +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_discipline_category____last_update +msgid "Last Modified on" +msgstr "آخر تعديل في" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_action_category__write_uid +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__write_uid +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_discipline_category__write_uid +msgid "Last Updated by" +msgstr "آخر تحديث بواسطة" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_action_category__write_date +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__write_date +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_discipline_category__write_date +msgid "Last Updated on" +msgstr "آخر تحديث في" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__message_main_attachment_id +msgid "Main Attachment" +msgstr "المرفق الرئيسي" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__message_has_error +msgid "Message Delivery error" +msgstr "خطأ في تسليم الرسالة" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__message_ids +msgid "Messages" +msgstr "رسائل" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_action_category__name +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_discipline_category__name +msgid "Name" +msgstr "اسم" + +#. module: hr_disciplinary_tracking +#: code:addons/hr_disciplinary_tracking/models/disciplinary_action.py:0 +#, python-format +msgid "New" +msgstr "جديد" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "آخر نشاط الموعد النهائي" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__activity_summary +msgid "Next Activity Summary" +msgstr "ملخص النشاط التالي" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__activity_type_id +msgid "Next Activity Type" +msgstr "نوع النشاط التالي" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__message_needaction_counter +msgid "Number of Actions" +msgstr "عدد الإجراءات" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__message_has_error_counter +msgid "Number of errors" +msgstr "عدد الاخطاء" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,help:hr_disciplinary_tracking.field_disciplinary_action__message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "عدد الرسائل التي تتطلب إجراء" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,help:hr_disciplinary_tracking.field_disciplinary_action__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "عدد الرسائل مع خطأ التسليم" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,help:hr_disciplinary_tracking.field_disciplinary_action__message_unread_counter +msgid "Number of unread messages" +msgstr "عدد الرسائل غير المقروءة" + +#. module: hr_disciplinary_tracking +#: model_terms:ir.ui.view,arch_db:hr_disciplinary_tracking.disciplinary_action_view_form +msgid "Proceed" +msgstr "تقدم" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__read_only +msgid "Read Only" +msgstr "يقرأ فقط" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__discipline_reason_id +#: model_terms:ir.ui.view,arch_db:hr_disciplinary_tracking.disciplinary_action_view_form +msgid "Reason" +msgstr "السبب" + +#. module: hr_disciplinary_tracking +#: model:ir.model,name:hr_disciplinary_tracking.model_discipline_category +msgid "Reason Category" +msgstr "السبب الفئة" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__name +msgid "Reference" +msgstr "مرجع" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__activity_user_id +msgid "Responsible User" +msgstr "المستخدم المسؤول" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__message_has_sms_error +msgid "SMS Delivery error" +msgstr "خطأ في تسليم الرسائل القصيرة" + +#. module: hr_disciplinary_tracking +#: model_terms:ir.ui.view,arch_db:hr_disciplinary_tracking.disciplinary_action_view_form +msgid "Set to Draft" +msgstr "تعيين إلى مشروع" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__state +msgid "State" +msgstr "حالة" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,help:hr_disciplinary_tracking.field_disciplinary_action__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" +"الحالة على أساس الأنشطة\n" +"المتأخرة: تاريخ الاستحقاق مر\n" +"اليوم: تاريخ النشاط هو اليوم\n" +"المخطط: الأنشطة المستقبلية." +#. module: hr_disciplinary_tracking +#: model_terms:ir.ui.view,arch_db:hr_disciplinary_tracking.disciplinary_action_view_form +msgid "Submit" +msgstr "إرسال" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__suspension_letter +msgid "Suspension Letter" +msgstr "رسالة تعليق" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__termination_letter +msgid "Termination Letter" +msgstr "خطاب إنهاء" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,help:hr_disciplinary_tracking.field_disciplinary_action__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr ".نوع نشاط الاستثناء في السجل" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__message_unread +msgid "Unread Messages" +msgstr "رسائل غير مقروءة" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__message_unread_counter +msgid "Unread Messages Counter" +msgstr "عداد الرسائل غير المقروءة" + +#. module: hr_disciplinary_tracking +#: model_terms:ir.ui.view,arch_db:hr_disciplinary_tracking.disciplinary_action_view_form +msgid "Validate Action" +msgstr "التحقق من صحة العمل" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields.selection,name:hr_disciplinary_tracking.selection__disciplinary_action__state__submitted +msgid "Waiting Action" +msgstr "انتظار العمل" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields.selection,name:hr_disciplinary_tracking.selection__disciplinary_action__state__explain +msgid "Waiting Explanation" +msgstr "في انتظار التفسير" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__warning +msgid "Warning" +msgstr "تحذير" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__warning_letter +msgid "Warning Letter" +msgstr "رسالة تحذير" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,field_description:hr_disciplinary_tracking.field_disciplinary_action__website_message_ids +msgid "Website Messages" +msgstr "رسائل الموقع" + +#. module: hr_disciplinary_tracking +#: model:ir.model.fields,help:hr_disciplinary_tracking.field_disciplinary_action__website_message_ids +msgid "Website communication history" +msgstr "سجل اتصالات الموقع" + +#. module: hr_disciplinary_tracking +#: code:addons/hr_disciplinary_tracking/models/disciplinary_action.py:0 +#: code:addons/hr_disciplinary_tracking/models/disciplinary_action.py:0 +#, python-format +msgid "You Can not edit a Validated Action !!" +msgstr "!! لا يمكنك تحرير إجراء تم التحقق منه" + +#. module: hr_disciplinary_tracking +#: code:addons/hr_disciplinary_tracking/models/disciplinary_action.py:0 +#, python-format +msgid "You have to fill up the Action Information !!" +msgstr "!! لديك لملء معلومات العمل" + +#. module: hr_disciplinary_tracking +#: code:addons/hr_disciplinary_tracking/models/disciplinary_action.py:0 +#, python-format +msgid "You have to fill up the Suspension Letter in Action Information !!" +msgstr "!! يجب عليك ملء خطاب التعليق في معلومات العمل" + +#. module: hr_disciplinary_tracking +#: code:addons/hr_disciplinary_tracking/models/disciplinary_action.py:0 +#, python-format +msgid "You have to fill up the Termination Letter in Action Information !!" +msgstr "!! يجب عليك ملء خطاب الإنهاء في معلومات العمل" + +#. module: hr_disciplinary_tracking +#: code:addons/hr_disciplinary_tracking/models/disciplinary_action.py:0 +#, python-format +msgid "You have to fill up the Warning Letter in Action Information !!" +msgstr "!! يجب عليك ملء خطاب الإنهاء في معلومات العمل" + +#. module: hr_disciplinary_tracking +#: code:addons/hr_disciplinary_tracking/models/disciplinary_action.py:0 +#, python-format +msgid "You have to select an Action !!" +msgstr "!! يجب عليك تحديد إجراء" + +#. module: hr_disciplinary_tracking +#: code:addons/hr_disciplinary_tracking/models/disciplinary_action.py:0 +#, python-format +msgid "You must give an explanation !!" +msgstr "!! يجب أن تعطي تفسيرا" + +#. module: hr_disciplinary_tracking +#: code:addons/hr_disciplinary_tracking/models/disciplinary_action.py:0 +#, python-format +msgid "Your explanation must contain at least 5 words !!" +msgstr "!! يجب أن يحتوي تفسيرك على 5 كلمات على الأقل" diff --git a/hr_disciplinary_tracking/models/__init__.py b/hr_disciplinary_tracking/models/__init__.py new file mode 100755 index 000000000..957afd094 --- /dev/null +++ b/hr_disciplinary_tracking/models/__init__.py @@ -0,0 +1,25 @@ +# -- coding: utf-8 -- +############################################################################### +# A part of Open HRMS Project +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys () +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################### +from . import disciplinary_action +from . import discipline_category +from . import hr_employee diff --git a/hr_disciplinary_tracking/models/disciplinary_action.py b/hr_disciplinary_tracking/models/disciplinary_action.py new file mode 100755 index 000000000..c54a3f5ec --- /dev/null +++ b/hr_disciplinary_tracking/models/disciplinary_action.py @@ -0,0 +1,142 @@ +# -- coding: utf-8 -- +############################################################################### +# A part of Open HRMS Project +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys () +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################### +from odoo import api, fields, models, _ +from odoo.exceptions import ValidationError + + +class DisciplinaryAction(models.Model): + """Model representing an action for disciplinary""" + _name = 'disciplinary.action' + _inherit = ['mail.thread', 'mail.activity.mixin'] + _description = "Disciplinary Action" + + # Assigning the sequence for the record + @api.model + def create(self, vals): + vals['name'] = self.env['ir.sequence'].next_by_code( + 'disciplinary.action') + return super(DisciplinaryAction, self).create(vals) + + state = fields.Selection([ + ('draft', 'Draft'), + ('explain', 'Waiting Explanation'), + ('submitted', 'Waiting Action'), + ('action', 'Action Validated'), + ('cancel', 'Cancelled'), + ], default='draft', track_visibility='onchange', + help="Stage for disciplinary action") + name = fields.Char(string='Reference', required=True, copy=False, + readonly=True, + default=lambda self: _('New'), + help="Name for disciplinary action") + employee_id = fields.Many2one('hr.employee', string='Employee', + required=True, help="Employee name") + department_id = fields.Many2one('hr.department', string='Department', + required=True, help="Department name") + discipline_reason_id = fields.Many2one('discipline.category', string='Reason', + required=True, + help="Choose a disciplinary reason") + explanation = fields.Text(string="Explanation by Employee", + help='Employee have to give Explanation' + 'to manager about the violation of discipline') + action_id = fields.Many2one('discipline.category', string="Action", + help="Choose an action for this disciplinary action") + read_only = fields.Boolean(compute="_compute_get_user", default=True, + help="Boolean field for get the user") + warning_letter = fields.Html(string="Warning Letter", + help="Warning letter as disciplinary action") + suspension_letter = fields.Html(string="Suspension Letter", + help="Suspension letter as disciplinary action") + termination_letter = fields.Html(string="Termination Letter", + help="Termination letter as disciplinary action") + warning = fields.Boolean(string='Warning', default=False, + help='Boolean field for to show the message as warning message') + action_details = fields.Text(string="Action Details", + help="Give the details for this action") + attachment_ids = fields.Many2many('ir.attachment', string="Attachments", + help="Employee can submit any documents which supports their explanation") + note = fields.Text(string="Internal Note", + help='Internal notes regarding the disciplinary action') + joined_date = fields.Date(string="Joined Date", + help="Employee joining date") + + + # Check the user is a manager or employee + @api.depends_context('uid') + def _compute_get_user(self): + """Method for getting the user from the groups""" + if self.env.user.has_group('hr.group_hr_manager'): + self.read_only = True + else: + self.read_only = False + + @api.onchange('employee_id') + def onchange_employee_id(self): + """On change function for the employee name and based on the + value it updated the department""" + employee = self.env['hr.employee'].search( + [('name', '=', self.employee_id.name)]) + self.department_id = employee.department_id.id + if self.state == 'action': + raise ValidationError(_('You Can not edit a Validated Action !!')) + + @api.onchange('discipline_reason_id') + def onchange_reason(self): + """On change function for the discipline reason and that check the + state and raise a validation error""" + if self.state == 'action': + raise ValidationError(_('You Can not edit a Validated Action !!')) + + def assign_function(self): + """Method to update state""" + for rec in self: + rec.state = 'explain' + + def cancel_function(self): + """Cancel function for the discipline reason""" + for rec in self: + rec.state = 'cancel' + + def set_to_function(self): + """State set to draft state""" + for rec in self: + rec.state = 'draft' + + def action_function(self): + """Method used for raise validation based on the actions""" + for rec in self: + if not rec.action_id: + raise ValidationError(_('You have to select an Action !!')) + if not rec.action_details or rec.action_details == '


': + raise ValidationError( + _('You have to fill up the Action Details in Action Information !!')) + rec.state = 'action' + + def explanation_function(self): + """Method used for raise validation based on the explanation""" + for rec in self: + if not rec.explanation: + raise ValidationError(_('You must give an explanation !!')) + self.write({ + 'state': 'submitted' + }) diff --git a/hr_disciplinary_tracking/models/discipline_category.py b/hr_disciplinary_tracking/models/discipline_category.py new file mode 100755 index 000000000..59c3a0ce8 --- /dev/null +++ b/hr_disciplinary_tracking/models/discipline_category.py @@ -0,0 +1,41 @@ +# -- coding: utf-8 -- +############################################################################### +# A part of Open HRMS Project +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys () +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################### +from odoo import fields, models + + +class DisciplineCategory(models.Model): + """Model for discipline categories""" + _name = 'discipline.category' + _description = 'Discipline Category' + + code = fields.Char(string="Code", required=True, + help="Discipline category code") + name = fields.Char(string="Name", required=True, + help=" Discipline category name") + category_type = fields.Selection([('disciplinary', 'Disciplinary Category'), + ('action', 'Action Category')], + string="Category Type", + help="Choose the category type " + "disciplinary or action") + description = fields.Text(string="Details", + help="Details for this category") diff --git a/hr_disciplinary_tracking/models/hr_employee.py b/hr_disciplinary_tracking/models/hr_employee.py new file mode 100755 index 000000000..5a3763ab7 --- /dev/null +++ b/hr_disciplinary_tracking/models/hr_employee.py @@ -0,0 +1,44 @@ +# -- coding: utf-8 -- +############################################################################### +# A part of Open HRMS Project +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys () +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################### +from odoo import fields, models + + +class HrEmployee(models.Model): + """Inheriting this model to compute the disciplinary action count""" + _inherit = 'hr.employee' + + discipline_count = fields.Integer(compute="_compute_discipline_count", + help="To compute the employee details " + "based on the discipline count") + + def _compute_discipline_count(self): + """Compute the employee details based on the discipline count""" + all_actions = self.env['disciplinary.action'].read_group([ + ('employee_id', 'in', self.ids), + ('state', '=', 'action'), + ], fields=['employee_id'], groupby=['employee_id']) + mapping = dict( + [(action['employee_id'][0], action['employee_id_count']) for + action in all_actions]) + for employee in self: + employee.discipline_count = mapping.get(employee.id, 0) diff --git a/hr_disciplinary_tracking/security/hr_disciplinary_tracking_security.xml b/hr_disciplinary_tracking/security/hr_disciplinary_tracking_security.xml new file mode 100755 index 000000000..227dd5dec --- /dev/null +++ b/hr_disciplinary_tracking/security/hr_disciplinary_tracking_security.xml @@ -0,0 +1,18 @@ + + + + + Disciplinary Action Employee + + [('employee_id.user_id.id','=',user.id)] + + + + + + Disciplinary Action Manager + + [] + + + diff --git a/hr_disciplinary_tracking/security/ir.model.access.csv b/hr_disciplinary_tracking/security/ir.model.access.csv new file mode 100755 index 000000000..59be29dbc --- /dev/null +++ b/hr_disciplinary_tracking/security/ir.model.access.csv @@ -0,0 +1,4 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +view_disciplinary_action,view.disciplinary.action,model_disciplinary_action,hr.group_hr_manager,1,1,1,1 +view_disciplinary_action_user,view.disciplinary.action.user,model_disciplinary_action,hr.group_hr_user,1,1,0,0 +view_discipline_category,view.discipline.category,model_discipline_category,hr.group_hr_manager,1,1,1,1 diff --git a/hr_disciplinary_tracking/static/description/assets/icons/arrows-repeat.svg b/hr_disciplinary_tracking/static/description/assets/icons/arrows-repeat.svg new file mode 100644 index 000000000..1d7efabc5 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/arrows-repeat.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/banner-bg.png b/hr_disciplinary_tracking/static/description/assets/icons/banner-bg.png new file mode 100644 index 000000000..a8238d3c0 Binary files /dev/null and b/hr_disciplinary_tracking/static/description/assets/icons/banner-bg.png differ diff --git a/hr_disciplinary_tracking/static/description/assets/icons/banner-bg.svg b/hr_disciplinary_tracking/static/description/assets/icons/banner-bg.svg new file mode 100644 index 000000000..b1378103e --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/banner-bg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/banner-call.svg b/hr_disciplinary_tracking/static/description/assets/icons/banner-call.svg new file mode 100644 index 000000000..96c687e81 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/banner-call.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/banner-logo-pattern.svg b/hr_disciplinary_tracking/static/description/assets/icons/banner-logo-pattern.svg new file mode 100644 index 000000000..2ba63930a --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/banner-logo-pattern.svg @@ -0,0 +1,557 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/banner-mail.svg b/hr_disciplinary_tracking/static/description/assets/icons/banner-mail.svg new file mode 100644 index 000000000..cbf0d158d --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/banner-mail.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/banner-promo.svg b/hr_disciplinary_tracking/static/description/assets/icons/banner-promo.svg new file mode 100644 index 000000000..d52791b11 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/banner-promo.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/blue-abstract-gradient-wave-wallpaper.jpg b/hr_disciplinary_tracking/static/description/assets/icons/blue-abstract-gradient-wave-wallpaper.jpg new file mode 100644 index 000000000..1df614b00 Binary files /dev/null and b/hr_disciplinary_tracking/static/description/assets/icons/blue-abstract-gradient-wave-wallpaper.jpg differ diff --git a/hr_disciplinary_tracking/static/description/assets/icons/close-icon.svg b/hr_disciplinary_tracking/static/description/assets/icons/close-icon.svg new file mode 100644 index 000000000..df8cce37a --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/close-icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/collabarate-icon.svg b/hr_disciplinary_tracking/static/description/assets/icons/collabarate-icon.svg new file mode 100644 index 000000000..dd4e10518 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/collabarate-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/cybro-logo.png b/hr_disciplinary_tracking/static/description/assets/icons/cybro-logo.png new file mode 100644 index 000000000..ff4b78220 Binary files /dev/null and b/hr_disciplinary_tracking/static/description/assets/icons/cybro-logo.png differ diff --git a/hr_disciplinary_tracking/static/description/assets/icons/down (1).svg b/hr_disciplinary_tracking/static/description/assets/icons/down (1).svg new file mode 100644 index 000000000..ecc984f88 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/down (1).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/hr_disciplinary_tracking/static/description/assets/icons/email (2).svg b/hr_disciplinary_tracking/static/description/assets/icons/email (2).svg new file mode 100644 index 000000000..ea2d8b15d --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/email (2).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/hr_disciplinary_tracking/static/description/assets/icons/feature-icon.svg b/hr_disciplinary_tracking/static/description/assets/icons/feature-icon.svg new file mode 100644 index 000000000..fa0ea6850 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/feature-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/gear.svg b/hr_disciplinary_tracking/static/description/assets/icons/gear.svg new file mode 100644 index 000000000..0cc66b6ea --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/gear.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/hire-odoo.svg b/hr_disciplinary_tracking/static/description/assets/icons/hire-odoo.svg new file mode 100644 index 000000000..e1ac089b0 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/hire-odoo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/key-benefits-pattern.svg b/hr_disciplinary_tracking/static/description/assets/icons/key-benefits-pattern.svg new file mode 100644 index 000000000..29cf22ed8 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/key-benefits-pattern.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/key-benefits.svg b/hr_disciplinary_tracking/static/description/assets/icons/key-benefits.svg new file mode 100644 index 000000000..5b14887dc --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/key-benefits.svg @@ -0,0 +1,3 @@ + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/life-ring-icon.svg b/hr_disciplinary_tracking/static/description/assets/icons/life-ring-icon.svg new file mode 100644 index 000000000..3ae6e1d89 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/life-ring-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/logo-openhrms.png b/hr_disciplinary_tracking/static/description/assets/icons/logo-openhrms.png new file mode 100644 index 000000000..e64152348 Binary files /dev/null and b/hr_disciplinary_tracking/static/description/assets/icons/logo-openhrms.png differ diff --git a/hr_disciplinary_tracking/static/description/assets/icons/mail.svg b/hr_disciplinary_tracking/static/description/assets/icons/mail.svg new file mode 100644 index 000000000..1eedde695 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/notification icon.svg b/hr_disciplinary_tracking/static/description/assets/icons/notification icon.svg new file mode 100644 index 000000000..053189973 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/notification icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/odoo-consultancy.svg b/hr_disciplinary_tracking/static/description/assets/icons/odoo-consultancy.svg new file mode 100644 index 000000000..e05f65bde --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/odoo-consultancy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/odoo-licencing.svg b/hr_disciplinary_tracking/static/description/assets/icons/odoo-licencing.svg new file mode 100644 index 000000000..2606c88b0 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/odoo-licencing.svg @@ -0,0 +1,3 @@ + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/odoo-logo.png b/hr_disciplinary_tracking/static/description/assets/icons/odoo-logo.png new file mode 100644 index 000000000..0e4d0eb5a Binary files /dev/null and b/hr_disciplinary_tracking/static/description/assets/icons/odoo-logo.png differ diff --git a/hr_disciplinary_tracking/static/description/assets/icons/patter.svg b/hr_disciplinary_tracking/static/description/assets/icons/patter.svg new file mode 100644 index 000000000..25c9c0a8f --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/patter.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/pattern1.png b/hr_disciplinary_tracking/static/description/assets/icons/pattern1.png new file mode 100644 index 000000000..09ab0fb2d Binary files /dev/null and b/hr_disciplinary_tracking/static/description/assets/icons/pattern1.png differ diff --git a/hr_disciplinary_tracking/static/description/assets/icons/puzzle-piece-icon.svg b/hr_disciplinary_tracking/static/description/assets/icons/puzzle-piece-icon.svg new file mode 100644 index 000000000..3e9ad9373 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/puzzle-piece-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/replace-icon.svg b/hr_disciplinary_tracking/static/description/assets/icons/replace-icon.svg new file mode 100644 index 000000000..d0e3a7af1 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/replace-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/skype.svg b/hr_disciplinary_tracking/static/description/assets/icons/skype.svg new file mode 100644 index 000000000..df3dad39b --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/skype.svg @@ -0,0 +1,3 @@ + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/translate.svg b/hr_disciplinary_tracking/static/description/assets/icons/translate.svg new file mode 100644 index 000000000..af9c8a1aa --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/translate.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/icons/wrench-icon.svg b/hr_disciplinary_tracking/static/description/assets/icons/wrench-icon.svg new file mode 100644 index 000000000..174b5a465 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/icons/wrench-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/misc/Cybrosys R.png b/hr_disciplinary_tracking/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/hr_disciplinary_tracking/static/description/assets/misc/Cybrosys R.png differ diff --git a/hr_disciplinary_tracking/static/description/assets/misc/banner-call.svg b/hr_disciplinary_tracking/static/description/assets/misc/banner-call.svg new file mode 100644 index 000000000..96c687e81 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/misc/banner-call.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/misc/email.svg b/hr_disciplinary_tracking/static/description/assets/misc/email.svg new file mode 100644 index 000000000..15291cdc3 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/misc/star (1) 2.svg b/hr_disciplinary_tracking/static/description/assets/misc/star (1) 2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/misc/support (1) 1.svg b/hr_disciplinary_tracking/static/description/assets/misc/support (1) 1.svg new file mode 100644 index 000000000..7d37a8f30 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/misc/support-email.svg b/hr_disciplinary_tracking/static/description/assets/misc/support-email.svg new file mode 100644 index 000000000..eb70370d6 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/misc/tick-mark.svg b/hr_disciplinary_tracking/static/description/assets/misc/tick-mark.svg new file mode 100644 index 000000000..2dbb40187 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/misc/whatsapp 1.svg b/hr_disciplinary_tracking/static/description/assets/misc/whatsapp 1.svg new file mode 100644 index 000000000..0bfaf8fc6 --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/misc/whatsapp.svg b/hr_disciplinary_tracking/static/description/assets/misc/whatsapp.svg new file mode 100644 index 000000000..b618aea1d --- /dev/null +++ b/hr_disciplinary_tracking/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hr_disciplinary_tracking/static/description/assets/modules/s1.jpg b/hr_disciplinary_tracking/static/description/assets/modules/s1.jpg new file mode 100644 index 000000000..662cadcc3 Binary files /dev/null and b/hr_disciplinary_tracking/static/description/assets/modules/s1.jpg differ diff --git a/hr_disciplinary_tracking/static/description/assets/modules/s2.png b/hr_disciplinary_tracking/static/description/assets/modules/s2.png new file mode 100644 index 000000000..48e801c6a Binary files /dev/null and b/hr_disciplinary_tracking/static/description/assets/modules/s2.png differ diff --git a/hr_disciplinary_tracking/static/description/assets/modules/s3.jpg b/hr_disciplinary_tracking/static/description/assets/modules/s3.jpg new file mode 100644 index 000000000..86379cd61 Binary files /dev/null and b/hr_disciplinary_tracking/static/description/assets/modules/s3.jpg differ diff --git a/hr_disciplinary_tracking/static/description/assets/modules/s4.png b/hr_disciplinary_tracking/static/description/assets/modules/s4.png new file mode 100644 index 000000000..6d05615e4 Binary files /dev/null and b/hr_disciplinary_tracking/static/description/assets/modules/s4.png differ diff --git a/hr_disciplinary_tracking/static/description/assets/modules/s5.jpg b/hr_disciplinary_tracking/static/description/assets/modules/s5.jpg new file mode 100644 index 000000000..a4c99ac9a Binary files /dev/null and b/hr_disciplinary_tracking/static/description/assets/modules/s5.jpg differ diff --git a/hr_disciplinary_tracking/static/description/assets/modules/s6.jpg b/hr_disciplinary_tracking/static/description/assets/modules/s6.jpg new file mode 100644 index 000000000..579d106b7 Binary files /dev/null and b/hr_disciplinary_tracking/static/description/assets/modules/s6.jpg differ diff --git a/hr_disciplinary_tracking/static/description/assets/screenshot/1.png b/hr_disciplinary_tracking/static/description/assets/screenshot/1.png new file mode 100644 index 000000000..dc047dea5 Binary files /dev/null and b/hr_disciplinary_tracking/static/description/assets/screenshot/1.png differ diff --git a/hr_disciplinary_tracking/static/description/assets/screenshot/2.png b/hr_disciplinary_tracking/static/description/assets/screenshot/2.png new file mode 100644 index 000000000..0f8b43a5a Binary files /dev/null and b/hr_disciplinary_tracking/static/description/assets/screenshot/2.png differ diff --git a/hr_disciplinary_tracking/static/description/assets/screenshot/3.png b/hr_disciplinary_tracking/static/description/assets/screenshot/3.png new file mode 100644 index 000000000..08a065c51 Binary files /dev/null and b/hr_disciplinary_tracking/static/description/assets/screenshot/3.png differ diff --git a/hr_disciplinary_tracking/static/description/assets/screenshot/4.png b/hr_disciplinary_tracking/static/description/assets/screenshot/4.png new file mode 100644 index 000000000..51b908fe8 Binary files /dev/null and b/hr_disciplinary_tracking/static/description/assets/screenshot/4.png differ diff --git a/hr_disciplinary_tracking/static/description/assets/screenshot/hero.gif b/hr_disciplinary_tracking/static/description/assets/screenshot/hero.gif new file mode 100644 index 000000000..633eb5284 Binary files /dev/null and b/hr_disciplinary_tracking/static/description/assets/screenshot/hero.gif differ diff --git a/hr_disciplinary_tracking/static/description/banner.jpg b/hr_disciplinary_tracking/static/description/banner.jpg new file mode 100644 index 000000000..c214b23a2 Binary files /dev/null and b/hr_disciplinary_tracking/static/description/banner.jpg differ diff --git a/hr_disciplinary_tracking/static/description/icon.png b/hr_disciplinary_tracking/static/description/icon.png new file mode 100644 index 000000000..792e1e3d7 Binary files /dev/null and b/hr_disciplinary_tracking/static/description/icon.png differ diff --git a/hr_disciplinary_tracking/static/description/index.html b/hr_disciplinary_tracking/static/description/index.html new file mode 100644 index 000000000..6fdba81af --- /dev/null +++ b/hr_disciplinary_tracking/static/description/index.html @@ -0,0 +1,932 @@ + + + + + + app index + + + + + + + + + + +
+
+
+
Community +
+
+
+ +
+
+

Open HRMS Disciplinary Tracking + +

+

+ Track the Disciplinary actions of Employees. +

+
+
+ + +
+ +
+ +
+
+
+ +
+
+ +
+
+ +
+
+
+

Key Heighlights

+
+
+
+
+ +
+
+ Manager Assignment of Disciplinary Actions +
+

+ Manager can assign disciplinary issues to the employees +

+
+
+
+
+
+ +
+
+ Manager's Final Action Based on Employee Explanation +
+

+ Manager can take the final action against the employee according to the Explanation. +

+
+ +
+
+
+ +
+
+ Employee Explanation Submission +
+

+ Employees give explanations and submit it to the manager

+
+
+
+ +
+
+
+ Open HRMS Disciplinary Tracking +

+ Are you ready to make your business more organized? +
Improve now! +

+ +
+
+ +
+
+
+ + + +
+
+ +
+
+
+
+ acc_bg +
+ +
+
+
+
+

+ + Create Disciplinary Actions + +

+ +
+

+ Create Disciplinary Actions from Employee Module and mention the + reason for it and submit to proceed +

+
+ + +
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + Employee Explanation Submission + +

+
+
+

+ Employees can submit their explanation during the "Waiting Explanation" + stage and send it to the manager.

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + Manager's Final Action Based on Employee Explanation + +

+
+
+

+ The manager can validate the action after reviewing the reason and + employee explanation, then proceed with taking the necessary + action.

+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+

+ Manager Assignment of Disciplinary Actions

+
+
+
+ +
+
+
+
+ +
+

+ Manager's Final Action Based on Employee Explanation +

+
+
+
+ +
+
+
+
+ +
+

+ Employee Explanation Submission +

+
+
+
+
+
+
+
+
+
+
+ +
+ +
+ +
+

+ The Disciplinary Tracking module helps organizations monitor + and manage employee compliance with company policies. It + allows managers to address violations appropriately, + ensuring a fair and consistent approach to disciplinary + actions. +

+
+
+ +
+ +
+

+ Yes, employees can submit their explanations during the + "Waiting for Explanation" stage. They can provide details + regarding the disciplinary issue, which will then be + reviewed by their manager. +

+
+
+ + +
+ +
+

+ Yes, the module includes predefined categories for + disciplinary actions, which help in classifying and managing + different types of violations systematically. +

+
+
+ +
+ +
+

+ Yes, the module allows tracking of the status of each + disciplinary action, such as "Draft," "Waiting for + Explanation," "Submitted," and "Action Validated." This + helps in maintaining an organized workflow. +

+
+
+
+
+
+
+
+
+
+ +
+
+

+ Latest Release 18.0.1.0.0 +

+ + 19th October, 2024 + +
+
+
+
+
+ Add +
+
+
+
    +
  • + Initial Commit +
  • +
+
+
+
+
+
+
+
+
+
+ + + +
+
+

Our Services

+
+ +
+ + +
+
+ .... +
+
+
+ +
+
+ + + + + + + + diff --git a/hr_disciplinary_tracking/views/disciplinary_action_views.xml b/hr_disciplinary_tracking/views/disciplinary_action_views.xml new file mode 100755 index 000000000..c770de9e6 --- /dev/null +++ b/hr_disciplinary_tracking/views/disciplinary_action_views.xml @@ -0,0 +1,200 @@ + + + + + disciplinary.action.view.search + disciplinary.action + + + + + + + + + + + + + + + + + + + + + + + disciplinary.action.view.list + disciplinary.action + + + + + + + + + + + disciplinary.action.view.form + disciplinary.action + +
+
+
+ +
+

+ +

+
+

+ + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ + + Disciplinary Action + disciplinary.action + list,form + + [('state','in',('draft','explain','submitted','action','cancel'))] + + + + + Disciplinary Actions + disciplinary.action + list,form + [('state','=','action'),('employee_id.id', + '=', active_id)] + + + + + Disciplinary Action Details + disciplinary.action + list,form + [('state','!=','draft')] + + + + inherit.employee.form.view + hr.employee + + + + + + + + + + + l + +
diff --git a/hr_disciplinary_tracking/views/discipline_category_views.xml b/hr_disciplinary_tracking/views/discipline_category_views.xml new file mode 100755 index 000000000..dd6648920 --- /dev/null +++ b/hr_disciplinary_tracking/views/discipline_category_views.xml @@ -0,0 +1,58 @@ + + + + + discipline.category.view.search + discipline.category + + + + + + + + + + + + + + + discipline.category.view.list + discipline.category + + + + + + + + + discipline.category.form + discipline.category + +
+ + + + + + + + +
+
+
+ + + Discipline Categories + discipline.category + list,form + + + +