add new module

This commit is contained in:
sonal arora
2020-07-21 10:09:46 +00:00
parent 800e7fdceb
commit c0d10e3fbe
1063 changed files with 243750 additions and 5 deletions

View File

@@ -0,0 +1,7 @@
# -*- coding: utf-8 -*-
from . import leave_request_alias
from . import res_config
# from . import web_planner

View File

@@ -0,0 +1,50 @@
# -*- coding: utf-8 -*-
import re
from datetime import datetime, timedelta
from odoo import models, api
from odoo.tools import email_split
class HrLeaveAlias(models.Model):
_inherit = 'hr.leave'
@api.model
def message_new(self, msg_dict, custom_values=None):
"""This function extracts required fields of hr.holidays from incoming mail then creating records"""
try:
if custom_values is None:
custom_values = {}
msg_subject = msg_dict.get('subject', '')
subject = re.search('LEAVE REQUEST', msg_subject)
if subject is not None:
email_address = email_split(msg_dict.get('email_from', False))[0]
employee = self.env['hr.employee'].sudo().search([
'|',
('work_email', 'ilike', email_address),
('user_id.email', 'ilike', email_address)
], limit=1)
msg_body = msg_dict.get('body', '')
cleaner = re.compile('<.*?>')
clean_msg_body = re.sub(cleaner, '', msg_body)
date_list = re.findall(r'\d{2}/\d{2}/\d{4}', clean_msg_body)
if len(date_list) > 0:
date_from = date_list[0]
if len(date_list) > 1:
start_date = datetime.strptime(date_list[1], '%d/%m/%Y')
date_to = start_date + timedelta(days=0)
else:
start_date = datetime.strptime(date_list[0], '%d/%m/%Y')
date_to = start_date + timedelta(days=1)
no_of_days_temp = (datetime.strptime(str(date_to), "%Y-%m-%d %H:%M:%S") -
datetime.strptime(date_from, '%d/%m/%Y')).days
custom_values.update({
'name': msg_subject.strip(),
'employee_id': employee.id,
'holiday_status_id': 1,
'date_from': date_from,
'date_to': date_to,
'no_of_days_temp': no_of_days_temp
})
return super(HrLeaveAlias, self).message_new(msg_dict, custom_values)
except:
pass

View File

@@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
from odoo import api, fields, models
class HrLeaveConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
alias_prefix = fields.Char(string='Default Alias Name for Leave', help='Default Alias Name for Leave')
alias_domain = fields.Char(string='Alias Domain', help='Default Alias Domain for Leave',
default=lambda self: self.env["ir.config_parameter"].get_param("mail.catchall.domain"))
def set_values(self):
super(HrLeaveConfigSettings, self).set_values()
set_param = self.env['ir.config_parameter'].set_param
set_param('alias_prefix', self.alias_prefix)
set_param('alias_domain', self.alias_domain )
@api.model
def get_values(self):
res = super(HrLeaveConfigSettings, self).get_values()
get_param = self.env['ir.config_parameter'].sudo().get_param
res.update(
alias_prefix=get_param('alias_prefix', default=''),
alias_domain=get_param('alias_domain', default=''),
)
return res

View File

@@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
from odoo import api, models
class PlannerHrLeave(models.Model):
"""This class is used to activate web.planner feature in 'hr_leave_request_aliasing' module"""
_inherit = 'web.planner'
@api.model
def _get_planner_application(self):
planner = super(PlannerHrLeave, self)._get_planner_application()
planner.append(['planner_hr_leave', 'Leave Planner'])
return planner
@api.model
def _prepare_planner_hr_leave_data(self):
alias_record = self.env.ref('hr_leave_request_aliasing.mail_alias_leave')
return {
'alias_domain': alias_record.alias_domain,
'alias_name': alias_record.alias_name,
}