Odoo继承日历并将公众假期添加到日历视图

时间:2018-08-02 06:58:22

标签: python python-3.x odoo odoo-11

我想继承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')

上面的代码工作正常,下面是我插入的示例公共假日列表:enter image description here

然后现在我想将上面列表中的公众假期添加到odoo自己的hr.holiday模块提供的日历视图中,例如2018年8月3日是假期,因此日历将显示2018年8月3日是一个公共假日,然后在2018年8月3日写下公共假日名称。日历视图为:enter image description here

我试图继承,然后使用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>

但这不起作用并引发错误,我不知道有没有办法将假期插入日历视图。那么有人可以帮我吗?还是告诉我这是否可能,如果没有,还有其他方法可以实现吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

检查模块如何在v10中实现此功能,您需要查看hr_public_holidays/static/src/js/holidays_highlighter.jshr_public_holidays/templates/assets.xml。请注意,这里hr_public_holidays/data/ir_config_parameter.xml预加载默认颜色以在日历视图中突出显示。请注意,该模块的名称是“ hr_public_holidays”,而不是v11中的“ hr_holidays_public”。