添加功能

This commit is contained in:
zhou
2025-04-19 21:38:53 +08:00
parent c00d12b275
commit 3a4ca352ec
17 changed files with 220 additions and 723 deletions
+3 -1
View File
@@ -35,8 +35,10 @@ class RoomBooking(models.Model):
meeting_type = fields.Selection([('up', '线上'), ('down', '线下'), ('exterior', '外部')], default='down', string="会议形式",
required=True)
meeting_type_id = fields.Many2one('room.meeting.type', string="会议类型")
room_users_ids = fields.Many2many('res.users', string="参会人员", store=True)
room_users_ids = fields.Many2many(related='meeting_type_id.users_ids', string="出席人员")
other_company_id = fields.Many2one('res.partner', string="外部公司")
host = fields.Many2one(related='meeting_type_id.host_user_id', string="主持人")
stationed_group = fields.Boolean(string="驻组参会")
other_company_user_ids = fields.One2many(related="other_company_id.child_ids", string="其他人员")
fleet_id = fields.Many2one('fleet.vehicle', string="车辆")
+24 -1
View File
@@ -9,4 +9,27 @@ class RoomMeetingType(models.Model):
sequence = fields.Char(string='序号', store=True)
name = fields.Char(string='名字', required=True)
company_id = fields.Many2one('res.company', string="所属公司", index=True, default=lambda self: self.env.company)
host_id = fields.Many2one('soong.user.role', string="主持人")
room_users_ids = fields.Many2many('soong.user.role', string="出席人员", store=True)
host_user_id = fields.Many2one('res.users', string="主持人", compute='_compute_host_user_id', store=True)
users_ids = fields.Many2many('res.users', string="出席人员", compute='_compute_users_ids', store=True)
company_id = fields.Many2one('res.company', string="所属公司", index=True, default=lambda self: self.env.company)
@api.depends('host_id')
def _compute_host_user_id(self):
for record in self:
if record.host_id.personnel_ids:
record.host_user_id = record.host_id.personnel_ids[0].user_id.id
@api.depends('room_users_ids', 'host_user_id')
def _compute_users_ids(self):
for record in self:
user_ids = set()
if record.host_user_id:
user_ids.add(record.host_user_id.id)
for role in record.room_users_ids:
for personnel in role.personnel_ids:
if personnel.user_id:
user_ids.add(personnel.user_id.id)
record.users_ids = [(6, 0, list(user_ids))]
+18 -5
View File
@@ -150,27 +150,40 @@
<field name="fleet_id" invisible="meeting_type != 'exterior'"/>
<field name="meeting_place" invisible="meeting_type != 'exterior'"/>
<field name="room_id" string="会议地点"/>
<field name="host"/>
</group>
<group>
<field name="department_id" widget="ztree_select"/>
<field name="meeting_type_id" required="1"/>
</group>
</group>
<group col="4">
<group>
<field name="room_users_ids" widget="many2many_tags"/>
</group>
<group>
<field name="stationed_group"/>
</group>
<group/>
<group/>
</group>
<group>
<field name="room_users_ids" widget="many2many_tags"/>
<field name="other_company_user_ids" widget="many2many_tags" readonly="1"/>
</group>
<group>
<field name="is_notice"/>
</group>
<group>
<group col="5">
<group>
<field name="is_hour" invisible="not is_notice"/>
</group>
<group>
<field name="is_day" invisible="not is_notice"/>
</group>
<group>
<field name="is_notice"/>
</group>
<group>
<field name="partner_ids" widget="many2many_tags" force_save="1" invisible="1"/>
</group>
<group/>
</group>
<notebook>
<page name="sign" string="签到详情">
+4
View File
@@ -7,6 +7,10 @@
<tree editable="bottom">
<field name="sequence" widget="handle"/>
<field name="name"/>
<field name="host_id"/>
<field name="room_users_ids" widget="many2many_tags"/>
<field name="host_user_id" column_invisible="1"/>
<field name="users_ids" widget="many2many_tags" column_invisible="1"/>
<field name="company_id"/>
</tree>
</field>
+11 -1
View File
@@ -6,4 +6,14 @@ class SoongNoteSetting(models.Model):
_name = 'soong.note.setting'
name = fields.Char(string="名称")
users_role_ids = fields.Many2many('soong.user.role', string='角色范围')
user_group_ids = fields.Many2many('soong.user.role.group', string='用户组')
users_role_ids = fields.Many2many('soong.user.role', string='角色范围', compute='_compute_users_role_ids', store=True)
@api.depends('user_group_ids.user_role_ids')
def _compute_users_role_ids(self):
for record in self:
all_role_ids = []
for group in record.user_group_ids:
all_role_ids.extend(group.user_role_ids.ids)
unique_role_ids = list(set(all_role_ids))
record.users_role_ids = [(6, 0, unique_role_ids)]
@@ -6,7 +6,8 @@
<field name="arch" type="xml">
<tree string="审批意见配置" editable="bottom">
<field name="name"/>
<field name="users_role_ids" widget="many2many_tags"/>
<field name="user_group_ids" widget="many2many_tags"/>
<field name="users_role_ids" widget="many2many_tags" column_invisible="1"/>
</tree>
</field>
</record>
@@ -287,7 +287,7 @@ class HrAttendanceDetail(models.Model):
for user in user_obj:
# 判断是否是微信用户
if user.oauth_uid and user.employee_ids.contract_id:
_logger.info("正在梳理考勤人员:{} id:{},全部人数:{},剩余人数:{},所属公司".format(user.name, user.id, total_users,remaining_users, user.employee_id.company_id.name))
_logger.info("正在梳理考勤人员:{} id:{},全部人数:{},剩余人数:{},所属公司:{}".format(user.name, user.id, total_users,remaining_users, user.employee_ids.company_id.name))
remaining_users -= 1
# 查询当前用户区间内的所有打卡数据没有的创建
for current_date in self.divide_time_range_fixed(start_time, now_time):
+2 -1
View File
@@ -57,8 +57,9 @@ class IssueMeetingLine(models.Model):
meeting_booking_id = fields.Many2one('room.booking', string='关联会议室')
sequence = fields.Char(string='序号', store=True)
issue_library_id = fields.Many2one('issue.library', string='议题')
issue_library_name = fields.Char(related='issue_library_id.name', string='议题')
employee_id = fields.Many2one('hr.employee', string='传达人')
attendees = fields.Char(string='列席人员')
is_sanda = fields.Boolean(string='是否属于"三重一大"')
is_sanda = fields.Boolean(string="三重一大")
decision_results = fields.Selection([('agree', '通过'), ('disagree', '未通过')], string="决策结果")
decision_details = fields.Text(string="决策详情")
+14 -5
View File
@@ -17,18 +17,19 @@ class IssueApprovalDecision(models.Model):
district_state = fields.Selection([('approval', '审'), ('decide', '决')], string="区国资局",)
district_government = fields.Selection([('approval', '审'), ('decide', '决')], string="区政府",)
district_party= fields.Selection([('approval', '审'), ('decide', '决')], string="区委组织部")
district_bureau = fields.Selection([('record', '备案'), ('approved', '核准'), ('record_approved', '备案、核准')], string='上级单位')
department_id = fields.Many2one('hr.department', string="部门")
management_matters = fields.Char(string='管理事项')
company_id = fields.Many2one('res.company', string="公司", default=lambda self: self.env.company)
scope = fields.Selection([('one', '一级区属国有企业'), ('two', '二级区属国有企业'), ('one_two', '一级、二级区属国有企业')], string='适用范围')
company_id = fields.Many2one('res.company', string="公司", default=lambda self: self._get_default_company())
scope = fields.Selection([('one', '一级区属国有企业'), ('two', '二级区属国有企业'), ('one_two', '一级、二级区属国有企业')], string='适用范围', default='one')
start_date = fields.Date(string="生效日期")
end_date = fields.Date(string="失效日期")
remarks = fields.Text(string='备注')
issue_approval_id = fields.Many2one('issue.approval', string="关联议题审批")
def _get_default_company(self):
company = self.env['res.company'].search([('name', '=', '集团本部')], limit=1)
return company.id if company else False
@api.onchange('decision_type_id')
def onchange_sequence(self):
for seq in self:
@@ -47,3 +48,11 @@ class IssueApprovalDecision(models.Model):
if record.team_meet:
record.board_meet = 'approval'
def update_issue(self):
company = self.env['res.company'].search([('name', '=', '集团本部')], limit=1)
issue_active_ids = self.env["issue.approval.decision"].browse(
self._context.get('active_ids', self._context.get('active_id')))
for record in issue_active_ids:
record.scope = 'one'
record.company_id = company.id
+75 -8
View File
@@ -7,7 +7,7 @@ class IssueLibrary(models.Model):
_name = "issue.library"
_description = '议题库'
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin']
_rec_name = 'code'
_rec_name = 'name'
name = fields.Char(string='议题事项')
name_text = fields.Text(string='议题事项', compute='_compute_name', readonly=False)
@@ -16,10 +16,13 @@ class IssueLibrary(models.Model):
issue_state = fields.Selection([('draft', '待提交'), ('approval', '审批中'), ('on_approval', '已审批'),
('will', '待上会'), ('on_meet', '已上会'), ('cancel', '已取消')],
default='draft', string="议题状态")
is_party = fields.Boolean(string="党支委会", default=False, compute='_compute_issue_library_line_ids', store=True)
is_class = fields.Boolean(string="班子会", default=False, compute='_compute_issue_library_line_ids', store=True)
is_boss = fields.Boolean(string="董事会", default=False, compute='_compute_issue_library_line_ids', store=True)
is_note = fields.Boolean(string="上级单位", default=False, compute='_compute_issue_library_line_ids', store=True)
is_party = fields.Boolean(string="党支委会", compute='_compute_issue_library_line_ids', store=True)
is_class = fields.Boolean(string="班子会", compute='_compute_issue_library_line_ids', store=True)
is_boss = fields.Boolean(string="董事会", compute='_compute_issue_library_line_ids', store=True)
is_note = fields.Boolean(string="上级单位", compute='_compute_issue_library_line_ids', store=True)
is_district_state = fields.Boolean(string="区国资局", compute='_compute_issue_library_line_ids', store=True)
is_district_government = fields.Boolean(string="区政府", compute='_compute_issue_library_line_ids', store=True)
is_district_party = fields.Boolean(string="区委组织部", compute='_compute_issue_library_line_ids', store=True)
creart_datetime = fields.Date(string="创建日期", default=fields.Datetime.now)
notice_documents_ids = fields.Many2many('ir.attachment', string='议题附件')
issue_type_id = fields.Many2one('issue.type', string="议题类型")
@@ -108,6 +111,41 @@ class IssueLibrary(models.Model):
}
}
def single_issue_pull(self):
# 检查当前记录状态是否允许提交
if self.issue_state != 'draft':
raise UserError("当前状态不允许提交")
form_id = self.env.ref("yuthon_issue.issue_library_approval_form").id
issue_decision_lines = [(0, 0, {
'issue_library_id': self.id,
'approval_decision_sequence': self.approval_decision_sequence,
'is_party': self.is_party,
'is_class': self.is_class,
'is_boss': self.is_boss,
'is_note': self.is_note,
'employee_id': self.employee_id.id
})]
issue_approval_id = self.env['issue.approval'].create({
'issue_approval_ids': issue_decision_lines,
'name': self.name,
'employee_id': self.employee_id.id,
})
self.write({"issue_state": "approval"})
self.issue_approval_id = issue_approval_id
return {
"type": "ir.actions.act_window",
"name": "提交审批",
"res_model": "issue.approval",
"views": [[form_id, "form"]],
"res_id": issue_approval_id.id,
"context": {
"id": issue_approval_id.id,
"is_issue": True,
}
}
def issue_cancel(self):
self.write({"issue_state": "cancel"})
@@ -135,6 +173,26 @@ class IssueLibrary(models.Model):
}
}
def single_meeting_issue(self):
issue = self.env["issue.library"].browse(self.id)
if issue.state != 'will':
raise UserError("当前状态不允许上会")
self.write({"issue_state": "on_meet"})
issue_details = [(0, 0, {
'issue_library_id': issue.id,
})]
form_id = self.env.ref("room.room_booking_view_form").id
return {
"type": "ir.actions.act_window",
"name": "单个上会",
"res_model": "room.booking",
"views": [[form_id, "form"]],
"context": {
'default_is_issue': True,
'default_issue_meeting_line_ids': issue_details,
}
}
def approval_details(self):
self.ensure_one()
for record in self:
@@ -155,7 +213,14 @@ class IssueLibrary(models.Model):
line.is_party = bool(line.issue_library_line_ids.filtered('council'))
line.is_class = bool(line.issue_library_line_ids.filtered('team_meet'))
line.is_boss = bool(line.issue_library_line_ids.filtered('board_meet'))
line.is_note = bool(line.issue_library_line_ids.filtered('district_bureau'))
line.is_district_state = bool(line.issue_library_line_ids.filtered('district_state'))
line.is_district_government = bool(line.issue_library_line_ids.filtered('district_government'))
line.is_district_party = bool(line.issue_library_line_ids.filtered('district_party'))
line.is_note = any([
bool(line.issue_library_line_ids.filtered(lambda rec: rec.issue_approval_decision_id.district_state)),
bool(line.issue_library_line_ids.filtered(lambda rec: rec.issue_approval_decision_id.district_government)),
bool(line.issue_library_line_ids.filtered(lambda rec: rec.issue_approval_decision_id.district_party))
])
def unlink(self):
for i in self:
@@ -197,14 +262,16 @@ class IssueLibrary(models.Model):
class IssueLibraryLine(models.Model):
_name = "issue.library.line"
_description = '决策清单'
_description = '决策清单明细'
issue_library_id = fields.Many2one('issue.library')
issue_approval_decision_id = fields.Many2one('issue.approval.decision', string="决策清单")
council = fields.Selection(related='issue_approval_decision_id.council', string='党总委员会')
team_meet = fields.Selection(related='issue_approval_decision_id.team_meet', string='经营班子会')
board_meet = fields.Selection(related='issue_approval_decision_id.board_meet', string='董事会')
district_bureau = fields.Selection(related='issue_approval_decision_id.district_bureau', string='上级单位')
district_state = fields.Selection(related='issue_approval_decision_id.district_state', string="区国资局")
district_government = fields.Selection(related='issue_approval_decision_id.district_government', string="区政府")
district_party = fields.Selection(related='issue_approval_decision_id.district_party', string="区委组织部")
ordinal = fields.Char(related='issue_approval_decision_id.sequence', string='序号')
+2 -2
View File
@@ -6,7 +6,7 @@
<field name="inherit_id" ref="room.room_booking_view_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='is_notice']" position="before">
<field name="is_issue"/>
<field name="is_issue" invisible="1"/>
</xpath>
<xpath expr="//field[@name='meeting_place']" position="after">
<field name="number_of_meetings"/>
@@ -16,7 +16,7 @@
<field name="issue_meeting_line_ids">
<tree editable="bottom">
<field name="meeting_booking_id" column_invisible="1"/>
<field name="sequence"/>
<field name="sequence" widget="handle"/>
<field name="issue_library_id"/>
<field name="employee_id"/>
<field name="attendees"/>
@@ -16,7 +16,6 @@
<field name="district_state"/>
<field name="district_government"/>
<field name="district_party"/>
<field name="district_bureau"/>
<field name="remarks"/>
<field name="scope"/>
<field name="company_id"/>
@@ -54,7 +53,11 @@
<field name="department_id" widget="ztree_select"/>
</group>
<group>
<field name="district_bureau"/>
<field name="district_state"/>
<field name="district_government"/>
<field name="district_party"/>
<field name="scope"/>
<field name="company_id"/>
<field name="end_date"/>
</group>
</group>
@@ -102,4 +105,11 @@
'search_default_group_decision_type_id': True}
</field>
</record>
<record id="all_update_issue" model="ir.actions.server">
<field name="name">更新公司和适用范围</field>
<field name="model_id" ref="yuthon_issue.model_issue_approval_decision"/>
<field name="binding_model_id" ref="yuthon_issue.model_issue_approval_decision"/>
<field name="state">code</field>
<field name="code">action = model.update_issue()</field>
</record>
</odoo>
+5 -11
View File
@@ -47,17 +47,11 @@
<field name="work_end" invisible="1"/>
<field name="notice_documents_ids" widget="preview_many2many"/>
</group>
<group col="4" string="个人信息">
<group>
<field name="employee_id" widget="ztree_select"/>
<field name="is_attend"/>
</group>
<group>
<field name="job_id"/>
</group>
<group>
<field name="department_id" widget="ztree_select"/>
</group>
<group>
<field name="employee_id" widget="ztree_select" invisible="1"/>
<field name="is_attend" invisible="1"/>
<field name="department_id" widget="ztree_select" invisible="1"/>
<field name="job_id" invisible="1"/>
</group>
<group>
<field name="issue_display" widget="json_template" invisible="1"/>
+44 -681
View File
@@ -9,19 +9,20 @@
decoration-success="issue_state == 'done'"
decoration-muted="issue_state == 'cancel'">
<header>
<button name="all_issue_pull" string="批量提交" type="object"/>
<button name="all_meeting_issue" string="批量上会" type="object"/>
<button name="all_issue_pull" string="批量提交审批" type="object"/>
</header>
<field name="name" column_invisible="1"/>
<field name="name_text" class="list_width"/>
<field name="is_party"/>
<field name="is_class"/>
<field name="is_boss"/>
<field name="is_note"/>
<field name="is_district_state"/>
<field name="is_district_government"/>
<field name="is_district_party"/>
<field name="issue_state"/>
<field name="code" optional="hide"/>
<field name="creart_datetime"/>
<button name="all_issue_pull" string="提交" type="object" class="oe_highlight"/>
<button name="single_issue_pull" string="提交" type="object" class="oe_highlight"/>
<button name="issue_cancel" string="取消" type="object" class="oe_highlight"/>
<button name="unlink" string="删除" type="object" class="oe_highlight"/>
<button name="approval_details" string="审批详情" type="object" class="oe_highlight"/>
@@ -97,7 +98,9 @@
<field name="council" readonly="1"/>
<field name="team_meet" readonly="1"/>
<field name="board_meet" readonly="1"/>
<field name="district_bureau" readonly="1"/>
<field name="district_state" readonly="1"/>
<field name="district_government" readonly="1"/>
<field name="district_party" readonly="1"/>
</tree>
</field>
</page>
@@ -137,137 +140,6 @@
</form>
</field>
</record>
<!--已上会-->
<record id="view_issue_library_on_meeting_tree" model="ir.ui.view">
<field name="name">issue.library.on.meeting.tree</field>
<field name="model">issue.library</field>
<field name="arch" type="xml">
<tree string="议题库"
decoration-info="issue_state == 'will'"
decoration-success="issue_state == 'done'"
decoration-muted="issue_state == 'cancel'">
<field name="code"/>
<field name="name" column_invisible="1"/>
<field name="name_text" class="list_width"/>
<field name="cs_party"/>
<field name="cs_class"/>
<field name="cs_boss"/>
<field name="is_note"/>
<field name="issue_state"/>
<button name="all_issue_pull" string="提交" type="object" class="oe_highlight"/>
<button name="issue_cancel" string="取消" type="object" class="oe_highlight"/>
<button name="unlink" string="删除" type="object" class="oe_highlight"/>
<button name="approval_details" string="审批详情" type="object" class="oe_highlight"/>
</tree>
</field>
</record>
<record id="view_issue_library_on_meeting_form" model="ir.ui.view">
<field name="name">issue.library.on.meeting.form</field>
<field name="model">issue.library</field>
<field name="arch" type="xml">
<form string="议题库">
<sheet>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group>
<field name="issue_state" readonly="1"/>
</group>
</group>
<group>
<group>
<field name="name" required="1"/>
<field name="name_text" invisible="1"/>
<field name="code"/>
<field name="approval_decision_sequence" invisible="1"/>
<field name="notice_documents_ids" widget="preview_many2many"/>
<field name="creart_datetime"/>
</group>
<group>
<field name="employee_id" invisible="1"/>
<field name="department_id" invisible="1"/>
<field name="users_role_ids" invisible="1" widget="many2many_tags"/>
<field name="cs_party" invisible="1"/>
<field name="cs_class" invisible="1"/>
<field name="cs_boss" invisible="1"/>
</group>
</group>
<group col="4">
<group>
<field name="is_party"/>
</group>
<group>
<field name="is_class"/>
</group>
<group>
<field name="is_boss"/>
</group>
<group>
<field name="is_note"/>
</group>
</group>
<notebook>
<page string="决策清单">
<field name="issue_library_line_ids">
<tree editable="bottom">
<field name="ordinal"/>
<field name="issue_library_id" column_invisible="1"/>
<field name="issue_approval_decision_id" class="list_ids_width"/>
<field name="council" readonly="1"/>
<field name="team_meet" readonly="1"/>
<field name="board_meet" readonly="1"/>
<field name="district_bureau" readonly="1"/>
</tree>
</field>
</page>
<page string="关联流程">
<field name="issue_library_approval_line_ids" readonly="1">
<tree>
<field name="issue_library_id" column_invisible="1"/>
<field name="workflow_record_id" string="标题"/>
<field name="code"/>
<field name="approval_type"/>
<field name="approval_date"/>
<button name="open_record" type="object" string="详情" class="btn-primary"/>
</tree>
</field>
</page>
<page string="关联审批" invisible="issue_state != 'approval'">
<group>
<group>
<field name="issue_approval_id"/>
</group>
<group/>
</group>
</page>
<page string="关联会议">
<field name="issue_library_room_line_ids" readonly="1">
<tree>
<field name="issue_library_id" column_invisible="1"/>
<field name="room_booking_id"/>
<field name="room_id"/>
<field name="meeting_type_id"/>
<field name="approval_date"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="view_issue_library_filter" model="ir.ui.view">
<field name="name">issue.library.search</field>
@@ -300,56 +172,28 @@
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_form')})]"/>
</record>
<record id="issue_library_action_approval" model="ir.actions.act_window">
<field name="name">已审批</field>
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('issue_state','=','approval')]</field>
</record>
<record id="issue_library_action_will" model="ir.actions.act_window">
<field name="name">待上会</field>
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('issue_state','=','will')]</field>
</record>
<record id="issue_library_action_done" model="ir.actions.act_window">
<field name="name">已上会</field>
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('state','=','on_meet')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_on_meeting_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_on_meeting_form')})]"/>
</record>
<record id="issue_library_action_cancel" model="ir.actions.act_window">
<field name="name">已取消</field>
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('issue_state','=','cancel')]</field>
<!-- <field name="view_ids" eval="[(5, 0, 0),-->
<!-- (0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_tree2')}),-->
<!-- (0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_form2')})]"/>-->
</record>
<!--党支委议题菜单-->
<record id="view_issue_library_tree3" model="ir.ui.view">
<field name="name">issue.library.tree</field>
<field name="model">issue.library</field>
<field name="arch" type="xml">
<tree string="议题库"
decoration-info="issue_state == 'will'"
decoration-success="issue_state == 'done'"
decoration-muted="issue_state == 'cancel'">
<header>
<button name="all_meeting_issue" type="object" string="批量上会" class="oe_highlight"/>
</header>
<field name="name"/>
<field name="code"/>
<field name="creart_datetime"/>
<field name="is_party"/>
<field name="is_note"/>
<field name="is_district_state"/>
<field name="is_district_government"/>
<field name="is_district_party"/>
<field name="issue_state"/>
<button name="all_issue_pull" string="提交" type="object" class="oe_highlight"/>
<button name="single_meeting_issue" string="上会" type="object" class="oe_highlight"/>
<button name="issue_cancel" string="取消" type="object" class="oe_highlight"/>
<button name="unlink" string="删除" type="object" class="oe_highlight"/>
</tree>
@@ -410,7 +254,9 @@
<field name="issue_library_id" column_invisible="1"/>
<field name="issue_approval_decision_id" class="list_ids_width"/>
<field name="council" readonly="1"/>
<field name="district_bureau" readonly="1"/>
<field name="district_state" readonly="1"/>
<field name="district_government" readonly="1"/>
<field name="district_party" readonly="1"/>
</tree>
</field>
</page>
@@ -450,136 +296,9 @@
</form>
</field>
</record>
<!--已上会-->
<record id="view_issue_library_on_meeting_tree3" model="ir.ui.view">
<field name="name">issue.library.on.meeting.tree</field>
<field name="model">issue.library</field>
<field name="arch" type="xml">
<tree string="议题库"
decoration-info="issue_state == 'will'"
decoration-success="issue_state == 'done'"
decoration-muted="issue_state == 'cancel'">
<field name="code"/>
<field name="name" column_invisible="1"/>
<field name="name_text" class="list_width"/>
<field name="cs_party"/>
<field name="cs_class"/>
<field name="cs_boss"/>
<field name="is_note"/>
<field name="issue_state"/>
<button name="all_issue_pull" string="提交" type="object" class="oe_highlight"/>
<button name="issue_cancel" string="取消" type="object" class="oe_highlight"/>
<button name="unlink" string="删除" type="object" class="oe_highlight"/>
<button name="approval_details" string="审批详情" type="object" class="oe_highlight"/>
</tree>
</field>
</record>
<record id="view_issue_library_on_meeting_form3" model="ir.ui.view">
<field name="name">issue.library.tree</field>
<field name="model">issue.library</field>
<field name="arch" type="xml">
<form string="议题库">
<sheet>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group>
<field name="issue_state" readonly="1"/>
</group>
</group>
<group>
<group>
<field name="name" required="1"/>
<field name="name_text" invisible="1"/>
<field name="approval_decision_sequence" invisible="1"/>
<field name="notice_documents_ids" widget="preview_many2many"/>
<field name="creart_datetime"/>
</group>
<group>
<field name="employee_id" invisible="1"/>
<field name="department_id" invisible="1"/>
<field name="users_role_ids" invisible="1" widget="many2many_tags"/>
</group>
</group>
<group col="4">
<group>
<field name="is_party"/>
</group>
<group>
<field name="is_class"/>
</group>
<group>
<field name="is_boss"/>
</group>
<group>
<field name="is_note"/>
</group>
</group>
<notebook>
<page string="决策清单">
<field name="issue_library_line_ids">
<tree editable="bottom">
<field name="ordinal"/>
<field name="issue_library_id" column_invisible="1"/>
<field name="issue_approval_decision_id" class="list_ids_width"/>
<field name="council" readonly="1"/>
<field name="team_meet" readonly="1"/>
<field name="board_meet" readonly="1"/>
<field name="district_bureau" readonly="1"/>
</tree>
</field>
</page>
<page string="关联流程">
<field name="issue_library_approval_line_ids" readonly="1">
<tree>
<field name="issue_library_id" column_invisible="1"/>
<field name="workflow_record_id" string="标题"/>
<field name="code"/>
<field name="approval_type"/>
<field name="approval_date"/>
<button name="open_record" type="object" string="详情" class="btn-primary"/>
</tree>
</field>
</page>
<page string="关联审批" invisible="issue_state != 'approval'">
<group>
<group>
<field name="issue_approval_id"/>
</group>
<group/>
</group>
</page>
<page string="关联会议">
<field name="issue_library_room_line_ids">
<tree>
<field name="issue_library_id" column_invisible="1"/>
<field name="room_booking_id"/>
<field name="room_id"/>
<field name="meeting_type_id"/>
<field name="approval_date"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="issue_library_action3" model="ir.actions.act_window">
<field name="name">议题库</field>
<field name="name">党总支议题库</field>
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('is_party', '=', True)]</field>
@@ -600,35 +319,6 @@
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_form3')})]"/>
</record>
<record id="issue_library_action_will3" model="ir.actions.act_window">
<field name="name">待上会</field>
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('issue_state','=','will')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_tree3')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_form3')})]"/>
</record>
<record id="issue_library_action_done3" model="ir.actions.act_window">
<field name="name">已上会</field>
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('issue_state','=','on_meet')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_on_meeting_tree3')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_on_meeting_form3')})]"/>
</record>
<record id="issue_library_action_cancel3" model="ir.actions.act_window">
<field name="name">已取消</field>
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('issue_state','=','cancel')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_tree3')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_form3')})]"/>
</record>
<!--班子会议题菜单-->
<record id="view_issue_library_tree4" model="ir.ui.view">
<field name="name">issue.library.tree</field>
@@ -638,13 +328,18 @@
decoration-info="issue_state == 'will'"
decoration-success="issue_state == 'done'"
decoration-muted="issue_state == 'cancel'">
<header>
<button name="all_meeting_issue" type="object" string="批量上会" class="oe_highlight"/>
</header>
<field name="name"/>
<field name="code"/>
<field name="creart_datetime"/>
<field name="is_class"/>
<field name="is_note"/>
<field name="is_district_state"/>
<field name="is_district_government"/>
<field name="is_district_party"/>
<field name="issue_state"/>
<button name="all_issue_pull" string="提交" type="object" class="oe_highlight"/>
<button name="single_meeting_issue" string="上会" type="object" class="oe_highlight"/>
<button name="issue_cancel" string="取消" type="object" class="oe_highlight"/>
<button name="unlink" string="删除" type="object" class="oe_highlight"/>
</tree>
@@ -703,9 +398,10 @@
<field name="ordinal"/>
<field name="issue_library_id" column_invisible="1"/>
<field name="issue_approval_decision_id" class="list_ids_width"/>
<field name="team_meet" readonly="1"/>
<field name="district_bureau" readonly="1"/>
<field name="district_state" readonly="1"/>
<field name="district_government" readonly="1"/>
<field name="district_party" readonly="1"/>
</tree>
</field>
</page>
@@ -745,138 +441,9 @@
</form>
</field>
</record>
<!--已上会-->
<record id="view_issue_library_on_meeting_tree4" model="ir.ui.view">
<field name="name">issue.library.on.meeting.tree</field>
<field name="model">issue.library</field>
<field name="arch" type="xml">
<tree string="议题库"
decoration-info="issue_state == 'will'"
decoration-success="issue_state == 'done'"
decoration-muted="issue_state == 'cancel'">
<field name="code"/>
<field name="name" column_invisible="1"/>
<field name="name_text" class="list_width"/>
<field name="cs_party"/>
<field name="cs_class"/>
<field name="cs_boss"/>
<field name="is_note"/>
<field name="issue_state"/>
<button name="all_issue_pull" string="提交" type="object" class="oe_highlight"/>
<button name="issue_cancel" string="取消" type="object" class="oe_highlight"/>
<button name="unlink" string="删除" type="object" class="oe_highlight"/>
<button name="approval_details" string="审批详情" type="object" class="oe_highlight"/>
</tree>
</field>
</record>
<record id="view_issue_library_on_meeting_form4" model="ir.ui.view">
<field name="name">issue.library.tree</field>
<field name="model">issue.library</field>
<field name="arch" type="xml">
<form string="议题库">
<sheet>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group>
<field name="issue_state" readonly="1"/>
</group>
</group>
<group>
<field name="code" readonly="1" string="流水号:"/>
</group>
<group>
<group>
<field name="name" required="1"/>
<field name="name_text" invisible="1"/>
<field name="approval_decision_sequence" invisible="1"/>
<field name="notice_documents_ids" widget="preview_many2many"/>
<field name="creart_datetime"/>
</group>
<group>
<field name="employee_id" invisible="1"/>
<field name="department_id" invisible="1"/>
<field name="users_role_ids" invisible="1" widget="many2many_tags"/>
</group>
</group>
<group col="4">
<group>
<field name="is_party"/>
</group>
<group>
<field name="is_class"/>
</group>
<group>
<field name="is_boss"/>
</group>
<group>
<field name="is_note"/>
</group>
</group>
<notebook>
<page string="决策清单">
<field name="issue_library_line_ids">
<tree editable="bottom">
<field name="ordinal"/>
<field name="issue_library_id" column_invisible="1"/>
<field name="issue_approval_decision_id" class="list_ids_width"/>
<field name="council" readonly="1"/>
<field name="team_meet" readonly="1"/>
<field name="board_meet" readonly="1"/>
<field name="district_bureau" readonly="1"/>
</tree>
</field>
</page>
<page string="关联流程">
<field name="issue_library_approval_line_ids" readonly="1">
<tree>
<field name="issue_library_id" column_invisible="1"/>
<field name="workflow_record_id" string="标题"/>
<field name="code"/>
<field name="approval_type"/>
<field name="approval_date"/>
<button name="open_record" type="object" string="详情" class="btn-primary"/>
</tree>
</field>
</page>
<page string="关联审批" invisible="issue_state != 'approval'">
<group>
<group>
<field name="issue_approval_id"/>
</group>
<group/>
</group>
</page>
<page string="关联会议">
<field name="issue_library_room_line_ids">
<tree>
<field name="issue_library_id" column_invisible="1"/>
<field name="room_booking_id"/>
<field name="room_id"/>
<field name="meeting_type_id"/>
<field name="approval_date"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="issue_library_action4" model="ir.actions.act_window">
<field name="name">议题库</field>
<field name="name">班子会议题库</field>
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('is_class', '=', True)]</field>
@@ -886,52 +453,27 @@
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_form4')})]"/>
</record>
<record id="issue_library_action_will4" model="ir.actions.act_window">
<field name="name">待上会</field>
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('issue_state','=','will')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_tree4')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_form4')})]"/>
</record>
<record id="issue_library_action_done4" model="ir.actions.act_window">
<field name="name">已上会</field>
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('issue_state','=','on_meet')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_on_meeting_tree4')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_on_meeting_form4')})]"/>
</record>
<record id="issue_library_action_cancel4" model="ir.actions.act_window">
<field name="name">已取消</field>
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('issue_state','=','cancel')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_tree4')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_form4')})]"/>
</record>
<!--董事会议题菜单-->
<record id="view_issue_library_tree5" model="ir.ui.view">
<field name="name">issue.library.tree</field>
<field name="model">issue.library</field>
<field name="arch" type="xml">
<tree string="议题库"
<tree string="董事会议题"
decoration-info="issue_state == 'will'"
decoration-success="issue_state == 'done'"
decoration-muted="issue_state == 'cancel'">
<header>
<button name="all_meeting_issue" type="object" string="批量上会" class="oe_highlight"/>
</header>
<field name="name"/>
<field name="code"/>
<field name="creart_datetime"/>
<field name="is_boss"/>
<field name="is_note"/>
<field name="is_district_state"/>
<field name="is_district_government"/>
<field name="is_district_party"/>
<field name="issue_state"/>
<button name="all_issue_pull" string="提交" type="object" class="oe_highlight"/>
<button name="single_meeting_issue" string="上会" type="object" class="oe_highlight"/>
<button name="issue_cancel" string="取消" type="object" class="oe_highlight"/>
<button name="unlink" string="删除" type="object" class="oe_highlight"/>
</tree>
@@ -942,7 +484,7 @@
<field name="name">issue.library.tree</field>
<field name="model">issue.library</field>
<field name="arch" type="xml">
<form string="议题库">
<form string="董事会议题库">
<sheet>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
@@ -989,9 +531,10 @@
<field name="ordinal"/>
<field name="issue_library_id" column_invisible="1"/>
<field name="issue_approval_decision_id" class="list_ids_width"/>
<field name="board_meet" readonly="1"/>
<field name="district_bureau" readonly="1"/>
<field name="district_state" readonly="1"/>
<field name="district_government" readonly="1"/>
<field name="district_party" readonly="1"/>
</tree>
</field>
</page>
@@ -1033,7 +576,7 @@
</record>
<record id="issue_library_action5" model="ir.actions.act_window">
<field name="name">议题库</field>
<field name="name">董事会议题库</field>
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('is_boss', '=', True)]</field>
@@ -1042,164 +585,6 @@
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_tree5')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_form5')})]"/>
</record>
<!--已上会-->
<record id="view_issue_library_on_meeting_tree5" model="ir.ui.view">
<field name="name">issue.library.on.meeting.tree</field>
<field name="model">issue.library</field>
<field name="arch" type="xml">
<tree string="议题库"
decoration-info="issue_state == 'will'"
decoration-success="issue_state == 'done'"
decoration-muted="issue_state == 'cancel'">
<field name="code"/>
<field name="name" column_invisible="1"/>
<field name="name_text" class="list_width"/>
<field name="cs_party"/>
<field name="cs_class"/>
<field name="cs_boss"/>
<field name="is_note"/>
<field name="issue_state"/>
<button name="all_issue_pull" string="提交" type="object" class="oe_highlight"/>
<button name="issue_cancel" string="取消" type="object" class="oe_highlight"/>
<button name="unlink" string="删除" type="object" class="oe_highlight"/>
<button name="approval_details" string="审批详情" type="object" class="oe_highlight"/>
</tree>
</field>
</record>
<record id="view_issue_library_on_meeting_form5" model="ir.ui.view">
<field name="name">issue.library.tree</field>
<field name="model">issue.library</field>
<field name="arch" type="xml">
<form string="议题库">
<sheet>
<widget name="web_ribbon" title="普件" bg_color="text-bg-success"
invisible="urgency_level != 'normal'"/>
<widget name="web_ribbon" title="急件" bg_color="text-bg-warning"
invisible="urgency_level != 'urgent'"/>
<widget name="web_ribbon" title="特级" bg_color="text-bg-danger"
invisible="urgency_level != 'emergency'"/>
<group col="3">
<group>
<field name="code" string="流水号" readonly="1"/>
</group>
<group>
<field name="urgency_level" readonly="1"/>
</group>
<group>
<field name="issue_state" readonly="1"/>
</group>
</group>
<group>
<group>
<field name="name" required="1"/>
<field name="name_text" invisible="1"/>
<field name="code"/>
<field name="approval_decision_sequence" invisible="1"/>
<field name="notice_documents_ids" widget="preview_many2many"/>
<field name="creart_datetime"/>
</group>
<group>
<field name="employee_id" invisible="1"/>
<field name="department_id" invisible="1"/>
<field name="users_role_ids" invisible="1" widget="many2many_tags"/>
</group>
</group>
<group col="4">
<group>
<field name="is_party"/>
</group>
<group>
<field name="is_class"/>
</group>
<group>
<field name="is_boss"/>
</group>
<group>
<field name="is_note"/>
</group>
</group>
<notebook>
<page string="决策清单">
<field name="issue_library_line_ids">
<tree editable="bottom">
<field name="ordinal"/>
<field name="issue_library_id" column_invisible="1"/>
<field name="issue_approval_decision_id" class="list_ids_width"/>
<field name="council" readonly="1"/>
<field name="team_meet" readonly="1"/>
<field name="board_meet" readonly="1"/>
<field name="district_bureau" readonly="1"/>
</tree>
</field>
</page>
<page string="关联流程">
<field name="issue_library_approval_line_ids" readonly="1">
<tree>
<field name="issue_library_id" column_invisible="1"/>
<field name="workflow_record_id" string="标题"/>
<field name="code"/>
<field name="approval_type"/>
<field name="approval_date"/>
<button name="open_record" type="object" string="详情" class="btn-primary"/>
</tree>
</field>
</page>
<page string="关联审批" invisible="issue_state != 'approval'">
<group>
<group>
<field name="issue_approval_id"/>
</group>
<group/>
</group>
</page>
<page string="关联会议">
<field name="issue_library_room_line_ids">
<tree>
<field name="issue_library_id" column_invisible="1"/>
<field name="room_booking_id"/>
<field name="room_id"/>
<field name="meeting_type_id"/>
<field name="approval_date"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="issue_library_action_will5" model="ir.actions.act_window">
<field name="name">待上会</field>
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('issue_state','=','will')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_tree5')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_form5')})]"/>
</record>
<record id="issue_library_action_done5" model="ir.actions.act_window">
<field name="name">已上会</field>
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('issue_state','=','on_meet')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_on_meeting_tree5')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_on_meeting_form5')})]"/>
</record>
<record id="issue_library_action_cancel5" model="ir.actions.act_window">
<field name="name">已取消</field>
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('issue_state','=','cancel')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_tree5')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_form5')})]"/>
</record>
<record id="issue_library_my_action" model="ir.actions.act_window">
<field name="name">我的议题库</field>
@@ -1207,26 +592,4 @@
<field name="view_mode">tree,form</field>
<field name="domain">[('employee_id.user_id', '=', uid)]</field>
</record>
<record id="issue_library_all_action" model="ir.actions.act_window">
<field name="name">议题库</field>
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_form')})]"/>
</record>
<record id="all_data_update_issue_library" model="ir.actions.server">
<field name="name">批量上会</field>
<field name="model_id" ref="yuthon_issue.model_issue_library"/>
<field name="binding_model_id" ref="yuthon_issue.model_issue_library"/>
<field name="state">code</field>
<field name="code">action = model.all_meeting_issue()</field>
</record>
<record id="data_update_all_issue_pull" model="ir.actions.server">
<field name="name">批量提交</field>
<field name="model_id" ref="yuthon_issue.model_issue_library"/>
<field name="binding_model_id" ref="yuthon_issue.model_issue_library"/>
<field name="state">code</field>
<field name="code">action = model.all_issue_pull()</field>
</record>
</odoo>
@@ -39,7 +39,7 @@ class YuthonOfficialIncomingNormal(models.Model):
deadline = fields.Date(string="办理期限")
done_date = fields.Date(string="完成时间")
is_official_incoming = fields.Boolean(string="是否收文")
official_documents_ids = fields.Many2many('ir.attachment', string="附件")
official_documents_ids = fields.Many2many('ir.attachment', string="收文附件")
workflow_inspector_ids = fields.One2many('soong.workflow.inspector', 'incoming_normal_id', string="督办事项")
room_booking_ids = fields.One2many('room.booking', 'incoming_normal_id', string="会议关联")
@@ -47,7 +47,7 @@
<field name="name" required="1"/>
<field name="main_text"/>
<field name="issues_result" invisible="is_issues == False"/>
<field name="official_documents_ids" widget="many2many_tags"/>
<field name="official_documents_ids" widget="preview_many2many"/>
</group>
<group string="行政信息">
<group col="2">
@@ -12,7 +12,7 @@
<button name="all_assessment_approval" string="评估推送" type="object" class="btn btn-primary"/>
</header>
<field name="name" required="1"/>
<field name="title_deed"/>
<field name="title_deed" optional="hide"/>
<field name="management_area" digits="[16, 4]"/>
<field name="rent_area" digits="[16, 4]"/>
<field name="equity_area" digits="[16, 4]"/>