diff --git a/employee_ideas/README.rst b/employee_ideas/README.rst new file mode 100644 index 000000000..656067c7c --- /dev/null +++ b/employee_ideas/README.rst @@ -0,0 +1,54 @@ +.. image:: https://img.shields.io/badge/licence-LGPL--3-green.svg + :target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 + +Employee Ideas +============= +* This module allows to share the ideas of an employee to others. The other +employees can vote the ideas to approve it. + +Configuration +============= +* Set the groups for the users + +Installation +============ + - www.odoo.com/documentation/18.0/setup/install.html + - Install our custom addon + +License +------- +General Public License, Version 3 (LGPL v3). +( https://www.gnu.org/licenses/lgpl-3.0-standalone.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developer:(v16) Anjana P V, + (v17) Akhil Ashok, + (v18) Akhil Ashok, + Contact : odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@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 https://www.cybrosys.com + +Further information +=================== +HTML Description: ``__ diff --git a/employee_ideas/__init__.py b/employee_ideas/__init__.py new file mode 100644 index 000000000..7c4a1a2d4 --- /dev/null +++ b/employee_ideas/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# 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 . +# +############################################################################# +from . import models +from . import wizard diff --git a/employee_ideas/__manifest__.py b/employee_ideas/__manifest__.py new file mode 100644 index 000000000..c8ca64648 --- /dev/null +++ b/employee_ideas/__manifest__.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# 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 . +# +############################################################################# +{ + 'name': 'Employee Ideas', + 'version': '18.0.1.0.0', + 'category': 'Human Resources', + 'summary': """ Share the ideas """, + 'description': """ Can easily share the ideas of an employee to others""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'depends': ['base', 'mail', 'hr'], + 'data': [ + 'security/employee_ideas_security.xml', + 'security/ir.model.access.csv', + 'data/ir_sequence_data.xml', + 'views/employee_idea_views.xml', + 'views/idea_type_views.xml', + 'wizard/give_vote_views.xml', + 'report/employee_idea_report_templates.xml', + ], + 'images': ['static/description/banner.png'], + 'license': 'LGPL-3', + 'installable': True, + 'auto_install': False, + 'application': True, +} diff --git a/employee_ideas/data/ir_sequence_data.xml b/employee_ideas/data/ir_sequence_data.xml new file mode 100644 index 000000000..9a509f6d7 --- /dev/null +++ b/employee_ideas/data/ir_sequence_data.xml @@ -0,0 +1,11 @@ + + + + + Employee Ideas + employee.idea + EI + 5 + + + diff --git a/employee_ideas/doc/RELEASE_NOTES.md b/employee_ideas/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..c639213e4 --- /dev/null +++ b/employee_ideas/doc/RELEASE_NOTES.md @@ -0,0 +1,5 @@ +## Module +#### 29.01.2025 +#### Version 18.0.1.0.0 +##### ADD +- Initial Commit for Employee Ideas diff --git a/employee_ideas/models/__init__.py b/employee_ideas/models/__init__.py new file mode 100644 index 000000000..a621ad3fc --- /dev/null +++ b/employee_ideas/models/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# 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 . +# +############################################################################# +from . import employee_idea +from . import idea_type diff --git a/employee_ideas/models/employee_idea.py b/employee_ideas/models/employee_idea.py new file mode 100644 index 000000000..003495e78 --- /dev/null +++ b/employee_ideas/models/employee_idea.py @@ -0,0 +1,237 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# 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 . +# +############################################################################# +from odoo import api, fields, models, _ + + +class EmployeeIdeas(models.Model): + """This class is used for creating ideas under the idea type""" + _name = 'employee.idea' + _description = 'Employee Ideas' + _inherit = 'mail.thread' + _rec_name = "reference_no" + + def get_employee_name(self): + """This function is used to get the name of current employee""" + employee_rec_id = self.env['hr.employee'].search( + [('user_id', '=', self.env.user.id)]) + return employee_rec_id + + def get_idea_type_domain(self): + """This function is used to get the idea types""" + employee_rec_id = self.env['hr.employee'].search( + [('user_id', '=', self.env.user.id)]) + idea_type_list = [] + employee_dept = employee_rec_id.department_id + idea_type_rec = self.idea_type_id.search([]) + for rec in idea_type_rec: + department_rec = rec.hr_department_ids.ids + if employee_dept.id in department_rec: + idea_type_list.append(rec.id) + return [('id', 'in', idea_type_list)] + + title = fields.Char(string="Title", help='Title of your idea', + required=True) + employee_id = fields.Many2one('hr.employee', string='Employee', + help='Employee created the idea', + default=get_employee_name) + idea_type_id = fields.Many2one('idea.type', help='Idea type of the idea', + domain=get_idea_type_domain, + required=True) + details = fields.Text(string="Details", + help='Enter the details of your idea', required=True) + vote_count = fields.Integer(compute='_compute_vote_count', help='Shows the ' + 'number of ' + 'votes ' + 'obtained') + is_vote = fields.Boolean(string="Voted", compute='_compute_is_vote', + help='Shows whether the employee is voted or not') + state = fields.Selection(selection=[('draft', 'Draft'), + ('approval', 'Approval'), + ('post', 'Posted'), + ('rejected', 'Rejected')], + default='draft', help='Stages of ideas') + reference_no = fields.Char(string='Order Reference', readonly=True, + copy=False, help='Sequence number', + default=lambda self: _('New')) + employee_vote_ids = fields.One2many('give.vote', 'employee_ideas_id', + string="Vote", + help='Connect with the model give.vote ' + 'to check the voting status of ' + 'employee') + have_minimum_vote = fields.Text(string='Status', help='This field shows, ' + 'that whether the ' + 'idea has minimum ' + 'vote or not') + is_visible_give_vote = fields.Boolean(string='Visible Give Vote', + compute='_compute_is_visible_give_vote', + help='Check whether need to show' + 'the Give Vote button ') + company_id = fields.Many2one('res.company', help='Company', readonly=True, + default=lambda self: self.env.company) + is_send_approval_visibility = fields.Boolean(string="send approval", + readonly=False, + compute='_compute_is_send_approval_visibility', + help='Check Whether, need to' + ' show the Send ' + 'Approval button for' + ' employee', store=True) + + @api.model + def create(self, vals): + """This function create the reference number""" + if vals.get('reference_no', _('New')) == _('New'): + vals['reference_no'] = self.env['ir.sequence'].next_by_code( + 'employee.idea') or _('New') + res = super(EmployeeIdeas, self).create(vals) + return res + + def _compute_is_send_approval_visibility(self): + """This function is used to determine the visibility of send for + approval button""" + for rec in self: + if rec.create_uid.id == self.env.user.id: + rec.is_send_approval_visibility = True + else: + rec.is_send_approval_visibility = False + + def action_send_approval(self): + """Change the state of a record in to Post""" + self.write({'state': 'approval'}) + + def action_approve(self): + """Change the state of a record in to Approved""" + self.write({'state': 'post'}) + + def action_reject(self): + """Change the state of a record in to Rejected""" + self.write({'state': 'rejected'}) + + def action_give_vote(self): + """This function opens a wizard while click on 'Give Vote' button, + where provides an interface to vote or to comment""" + employee = self.env['hr.employee'].search( + [('user_id', '=', self.env.user.id)] + ) + give_votes_rec = self.env['give.vote'].create({ + 'employee_id': employee.id, + 'reference': self.reference_no, + 'employee_ideas_id': self.id + }) + return { + 'name': 'Give Vote', + 'type': 'ir.actions.act_window', + 'res_model': 'give.vote', + 'view_mode': 'form', + 'res_id': give_votes_rec.id, + 'target': 'new' + } + + def _compute_is_vote(self): + """This function is used to allow an employee to do single vote""" + employee = self.env['hr.employee'].search( + [('user_id', '=', self.env.user.id)]) + self.is_vote = False + for rec in self: + vote_employee = rec.employee_vote_ids.search( + [('reference', '=', rec.reference_no), + ('status', '=', 'Voted')]) + if not vote_employee: + rec.is_vote = False + else: + for record in vote_employee: + if employee.id == record.employee_id.id: + rec.is_vote = True + else: + rec.is_vote = False + + def _compute_vote_count(self): + """ This compute function used to count the number of votes get to a + particular idea""" + for rec in self: + rec.vote_count = self.employee_vote_ids.search_count( + [('employee_ideas_id', '=', self.id), ('is_vote', '=', 'True')]) + if self.vote_count >= self.idea_type_id.minimum_vote: + self.have_minimum_vote = 'Go with this' + else: + self.have_minimum_vote = 'Does not have minimum vote' + + def _compute_is_visible_give_vote(self): + """This function is used to make visible the Give Vote button only to + the employees, who are in specified department""" + employee = self.env['hr.employee'].search( + [('user_id', '=', self.env.user.id)] + ) + for rec in self: + rec.is_visible_give_vote = False + if rec.create_uid.id == self.env.user.id: + rec.is_visible_give_vote = False + break + department = rec.idea_type_id.hr_department_ids.ids + if employee.department_id.id in department: + rec.is_visible_give_vote = True + + def action_get_votes_of_idea(self): + """This function is used to return the tree view showing the votes + gained while clicking the smart button""" + self.ensure_one() + return { + 'type': 'ir.actions.act_window', + 'name': 'Votes', + 'view_mode': 'list', + 'res_model': 'give.vote', + 'target': 'current', + 'domain': [('employee_ideas_id', '=', self.id), + ('status', '=', 'Voted')], + 'context': {"create": False} + } + + def action_get_comments_of_idea(self): + """This function is used to return the tree view showing the comments + """ + self.ensure_one() + return { + 'type': 'ir.actions.act_window', + 'name': 'Comments', + 'view_mode': 'list', + 'res_model': 'give.vote', + 'target': 'current', + 'domain': [('employee_ideas_id', '=', self.id), + ('status', '=', 'Commented')], + 'context': {"create": False} + } + + def action_print(self): + """This function is responsible for the printing pdf reports""" + query = """ + select reference_no,hr_employee.name,title,details, + employee_idea.state + from employee_idea + inner join hr_employee on employee_id=hr_employee.id + where employee_idea.id = %s + """ % self.id + self.env.cr.execute(query) + data = { + 'query_fetch': self.env.cr.dictfetchall(), + } + return self.env.ref( + 'employee_ideas.employee_idea_action_report').report_action(None, + data=data) diff --git a/employee_ideas/models/idea_type.py b/employee_ideas/models/idea_type.py new file mode 100644 index 000000000..ab95acc9d --- /dev/null +++ b/employee_ideas/models/idea_type.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# 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 . +# +############################################################################# +from odoo import fields, models + + +class IdeaType(models.Model): + """This class helps to create idea types by HR officer""" + _name = 'idea.type' + _inherit = 'mail.thread' + _description = 'Idea Type' + + name = fields.Char(string="Name", help='Enter the name of Idea Type', + required=True) + minimum_vote = fields.Integer(string="Minimum Vote", + help='Specify the number of minimum vote' + ' that this idea type should acquire', + required=True, default=1) + employee_ideas_id = fields.Many2one('employee.idea', string='Employee Idea', + help='Connect with the model ' + 'employee.idea and calculate ' + 'total number of ideas') + total_ideas = fields.Integer(string="Total ideas", + compute='_compute_total_ideas', + help='Shows the total number of ideas' + 'generated under this idea type') + company_id = fields.Many2one('res.company', required=True, + default=lambda self: self.env.company, + help='Shows the current company') + hr_department_ids = fields.Many2many('hr.department', string='Department', + help='Shows the allowed departments ' + 'under each idea type') + + def _compute_total_ideas(self): + """This function is used to calculate the total number of idea + created under this Idea Type""" + for rec in self: + rec.total_ideas = self.employee_ideas_id.search_count( + [('idea_type_id', '=', self.id)] + ) + + def action_get_the_ideas(self): + """This function is used to return the tree view of created ideas, + while clicking the smart button""" + self.ensure_one() + return { + 'type': 'ir.actions.act_window', + 'name': 'Employee Ideas', + 'view_mode': 'tree', + 'res_model': 'employee.idea', + 'target': 'current', + 'domain': [('idea_type_id', '=', self.id)], + 'context': {"create": False} + } diff --git a/employee_ideas/report/employee_idea_report_templates.xml b/employee_ideas/report/employee_idea_report_templates.xml new file mode 100644 index 000000000..929aa5ae0 --- /dev/null +++ b/employee_ideas/report/employee_idea_report_templates.xml @@ -0,0 +1,78 @@ + + + + Employee Idea Report + employee.idea + qweb-pdf + employee_ideas.employee_idea_report + employee_ideas.employee_idea_report + + + + diff --git a/employee_ideas/security/employee_ideas_security.xml b/employee_ideas/security/employee_ideas_security.xml new file mode 100644 index 000000000..3a1e804a8 --- /dev/null +++ b/employee_ideas/security/employee_ideas_security.xml @@ -0,0 +1,41 @@ + + + + + Employee-Idea-Multi-Company + + ['|',('company_id','=',False),('company_id', + 'in', company_ids)] + + + + Idea-Type-Multi-Company + + ['|',('company_id','=',False),('company_id', + 'in', company_ids)] + + + + Give-Votes-Multi-Company + + ['|',('company_id','=',False),('company_id', + 'in', company_ids)] + + + + + Employee Idea View + + ['|', ('state','=','post'),('employee_id.user_id', '=', user.id), ('idea_type_id.hr_department_ids', 'in', [user.department_id.id])] + + + Record rule for allowing the access of all records in employee.idea + + Employee Idea View Hr + + + [('state', 'in', ['draft', 'post', 'approval', 'rejected'])] + + + + diff --git a/employee_ideas/security/ir.model.access.csv b/employee_ideas/security/ir.model.access.csv new file mode 100644 index 000000000..4670be170 --- /dev/null +++ b/employee_ideas/security/ir.model.access.csv @@ -0,0 +1,6 @@ +id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink +access_employee_idea,access.employee.idea,model_employee_idea,base.group_user,1,1,1,0 +access_employee_idea_hr,access.employee.idea,model_employee_idea,hr.group_hr_user,1,1,1,1 +access_idea_type,access.idea.type,model_idea_type,base.group_user,1,0,0,0 +access_idea_type_hr,access.idea.type,model_idea_type,hr.group_hr_user,1,1,1,1 +access_give_vote,access.give.vote,model_give_vote,base.group_user,1,1,1,0 diff --git a/employee_ideas/static/description/assets/cybro-icon.png b/employee_ideas/static/description/assets/cybro-icon.png new file mode 100755 index 000000000..06e73e11d Binary files /dev/null and b/employee_ideas/static/description/assets/cybro-icon.png differ diff --git a/employee_ideas/static/description/assets/cybro-odoo.png b/employee_ideas/static/description/assets/cybro-odoo.png new file mode 100755 index 000000000..ed02e07a4 Binary files /dev/null and b/employee_ideas/static/description/assets/cybro-odoo.png differ diff --git a/employee_ideas/static/description/assets/h2.png b/employee_ideas/static/description/assets/h2.png new file mode 100755 index 000000000..0bfc4707d Binary files /dev/null and b/employee_ideas/static/description/assets/h2.png differ diff --git a/employee_ideas/static/description/assets/icons/arrows-repeat.svg b/employee_ideas/static/description/assets/icons/arrows-repeat.svg new file mode 100755 index 000000000..1d7efabc5 --- /dev/null +++ b/employee_ideas/static/description/assets/icons/arrows-repeat.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/banner-1.png b/employee_ideas/static/description/assets/icons/banner-1.png new file mode 100755 index 000000000..c180db172 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/banner-1.png differ diff --git a/employee_ideas/static/description/assets/icons/banner-2.svg b/employee_ideas/static/description/assets/icons/banner-2.svg new file mode 100755 index 000000000..e606d97d9 --- /dev/null +++ b/employee_ideas/static/description/assets/icons/banner-2.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/banner-bg.png b/employee_ideas/static/description/assets/icons/banner-bg.png new file mode 100755 index 000000000..a8238d3c0 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/banner-bg.png differ diff --git a/employee_ideas/static/description/assets/icons/banner-bg.svg b/employee_ideas/static/description/assets/icons/banner-bg.svg new file mode 100755 index 000000000..b1378103e --- /dev/null +++ b/employee_ideas/static/description/assets/icons/banner-bg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/banner-call.svg b/employee_ideas/static/description/assets/icons/banner-call.svg new file mode 100755 index 000000000..96c687e81 --- /dev/null +++ b/employee_ideas/static/description/assets/icons/banner-call.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/employee_ideas/static/description/assets/icons/banner-mail.svg b/employee_ideas/static/description/assets/icons/banner-mail.svg new file mode 100755 index 000000000..cbf0d158d --- /dev/null +++ b/employee_ideas/static/description/assets/icons/banner-mail.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/employee_ideas/static/description/assets/icons/banner-pattern.svg b/employee_ideas/static/description/assets/icons/banner-pattern.svg new file mode 100755 index 000000000..9c1c7e101 --- /dev/null +++ b/employee_ideas/static/description/assets/icons/banner-pattern.svg @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/banner-promo.svg b/employee_ideas/static/description/assets/icons/banner-promo.svg new file mode 100755 index 000000000..d52791b11 --- /dev/null +++ b/employee_ideas/static/description/assets/icons/banner-promo.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/brand-pair.svg b/employee_ideas/static/description/assets/icons/brand-pair.svg new file mode 100755 index 000000000..d8db7fc1e --- /dev/null +++ b/employee_ideas/static/description/assets/icons/brand-pair.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/check.png b/employee_ideas/static/description/assets/icons/check.png new file mode 100755 index 000000000..c8e85f51d Binary files /dev/null and b/employee_ideas/static/description/assets/icons/check.png differ diff --git a/employee_ideas/static/description/assets/icons/chevron.png b/employee_ideas/static/description/assets/icons/chevron.png new file mode 100755 index 000000000..2089293d6 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/chevron.png differ diff --git a/employee_ideas/static/description/assets/icons/close-icon.svg b/employee_ideas/static/description/assets/icons/close-icon.svg new file mode 100755 index 000000000..df8cce37a --- /dev/null +++ b/employee_ideas/static/description/assets/icons/close-icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/employee_ideas/static/description/assets/icons/cogs.png b/employee_ideas/static/description/assets/icons/cogs.png new file mode 100755 index 000000000..95d0bad62 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/cogs.png differ diff --git a/employee_ideas/static/description/assets/icons/collabarate-icon.svg b/employee_ideas/static/description/assets/icons/collabarate-icon.svg new file mode 100755 index 000000000..dd4e10518 --- /dev/null +++ b/employee_ideas/static/description/assets/icons/collabarate-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/employee_ideas/static/description/assets/icons/consultation.png b/employee_ideas/static/description/assets/icons/consultation.png new file mode 100755 index 000000000..8319d4baa Binary files /dev/null and b/employee_ideas/static/description/assets/icons/consultation.png differ diff --git a/employee_ideas/static/description/assets/icons/cybro-logo.png b/employee_ideas/static/description/assets/icons/cybro-logo.png new file mode 100755 index 000000000..ff4b78220 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/cybro-logo.png differ diff --git a/employee_ideas/static/description/assets/icons/down.svg b/employee_ideas/static/description/assets/icons/down.svg new file mode 100755 index 000000000..f21c36271 --- /dev/null +++ b/employee_ideas/static/description/assets/icons/down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/employee_ideas/static/description/assets/icons/ecom-black.png b/employee_ideas/static/description/assets/icons/ecom-black.png new file mode 100755 index 000000000..a9385ff13 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/ecom-black.png differ diff --git a/employee_ideas/static/description/assets/icons/education-black.png b/employee_ideas/static/description/assets/icons/education-black.png new file mode 100755 index 000000000..3eb09b27b Binary files /dev/null and b/employee_ideas/static/description/assets/icons/education-black.png differ diff --git a/employee_ideas/static/description/assets/icons/faq.png b/employee_ideas/static/description/assets/icons/faq.png new file mode 100755 index 000000000..4250b5b81 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/faq.png differ diff --git a/employee_ideas/static/description/assets/icons/feature-icon.svg b/employee_ideas/static/description/assets/icons/feature-icon.svg new file mode 100755 index 000000000..fa0ea6850 --- /dev/null +++ b/employee_ideas/static/description/assets/icons/feature-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/feature.png b/employee_ideas/static/description/assets/icons/feature.png new file mode 100755 index 000000000..ac7a785c0 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/feature.png differ diff --git a/employee_ideas/static/description/assets/icons/gear.svg b/employee_ideas/static/description/assets/icons/gear.svg new file mode 100755 index 000000000..0cc66b6ea --- /dev/null +++ b/employee_ideas/static/description/assets/icons/gear.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/hero.gif b/employee_ideas/static/description/assets/icons/hero.gif new file mode 100644 index 000000000..6a8cdc22e Binary files /dev/null and b/employee_ideas/static/description/assets/icons/hero.gif differ diff --git a/employee_ideas/static/description/assets/icons/hire-odoo.svg b/employee_ideas/static/description/assets/icons/hire-odoo.svg new file mode 100755 index 000000000..e1ac089b0 --- /dev/null +++ b/employee_ideas/static/description/assets/icons/hire-odoo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/hotel-black.png b/employee_ideas/static/description/assets/icons/hotel-black.png new file mode 100755 index 000000000..130f613be Binary files /dev/null and b/employee_ideas/static/description/assets/icons/hotel-black.png differ diff --git a/employee_ideas/static/description/assets/icons/license.png b/employee_ideas/static/description/assets/icons/license.png new file mode 100755 index 000000000..a5869797e Binary files /dev/null and b/employee_ideas/static/description/assets/icons/license.png differ diff --git a/employee_ideas/static/description/assets/icons/life-ring-icon.svg b/employee_ideas/static/description/assets/icons/life-ring-icon.svg new file mode 100755 index 000000000..3ae6e1d89 --- /dev/null +++ b/employee_ideas/static/description/assets/icons/life-ring-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/lifebuoy.png b/employee_ideas/static/description/assets/icons/lifebuoy.png new file mode 100755 index 000000000..658d56ccc Binary files /dev/null and b/employee_ideas/static/description/assets/icons/lifebuoy.png differ diff --git a/employee_ideas/static/description/assets/icons/mail.svg b/employee_ideas/static/description/assets/icons/mail.svg new file mode 100755 index 000000000..1eedde695 --- /dev/null +++ b/employee_ideas/static/description/assets/icons/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/employee_ideas/static/description/assets/icons/manufacturing-black.png b/employee_ideas/static/description/assets/icons/manufacturing-black.png new file mode 100755 index 000000000..697eb0e9f Binary files /dev/null and b/employee_ideas/static/description/assets/icons/manufacturing-black.png differ diff --git a/employee_ideas/static/description/assets/icons/notes.png b/employee_ideas/static/description/assets/icons/notes.png new file mode 100755 index 000000000..ee5e95404 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/notes.png differ diff --git a/employee_ideas/static/description/assets/icons/notification icon.svg b/employee_ideas/static/description/assets/icons/notification icon.svg new file mode 100755 index 000000000..053189973 --- /dev/null +++ b/employee_ideas/static/description/assets/icons/notification icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/odoo-consultancy.svg b/employee_ideas/static/description/assets/icons/odoo-consultancy.svg new file mode 100755 index 000000000..e05f65bde --- /dev/null +++ b/employee_ideas/static/description/assets/icons/odoo-consultancy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/employee_ideas/static/description/assets/icons/odoo-licencing.svg b/employee_ideas/static/description/assets/icons/odoo-licencing.svg new file mode 100755 index 000000000..2606c88b0 --- /dev/null +++ b/employee_ideas/static/description/assets/icons/odoo-licencing.svg @@ -0,0 +1,3 @@ + + + diff --git a/employee_ideas/static/description/assets/icons/odoo-logo.png b/employee_ideas/static/description/assets/icons/odoo-logo.png new file mode 100755 index 000000000..0e4d0eb5a Binary files /dev/null and b/employee_ideas/static/description/assets/icons/odoo-logo.png differ diff --git a/employee_ideas/static/description/assets/icons/patter.svg b/employee_ideas/static/description/assets/icons/patter.svg new file mode 100755 index 000000000..25c9c0a8f --- /dev/null +++ b/employee_ideas/static/description/assets/icons/patter.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/pattern1.png b/employee_ideas/static/description/assets/icons/pattern1.png new file mode 100755 index 000000000..09ab0fb2d Binary files /dev/null and b/employee_ideas/static/description/assets/icons/pattern1.png differ diff --git a/employee_ideas/static/description/assets/icons/pos-black.png b/employee_ideas/static/description/assets/icons/pos-black.png new file mode 100755 index 000000000..97c0f90c1 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/pos-black.png differ diff --git a/employee_ideas/static/description/assets/icons/puzzle-piece-icon.svg b/employee_ideas/static/description/assets/icons/puzzle-piece-icon.svg new file mode 100755 index 000000000..3e9ad9373 --- /dev/null +++ b/employee_ideas/static/description/assets/icons/puzzle-piece-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/puzzle.png b/employee_ideas/static/description/assets/icons/puzzle.png new file mode 100755 index 000000000..65cf854e7 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/puzzle.png differ diff --git a/employee_ideas/static/description/assets/icons/replace-icon.svg b/employee_ideas/static/description/assets/icons/replace-icon.svg new file mode 100755 index 000000000..d0e3a7af1 --- /dev/null +++ b/employee_ideas/static/description/assets/icons/replace-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/restaurant-black.png b/employee_ideas/static/description/assets/icons/restaurant-black.png new file mode 100755 index 000000000..4a35eb939 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/restaurant-black.png differ diff --git a/employee_ideas/static/description/assets/icons/screenshot-main.png b/employee_ideas/static/description/assets/icons/screenshot-main.png new file mode 100755 index 000000000..575f8e676 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/screenshot-main.png differ diff --git a/employee_ideas/static/description/assets/icons/screenshot.png b/employee_ideas/static/description/assets/icons/screenshot.png new file mode 100755 index 000000000..cef272529 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/screenshot.png differ diff --git a/employee_ideas/static/description/assets/icons/service-black.png b/employee_ideas/static/description/assets/icons/service-black.png new file mode 100755 index 000000000..301ab51cb Binary files /dev/null and b/employee_ideas/static/description/assets/icons/service-black.png differ diff --git a/employee_ideas/static/description/assets/icons/skype-fill.svg b/employee_ideas/static/description/assets/icons/skype-fill.svg new file mode 100755 index 000000000..c17423639 --- /dev/null +++ b/employee_ideas/static/description/assets/icons/skype-fill.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/skype.png b/employee_ideas/static/description/assets/icons/skype.png new file mode 100755 index 000000000..51b409fb3 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/skype.png differ diff --git a/employee_ideas/static/description/assets/icons/skype.svg b/employee_ideas/static/description/assets/icons/skype.svg new file mode 100755 index 000000000..df3dad39b --- /dev/null +++ b/employee_ideas/static/description/assets/icons/skype.svg @@ -0,0 +1,3 @@ + + + diff --git a/employee_ideas/static/description/assets/icons/star-1.svg b/employee_ideas/static/description/assets/icons/star-1.svg new file mode 100755 index 000000000..7e55ab162 --- /dev/null +++ b/employee_ideas/static/description/assets/icons/star-1.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/star-2.svg b/employee_ideas/static/description/assets/icons/star-2.svg new file mode 100755 index 000000000..5ae9f507a --- /dev/null +++ b/employee_ideas/static/description/assets/icons/star-2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/support.png b/employee_ideas/static/description/assets/icons/support.png new file mode 100755 index 000000000..4f18b8b82 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/support.png differ diff --git a/employee_ideas/static/description/assets/icons/test-1 - Copy.png b/employee_ideas/static/description/assets/icons/test-1 - Copy.png new file mode 100755 index 000000000..f6a902663 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/test-1 - Copy.png differ diff --git a/employee_ideas/static/description/assets/icons/test-1.png b/employee_ideas/static/description/assets/icons/test-1.png new file mode 100755 index 000000000..0908add2b Binary files /dev/null and b/employee_ideas/static/description/assets/icons/test-1.png differ diff --git a/employee_ideas/static/description/assets/icons/test-2.png b/employee_ideas/static/description/assets/icons/test-2.png new file mode 100755 index 000000000..4671fe91e Binary files /dev/null and b/employee_ideas/static/description/assets/icons/test-2.png differ diff --git a/employee_ideas/static/description/assets/icons/trading-black.png b/employee_ideas/static/description/assets/icons/trading-black.png new file mode 100755 index 000000000..9398ba2f1 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/trading-black.png differ diff --git a/employee_ideas/static/description/assets/icons/training.png b/employee_ideas/static/description/assets/icons/training.png new file mode 100755 index 000000000..884ca024d Binary files /dev/null and b/employee_ideas/static/description/assets/icons/training.png differ diff --git a/employee_ideas/static/description/assets/icons/translate.svg b/employee_ideas/static/description/assets/icons/translate.svg new file mode 100755 index 000000000..af9c8a1aa --- /dev/null +++ b/employee_ideas/static/description/assets/icons/translate.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/update.png b/employee_ideas/static/description/assets/icons/update.png new file mode 100755 index 000000000..ecbc5a01a Binary files /dev/null and b/employee_ideas/static/description/assets/icons/update.png differ diff --git a/employee_ideas/static/description/assets/icons/user.png b/employee_ideas/static/description/assets/icons/user.png new file mode 100755 index 000000000..6ffb23d9f Binary files /dev/null and b/employee_ideas/static/description/assets/icons/user.png differ diff --git a/employee_ideas/static/description/assets/icons/video.png b/employee_ideas/static/description/assets/icons/video.png new file mode 100755 index 000000000..576705b17 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/video.png differ diff --git a/employee_ideas/static/description/assets/icons/whatsapp.png b/employee_ideas/static/description/assets/icons/whatsapp.png new file mode 100755 index 000000000..d513a5356 Binary files /dev/null and b/employee_ideas/static/description/assets/icons/whatsapp.png differ diff --git a/employee_ideas/static/description/assets/icons/wrench-icon.svg b/employee_ideas/static/description/assets/icons/wrench-icon.svg new file mode 100755 index 000000000..174b5a465 --- /dev/null +++ b/employee_ideas/static/description/assets/icons/wrench-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/employee_ideas/static/description/assets/icons/wrench.png b/employee_ideas/static/description/assets/icons/wrench.png new file mode 100755 index 000000000..6c04dea0f Binary files /dev/null and b/employee_ideas/static/description/assets/icons/wrench.png differ diff --git a/employee_ideas/static/description/assets/modules/1.jpg b/employee_ideas/static/description/assets/modules/1.jpg new file mode 100644 index 000000000..3cb15fe01 Binary files /dev/null and b/employee_ideas/static/description/assets/modules/1.jpg differ diff --git a/employee_ideas/static/description/assets/modules/2.jpg b/employee_ideas/static/description/assets/modules/2.jpg new file mode 100644 index 000000000..662cadcc3 Binary files /dev/null and b/employee_ideas/static/description/assets/modules/2.jpg differ diff --git a/employee_ideas/static/description/assets/modules/3.jpg b/employee_ideas/static/description/assets/modules/3.jpg new file mode 100644 index 000000000..717a00443 Binary files /dev/null and b/employee_ideas/static/description/assets/modules/3.jpg differ diff --git a/employee_ideas/static/description/assets/modules/4.png b/employee_ideas/static/description/assets/modules/4.png new file mode 100644 index 000000000..00ebf54ad Binary files /dev/null and b/employee_ideas/static/description/assets/modules/4.png differ diff --git a/employee_ideas/static/description/assets/modules/5.jpg b/employee_ideas/static/description/assets/modules/5.jpg new file mode 100644 index 000000000..7c67e2eec Binary files /dev/null and b/employee_ideas/static/description/assets/modules/5.jpg differ diff --git a/employee_ideas/static/description/assets/modules/6.gif b/employee_ideas/static/description/assets/modules/6.gif new file mode 100644 index 000000000..a35ece8df Binary files /dev/null and b/employee_ideas/static/description/assets/modules/6.gif differ diff --git a/employee_ideas/static/description/assets/screenshots/1.png b/employee_ideas/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..b7fa81e70 Binary files /dev/null and b/employee_ideas/static/description/assets/screenshots/1.png differ diff --git a/employee_ideas/static/description/assets/screenshots/10.png b/employee_ideas/static/description/assets/screenshots/10.png new file mode 100644 index 000000000..fcf71856c Binary files /dev/null and b/employee_ideas/static/description/assets/screenshots/10.png differ diff --git a/employee_ideas/static/description/assets/screenshots/11.png b/employee_ideas/static/description/assets/screenshots/11.png new file mode 100644 index 000000000..13cb3fe01 Binary files /dev/null and b/employee_ideas/static/description/assets/screenshots/11.png differ diff --git a/employee_ideas/static/description/assets/screenshots/2.png b/employee_ideas/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..b35fb56fa Binary files /dev/null and b/employee_ideas/static/description/assets/screenshots/2.png differ diff --git a/employee_ideas/static/description/assets/screenshots/3.png b/employee_ideas/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..8241df60d Binary files /dev/null and b/employee_ideas/static/description/assets/screenshots/3.png differ diff --git a/employee_ideas/static/description/assets/screenshots/4.png b/employee_ideas/static/description/assets/screenshots/4.png new file mode 100644 index 000000000..cba4deff5 Binary files /dev/null and b/employee_ideas/static/description/assets/screenshots/4.png differ diff --git a/employee_ideas/static/description/assets/screenshots/5.png b/employee_ideas/static/description/assets/screenshots/5.png new file mode 100644 index 000000000..72a97e7bd Binary files /dev/null and b/employee_ideas/static/description/assets/screenshots/5.png differ diff --git a/employee_ideas/static/description/assets/screenshots/6.png b/employee_ideas/static/description/assets/screenshots/6.png new file mode 100644 index 000000000..71d6c1842 Binary files /dev/null and b/employee_ideas/static/description/assets/screenshots/6.png differ diff --git a/employee_ideas/static/description/assets/screenshots/7.png b/employee_ideas/static/description/assets/screenshots/7.png new file mode 100644 index 000000000..fed55bf61 Binary files /dev/null and b/employee_ideas/static/description/assets/screenshots/7.png differ diff --git a/employee_ideas/static/description/assets/screenshots/8.png b/employee_ideas/static/description/assets/screenshots/8.png new file mode 100644 index 000000000..488d85201 Binary files /dev/null and b/employee_ideas/static/description/assets/screenshots/8.png differ diff --git a/employee_ideas/static/description/assets/screenshots/9.png b/employee_ideas/static/description/assets/screenshots/9.png new file mode 100644 index 000000000..3e611849b Binary files /dev/null and b/employee_ideas/static/description/assets/screenshots/9.png differ diff --git a/employee_ideas/static/description/assets/y18.jpg b/employee_ideas/static/description/assets/y18.jpg new file mode 100755 index 000000000..eea1714f2 Binary files /dev/null and b/employee_ideas/static/description/assets/y18.jpg differ diff --git a/employee_ideas/static/description/banner.png b/employee_ideas/static/description/banner.png new file mode 100644 index 000000000..ea59e8d56 Binary files /dev/null and b/employee_ideas/static/description/banner.png differ diff --git a/employee_ideas/static/description/icon.png b/employee_ideas/static/description/icon.png new file mode 100644 index 000000000..95160bde6 Binary files /dev/null and b/employee_ideas/static/description/icon.png differ diff --git a/employee_ideas/static/description/index.html b/employee_ideas/static/description/index.html new file mode 100644 index 000000000..60826152f --- /dev/null +++ b/employee_ideas/static/description/index.html @@ -0,0 +1,1078 @@ + + + + + + Employee Ideas + + + + + + + + + + +
+
+ + + +
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+ +
+
+
+
+

