You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
3.1 KiB
66 lines
3.1 KiB
# -*- coding: utf-8 -*-
|
|
#############################################################################
|
|
#
|
|
# Cybrosys Technologies Pvt. Ltd.
|
|
#
|
|
# Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
|
|
# Author: Cybrosys Techno Solutions(<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
|
|
# (LGPL v3) along with this program.
|
|
# If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
#############################################################################
|
|
from odoo import fields, models
|
|
from odoo.exceptions import ValidationError
|
|
|
|
|
|
class GiveVote(models.TransientModel):
|
|
"""This class is used to shows a popup, in that the employees are able to
|
|
add their comments, and also they can submit their votes"""
|
|
_name = 'give.vote'
|
|
_description = "Give Votes"
|
|
|
|
comments = fields.Text(string="Comments", help="Comments")
|
|
employee_ideas_id = fields.Many2one('employee.idea', help='Connect the model'
|
|
' employee.idea')
|
|
reference = fields.Char(string="Reference", help='Reference of Idea')
|
|
employee_id = fields.Many2one('hr.employee', string="Employee",
|
|
readonly=True, help='Employee')
|
|
employee_department_id = fields.Many2one(string='Department',
|
|
related='employee_id.department_id',
|
|
store=True, help='Department of'
|
|
' the employee')
|
|
priority = fields.Selection([('0', 'Low'), ('1', 'Medium'), ('2', 'High'),
|
|
('3', 'Very High')], default='0',
|
|
index=True, string="Priority", tracking=True,
|
|
help='Priority of the idea')
|
|
is_vote = fields.Boolean(string='Vote', help='Enable, when click on the '
|
|
'Give vote button')
|
|
status = fields.Text(string="Status", help='Status of the idea')
|
|
company_id = fields.Many2one('res.company', required=True,
|
|
default=lambda self: self.env.company,
|
|
help='Shows the current company')
|
|
|
|
def action_vote(self):
|
|
"""This function changes the status of a record in to Voted,
|
|
if any employee votes the idea"""
|
|
self.is_vote = True
|
|
self.status = 'Voted'
|
|
if self.is_vote:
|
|
self.employee_ideas_id.is_vote = True
|
|
|
|
def action_submit_comment(self):
|
|
"""This function changes the status of a record in to Commented,
|
|
if any employee comment the idea"""
|
|
if not self.comments:
|
|
raise ValidationError("Have a Comment")
|
|
self.status = 'Commented'
|
|
|