除Search view domain error之外(我已经接受了答案,因为我在如何在自制时间表模块中进行适当的年/月过滤的理论似乎是错误的。这是关于的答案为什么我收到错误。答案:因为我的方法错了。我在这里询问如何正确使用)。
所以,快速概述。自制时间表模块。 2组搜索视图过滤器:年和月。有没有办法让月组依赖于年组,就像我选择某一年一样,月组现在将与该特定相关年? 下面是一些代码示例:
<!--Timesheets-ALL Tab search view-->
<record id="view_tabel_search3" model="ir.ui.view">
<field name="name">tabel.tabel.search3</field>
<field name="model">tabel.tabel</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Checker">
<field name="time_start_t" select="True"/>
<field name="id_ank" select="True"/>
<group expand="0" string="Years">
<filter
string="Last year"
name="filter5"
domain="[('time_end_t', '>=' ,(context_today()-relativedelta(years=1)).strftime('%Y-01-01')), ('time_end_t', '<' , (context_today()).strftime(
help = "Shows timesheets for last year"/>
<separator/>
<filter
string="Current year"
name="filter4"
domain="[('time_end_t', '>=' ,(context_today()).strftime('%Y-01-01')), ('time_end_t', '<' , (context_today()+relativedelta(years=1)).strftime(
help = "Shows timesheets for current year"/>
<separator/>
<filter
string="Next year"
name="filter6"
domain="[('time_end_t', '>=', (context_today()+relativedelta(years=1)).strftime('%Y-01-01')),('time_end_t','<=', (context_today()+relativedelt
help = "Shows timesheets for next year"/>
</group>
<group expand="0" string="Months">
<filter
string="January"
name="filter7"
domain="[('time_end_t', '>=' ,(context_today()).strftime('%Y-01-01')), ('time_end_t', '<' , (context_today()).strftime('%Y-02-01'))]"
help = "Shows timesheets for january"/>
<separator/>
<filter
string="February"
name="filter8"
domain="[('time_end_t', '>=' ,(context_today()).strftime('%Y-02-01')), ('time_end_t', '<' , (context_today()).strftime('%Y-03-01'))]"
help = "Shows timesheets for february"/>
<separator/>
...
<filter
string="November"
name="filter17"
domain="[('time_end_t', '>=' ,(context_today()).strftime('%Y-11-01')), ('time_end_t', '<' , (context_today()).strftime('%Y-12-01'))]"
help = "Shows timesheets for november"/>
<separator/>
<filter
string="December"
name="filter18"
domain="[('time_end_t', '>=' ,(context_today()).strftime('%Y-12-01')), ('time_end_t', '<' , (context_today()+relativedelta(years=1)).strftime(
help = "Shows timesheets for december"/>
</group>
</search>
</field>
</record>
time_end_t 和 time_start_t 是我们的时间表开始和结束的日期。 如您所见, months 本身将显示当年的正确时间表。以及当前年度和任何月的组合。但去年和明年显然因为(context_today())而无法工作。
我认为最合乎逻辑的方法是使用 time_end_t 的年份而不是(context_today())的年份(这是目前唯一的)。但正如我在上一篇文章中所说的那样。回答,这是一个错误的想法。所以..一如既往,任何建议都将受到高度赞赏!
2015-10-20upd:经过长时间休息后我回到了这个问题,但仍然不知道,我也想知道,是否有可能从&#34;&#34;更改过滤规则?到&#34;或&#34;?例如,如果我在1月和11月检查过,我希望看到这两个月的时间表,而不是从1月开始到11月结束的时间表。没有那个 的东西,只有上个月的过滤器可以工作。