@@ -7,7 +7,7 @@
|
||||
'description': 'Experience the Ease of Booking Meeting Rooms with Real-Time Availability Display.',
|
||||
'category': 'Services/Room',
|
||||
'version': '1.0',
|
||||
'depends': ['mail', 'hr', 'documents', 'yuthon_wechat', 'fleet', 'calendar', 'yuthon_hr_employee'],
|
||||
'depends': ['mail', 'hr', 'documents', 'yuthon_wechat', 'fleet', 'calendar'],
|
||||
'data': [
|
||||
'data/message_template_views.xml',
|
||||
'data/room_wechat_cron_data.xml',
|
||||
|
||||
@@ -124,13 +124,13 @@ class RoomBooking(models.Model):
|
||||
'sign_type': 'no',
|
||||
})
|
||||
# 缺少逻辑
|
||||
for external in self.other_user_ids:
|
||||
self.env['room.meeting.sign'].create({
|
||||
'room_booking_id': self.id,
|
||||
'partner_name': external.name,
|
||||
'user_type': 'outsiders',
|
||||
'sign_type': 'no',
|
||||
})
|
||||
# for external in self.other_user_ids:
|
||||
# self.env['room.meeting.sign'].create({
|
||||
# 'room_booking_id': self.id,
|
||||
# 'partner_name': external.name,
|
||||
# 'user_type': 'outsiders',
|
||||
# 'sign_type': 'no',
|
||||
# })
|
||||
|
||||
event = self.env['calendar.event'].create({
|
||||
'name': self.name,
|
||||
@@ -142,6 +142,19 @@ class RoomBooking(models.Model):
|
||||
'event_id': event.id,
|
||||
'partner_id': partner.address_id.id,
|
||||
})
|
||||
task_type = self.env['task.type.setting'].search([('name', '=', '面试')])
|
||||
employee_records = self.env['hr.employee'].search([('user_id', 'in', self.room_users_ids.ids)])
|
||||
if not task_type:
|
||||
task_type = self.env['task.type.setting'].create({
|
||||
'name': '面试',
|
||||
})
|
||||
self.env['yuthon.will.task'].create({
|
||||
'start_time': self.start_datetime,
|
||||
'task_type':task_type.id,
|
||||
'employee_ids': [(6, 0, employee_records.ids)],
|
||||
'state':'will',
|
||||
'task_content': '面试安排'
|
||||
})
|
||||
# 企业用户发送通知
|
||||
partner_ids = self.sudo().env['res.users'].search([('id', 'in', self.room_users_ids.ids)]).mapped(
|
||||
'partner_id').ids
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
'data/stage_approval_data.xml',
|
||||
'data/tage_approval_data.xml',
|
||||
'views/inherit_hr_applicant_views.xml',
|
||||
'views/inherit_room_booking_views.xml',
|
||||
'views/inherit_hr_job_views.xml',
|
||||
'views/inherit_hr_employee_views.xml',
|
||||
'views/yuthon_message_login_views.xml',
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from . import inherit_hr_employee
|
||||
from . import hr_employee_page
|
||||
from . import inherit_hr_job
|
||||
from . import inherit_room_booking
|
||||
from . import inherit_hr_applicant
|
||||
from . import yuthon_message_login
|
||||
from . import yuthon_onboard_approval
|
||||
|
||||
@@ -68,8 +68,8 @@ class HrApplicant(models.Model):
|
||||
form_id = self.env.ref("yuthon_hr_employee_approval.yuthon_onboard_approval_form").id
|
||||
information_id = self.env["yuthon.message.login"].search([('staff_name', '=', self.partner_name)])
|
||||
recruitment_id = self.env["yuthon.recruitment.approval"].search([('name', 'ilike', self.name), ('name', 'ilike', self.department_id.name)])
|
||||
for user in self.interview_approval_ids:
|
||||
if user.interview_stage_id.name == '未通过':
|
||||
for applicant in self:
|
||||
if applicant.stage_id.name != '待入职':
|
||||
raise UserError('当前人员不允许入职')
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import api, fields, models, _
|
||||
import datetime
|
||||
|
||||
|
||||
|
||||
class RoomBooking(models.Model):
|
||||
_inherit = "room.booking"
|
||||
|
||||
interview_id = fields.Many2one("yuthon.interview.approval", string="关联面试流程", tracking=1)
|
||||
@@ -19,17 +19,10 @@
|
||||
<field name="model">hr.job</field>
|
||||
<field name="inherit_id" ref="hr.view_hr_job_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<div name="recruitment_target" position="after">
|
||||
<field name="is_pub"/>
|
||||
</div>
|
||||
<xpath expr="//field[@name='no_of_recruitment']" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_recruitment.action_hr_job" model="ir.actions.act_window">
|
||||
<field name="domain">[('is_pub','=',True)]</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="inherit_room_booking_approval_tree" model="ir.ui.view">
|
||||
<field name="name">inherit.room.booking.approval.tree</field>
|
||||
<field name="model">room.booking</field>
|
||||
<field name="inherit_id" ref="room.room_booking_view_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='meeting_type_id']" position="after">
|
||||
<field name="interview_id" invisible="meeting_type_id.name !='面试'"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<record id="room_booking_interview_action" model="ir.actions.act_window">
|
||||
<field name="name">面试会议安排</field>
|
||||
<field name="res_model">room.booking</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('meeting_type_id.name','=','面试')]</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -17,6 +17,9 @@
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<header>
|
||||
<button name="put_time_failure" type="object" string="Approve" class="btn btn-primary"/>
|
||||
</header>
|
||||
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
|
||||
invisible="urgency_level != 'normal'"/>
|
||||
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<xpath expr="//field[@name='is_notice']" position="before">
|
||||
<field name="is_issue"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='meeting_type_id']" position="after">
|
||||
<xpath expr="//field[@name='meeting_place']" position="after">
|
||||
<field name="number_of_meetings"/>
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='sign']" position="after">
|
||||
|
||||
@@ -22,16 +22,11 @@
|
||||
parent="hr_recruitment_menu_root_board"
|
||||
action="hr_recruitment.action_hr_job"
|
||||
sequence="5"/>
|
||||
<menuitem id="hr_recruitment_all_menu_board"
|
||||
name="招聘列表"
|
||||
parent="hr_recruitment_menu_root_board"
|
||||
action="hr_recruitment.crm_case_categ0_act_job"
|
||||
sequence="10"/>
|
||||
<menuitem id="hr_recruitment_interview_message_menu_board"
|
||||
name="面试信息"
|
||||
parent="hr_recruitment_all_menu_board"
|
||||
parent="hr_recruitment_menu_root_board"
|
||||
action="yuthon_hr_employee.view_crm_case_categ0_act_job1"
|
||||
sequence="1"/>
|
||||
sequence="10"/>
|
||||
<!-- <menuitem id="hr_recruitment_interview_offboard_board"-->
|
||||
<!-- name="人才库"-->
|
||||
<!-- parent="hr_recruitment_all_menu_board"-->
|
||||
@@ -42,10 +37,15 @@
|
||||
parent="hr_recruitment_menu_root_board"
|
||||
action="yuthon_hr_employee_approval.yuthon_message_login_action"
|
||||
sequence="15"/>
|
||||
<menuitem id="hr_room_interview_menu_root_board"
|
||||
name="面试会议安排"
|
||||
parent="hr_recruitment_menu_root_board"
|
||||
action="yuthon_hr_employee_approval.room_booking_interview_action"
|
||||
sequence="20"/>
|
||||
<menuitem id="hr_menu_recruitment_process"
|
||||
name="流程"
|
||||
parent="hr_recruitment_menu_root_board"
|
||||
sequence="20"/>
|
||||
sequence="30"/>
|
||||
<menuitem id="hr_menu_recruitment_approval"
|
||||
name="招聘需求申请表"
|
||||
parent="hr_menu_recruitment_process"
|
||||
|
||||
Reference in New Issue
Block a user