Browse Source

[ADD] Initial Commit 'employee_stages'

pull/176/head
Ajmal JK 5 years ago
parent
commit
e77f0716b0
  1. 21
      employee_stages/__init__.py
  2. 40
      employee_stages/__manifest__.py
  3. 21
      employee_stages/models/__init__.py
  4. 145
      employee_stages/models/employee_stages.py
  5. 7
      employee_stages/security/ir.model.access.csv
  6. BIN
      employee_stages/static/description/banner.jpg
  7. BIN
      employee_stages/static/description/cybro_logo.png
  8. BIN
      employee_stages/static/description/employee-stages-cybrosys-1.png
  9. BIN
      employee_stages/static/description/employee-stages-cybrosys-2.png
  10. BIN
      employee_stages/static/description/employee-stages-cybrosys-3.png
  11. BIN
      employee_stages/static/description/employee-stages-cybrosys-4.png
  12. BIN
      employee_stages/static/description/employee-stages-cybrosys-5.png
  13. BIN
      employee_stages/static/description/employee-stages-cybrosys-6.png
  14. BIN
      employee_stages/static/description/employee-stages-cybrosys-7.png
  15. BIN
      employee_stages/static/description/employee-stages-cybrosys-8.png
  16. BIN
      employee_stages/static/description/employee-stages-cybrosys-9.png
  17. BIN
      employee_stages/static/description/filter.png
  18. BIN
      employee_stages/static/description/groupby.png
  19. BIN
      employee_stages/static/description/icon.png
  20. 425
      employee_stages/static/description/index.html
  21. BIN
      employee_stages/static/description/kanban.png
  22. BIN
      employee_stages/static/description/status1.png
  23. BIN
      employee_stages/static/description/status2.png
  24. BIN
      employee_stages/static/description/status3.png
  25. BIN
      employee_stages/static/description/status5.png
  26. BIN
      employee_stages/static/description/status6.png
  27. BIN
      employee_stages/static/description/tree.png
  28. 122
      employee_stages/views/employee_stages_view.xml

21
employee_stages/__init__.py

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# you can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import models

40
employee_stages/__manifest__.py

@ -0,0 +1,40 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# you can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': 'Employee Stages',
'version': '12.0.1.0.0',
'summary': """Manages Employee Stages""",
'description': """This module is used to tracking the employee's different stages.""",
'category': "Generic Modules/Human Resources",
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'website': "https://www.cybrosys.com",
'depends': ['base', 'hr'],
'data': [
'security/ir.model.access.csv',
'views/employee_stages_view.xml',
],
'images': ['static/description/banner.jpg'],
'license': 'LGPL-3',
'installable': True,
'auto_install': False,
'application': False,
}

21
employee_stages/models/__init__.py

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# you can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import employee_stages

145
employee_stages/models/employee_stages.py

