diff --git a/employee_stages/__init__.py b/employee_stages/__init__.py index 7bdbb3680..f63a439f4 100755 --- a/employee_stages/__init__.py +++ b/employee_stages/__init__.py @@ -20,6 +20,6 @@ # along with this program. If not, see . # ################################################################################### - from . import models +from . import wizard diff --git a/employee_stages/__manifest__.py b/employee_stages/__manifest__.py index f46e6275b..413e90a45 100755 --- a/employee_stages/__manifest__.py +++ b/employee_stages/__manifest__.py @@ -33,7 +33,8 @@ 'depends': ['base', 'hr'], 'data': [ 'security/ir.model.access.csv', - 'views/employee_stages_view.xml', + 'wizard/employee_stage_views.xml', + 'views/hr_employee_views.xml', ], 'images': ['static/description/banner.png'], 'license': 'AGPL-3', diff --git a/employee_stages/doc/RELEASE_NOTES.md b/employee_stages/doc/RELEASE_NOTES.md index 85de33b92..f44681969 100755 --- a/employee_stages/doc/RELEASE_NOTES.md +++ b/employee_stages/doc/RELEASE_NOTES.md @@ -4,3 +4,9 @@ #### Version 16.0.1.0.0 ##### ADD - Initial commit for Employee Stages + + +#### 18.01.2024 +#### Version 16.0.1.0.0 +##### ADD +- Added Access right for the employee manager to reverse the stages. diff --git a/employee_stages/models/__init__.py b/employee_stages/models/__init__.py index 4833243fc..ce80b3795 100755 --- a/employee_stages/models/__init__.py +++ b/employee_stages/models/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -################################################################################### +############################################################################### # # Cybrosys Technologies Pvt. Ltd. # @@ -19,7 +19,6 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # -################################################################################### - -from . import employee_stages +############################################################################### +from . import hr_employee diff --git a/employee_stages/models/employee_stages.py b/employee_stages/models/hr_employee.py similarity index 77% rename from employee_stages/models/employee_stages.py rename to employee_stages/models/hr_employee.py index 4202eb5c7..10a3ecc50 100755 --- a/employee_stages/models/employee_stages.py +++ b/employee_stages/models/hr_employee.py @@ -20,9 +20,8 @@ # along with this program. If not, see . # ################################################################################### - from datetime import date -from odoo import models, fields, api +from odoo import models, fields, api ,_ class EmployeeFormInherit(models.Model): @@ -43,6 +42,7 @@ class EmployeeFormInherit(models.Model): 'state': 'grounding'}) def set_as_employee(self): + print('Setting') self.state = 'employment' stage_obj = self.stages_history.search([('employee_id', '=', self.id), ('state', '=', 'test_period')]) @@ -66,7 +66,8 @@ class EmployeeFormInherit(models.Model): self.state = 'relieved' self.active = False stage_obj = self.stages_history.search([('employee_id', '=', self.id), - ('state', '=', 'notice_period')]) + ( + 'state', '=', 'notice_period')]) if stage_obj: stage_obj.sudo().write({'end_date': date.today()}) self.stages_history.sudo().create({'end_date': date.today(), @@ -76,7 +77,8 @@ class EmployeeFormInherit(models.Model): 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()}) + ('state', '=', 'grounding')]).sudo().write( + {'end_date': date.today()}) self.stages_history.sudo().create({'start_date': date.today(), 'employee_id': self.id, 'state': 'test_period'}) @@ -91,7 +93,9 @@ class EmployeeFormInherit(models.Model): 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()}) + ('state', '=', + 'grounding')]).sudo().write( + {'end_date': date.today()}) self.stages_history.sudo().create({'end_date': date.today(), 'employee_id': self.id, 'state': 'terminate'}) @@ -102,11 +106,33 @@ class EmployeeFormInherit(models.Model): ('employment', 'Employment'), ('notice_period', 'Notice Period'), ('relieved', 'Resigned'), - ('terminate', 'Terminated')], string='Status', default='joined', + ('terminate', 'Terminated')], 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') + 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') + + @api.onchange('state') + def onchange_state(self): + if self.state == 'grounding': + self.start_grounding() + if self.state == 'test_period': + self.start_test_period() + if self.state == 'notice_period': + self.start_notice_period() + if self.state == 'relieved': + self.relived() + if self.state == 'terminate': + self.terminate() + if self.state == 'employment': + if not self.user_id: + return {'warning': {'title': _('Warning'), 'message': _( + 'Please set a related user for this employee')}} class EmployeeStageHistory(models.Model): @@ -116,12 +142,15 @@ class EmployeeStageHistory(models.Model): start_date = fields.Date(string='Start Date') end_date = fields.Date(string='End Date') duration = fields.Integer(compute='get_duration', string='Duration(days)') + description = fields.Char(string='Description', help='Description if add ' + 'anything') def get_duration(self): self.duration = 0 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) + duration = fields.Date.from_string( + each.end_date) - fields.Date.from_string(each.start_date) each.duration = duration.days state = fields.Selection([('joined', 'Slap On'), @@ -134,19 +163,6 @@ class EmployeeStageHistory(models.Model): employee_id = fields.Many2one('hr.employee', invisible=1) -class WizardEmployee(models.TransientModel): - _name = 'wizard.employee.stage' - - 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") - - class HrEmployeePublic(models.Model): _inherit = 'hr.employee.public' diff --git a/employee_stages/security/ir.model.access.csv b/employee_stages/security/ir.model.access.csv index fb8ce590e..4b013a197 100755 --- a/employee_stages/security/ir.model.access.csv +++ b/employee_stages/security/ir.model.access.csv @@ -1,6 +1,6 @@ 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_employee_stage_manager,employee.stage.manager,model_employee_stage,hr.group_hr_manager,1,1,1,1 +access_employee_stage_hr_user,employee.stage.user,model_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 diff --git a/employee_stages/views/employee_stages_view.xml b/employee_stages/views/hr_employee_views.xml similarity index 62% rename from employee_stages/views/employee_stages_view.xml rename to employee_stages/views/hr_employee_views.xml index e1ff9254a..ec9d6f076 100755 --- a/employee_stages/views/employee_stages_view.xml +++ b/employee_stages/views/hr_employee_views.xml @@ -1,52 +1,41 @@ - - wizard.employee.form - wizard.employee.stage - -
- - - -
-
-
-
-
- - - Set as Employee - wizard.employee.stage - form - - new - - hr.employee.form.view hr.employee -