65 lines
2.6 KiB
Python
65 lines
2.6 KiB
Python
from odoo import models, fields, api, http, SUPERUSER_ID, _
|
|
import logging
|
|
from odoo.exceptions import UserError
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
class AppletAddress(models.Model):
|
|
_name = 'applet.address'
|
|
_description = '小程序地址管理'
|
|
|
|
address_name = fields.Char('地址名称')
|
|
address_name2 = fields.Text('详细地址')
|
|
employee_ids = fields.Many2many('hr.employee', string="员工")
|
|
company_id = fields.Many2one('res.company', string="公司")
|
|
longitude = fields.Float(string="经度", digits=(16, 10))
|
|
latitude = fields.Float(string="纬度", digits=(16, 10))
|
|
wifi_name_ids = fields.Many2many('wifi.message', string="wifi名称")
|
|
card_rice = fields.Integer(string="打卡范围(米)")
|
|
|
|
def update_employee(self):
|
|
applet_ids = self.env["applet.address"].browse(
|
|
self._context.get('active_ids', self._context.get('active_id')))
|
|
for record in applet_ids:
|
|
matching_employees = self.env['hr.employee'].search([
|
|
('company_id.name', '=', record.address_name)
|
|
])
|
|
record.employee_ids = [(6, 0, matching_employees.ids)]
|
|
|
|
|
|
class AppletSecurity(models.Model):
|
|
_name = 'applet.security'
|
|
_description = "小程序权限管理"
|
|
|
|
employee_id = fields.Many2one('hr.employee', string="员工")
|
|
company_id = fields.Many2one(related="employee_id.company_id", string="公司", store=True)
|
|
department_id = fields.Many2one(related="employee_id.department_id", string="部门", store=True)
|
|
applet_security_setting_ids = fields.Many2many('applet.security.setting', string="权限板块")
|
|
|
|
def init_applet_security(self):
|
|
"""
|
|
初始化权限
|
|
:return:
|
|
"""
|
|
employees = self.env['hr.employee'].search([])
|
|
existing_records = self.search([])
|
|
existing_employee_ids = existing_records.mapped('employee_id.id')
|
|
clock_in_setting = self.env['applet.security.setting'].search([('name', '=', '打卡')], limit=1)
|
|
if not clock_in_setting:
|
|
raise UserError('请添加打卡板块')
|
|
for employee in employees:
|
|
if employee.id in existing_employee_ids:
|
|
existing_records.filtered(lambda r: r.employee_id.id == employee.id)
|
|
else:
|
|
self.create({
|
|
'employee_id': employee.id,
|
|
# 'applet_security_setting_ids': [(6, 0, [])]
|
|
'applet_security_setting_ids': [(4, clock_in_setting.id)],
|
|
})
|
|
|
|
|
|
class AppletSecuritySeeting(models.Model):
|
|
_name = 'applet.security.setting'
|
|
|
|
name = fields.Char(string="板块名称") |