新增计划管理模块,新增工作日历设置模块(已完成,手动输入时间部分需优化)

This commit is contained in:
yuxianghui
2023-07-04 17:37:20 +08:00
parent 4199a86264
commit f685c9a3d4
7 changed files with 185 additions and 0 deletions

View File

@@ -0,0 +1 @@
from . import models

View File

@@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': '机企猫智能工厂 计划管理',
'version': '1.0',
'summary': '智能工厂计划管理',
'sequence': 1,
'description': """
在本模块,定义了计划管理的清单和原型
""",
'category': 'sf',
'website': 'https://www.sf.jikimo.com',
'depends': [],
'data': [
'security/ir.model.access.csv',
'views/paln_base_view.xml',
'views/menu_view.xml'
],
'demo': [
],
'assets': {
'web.assets_qweb': [
],
'web.assets_backend':[
]
},
'license': 'LGPL-3',
'installable': True,
'application': False,
'auto_install': False,
}

View File

@@ -0,0 +1 @@
from . import base

View File

@@ -0,0 +1,59 @@
from odoo import models, fields, api
import re
class WorkLogSetting(models.Model):
_name = 'sf.work.log.setting'
_description = '工作日历设置'
input1 = fields.Char(string='Input 1')
input2 = fields.Char(string='Input 2')
name = fields.Char(string='工作日历名称')
# start_time = fields.Char(string='日开始时间')
start_time = fields.Datetime(string='日开始时间')
end_time = fields.Char(string='日结束时间')
duration = fields.Char(string='时长')
day_off = fields.Char(string='休息日')
user_defined_working_shift_status = fields.Boolean(string='自定义班次', default=False)
working_shift = fields.Char(string='班次')
working_shift_char = fields.Char(string='班次')
working_shift_select = fields.Selection([('0', '早班00:00-08:00'),
('1', '白班08:00-16:00'),
('2', '晚班16:00-24:00'),
('3', '长白班08:00-20:00'),
('4', '长晚班20:00-08:00')], string='班次')
status = fields.Boolean(string='状态', default=True)
update_person = fields.Char(string='更新人', default=lambda self: self.env.user.name)
update_time = fields.Datetime(string='更新时间', default=lambda self: fields.Datetime.now())
# @api.onchange('working_shift_char')
# def _onchange_working_shift_char(self):
# pattern = re.compile(r'^(([0-9]|1[0-9]|2[0-3]):[0-5][0-9])|24:00$')
# if self.start_time and not pattern.match(self.start_time):
# raise models.ValidationError('输入的日开始时间不正确,请重新输入!')
@api.onchange('working_shift_char', 'working_shift_select')
def _onchange_working_shift(self):
for record in self:
if record.working_shift_select:
record.working_shift = record.working_shift_select
else:
record.working_shift = record.working_shift_char
# @api.onchange('start_time')
# def _onchange_start_time(self):
# pattern = re.compile(r'^(([0-9]|1[0-9]|2[0-3]):[0-5][0-9])|24:00$')
# if self.start_time and not pattern.match(self.start_time):
# raise models.ValidationError('输入的日开始时间不正确,请重新输入!')
@api.onchange('end_time')
def _onchange_end_time(self):
pattern = re.compile(r'^(([0-9]|1[0-9]|2[0-3]):[0-5][0-9])|24:00$')
for record in self:
if record.end_time and not pattern.match(record.end_time):
raise models.ValidationError('输入的日结束时间不正确,请重新输入!')

View File

@@ -0,0 +1,8 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_sf_work_log_setting,sf.work.log.setting,model_sf_work_log_setting,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_sf_work_log_setting sf.work.log.setting model_sf_work_log_setting base.group_user 1 1 1 1

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<menuitem id="menu_sf_plan_manage"
name="计划管理"
parent="mrp.menu_mrp_root"
sequence="22"
/>
<menuitem id="menu_sf_basic_setting"
name="基础设置"
parent="menu_sf_plan_manage"
sequence="0"
/>
<menuitem id="menu_sf_work_log_setting"
name="工作日历设置"
parent="menu_sf_basic_setting"
action="sf_work_log_setting_act"
sequence="0"
/>
</odoo>

View File

@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!--========================================工作日历设置========================================-->
<record id="sf_work_log_setting_tree" model="ir.ui.view">
<field name="name">工作日历设置</field>
<field name="model">sf.work.log.setting</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="start_time"/>
<field name="end_time"/>
<field name="duration"/>
<field name="day_off"/>
<field name="working_shift"/>
<field name="status"/>
<field name="update_person"/>
<field name="update_time"/>
</tree>
</field>
</record>
<record id="sf_work_log_setting_form" model="ir.ui.view">
<field name="name">工作日历设置</field>
<field name="model">sf.work.log.setting</field>
<field name="arch" type="xml">
<form>
<sheet string-="工作日历设置">
<group>
<field name="name"/>
</group>
<group>
<field name="user_defined_working_shift_status"/>
<field name="working_shift" invisible="True"/>
<field name="working_shift_char" attrs="{'invisible': [('user_defined_working_shift_status', '=', False)]}"/>
<field name="working_shift_select" attrs="{'invisible': [('user_defined_working_shift_status', '!=', False)]}"/>
</group>
<group>
<group>
<!-- <field name="start_time" widget="char" placeholder="请输入的时间为00:00-24:00"/>-->
<field name="start_time" widget="datetime"/>
<field name="duration"/>
</group>
<group>
<field name="end_time" widget="char" placeholder="请输入的时间为00:00-24:00"/>
<field name="day_off"/>
</group>
</group>
<group>
<field name="status"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="sf_work_log_setting_act" model="ir.actions.act_window">
<field name="name">工作日历设置</field>
<field name="res_model">sf.work.log.setting</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>