diff --git a/employee_orientation/README.rst b/employee_orientation/README.rst new file mode 100644 index 000000000..05898b0fe --- /dev/null +++ b/employee_orientation/README.rst @@ -0,0 +1,48 @@ +Employee Orientation v15 +======================== +This module developed to manage employee orientation&training programs. + + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developers: Anusha @cybrosys, odoo@cybrosys.com + Niyas V11 @cybrosys, odoo@cybrosys.com + Kavya Raveendran V12 odoo@cybrosys.com + Nimisha Murali V13 @cybrosys odoo@cybrosys.com + Muhammed P V14 @cybrosys odoo@cybrosys.com + Gion V15 @cybrosys odoo@cybrosys.com + + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.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 + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ + + + + diff --git a/employee_orientation/__init__.py b/employee_orientation/__init__.py new file mode 100644 index 000000000..bba0631a1 --- /dev/null +++ b/employee_orientation/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from . import models +from . import wizard diff --git a/employee_orientation/__manifest__.py b/employee_orientation/__manifest__.py new file mode 100644 index 000000000..4e81584a3 --- /dev/null +++ b/employee_orientation/__manifest__.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +{ + 'name': "Employee Orientation & Training", + 'version': '15.0.1.0.0', + 'category': "Generic Modules/Human Resources", + 'summary': """Employee Orientation/Training Program""", + 'description': 'Complete Employee Orientation/Training Program', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['base', 'hr'], + 'data': [ + 'views/orientation_checklist_line.xml', + 'views/employee_orientation.xml', + 'views/orientation_checklist.xml', + 'views/orientation_checklists_request.xml', + 'views/orientation_checklist_sequence.xml', + 'views/orientation_request_mail_template.xml', + 'views/print_pack_certificates_template.xml', + 'views/report.xml', + 'views/employee_training.xml', + 'security/ir.model.access.csv', + ], + 'images': ['static/description/banner.png'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/employee_orientation/doc/RELEASE_NOTES.md b/employee_orientation/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..f322f8a2a --- /dev/null +++ b/employee_orientation/doc/RELEASE_NOTES.md @@ -0,0 +1,8 @@ +## Module + +#### 25.10.2021 +#### Version 15.0.1.0.0 +#### ADD +Initial Commit + + diff --git a/employee_orientation/models/__init__.py b/employee_orientation/models/__init__.py new file mode 100644 index 000000000..75fb79bf4 --- /dev/null +++ b/employee_orientation/models/__init__.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from . import orientation_checklist_line +from . import orientation_checklist +from . import employee_orientation +from . import orientation_checklist_request +from . import employee_training +from . import report diff --git a/employee_orientation/models/employee_orientation.py b/employee_orientation/models/employee_orientation.py new file mode 100644 index 000000000..be6196bac --- /dev/null +++ b/employee_orientation/models/employee_orientation.py @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, fields, models, _ + + +class Orientation(models.Model): + _name = 'employee.orientation' + _description = "Employee Orientation" + _inherit = 'mail.thread' + + name = fields.Char(string='Employee Orientation', readonly=True, default=lambda self: _('New')) + employee_name = fields.Many2one('hr.employee', string='Employee', size=32, required=True) + department = fields.Many2one('hr.department', string='Department', related='employee_name.department_id', + required=True) + date = fields.Datetime(string="Date") + # date = fields.Datetime.to_string(dateText) + responsible_user = fields.Many2one('res.users', string='Responsible User') + employee_company = fields.Many2one('res.company', string='Company', required=True, + default=lambda self: self.env.user.company_id) + parent_id = fields.Many2one('hr.employee', string='Manager', related='employee_name.parent_id') + job_id = fields.Many2one('hr.job', string='Job Title', related='employee_name.job_id', + domain="[('department_id', '=', department)]") + orientation_id = fields.Many2one('orientation.checklist', string='Orientation Checklist', + domain="[('checklist_department','=', department)]", required=True) + note_id = fields.Text('Description') + orientation_request = fields.One2many('orientation.request', 'request_orientation', string='Orientation Request') + state = fields.Selection([ + ('draft', 'Draft'), + ('confirm', 'Confirmed'), + ('cancel', 'Canceled'), + ('complete', 'Completed'), + ], string='Status', readonly=True, copy=False, index=True, track_visibility='onchange', default='draft') + + def confirm_orientation(self): + self.write({'state': 'confirm'}) + for values in self.orientation_id.checklist_line_id: + self.env['orientation.request'].create({ + 'request_name': values.line_name, + 'request_orientation': self.id, + 'partner_id': values.responsible_user.id, + 'request_date': self.date, + 'employee_id': self.employee_name.id, + }) + + def cancel_orientation(self): + for request in self.orientation_request: + request.state = 'cancel' + self.write({'state': 'cancel'}) + + def complete_orientation(self): + force_complete = False + for request in self.orientation_request: + if request.state == 'new': + force_complete = True + if force_complete: + return { + 'name': 'Complete Orientation', + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'orientation.force.complete', + 'type': 'ir.actions.act_window', + 'context': {'default_orientation_id': self.id}, + 'target': 'new', + } + self.write({'state': 'complete'}) + + @api.model + def create(self, vals): + vals['name'] = self.env['ir.sequence'].next_by_code('employee.orientation') + result = super(Orientation, self).create(vals) + return result diff --git a/employee_orientation/models/employee_training.py b/employee_orientation/models/employee_training.py new file mode 100644 index 000000000..34105b699 --- /dev/null +++ b/employee_orientation/models/employee_training.py @@ -0,0 +1,124 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from dateutil.relativedelta import relativedelta +from datetime import datetime, timedelta +from odoo import api, fields, models, _ + + +class HrEmployee(models.Model): + _inherit = 'hr.employee' + + certificates = fields.Boolean(default=True, string="Certificates") + + +class EmployeeTraining(models.Model): + _name = 'employee.training' + _rec_name = 'program_name' + _description = "Employee Training" + _inherit = 'mail.thread' + + program_name = fields.Char(string='Training Program', required=True) + program_department = fields.Many2one('hr.department', string='Department', required=True) + program_convener = fields.Many2one('res.users', string='Responsible User', size=32, required=True) + training_id = fields.One2many('hr.employee', string='Employee Details', compute="employee_details") + note_id = fields.Text('Description') + date_from = fields.Datetime(string="Date From") + date_to = fields.Datetime(string="Date To") + user_id = fields.Many2one('res.users', string='users', default=lambda self: self.env.user) + company_id = fields.Many2one('res.company', string='Company', required=True, + default=lambda self: self.env.user.company_id) + + state = fields.Selection([ + ('new', 'New'), + ('confirm', 'Confirmed'), + ('cancel', 'Canceled'), + ('complete', 'Completed'), + ('print', 'Print'), + ], string='Status', readonly=True, copy=False, index=True, track_visibility='onchange', default='new') + + @api.onchange('program_department') + def employee_details(self): + datas = self.env['hr.employee'].search([('department_id', '=', self.program_department.id)]) + self.training_id = datas + + def print_event(self): + self.ensure_one() + started_date = datetime.strftime(self.create_date, "%Y-%m-%d ") + duration = (self.write_date - self.create_date).days + pause = relativedelta(hours=0) + difference = relativedelta(self.write_date, self.create_date) - pause + hours = difference.hours + minutes = difference.minutes + data = { + 'dept_id': self.program_department.id, + 'program_name': self.program_name, + 'company_name': self.company_id.name, + 'date_to': started_date, + 'duration': duration, + 'hours': hours, + 'minutes': minutes, + 'program_convener': self.program_convener.name, + + } + return self.env.ref('employee_orientation.print_pack_certificates').report_action(self, data=data) + + def complete_event(self): + self.write({'state': 'complete'}) + + def confirm_event(self): + self.write({'state': 'confirm'}) + + def cancel_event(self): + self.write({'state': 'cancel'}) + + def confirm_send_mail(self): + self.ensure_one() + ir_model_data = self.env['ir.model.data'] + try: + template_id = ir_model_data._xmlid_lookup('employee_orientation.orientation_training_mailer')[2] + except ValueError: + template_id = False + try: + compose_form_id = ir_model_data._xmlid_lookup('mail.email_compose_message_wizard_form')[2] + except ValueError: + compose_form_id = False + ctx = dict(self.env.context or {}) + ctx.update({ + 'default_model': 'employee.training', + 'default_res_id': self.ids[0], + 'default_use_template': bool(template_id), + 'default_template_id': template_id, + 'default_composition_mode': 'comment', + }) + + return { + 'name': _('Compose Email'), + 'type': 'ir.actions.act_window', + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'mail.compose.message', + 'views': [(compose_form_id, 'form')], + 'view_id': compose_form_id, + 'target': 'new', + 'context': ctx, + } diff --git a/employee_orientation/models/orientation_checklist.py b/employee_orientation/models/orientation_checklist.py new file mode 100644 index 000000000..cc7ba4be0 --- /dev/null +++ b/employee_orientation/models/orientation_checklist.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from odoo import models, fields, _ + + +class OrientationChecklist(models.Model): + _name = 'orientation.checklist' + _description = "Checklist" + _rec_name = 'checklist_name' + _inherit = 'mail.thread' + + checklist_name = fields.Char(string='Name', required=True) + checklist_department = fields.Many2one('hr.department', string='Department', required=True) + active = fields.Boolean(string='Active', default=True, + help="Set active to false to hide the Orientation Checklist without removing it.") + checklist_line_id = fields.Many2many('checklist.line', 'checklist_line_rel', String="Checklist") + + + + + + + diff --git a/employee_orientation/models/orientation_checklist_line.py b/employee_orientation/models/orientation_checklist_line.py new file mode 100644 index 000000000..8ac5de189 --- /dev/null +++ b/employee_orientation/models/orientation_checklist_line.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from odoo import models, fields + + +class ChecklistLine(models.Model): + _name = 'checklist.line' + _rec_name = 'line_name' + + line_name = fields.Char(string='Name', required=True) + responsible_user = fields.Many2one('res.users', string='Responsible User', required=True) diff --git a/employee_orientation/models/orientation_checklist_request.py b/employee_orientation/models/orientation_checklist_request.py new file mode 100644 index 000000000..bdcb3b9d6 --- /dev/null +++ b/employee_orientation/models/orientation_checklist_request.py @@ -0,0 +1,88 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from odoo import models, fields, api +from odoo.tools.translate import _ + + +class OrientationChecklistRequest(models.Model): + _name = 'orientation.request' + _description = "Employee Orientation Request" + _rec_name = 'request_name' + _inherit = 'mail.thread' + + request_name = fields.Char(string='Name') + request_orientation = fields.Many2one('employee.orientation', string='Employee Orientation') + employee_company = fields.Many2one('res.company', string='Company', required=True, + default=lambda self: self.env.user.company_id) + partner_id = fields.Many2one('res.users', string='Responsible User') + request_date = fields.Date(string="Date") + employee_id = fields.Many2one('hr.employee', string='Employee') + request_expected_date = fields.Date(string="Expected Date") + attachment_id_1 = fields.Many2many('ir.attachment', 'orientation_rel_1', string="Attachment") + note_id = fields.Text('Description') + user_id = fields.Many2one('res.users', string='users', default=lambda self: self.env.user) + company_id = fields.Many2one('res.company', string='Company', required=True, + default=lambda self: self.env.user.company_id) + state = fields.Selection([ + ('new', 'New'), + ('cancel', 'Cancel'), + ('complete', 'Completed'), + ], string='Status', readonly=True, copy=False, index=True, track_visibility='onchange', default='new') + + def confirm_send_mail(self): + self.ensure_one() + ir_model_data = self.env['ir.model.data'] + try: + template_id = ir_model_data._xmlid_lookup('employee_orientation.orientation_request_mailer')[2] + except ValueError: + template_id = False + try: + compose_form_id = ir_model_data._xmlid_lookup('mail.email_compose_message_wizard_form')[2] + except ValueError: + compose_form_id = False + ctx = dict(self.env.context or {}) + ctx.update({ + 'default_model': 'orientation.request', + 'default_res_id': self.ids[0], + 'default_use_template': bool(template_id), + 'default_template_id': template_id, + 'default_composition_mode': 'comment', + }) + + return { + 'name': _('Compose Email'), + 'type': 'ir.actions.act_window', + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'mail.compose.message', + 'views': [(compose_form_id, 'form')], + 'view_id': compose_form_id, + 'target': 'new', + 'context': ctx, + } + + def confirm_request(self): + self.write({'state': "complete"}) + + def cancel_request(self): + self.write({'state': "cancel"}) diff --git a/employee_orientation/models/report.py b/employee_orientation/models/report.py new file mode 100644 index 000000000..4435219c6 --- /dev/null +++ b/employee_orientation/models/report.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, models, _ + + +class PackingReportValues(models.AbstractModel): + _name = 'report.employee_orientation.print_pack_template' + + @api.model + def _get_report_values(self, docids, data=None): + + lst = [] + empl_obj = self.env['hr.employee'].search([('department_id', '=', data['dept_id'])]) + docs = self.env['hr.employee'].browse(docids) + + for line in empl_obj: + lst.append({ + 'doc_ids': docs.ids, + 'doc_model': 'hr.employee', + 'name': line.name, + 'department_id': line.department_id.name, + 'program_name': data['program_name'], + 'company_name': data['company_name'], + 'date_to': data['date_to'], + 'program_convener': data['program_convener'], + 'duration': data['duration'], + 'hours': data['hours'], + 'minutes': data['minutes'], + }) + + return { + 'data': lst, + } + diff --git a/employee_orientation/security/ir.model.access.csv b/employee_orientation/security/ir.model.access.csv new file mode 100644 index 000000000..6f736f265 --- /dev/null +++ b/employee_orientation/security/ir.model.access.csv @@ -0,0 +1,8 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_user_orientation_request,orientation.request,model_orientation_request,hr.group_hr_user,1,1,1,1 +access_user_checklist_line,checklist.line,model_checklist_line,hr.group_hr_user,1,1,1,1 +access_user_employee_orientation,employee.orientation,model_employee_orientation,hr.group_hr_user,1,1,1,1 +access_manager_employee_orientation_request,orientation.checklist,model_orientation_checklist,hr.group_hr_user,1,1,1,1 +access_user_employee_training,employee.training,model_employee_training,hr.group_hr_user,1,1,1,1 +access_manager_employee_training,employee.training,model_employee_training,base.group_user,1,1,0,0 +access_manager_orientation_request,orientation.request,model_orientation_request,base.group_user,1,1,0,0 diff --git a/employee_orientation/static/description/assets/icons/check.png b/employee_orientation/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/employee_orientation/static/description/assets/icons/check.png differ diff --git a/employee_orientation/static/description/assets/icons/chevron.png b/employee_orientation/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/employee_orientation/static/description/assets/icons/chevron.png differ diff --git a/employee_orientation/static/description/assets/icons/cogs.png b/employee_orientation/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/employee_orientation/static/description/assets/icons/cogs.png differ diff --git a/employee_orientation/static/description/assets/icons/consultation.png b/employee_orientation/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/employee_orientation/static/description/assets/icons/consultation.png differ diff --git a/employee_orientation/static/description/assets/icons/ecom-black.png b/employee_orientation/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/employee_orientation/static/description/assets/icons/ecom-black.png differ diff --git a/employee_orientation/static/description/assets/icons/education-black.png b/employee_orientation/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/employee_orientation/static/description/assets/icons/education-black.png differ diff --git a/employee_orientation/static/description/assets/icons/hotel-black.png b/employee_orientation/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/employee_orientation/static/description/assets/icons/hotel-black.png differ diff --git a/employee_orientation/static/description/assets/icons/license.png b/employee_orientation/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/employee_orientation/static/description/assets/icons/license.png differ diff --git a/employee_orientation/static/description/assets/icons/lifebuoy.png b/employee_orientation/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/employee_orientation/static/description/assets/icons/lifebuoy.png differ diff --git a/employee_orientation/static/description/assets/icons/logo.png b/employee_orientation/static/description/assets/icons/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/employee_orientation/static/description/assets/icons/logo.png differ diff --git a/employee_orientation/static/description/assets/icons/manufacturing-black.png b/employee_orientation/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/employee_orientation/static/description/assets/icons/manufacturing-black.png differ diff --git a/employee_orientation/static/description/assets/icons/pos-black.png b/employee_orientation/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/employee_orientation/static/description/assets/icons/pos-black.png differ diff --git a/employee_orientation/static/description/assets/icons/puzzle.png b/employee_orientation/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/employee_orientation/static/description/assets/icons/puzzle.png differ diff --git a/employee_orientation/static/description/assets/icons/restaurant-black.png b/employee_orientation/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/employee_orientation/static/description/assets/icons/restaurant-black.png differ diff --git a/employee_orientation/static/description/assets/icons/service-black.png b/employee_orientation/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/employee_orientation/static/description/assets/icons/service-black.png differ diff --git a/employee_orientation/static/description/assets/icons/trading-black.png b/employee_orientation/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/employee_orientation/static/description/assets/icons/trading-black.png differ diff --git a/employee_orientation/static/description/assets/icons/training.png b/employee_orientation/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/employee_orientation/static/description/assets/icons/training.png differ diff --git a/employee_orientation/static/description/assets/icons/update.png b/employee_orientation/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/employee_orientation/static/description/assets/icons/update.png differ diff --git a/employee_orientation/static/description/assets/icons/user.png b/employee_orientation/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/employee_orientation/static/description/assets/icons/user.png differ diff --git a/employee_orientation/static/description/assets/icons/wrench.png b/employee_orientation/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/employee_orientation/static/description/assets/icons/wrench.png differ diff --git a/employee_orientation/static/description/assets/modules/approval_image.png b/employee_orientation/static/description/assets/modules/approval_image.png new file mode 100644 index 000000000..84fe94e80 Binary files /dev/null and b/employee_orientation/static/description/assets/modules/approval_image.png differ diff --git a/employee_orientation/static/description/assets/modules/budget_image.png b/employee_orientation/static/description/assets/modules/budget_image.png new file mode 100644 index 000000000..fe6aa6fe4 Binary files /dev/null and b/employee_orientation/static/description/assets/modules/budget_image.png differ diff --git a/employee_orientation/static/description/assets/modules/export_image.png b/employee_orientation/static/description/assets/modules/export_image.png new file mode 100644 index 000000000..4e4ea0e51 Binary files /dev/null and b/employee_orientation/static/description/assets/modules/export_image.png differ diff --git a/employee_orientation/static/description/assets/modules/magento_image.png b/employee_orientation/static/description/assets/modules/magento_image.png new file mode 100644 index 000000000..39de0820f Binary files /dev/null and b/employee_orientation/static/description/assets/modules/magento_image.png differ diff --git a/employee_orientation/static/description/assets/modules/pos_image.png b/employee_orientation/static/description/assets/modules/pos_image.png new file mode 100644 index 000000000..c5932894b Binary files /dev/null and b/employee_orientation/static/description/assets/modules/pos_image.png differ diff --git a/employee_orientation/static/description/assets/modules/shopify_image.png b/employee_orientation/static/description/assets/modules/shopify_image.png new file mode 100644 index 000000000..c6d92c16d Binary files /dev/null and b/employee_orientation/static/description/assets/modules/shopify_image.png differ diff --git a/employee_orientation/static/description/assets/screenshots/hero.png b/employee_orientation/static/description/assets/screenshots/hero.png new file mode 100644 index 000000000..e8364af0e Binary files /dev/null and b/employee_orientation/static/description/assets/screenshots/hero.png differ diff --git a/employee_orientation/static/description/assets/screenshots/orientation-1.png b/employee_orientation/static/description/assets/screenshots/orientation-1.png new file mode 100644 index 000000000..998bbb370 Binary files /dev/null and b/employee_orientation/static/description/assets/screenshots/orientation-1.png differ diff --git a/employee_orientation/static/description/assets/screenshots/orientation-2.png b/employee_orientation/static/description/assets/screenshots/orientation-2.png new file mode 100644 index 000000000..e0b344555 Binary files /dev/null and b/employee_orientation/static/description/assets/screenshots/orientation-2.png differ diff --git a/employee_orientation/static/description/assets/screenshots/orientation-3.png b/employee_orientation/static/description/assets/screenshots/orientation-3.png new file mode 100644 index 000000000..03a226afe Binary files /dev/null and b/employee_orientation/static/description/assets/screenshots/orientation-3.png differ diff --git a/employee_orientation/static/description/assets/screenshots/orientation-4.png b/employee_orientation/static/description/assets/screenshots/orientation-4.png new file mode 100644 index 000000000..80822fe32 Binary files /dev/null and b/employee_orientation/static/description/assets/screenshots/orientation-4.png differ diff --git a/employee_orientation/static/description/assets/screenshots/orientation-5.png b/employee_orientation/static/description/assets/screenshots/orientation-5.png new file mode 100644 index 000000000..cb5cc8991 Binary files /dev/null and b/employee_orientation/static/description/assets/screenshots/orientation-5.png differ diff --git a/employee_orientation/static/description/assets/screenshots/orientation-6.png b/employee_orientation/static/description/assets/screenshots/orientation-6.png new file mode 100644 index 000000000..41f091caf Binary files /dev/null and b/employee_orientation/static/description/assets/screenshots/orientation-6.png differ diff --git a/employee_orientation/static/description/assets/screenshots/orientation-7.png b/employee_orientation/static/description/assets/screenshots/orientation-7.png new file mode 100644 index 000000000..be26dc53e Binary files /dev/null and b/employee_orientation/static/description/assets/screenshots/orientation-7.png differ diff --git a/employee_orientation/static/description/assets/screenshots/orientation-8.png b/employee_orientation/static/description/assets/screenshots/orientation-8.png new file mode 100644 index 000000000..88733df4f Binary files /dev/null and b/employee_orientation/static/description/assets/screenshots/orientation-8.png differ diff --git a/employee_orientation/static/description/assets/screenshots/orientation-9.png b/employee_orientation/static/description/assets/screenshots/orientation-9.png new file mode 100644 index 000000000..c8782b668 Binary files /dev/null and b/employee_orientation/static/description/assets/screenshots/orientation-9.png differ diff --git a/employee_orientation/static/description/banner.png b/employee_orientation/static/description/banner.png new file mode 100644 index 000000000..a616e4c5c Binary files /dev/null and b/employee_orientation/static/description/banner.png differ diff --git a/employee_orientation/static/description/icon.png b/employee_orientation/static/description/icon.png new file mode 100644 index 000000000..1a44a5b53 Binary files /dev/null and b/employee_orientation/static/description/icon.png differ diff --git a/employee_orientation/static/description/index.html b/employee_orientation/static/description/index.html new file mode 100644 index 000000000..e5f7749cd --- /dev/null +++ b/employee_orientation/static/description/index.html @@ -0,0 +1,698 @@ +
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+ +
+
+
+
+ +
+
+
+

+ Employee Orientation & Training

+

+ This may help reduce turnover and increase productivity +

+ +
+
+ + + + +
+
+

+ Overview +

+
+ +
+

+ Employee orientation/training is the process by which an employee acquires the necessary skills, + knowledge, behaviors, and contacts to effectively transition into a new organization.It can enhance the + overall satisfaction of employees and can encourage a positive attitude about the employer. Employees + view companies that offer meaningful benefits as more caring and engaged with their needs. This may help + reduce turnover and increase productivity.

+ +
+
+ + +
+
+

+ Features +

+
+ +
+
+ +
+
+

+ Makes the Employee Orientation Program easier

+ +
+
+
+
+ +
+
+

+ Systematical Workflow

+
+
+ +
+
+ +
+
+

+ Allows to Create Employee Training Programs

+ +
+
+ +
+
+ +
+
+

+ Email Notification for each Responsible person

+
+
+ +
+
+ +
+
+

+ Certificates for training program attendees

+
+
+ + +
+ +
+
+

+ Screenshots +

+
+
+

+ Orientation Checklist

+ + +
+ +
+

+ Orientation Checklist Line

+ + +
+ +
+

+ Employee Orientation

+ + +
+ + +
+

+ Automatic creation of checklist lines

+ + + +
+ + +
+

+ Orientation Request

+

+ Confirming orientation will create orientation requests automatically. +

+ +
+

+ Orientation requests with the corresponding employee orientation are added +

+ +
+ + +
+

+ Email Template

+ + +
+ +
+

+ Employee Training

+ + +
+ +
+

+ Print Certificates

+

+ Book issued history in each book. +

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

Suggested Products

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

Our Services

+
+
+ +
+
+ +
+
+ Odoo + Customization
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Support
+
+ + +
+
+ +
+
+ Hire + Odoo + Developer
+
+ +
+
+ +
+
+ Odoo + Integration
+
+ +
+
+ +
+
+ Odoo + Migration
+
+ + +
+
+ +
+
+ Odoo + Consultancy
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Licensing Consultancy
+
+
+
+ + + +
+
+
+

Our Industries

+
+
+ +
+
+ +
+ Trading +
+

+ Easily procure + and + sell your products

+
+
+ +
+
+ +
+ POS +
+

+ Easy + configuration + and convivial experience

+
+
+ +
+
+ +
+ Education +
+

+ A platform for + educational management

+
+
+ +
+
+ +
+ Manufacturing +
+

+ Plan, track and + schedule your operations

+
+
+ +
+
+ +
+ E-commerce & Website +
+

+ Mobile + friendly, + awe-inspiring product pages

+
+
+ +
+
+ +
+ Service Management +
+

+ Keep track of + services and invoice

+
+
+ +
+
+ +
+ Restaurant +
+

+ Run your bar or + restaurant methodically

+
+
+ +
+
+ +
+ Hotel Management +
+

+ An + all-inclusive + hotel management application

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

Need Help?

+
+
+
+ + +
+ +
+ +
+ +
+ WhatsApp +
+
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+
+ + +
\ No newline at end of file diff --git a/employee_orientation/views/employee_orientation.xml b/employee_orientation/views/employee_orientation.xml new file mode 100644 index 000000000..3454fe54c --- /dev/null +++ b/employee_orientation/views/employee_orientation.xml @@ -0,0 +1,111 @@ + + + + + employee.orientation.tree + employee.orientation + + + + + + + + + + + + + employee.orientation.form + employee.orientation + +
+
+
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+
+ + employee.orientation.search + employee.orientation + + + + + + + + + + + + + + Employee Orientation + ir.actions.act_window + employee.orientation + tree,form + + [] + {} + + + Create Employee Orientation. + + + + +
+
diff --git a/employee_orientation/views/employee_training.xml b/employee_orientation/views/employee_training.xml new file mode 100644 index 000000000..a91685810 --- /dev/null +++ b/employee_orientation/views/employee_training.xml @@ -0,0 +1,105 @@ + + + + + employee.training.tree + employee.training + + + + + + + + + + + employee.training.form + employee.training + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+
+ + employee.training.search + employee.training + + + + + + + + + Employee Training Program + ir.actions.act_window + employee.training + tree,form + + [] + {} + + + Create Employee Training Program. + + + + + + hr.employee.inherit.form + hr.employee + + 30 + + + + + + +
+
diff --git a/employee_orientation/views/orientation_checklist.xml b/employee_orientation/views/orientation_checklist.xml new file mode 100644 index 000000000..ff8aa628b --- /dev/null +++ b/employee_orientation/views/orientation_checklist.xml @@ -0,0 +1,85 @@ + + + + + orientation.checklist.tree + orientation.checklist + + + + + + + + + + + orientation.checklist.form + orientation.checklist + + +
+ + + + + + + + + + + + + + + + + +
+ + +
+
+
+
+ + orientation.checklist.search + orientation.checklist + + + + + + + + + + + + + + + Orientation Checklist + ir.actions.act_window + orientation.checklist + tree,form + + [] + {'search_default_active': True} + + + Create Orientation Checklists. + + + + + +
+
diff --git a/employee_orientation/views/orientation_checklist_line.xml b/employee_orientation/views/orientation_checklist_line.xml new file mode 100644 index 000000000..754fd25c8 --- /dev/null +++ b/employee_orientation/views/orientation_checklist_line.xml @@ -0,0 +1,84 @@ + + + + + checklist.line.tree + checklist.line + + + + + + + + + + checklist.line.form + checklist.line + + +
+ + + + + + +
+
+
+ + checklist.line.search + checklist.line + + + + + + + + + + + + + + + Orientation Checklist Line + ir.actions.act_window + checklist.line + tree,form + + [] + {} + + + Create Orientation Checklists Lines. + + + + + + + + + + +
+
diff --git a/employee_orientation/views/orientation_checklist_sequence.xml b/employee_orientation/views/orientation_checklist_sequence.xml new file mode 100644 index 000000000..4a8268817 --- /dev/null +++ b/employee_orientation/views/orientation_checklist_sequence.xml @@ -0,0 +1,14 @@ + + + + + + + Employee Orientation + employee.orientation + OR + 3 + + + + \ No newline at end of file diff --git a/employee_orientation/views/orientation_checklists_request.xml b/employee_orientation/views/orientation_checklists_request.xml new file mode 100644 index 000000000..75b3af155 --- /dev/null +++ b/employee_orientation/views/orientation_checklists_request.xml @@ -0,0 +1,83 @@ + + + + + orientation.request.tree + orientation.request + + + + + + + + + + + orientation.request.form + orientation.request + +
+
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+
+ + orientation.request.search + orientation.request + + + + + + + + + + + + + Orientation Request + ir.actions.act_window + orientation.request + tree,form + + [] + {} + + + Create Orientation Requests. + + + + +
+
diff --git a/employee_orientation/views/orientation_request_mail_template.xml b/employee_orientation/views/orientation_request_mail_template.xml new file mode 100644 index 000000000..bb1e5da3d --- /dev/null +++ b/employee_orientation/views/orientation_request_mail_template.xml @@ -0,0 +1,134 @@ + + + + + Employee Orientation Request + {{(object.user_id.email or object.company_id.email)}} + {{(object.partner_id.email)}} + Employee Orientation Request + + + +
+

+ Hello + , +

+

+ You are requested to conduct orientation program listed below. +

+

+ Check Line: + +

+

+ Employee: + +

+ +

+ Expected Date: + +

+
+
+

+ Thank you! +

+
+
+

+ + + +

+
+
+ + + + +
+ Phone: + +
+
+ +
+ Web : + + + +
+ +
+

+
+
+
+
+ + + Employee Training program + {{(object.user_id.email or object.company_id.email)}} + {{(object.program_convener.email)}} + Employee Training Request + + + +
+

+ Hello , +

+

+ You are requested to conduct + + Training program for + + department + + from + + to + + + . +

+
+

+ Thank you! +

+
+
+

+ + + +

+
+
+ + + + + +
+ Phone: + +
+
+ +
+ Web : + + + +
+
+

+
+
+
+
+
+
\ No newline at end of file diff --git a/employee_orientation/views/print_pack_certificates_template.xml b/employee_orientation/views/print_pack_certificates_template.xml new file mode 100644 index 000000000..dfa17ace5 --- /dev/null +++ b/employee_orientation/views/print_pack_certificates_template.xml @@ -0,0 +1,86 @@ + + + + + + \ No newline at end of file diff --git a/employee_orientation/views/report.xml b/employee_orientation/views/report.xml new file mode 100644 index 000000000..87feb56fd --- /dev/null +++ b/employee_orientation/views/report.xml @@ -0,0 +1,12 @@ + + + + + Certificates + employee.training + qweb-pdf + employee_orientation.print_pack_template + employee_orientation.print_pack_template + + + diff --git a/employee_orientation/wizard/__init__.py b/employee_orientation/wizard/__init__.py new file mode 100644 index 000000000..72c16ef89 --- /dev/null +++ b/employee_orientation/wizard/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from . import orientation_complete diff --git a/employee_orientation/wizard/orientation_complete.py b/employee_orientation/wizard/orientation_complete.py new file mode 100644 index 000000000..5c4fff6ae --- /dev/null +++ b/employee_orientation/wizard/orientation_complete.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Anusha @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from odoo import api, fields, models, _ + + +class OrientationForceComplete(models.TransientModel): + _name = 'orientation.force.complete' + + name = fields.Char() + orientation_id = fields.Many2one('employee.orientation', string='Orientation') + orientation_lines = fields.One2many('orientation.request', string='Orientation Lines', compute='pending_lines') + + @api.onchange('orientation_id') + def pending_lines(self): + pending = [] + + for data in self.orientation_id.orientation_request: + if data.state == 'new': + pending.append(data.id) + self.update({'orientation_lines': pending}) + + def force_complete(self): + for line in self.orientation_lines: + if line.state != 'cancel': + line.state = 'complete' + self.orientation_id.write({'state': 'complete'}) + + + diff --git a/employee_orientation/wizard/orientation_complete.xml b/employee_orientation/wizard/orientation_complete.xml new file mode 100644 index 000000000..b86022b1a --- /dev/null +++ b/employee_orientation/wizard/orientation_complete.xml @@ -0,0 +1,23 @@ + + + + + orientation.force.complete.form + orientation.force.complete + +
+

+ Please make sure that orientations programs are already done. +

+ +
+
+
\ No newline at end of file