@ -0,0 +1,145 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# you can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from datetime import date
from odoo import models, fields, api
emp_stages = [('joined', 'Slap On'),
('grounding', 'Grounding'),
('test_period', 'Test Period'),
('employment', 'Employment'),
('notice_period', 'Notice Period'),
('relieved', 'Resigned'),
('terminate', 'Terminated')]
class EmployeeFormInherit(models.Model):
_inherit = 'hr.employee'
@api.model
def create(self, vals):
result = super(EmployeeFormInherit, self).create(vals)
result.stages_history.sudo().create({'start_date': date.today(),
'employee_id': result.id,
'state': 'joined'})
return result
@api.multi
def start_grounding(self):
self.state = 'grounding'
self.stages_history.sudo().create({'start_date': date.today(),
'employee_id': self.id,
'state': 'grounding'})
@api.multi
def set_as_employee(self):
self.state = 'employment'
stage_obj = self.stages_history.search([('employee_id', '=', self.id),
('state', '=', 'test_period')])
if stage_obj:
stage_obj.sudo().write({'end_date': date.today()})
self.stages_history.sudo().create({'start_date': date.today(),
'employee_id': self.id,
'state': 'employment'})
@api.multi
def start_notice_period(self):
self.state = 'notice_period'
stage_obj = self.stages_history.search([('employee_id', '=', self.id),
('state', '=', 'employment')])
if stage_obj:
stage_obj.sudo().write({'end_date': date.today()})
self.stages_history.sudo().create({'start_date': date.today(),
'employee_id': self.id,
'state': 'notice_period'})
@api.multi
def relived(self):
self.state = 'relieved'
self.active = False
stage_obj = self.stages_history.search([('employee_id', '=', self.id),
('state', '=', 'notice_period')])
if stage_obj:
stage_obj.sudo().write({'end_date': date.today()})
self.stages_history.sudo().create({'end_date': date.today(),
'employee_id': self.id,
'state': 'relieved'})
@api.multi
def start_test_period(self):
self.state = 'test_period'
self.stages_history.search([('employee_id', '=', self.id),
('state', '=', 'grounding')]).sudo().write({'end_date': date.today()})
self.stages_history.sudo().create({'start_date': date.today(),
'employee_id': self.id,
'state': 'test_period'})
@api.multi
def terminate(self):
self.state = 'terminate'
self.active = False
stage_obj = self.stages_history.search([('employee_id', '=', self.id),
('state', '=', 'employment')])
if stage_obj:
stage_obj.sudo().write({'end_date': date.today()})
else:
self.stages_history.search([('employee_id', '=', self.id),
('state', '=', 'grounding')]).sudo().write({'end_date': date.today()})
self.stages_history.sudo().create({'end_date': date.today(),
'employee_id': self.id,
'state': 'terminate'})
state = fields.Selection(emp_stages, string='Status', default='joined', track_visibility='always', copy=False,
help="Employee Stages.\nSlap On: Joined\nGrounding: Training\nTest period : Probation")
stages_history = fields.One2many('hr.employee.status.history', 'employee_id', string='Stage History',
help='It shows the duration and history of each stages')
class EmployeeStageHistory(models.Model):
_name = 'hr.employee.status.history'
_description = 'Status History'
@api.depends('end_date')
def get_duration(self):
for each in self:
if each.end_date and each.start_date:
duration = fields.Date.from_string(each.end_date) - fields.Date.from_string(each.start_date)
each.duration = duration.days
start_date = fields.Date(string='Start Date')
end_date = fields.Date(string='End Date')
duration = fields.Integer(compute=get_duration, string='Duration(days)')
state = fields.Selection(emp_stages, string='Stage')
employee_id = fields.Many2one('hr.employee', invisible=1)
class WizardEmployee(models.TransientModel):
_name = 'wizard.employee.stage'
@api.multi
def set_as_employee(self):
context = self._context
employee_obj = self.env['hr.employee'].search([('id', '=', context.get('employee_id'))])
if self.related_user:
employee_obj.user_id = self.related_user
employee_obj.set_as_employee()
related_user = fields.Many2one('res.users', string="Related User")

7
employee_stages/security/ir.model.access.csv

@ -0,0 +1,7 @@
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
access_wizard_employee_stage_manager,wizard.employee.stage.manager,model_wizard_employee_stage,hr.group_hr_manager,1,1,1,1
access_wizard_employee_stage_hr_user,wizard.employee.stage.user,model_wizard_employee_stage,hr.group_hr_user,1,1,1,0
access_hr_employee_status_history_manager,hr.employee.status.history.manager,model_hr_employee_status_history,hr.group_hr_manager,1,1,1,1
access_hr_employee_status_history_hr_user,hr.employee.status.history.user,model_hr_employee_status_history,hr.group_hr_user,1,1,1,0
1 id name model_id/id group_id/id perm_read perm_write perm_create perm_unlink
2 access_wizard_employee_stage_manager wizard.employee.stage.manager model_wizard_employee_stage hr.group_hr_manager 1 1 1 1
3 access_wizard_employee_stage_hr_user wizard.employee.stage.user model_wizard_employee_stage hr.group_hr_user 1 1 1 0
4 access_hr_employee_status_history_manager hr.employee.status.history.manager model_hr_employee_status_history hr.group_hr_manager 1 1 1 1
5 access_hr_employee_status_history_hr_user hr.employee.status.history.user model_hr_employee_status_history hr.group_hr_user 1 1 1 0

