我想继承Odoo 11模块“ hr.holiday”日历视图,然后将公共假期插入日历。
目前,我在公共假期使用以下模型:
class PublicHoliday(models.Model):
_name = 'hr.public.holiday'
_description = 'Public Holidays'
name = fields.Char(string='Holiday Name', compute="_compute_name", required=True)
year = fields.Integer(
"Calendar Year",
required=True,
default=datetime.now().year
)
holiday_ids = fields.One2many('hr.public.holiday.holidays', 'year_id', 'Holidays')
# company_id = fields.Many2one('res.company', 'Company')
class HrPublicHolidayHolidays(models.Model):
_name = 'hr.public.holiday.holidays'
_description = 'Public Holidays Dates'
name = fields.Char('Holiday Name', required=True)
date = fields.Date('Holiday Date', required=True)
date_day = fields.Char('Day')
year_id = fields.Many2one('hr.public.holiday', 'Calendar Year', required=True)
variable = fields.Boolean('Date may change')
然后现在我想将上面列表中的公众假期添加到odoo自己的hr.holiday模块提供的日历视图中,例如2018年8月3日是假期,因此日历将显示2018年8月3日是一个公共假日,然后在2018年8月3日写下公共假日名称。日历视图为:
我试图继承,然后使用xpath将假期插入其中,代码为:
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Insert Public Holidays into Leave Calendar-->
<record id="view_holiday_new_calendar_inherit" model="ir.ui.view">
<field name="name">hr.holiday.calendar.inherit</field>
<field name="model">hr.public.holiday.holidays</field>
<field name="inherit_id" ref="hr_holidays.view_holiday_new_calendar" />
<field name="arch" type="xml">
<xpath expr="/calendar" position="after">
<calendar string="Public Holidays" date_start="date" date_stop="date" mode="month" quick_add="False" color="date">
<field name="name"/>
</calendar>
</xpath>
</field>
</record>
但这不起作用并引发错误,我不知道有没有办法将假期插入日历视图。那么有人可以帮我吗?还是告诉我这是否可能,如果没有,还有其他方法可以实现吗?
谢谢。
答案 0 :(得分:0)
检查模块如何在v10中实现此功能,您需要查看hr_public_holidays/static/src/js/holidays_highlighter.js
和hr_public_holidays/templates/assets.xml
。请注意,这里hr_public_holidays/data/ir_config_parameter.xml
预加载默认颜色以在日历视图中突出显示。请注意,该模块的名称是“ hr_public_holidays”,而不是v11中的“ hr_holidays_public”。