@@ -35,6 +35,7 @@ class RoomBooking(models.Model):
|
||||
employee_ids = fields.Many2many('hr.employee', string='人员范围')
|
||||
users_role_ids = fields.Many2many('soong.user.role', string='角色范围')
|
||||
room_users_ids = fields.Many2many('res.users', string="会议参加人员", compute="compute_room_users_ids", store=True)
|
||||
other_user_ids = fields.Many2many('res.partner', string="外部人员")
|
||||
meeting_party_note = fields.Text(string="党之委会议纪要")
|
||||
meeting_party_document_ids = fields.One2many('party.document', 'room_booking_id', string="党之委会议文档")
|
||||
meeting_class_note = fields.Text(string="班子会议纪要")
|
||||
@@ -58,12 +59,16 @@ class RoomBooking(models.Model):
|
||||
</select>
|
||||
"""
|
||||
if self.room_users_ids:
|
||||
# 把人员遍历出来
|
||||
# 便利内部人员和外部人员
|
||||
html_select = '<select>\n<option value="name0"> </option>\n'
|
||||
for index, user in enumerate(self.room_users_ids, start=1):
|
||||
value = f'name{index}'
|
||||
option_text = user.name
|
||||
html_select += f' <option value="{value}">{option_text}</option>\n'
|
||||
for index, partner in enumerate(self.other_user_ids, start=99):
|
||||
value_partner = f'name{index}'
|
||||
option_partner_name = partner.name
|
||||
html_select += f' <option value="{value_partner}">{option_partner_name}</option>\n'
|
||||
html_select += '</select>'
|
||||
|
||||
current_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
@@ -36,9 +36,14 @@ class Room(models.Model):
|
||||
room_background_image = fields.Image("Background Image")
|
||||
|
||||
# 二开字段 签到sign in
|
||||
|
||||
meet_m2 = fields.Float(string="会议室面积")
|
||||
meet_equipment = fields.Char(string="会议室设备")
|
||||
|
||||
office_address = fields.Char(string="会议室地址", required=True)
|
||||
department_id = fields.Many2one("hr.department", string="部门", required=True)
|
||||
meeting_type_template = fields.Selection([('template1', '默认模板')], string='会议室模板')
|
||||
meet_document_id = fields.Many2one('documents.document', string="布局图片")
|
||||
|
||||
@api.onchange('meeting_type_template')
|
||||
def onchange_description(self):
|
||||
|
||||
@@ -140,8 +140,8 @@
|
||||
<group>
|
||||
<field name="room_id"/>
|
||||
<field name="stop_datetime" invisible="1"/>
|
||||
<field name="start_datetime" string="Date" widget="daterange"
|
||||
options="{'end_date_field': 'stop_datetime'}"/>
|
||||
<field name="start_datetime" string="Date" widget="daterange" options="{'end_date_field': 'stop_datetime'}"/>
|
||||
<field name="other_user_ids" widget="many2many_tags"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="organizer_id" widget="many2one_avatar_user"/>
|
||||
@@ -193,7 +193,6 @@
|
||||
<page name="meeting_html" string="会议说明">
|
||||
<button name="button_meeting_data" string="座位排列" type="object" class="oe_highlight"/>
|
||||
<field name="meeting_data" widget="tinymce"/>
|
||||
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Room">
|
||||
<field name="name" string="Room"/>
|
||||
<!-- <field name="office_id"/>-->
|
||||
<!-- <field name="company_id" groups="base.group_multi_company"/>-->
|
||||
<!-- <filter name="group_by_office_id" context="{'group_by': 'office_id'}"/>-->
|
||||
<!-- <filter name="group_by_company_id" context="{'group_by': 'company_id'}" groups="base.group_multi_company"/>-->
|
||||
<!-- <field name="office_id"/>-->
|
||||
<!-- <field name="company_id" groups="base.group_multi_company"/>-->
|
||||
<!-- <filter name="group_by_office_id" context="{'group_by': 'office_id'}"/>-->
|
||||
<!-- <filter name="group_by_company_id" context="{'group_by': 'company_id'}" groups="base.group_multi_company"/>-->
|
||||
<searchpanel>
|
||||
<field name="department_id"/>
|
||||
<!-- <field name="office_id" select="multi" domain="[['company_id', '=', company_id]]" enable_counters="1" icon="fa-building"/>-->
|
||||
<!-- <field name="office_id" select="multi" domain="[['company_id', '=', company_id]]" enable_counters="1" icon="fa-building"/>-->
|
||||
</searchpanel>
|
||||
</search>
|
||||
</field>
|
||||
@@ -29,7 +29,8 @@
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_kanban_global_click o_kanban_record_has_image_fill">
|
||||
<field invisible="not room_background_image" name="room_background_image" class="o_kanban_image_fill_left" options="{'size': [150,100]}" widget="image"/>
|
||||
<field invisible="not room_background_image" name="room_background_image"
|
||||
class="o_kanban_image_fill_left" options="{'size': [150,100]}" widget="image"/>
|
||||
<div class="oe_kanban_details ml8">
|
||||
<div class="o_kanban_record_top">
|
||||
<strong class="o_kanban_record_title">
|
||||
@@ -43,11 +44,12 @@
|
||||
<!-- Show time if next booking is today, otherwise show date -->
|
||||
<t t-if="record.next_booking_start.value">
|
||||
<t t-set="start_datetime"
|
||||
t-value="luxon.DateTime.fromISO(record.next_booking_start.raw_value)"/>
|
||||
t-value="luxon.DateTime.fromISO(record.next_booking_start.raw_value)"/>
|
||||
Until
|
||||
<t t-if="start_datetime.hasSame(luxon.DateTime.now(), 'day')"
|
||||
t-out="start_datetime.toLocaleString(luxon.DateTime.TIME_SIMPLE)"/>
|
||||
<t t-else="" t-out="start_datetime.toLocaleString(luxon.DateTime.DATE_SHORT)"/>
|
||||
t-out="start_datetime.toLocaleString(luxon.DateTime.TIME_SIMPLE)"/>
|
||||
<t t-else=""
|
||||
t-out="start_datetime.toLocaleString(luxon.DateTime.DATE_SHORT)"/>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
@@ -79,9 +81,9 @@
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<field name="is_available" invisible="1"/>
|
||||
<!-- <header>-->
|
||||
<!-- <button string="Open" type="object" name="action_open_booking_view"/>-->
|
||||
<!-- </header>-->
|
||||
<!-- <header>-->
|
||||
<!-- <button string="Open" type="object" name="action_open_booking_view"/>-->
|
||||
<!-- </header>-->
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button name="action_view_bookings" type="object"
|
||||
@@ -95,7 +97,8 @@
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
<div class="badge rounded-pill text-bg-success float-end fs-6 border-0" invisible="not is_available">
|
||||
<div class="badge rounded-pill text-bg-success float-end fs-6 border-0"
|
||||
invisible="not is_available">
|
||||
Available
|
||||
</div>
|
||||
<div class="badge rounded-pill text-bg-danger float-end fs-6 border-0" invisible="is_available">
|
||||
@@ -112,11 +115,12 @@
|
||||
<field name="office_address"/>
|
||||
<field name="department_id"/>
|
||||
<field name="meeting_type_template"/>
|
||||
<field name="meet_document_id"/>
|
||||
<field name="short_code" invisible="1"/>
|
||||
</group>
|
||||
<!-- <group>-->
|
||||
<!-- <field name="room_booking_url" widget="CopyClipboardChar"/>-->
|
||||
<!-- </group>-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="room_booking_url" widget="CopyClipboardChar"/>-->
|
||||
<!-- </group>-->
|
||||
</group>
|
||||
<notebook>
|
||||
<page name="会议室信息">
|
||||
@@ -124,6 +128,13 @@
|
||||
<group>
|
||||
<field name="bookable_background_color" widget="color"/>
|
||||
<field name="booked_background_color" widget="color"/>
|
||||
<label for="meet_m2"/>
|
||||
<div class="o_row" name="volume">
|
||||
<span>
|
||||
<field name="meet_m2" string="会议室面积" class="oe_inline"/>m²
|
||||
</span>
|
||||
</div>
|
||||
<field name="meet_equipment" string="会议室设备" class="oe_inline"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="room_background_image" widget="image"/>
|
||||
@@ -144,12 +155,12 @@
|
||||
<field name="res_model">room.room</field>
|
||||
<field name="view_mode">kanban,list,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Create Rooms
|
||||
</p>
|
||||
<p>
|
||||
They can then be booked for meetings from a Tablet or the back-end.
|
||||
</p>
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Create Rooms
|
||||
</p>
|
||||
<p>
|
||||
They can then be booked for meetings from a Tablet or the back-end.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_employee_inherit_tree_soong" model="ir.ui.view">
|
||||
<record id="view_employee_inherit_tree_soong" model="ir.ui.view">
|
||||
<field name="name">hr.employee.inherit.del.form</field>
|
||||
<field name="model">hr.employee</field>
|
||||
<field name="inherit_id" ref="hr.view_employee_tree"/>
|
||||
|
||||
@@ -7,12 +7,14 @@ class YuthonEmergencyContactLine(models.Model):
|
||||
_description = "紧急联系人明细行"
|
||||
|
||||
employee_id = fields.Many2one('hr.employee', string="关联员工")
|
||||
user_relationship = fields.Selection([("parents", "父母"), ("children", "子女"), ("spouse", "配偶")], string="关系")
|
||||
user_sfz = fields.Char(string="身份证")
|
||||
user_relationship = fields.Selection([("parents", "父母"), ("children", "子女"), ("spouse", "配偶"), ("spouse", "其他")], string="关系")
|
||||
workplace = fields.Char(string="工作单位")
|
||||
post = fields.Char(string="岗位")
|
||||
phone_number = fields.Char(string="手机号")
|
||||
home_address = fields.Char(string="家庭住址")
|
||||
|
||||
|
||||
class YuthonWorkExperienceLine(models.Model):
|
||||
_name = 'yuthon.work.experience.line'
|
||||
_description = "工作经验明细行"
|
||||
|
||||
@@ -34,6 +34,7 @@ class YuthonHrEmployee(models.Model):
|
||||
confirmation_date = fields.Date(string="转正时间")
|
||||
company_old = fields.Char(string="司龄", compute='_compute_company_old')
|
||||
user_sex = fields.Selection([('girl', '女'), ('boy', '男')], string="性别")
|
||||
user_state = fields.Selection([('in', '在职'), ('leave', '离职'), ('withdraw', '退休')], string="员工状态")
|
||||
user_number_start_time = fields.Date(string="身份中有效开始时间")
|
||||
user_number_end_time = fields.Date(string="身份证有效到期时间")
|
||||
nation = fields.Selection(nation_list, string="民族")
|
||||
|
||||
@@ -15,6 +15,9 @@
|
||||
<xpath expr="//page[@name='skills_resume']" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='work_email']" position="after">
|
||||
<field name="user_state"/>
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='public']" position="after">
|
||||
<page name="技能证书管理">
|
||||
<field name="skills_certificates_ids">
|
||||
@@ -93,11 +96,6 @@
|
||||
<field name="spouse_complete_name" invisible="marital not in ['married', 'cohabitant']"/>
|
||||
<field name="spouse_birthdate" invisible="marital not in ['married', 'cohabitant']"/>
|
||||
</group>
|
||||
<group string="紧急" name="emergency">
|
||||
<field name="emergency_contact"/>
|
||||
<field name="emergency_contacts_name" class="o_force_ltr"/>
|
||||
<field name="emergency_phone" class="o_force_ltr"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</xpath>
|
||||
@@ -125,6 +123,8 @@
|
||||
<group string="其他">
|
||||
<field name="archiving_agency"/>
|
||||
<field name="over_data_time"/>
|
||||
<field name="employment_registration"/>
|
||||
<field name="seniority_prize_pick_up_status"/>
|
||||
</group>
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='public']//group[@name='departure']" position="after">
|
||||
@@ -143,24 +143,13 @@
|
||||
<field name="all_year_holiday_hours"/>
|
||||
</group>
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='personal_information']" position="after">
|
||||
<page string="其他信息">
|
||||
<group>
|
||||
<group>
|
||||
<field name="employment_registration"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="seniority_prize_pick_up_status"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='hr_settings']" position="after">
|
||||
<page string="紧急联系人">
|
||||
<field name="emergency_contact_ids">
|
||||
<tree editable="bottom">
|
||||
<field name="employee_id" column_invisible="1"/>
|
||||
<field name="user_relationship"/>
|
||||
<field name="user_sfz"/>
|
||||
<field name="workplace"/>
|
||||
<field name="post"/>
|
||||
<field name="phone_number"/>
|
||||
@@ -196,10 +185,6 @@
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="工作交接">
|
||||
</page>
|
||||
<page string="固定资产">
|
||||
</page>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
Reference in New Issue
Block a user