BIN
employee_stages/static/description/banner.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

BIN
employee_stages/static/description/cybro_logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
employee_stages/static/description/employee-stages-cybrosys-1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

BIN
employee_stages/static/description/employee-stages-cybrosys-2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

BIN
employee_stages/static/description/employee-stages-cybrosys-3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

BIN
employee_stages/static/description/employee-stages-cybrosys-4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
employee_stages/static/description/employee-stages-cybrosys-5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

BIN
employee_stages/static/description/employee-stages-cybrosys-6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

BIN
employee_stages/static/description/employee-stages-cybrosys-7.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

BIN
employee_stages/static/description/employee-stages-cybrosys-8.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

BIN
employee_stages/static/description/employee-stages-cybrosys-9.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
employee_stages/static/description/filter.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
employee_stages/static/description/groupby.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
employee_stages/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

425
employee_stages/static/description/index.html

@ -0,0 +1,425 @@
<section class="oe_container" style="background-image:url(https://www.cybrosys.com/images/odoo-index-header-banner.png);background-repeat:no-repeat;background-size:100%;padding: 4% 0% 2% 15%;background-position-y: -107px;">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="font-size: 35px;color: #fff;font-weight: 900;text-transform: uppercase;text-align: left;margin: 0;margin-bottom: 16px;">
Employee Stages
</h2>
<h3 class="oe_slogan" style="font-size: 25px;color: #fff;font-weight: 600;text-align: left;opacity: 1;margin: 0 !important;">
Manages Employee Stages
</h3>
<h5 class="oe_slogan" style="text-align: left;background: #fff;width: 293px;padding: 10px;color: #080808 !important;opacity: 1 !important;font-weight: 600;font-size: 20px;">
<a style="color: #080808 !important;" href="https://www.cybrosys.com" target="_blank">Cybrosys Technologies</a>
</h5>
<a style="color: #080808 !important;" href="https://www.cybrosys.com" target="_blank">
<div style="width: 215px;margin-left: 57%;text-align: center;background: #ffffff;height: 215px;border-radius: 100%;display: flex;justify-content: center;align-items: center;box-shadow: 0 0 12px 4px #00000059;">
<img src="https://www.cybrosys.com/images/cybro-logo-oca.png" alt="cybrosys technologies" style="width: 180px;"/>
</div>
</a>
</div>
</section>
<section class="oe_container" style="padding: 1% 0% 3% 15%;">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;">
Overview
</h2>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
Every employee may undergo different stages during his term in a company.
It may be probation, training, employment etc. The stages may vary according to the organisation.
It is important to track such stages systematically to assess the performance indices of
an employee. So here we are providing
a new module which will facilitate the management of different stages of an employee.
</h3>
</div>
</section>
<section class="oe_container" style="background-image:url(https://www.cybrosys.com/images/odoo-index-banner.png); background-repeat:no-repeat; background-size:cover;padding: 5% 0% 15% 15%;">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;">
Features
</h2>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 18px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Managing employee's different stages
</h3>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 18px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Added employee's current stage in tree view
</h3>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 18px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Added employee's current stage in kanban view
</h3>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 18px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Added group by stage in search view
</h3>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 18px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Added Employee filter in search view
</h3>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 18px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Added default search for employees in search bar
</h3>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 18px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Automatically recording the stage history
</h3>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 18px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Computing the duration of each stage
</h3>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 18px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Option to set 'Related User' while converting to the employee
</h3>
<h3 class="oe_slogan" style="text-align: left;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 18px;">
<img src="https://www.cybrosys.com/images/ico-tick.png">
Automatically inactive the employee while terminating or relieving the employee
</h3>
</div>
</section>
<section class="oe_container" style="padding: 3% 0% 0% 15%;">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;">
Screenshots
</h2>
<h3 class="oe_slogan" style="text-align: left;padding: 5% 0% 0% 0%;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
<div>
<img src="https://www.cybrosys.com/images/ico-tick.png">
Here we can see different stages of employee, buttons to change the stages and overall history.
</div>
</h3>
<div class="oe_row oe_spaced">
<img src="employee-stages-cybrosys-1.png" alt="" style="width: 95%;"/>
</div>
<h3 class="oe_slogan" style="text-align: left;padding: 5% 0% 0% 0%;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
<div>
<img src="https://www.cybrosys.com/images/ico-tick.png">
Status History tab tracking the Start date, End date and Duration of each stages.
</div>
</h3>
<div class="oe_row oe_spaced">
<img src="employee-stages-cybrosys-2.png" alt="" style="width: 95%;"/>
</div>
<h3 class="oe_slogan" style="text-align: left;padding: 5% 0% 0% 0%;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
<div><img src="https://www.cybrosys.com/images/ico-tick.png">
When an employee's state is reached to 'Resigned' stage then the system will automatically inactive this employee
</div>
</h3>
<div class="oe_row oe_spaced">
<img src="employee-stages-cybrosys-3.png" alt="" style="width: 95%;"/>
</div>
<h3 class="oe_slogan" style="text-align: left;padding: 5% 0% 0% 0%;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
<div><img src="https://www.cybrosys.com/images/ico-tick.png">
We have an option to add 'Related User' when we set to 'Employment' stage.
</div>
</h3>
<div class="oe_row oe_spaced">
<img src="employee-stages-cybrosys-4.png" alt="" style="width: 95%;"/>
</div>
<h3 class="oe_slogan" style="text-align: left;padding: 5% 0% 0% 0%;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
<div><img src="https://www.cybrosys.com/images/ico-tick.png">
Kanban View
</div>
</h3>
<div class="oe_row oe_spaced">
<img src="employee-stages-cybrosys-5.png" alt="" style="width: 95%;"/>
</div>
<h3 class="oe_slogan" style="text-align: left;padding: 5% 0% 0% 0%;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
<div><img src="https://www.cybrosys.com/images/ico-tick.png">
Tree View
</div>
</h3>
<div class="oe_row oe_spaced">
<img src="employee-stages-cybrosys-6.png" alt="" style="width: 95%;"/>
</div>
<h3 class="oe_slogan" style="text-align: left;padding: 5% 0% 0% 0%;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
<div><img src="https://www.cybrosys.com/images/ico-tick.png">
Search Bar
</div>
</h3>
<div class="oe_row oe_spaced">
<img src="employee-stages-cybrosys-7.png" alt="" style="width: 95%;"/>
</div>
<h3 class="oe_slogan" style="text-align: left;padding: 5% 0% 0% 0%;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
<div><img src="https://www.cybrosys.com/images/ico-tick.png">
Search View using Filters Group By
</div>
</h3>
<div class="oe_row oe_spaced">
<img src="employee-stages-cybrosys-8.png" alt="" style="width: 95%;"/>
</div>
<h3 class="oe_slogan" style="text-align: left;padding: 5% 0% 0% 0%;font-size: 16px;width: 90%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 24px;">
<div><img src="https://www.cybrosys.com/images/ico-tick.png">
Search View using Filters
</div>
</h3>
<div class="oe_row oe_spaced">
<img src="employee-stages-cybrosys-9.png" alt="" style="width: 95%;"/>
</div>
</div>
</section>
<section class="oe_container" style="padding: 7px 0% 0% 3%;">
<div class="oe_row oe_spaced">
<a style="color: #080808 !important;" href="https://apps.odoo.com/apps/modules/browse?search=cybrosys" target="_blank"><img src="https://www.cybrosys.com/images/view-more-apps.jpg" alt="cybrosys technologies" style="width: 100%;margin-bottom: 50px;"/></a>
</div>
</section>
<section class="oe_container" style="padding: 1% 0% 0% 3%;">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;">
Our Services
</h2>
<div style="display:flex;padding-top: 20px;justify-content: space-between;">
<div style="flex-basis: 18%;">
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;">
<a href="https://www.cybrosys.com/odoo-customization-and-installation/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-customization.png" style="width: 100%;border-radius: 100%;"/>
</a>
</div>
<h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;">
<a href="https://www.cybrosys.com/odoo-customization-and-installation/" target="_blank">
Odoo Customization
</a>
</h3>
</div>
<div style="flex-basis: 18%;">
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;">
<a href="https://www.cybrosys.com/odoo-erp-implementation/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-erp-implementation.png" style="width: 100%;border-radius: 100%;"/>
</a>
</div>
<h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;">
<a href="https://www.cybrosys.com/odoo-erp-implementation/" target="_blank">
Odoo Implementation </a>
</h3>
</div>
<div style="flex-basis: 18%;">
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;">
<a href="https://www.cybrosys.com/odoo-erp-integration/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-erp-integration.png" style="width: 100%;border-radius: 100%;"/>
</a>
</div>
<h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;">
<a href="https://www.cybrosys.com/odoo-erp-integration/" target="_blank">
Odoo Integration
</a>
</h3>
</div>
<div style="flex-basis: 18%;">
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;">
<a href="https://www.cybrosys.com/odoo-erp-support/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-erp-support.png" style="width: 100%;border-radius: 100%;"/>
</a>
</div>
<h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;">
<a href="https://www.cybrosys.com/odoo-erp-support/" target="_blank">
Odoo Support</a>
</h3>
</div>
<div style="flex-basis: 18%;">
<div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;">
<a href="https://www.cybrosys.com/hire-odoo-developer/" target="_blank">
<img src="https://www.cybrosys.com/images/hire-odoo-developer.png" style="width: 100%;border-radius: 100%;"/>
</a>
</div>
<h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;">
<a href="https://www.cybrosys.com/hire-odoo-developer/" target="_blank">
Hire Odoo Developers</a>
</h3>
</a>
</div>
</div>
</div>
</section>
<section class="oe_container" style="padding: 1% 0% 0% 3%;">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan" style="text-align: left;font-size: 28px;font-weight: 600;margin: 0px !important;">
Our Industries
</h2>
<div style="display:flex;justify-content: space-between;flex-wrap:wrap;">
<div style="flex-basis: 32%;padding-top: 20px;">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<a href="https://www.cybrosys.com/odoo/industries/best-trading-erp/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-index-industry-1.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</a>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
<a href="https://www.cybrosys.com/odoo/industries/best-trading-erp/" target="_blank">
Trading
</a>
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
Easily procure and sell your products.
</h3>
</div>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<a href="https://www.cybrosys.com/odoo/industries/manufacturing-erp-software/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-index-industry-2.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</a>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
<a href="https://www.cybrosys.com/odoo/industries/manufacturing-erp-software/" target="_blank">
Manufacturing</a>
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
Plan, track and schedule your operations.
</h3>
</div>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<a href="https://www.cybrosys.com/odoo/industries/restaurant-management/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-index-industry-3.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</a>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
<a href="https://www.cybrosys.com/odoo/industries/restaurant-management/" target="_blank">
Restaurant</a>
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
Run your bar or restaurant methodical.
</h3>
</div>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<a href="https://www.cybrosys.com/odoo/industries/pos/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-index-industry-4.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</a>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
<a href="https://www.cybrosys.com/odoo/industries/pos/" target="_blank">
POS</a>
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
Easy configuring and convivial selling.
</h3>
</div>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<a href="https://www.cybrosys.com/odoo/industries/ecommerce-website/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-index-industry-5.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</a>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 0px;margin-left: 16px;">
<a href="https://www.cybrosys.com/odoo/industries/ecommerce-website/" target="_blank">
E-commerce & Website</a>
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
Mobile friendly, awe-inspiring product pages.
</h3>
</div>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<a href="https://www.cybrosys.com/odoo/industries/hotel-management-erp/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-index-industry-6.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</a>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
<a href="https://www.cybrosys.com/odoo/industries/hotel-management-erp/" target="_blank">
Hotel Management</a>
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
An all-inclusive hotel management application.
</h3>
</div>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<a href="https://www.cybrosys.com/odoo/industries/education-erp-software/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-index-industry-7.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</a>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
<a href="https://www.cybrosys.com/odoo/industries/education-erp-software/" target="_blank">
Education</a>
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
A Collaborative platform for educational management.
</h3>
</div>
</div>
<div style="flex-basis: 32%;padding-top: 20px;">
<div style="width:30%; float:left;">
<div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;">
<a href="https://www.cybrosys.com/odoo/industries/service-management/" target="_blank">
<img src="https://www.cybrosys.com/images/odoo-index-industry-8.png" alt="Odoo Industry" style=" border-radius: 100%;width:100%;"/>
</a>
</div>
</div>
<div style="width:70%;float:left;">
<h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;">
<a href="https://www.cybrosys.com/odoo/industries/service-management/" target="_blank">
Service Management</a>
</h3>
<h3 class="oe_slogan" style=" text-align: left;font-size: 13px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;">
Keep track of services and invoice accordingly.
</h3>
</div>
</div>
</div>
</div>
</section>
<section class="oe_container" style="background-image:url(https://www.cybrosys.com/images/odoo-index-footer-bg.png); background-repeat:no-repeat; background-size:100%;padding: 13% 0% 6% 0%;">
<div class="oe_slogan" style="margin-top:10px !important;margin-bottom: 0px;">
<div>
<a style="color: #5c5c5c !important;border-radius: 0;background: none;border: none;background: #fff;box-shadow: 0 10px 40px 0 rgba(62,57,107,0.07), 0 2px 9px 0 rgba(62, 57, 107, 0.05);border-radius: 30px;font-size: 12px;padding: 9px 26px;margin-right: 9px;width: 200px;text-transform: capitalize;" class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" href="mailto:odoo@cybrosys.com"><i class="fa fa-envelope"></i> Email us </a>
<a style="color: #5c5c5c !important;border-radius: 0;background: none;border: none;background: #fff;box-shadow: 0 10px 40px 0 rgba(62,57,107,0.07), 0 2px 9px 0 rgba(62, 57, 107, 0.05);border-radius: 30px;font-size: 12px;padding: 9px 26px;margin-right: 9px;width: 200px;text-transform: capitalize;" class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" href="https://www.cybrosys.com/contact/"><i class="fa fa-phone"></i> Contact Us </a>
<a style="color: #5c5c5c !important;border-radius: 0;background: none;border: none;background: #fff;box-shadow: 0 10px 40px 0 rgba(62,57,107,0.07), 0 2px 9px 0 rgba(62, 57, 107, 0.05);border-radius: 30px;font-size: 12px;padding: 9px 26px;margin-right: 9px;width: 200px;text-transform: capitalize;" class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" href="https://www.cybrosys.com/contact/"><i class="fa fa-check-square"></i> Request Customization </a>
</div>
<br>
<img src="https://www.cybrosys.com/images/logo.png" style="width: 190px; margin-bottom: 25px;margin-top: 30px;" class="center-block">
<div>
<a href="https://twitter.com/cybrosys" target="_blank"><i class="fa fa-2x fa-twitter" style="color:white;background: #00a0d1;width:35px;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></i></a></td>
<a href="https://www.linkedin.com/company/cybrosys-technologies-pvt-ltd" target="_blank"><i class="fa fa-2x fa-linkedin" style="color:white;background: #31a3d6;width:35px;padding-left: 3px;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></i></a></td>
<a href="https://www.facebook.com/cybrosystechnologies" target="_blank"><i class="fa fa-2x fa-facebook" style="color:white;background: #3b5998;width:35px; ;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></i></a></td>
<a href="https://plus.google.com/106641282743045431892/about" target="_blank"><i class="fa fa-2x fa-google-plus" style="color:white;background: #c53c2c;width:35px;padding-left: 3px;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></i></a></td>
<a href="https://in.pinterest.com/cybrosys" target="_blank"><i class="fa fa-2x fa-pinterest" style="color:white;background: #ac0f18;width:35px;padding-left: 3px;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></i></a></td>
</div>
</div>
</section>