+ Share the Ideas of an Employee to Others. +

+

Employee Ideas +

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

Key + Highlights

+
+
+
+
+ +
+
+ An employee can easily share their ideas with + others. +
+
+
+
+
+
+ +
+
+ HR officer can create Idea types, and employees + can create the idea under that. +
+
+
+
+
+
+ +
+
+ The other employees can vote or comment the + ideas, thus they can easily. +
+
+
+
+
+ +
+
+
+ Employee Ideas +

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

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

+ Set access right for HR officer. + +

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

+ Set access right for employee. + +

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

+ HR officer can create new Idea type, under + which an employee can create the ideas. + +

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

+ The employee can create an idea and send + for the approval. + +

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

+ HR officer have the option to approve and + reject the idea. Employees can vote only + for the approved ideas + +

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

+ Give vote button will be only visible to + the employees that belong to the + departments specified under each Idea Type + +

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

+ While clicking on the 'Give Vote' button a + wizard will open, and in that have options + to + specify the comments and to give the + vote.And also we are able to prioritize the + idea. + +

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

+ It is very easy to track the vote + +

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

+ We can see the number of votes gained by + each idea in the top right corner. + +

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

+ It is easy to give and trace the + comments. + +

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

+ It is very easy to analyse the idea that + created under each Idea Type. In this view + we can + see the number of minimum vote required and + total number of idea created under this + idea type.We can see the status of each + idea. + +

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