BIN
employee_stages/static/description/kanban.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

BIN
employee_stages/static/description/status1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
employee_stages/static/description/status2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

BIN
employee_stages/static/description/status3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
employee_stages/static/description/status5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

BIN
employee_stages/static/description/status6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

BIN
employee_stages/static/description/tree.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

122
employee_stages/views/employee_stages_view.xml

@ -0,0 +1,122 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record model='ir.ui.view' id='wizard_employee_form'>
<field name="name">wizard.employee.form</field>
<field name="model">wizard.employee.stage</field>
<field name="arch" type="xml">
<form string="Set as Employee">
<group>
<field name="related_user"/>
</group>
<footer>
<button name="set_as_employee" string="Set as Employee" type="object" class="oe_highlight"/>
or
<button string="Cancel" class="oe_link" special="cancel"/>
</footer>
</form>
</field>
</record>
<record model='ir.actions.act_window' id='wizard_employee_act'>
<field name="name">Set as Employee</field>
<field name="res_model">wizard.employee.stage</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="view_id" ref="wizard_employee_form"/>
<field name="target">new</field>
</record>
<record model="ir.ui.view" id="hr_employee_stages_inherit_form_view">
<field name="name">hr.employee.form.view</field>
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_form"/>
<field name="arch" type="xml">
<xpath expr="/form/sheet" position="before">
<header>
<button name="start_grounding" string="Start Grounding" type="object" states="joined"/>
<button name="start_test_period" string="Start Test Period" type="object" states="grounding"/>
<button name="%(employee_stages.wizard_employee_act)d" string="Set as Employee" type="action"
states="joined,test_period" context="{'employee_id':id}"/>
<button name="start_notice_period" string="Start Notice Period" type="object" states="employment"/>
<button name="relived" string="Relieved" type="object" states="notice_period"/>
<button name="terminate" string="Terminate" type="object" states="grounding,employment"/>
<field name="state" widget="statusbar" statusbar_visible="joined,grounding,employment"/>
</header>
</xpath>
<page name="hr_settings" position="after">
<page name="stage_history" string="Status History">
<field name="stages_history">
<tree>
<field name="state"/>
<field name="start_date"/>
<field name="end_date"/>
<field name="duration" sum="Total"/>
</tree>
</field>
</page>
</page>
</field>
</record>
<record model="ir.ui.view" id="hr_employee_stages_inherit_tree_view">
<field name="name">hr.employee.tree.view</field>
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_tree"/>
<field name="arch" type="xml">
<field name="message_needaction" position="after">
<field name="state"/>
</field>
</field>
</record>
<record id="hr_employee_stages_inherit_search_view" model="ir.ui.view" >
<field name="name">hr.employee.search.view</field>
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_filter"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='job_id']" position="after">
<field name="state"/>
</xpath>
<xpath expr="//filter[@name='message_needaction']" position="before">
<filter string="Employees" name="employee" domain="[('state','=','employment')]"/>
</xpath>
<xpath expr="//group/filter[@name='group_job']" position="after">
<filter name="group_state" string="State" domain="[]" context="{'group_by':'state'}"/>
</xpath>
</field>
</record>
<record model="ir.ui.view" id="hr_employee_stages_inherit_kanban_view">
<field name="name">hr.employee.kanban.view</field>
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.hr_kanban_view_employees"/>
<field name="arch" type="xml">
<xpath expr="//ul/li[2]" position="after">
<li t-if="record.state.raw_value">
<field name="state"/>
</li>
</xpath>
</field>
</record>
<record id="hr.open_view_employee_list_my" model="ir.actions.act_window">
<field name="name">Employees</field>
<field name="res_model">hr.employee</field>
<field name="view_type">form</field>
<field name="view_mode">kanban,tree,form</field>
<field name="domain">[]</field>
<field name="context">{"search_default_employee":1}</field>
<field name="view_id" eval="False"/>
<field name="search_view_id" ref="hr.view_employee_filter"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to add a new employee.
</p>
<p>
With just a quick glance on the Odoo employee screen, you
can easily find all the information you need for each person;
contact data, job position, availability, etc.
</p>
</field>
</record>
</odoo>
Loading…
Cancel
Save