+ An employee can easily share their ideas with others.

+
+ +
+
+
+
+
+
+ +
+

+ The other + employees can vote or comment the ideas, thus they can easily + express their opinion.

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

+ Yes. it works with Odoosh. +

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

+ Latest Release 18.0.1.0.0 +

+ + 13th January, 2025 + +
+
+
+
+
+ Add +
+
+
+
    +
  • + Initial Commit +
  • + +
+
+
+
+
+
+
+
+
+
+ + + +
+

+ Related Products +

+ +
+ + +
+

+ Our Services

+ +
+ +
+
+ .... +
+
+ +
+ + +
+
+ + + + + + diff --git a/employee_ideas/views/employee_idea_views.xml b/employee_ideas/views/employee_idea_views.xml new file mode 100644 index 000000000..10150fd0e --- /dev/null +++ b/employee_ideas/views/employee_idea_views.xml @@ -0,0 +1,141 @@ + + + + Employee Ideas + employee.idea + list,form + + + + employee.idea.view.tree + employee.idea + + + + + + + + + + + + + + employee.idea.view.form + employee.idea + +
+
+ +
+ +
+ + +
+

+ +

+ + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ + + employee.idea.search + employee.idea + + + + + + + + + + + + + + + + + + + + +
diff --git a/employee_ideas/views/idea_type_views.xml b/employee_ideas/views/idea_type_views.xml new file mode 100644 index 000000000..f1eb3ee29 --- /dev/null +++ b/employee_ideas/views/idea_type_views.xml @@ -0,0 +1,68 @@ + + + + Idea Type + idea.type + list,form + + + + + idea.type.view.tree + idea.type + + + + + + + + + idea.type.view.form + idea.type + +
+ +
+ +
+ + + + + + + + + + + + + + + + + +
+ + +
+
+
+ +
diff --git a/employee_ideas/wizard/__init__.py b/employee_ideas/wizard/__init__.py new file mode 100644 index 000000000..694f88882 --- /dev/null +++ b/employee_ideas/wizard/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# 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 . +# +############################################################################# +from . import give_vote diff --git a/employee_ideas/wizard/give_vote.py b/employee_ideas/wizard/give_vote.py new file mode 100644 index 000000000..0de17a24c --- /dev/null +++ b/employee_ideas/wizard/give_vote.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# 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 . +# +############################################################################# +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' diff --git a/employee_ideas/wizard/give_vote_views.xml b/employee_ideas/wizard/give_vote_views.xml new file mode 100644 index 000000000..28c293f6c --- /dev/null +++ b/employee_ideas/wizard/give_vote_views.xml @@ -0,0 +1,49 @@ + + + + + give.vote.view.form + give.vote + +
+ + + + + + + + +
+
+
+
+
+ + + give.vote.view.tree + give.vote + + + + + + + + + + + + + Give Vote + ir.actions.act_window + give.vote + form + + new + +