Python 如何在Odoo 10的看板视图中显示选择字段的所有阶段(甚至是空的阶段)?

Python 如何在Odoo 10的看板视图中显示选择字段的所有阶段(甚至是空的阶段)?,python,odoo,odoo-10,kanban,Python,Odoo,Odoo 10,Kanban,我试图在Odoo 10的看板视图中显示定义为选择字段的模型的阶段。但是,当我在看板视图中添加stage字段时,其中包含记录的stage将显示在看板视图中,而不是所有stage 我有一个包含3个阶段和看板视图的选择字段。我在xml中使用下面的代码在看板视图中显示阶段 这是我的选择字段: stage = fields.Selection([ ('not reviewed', 'Not Reviewed'), ('review in progress', 'Revie

我试图在Odoo 10的看板视图中显示定义为选择字段的模型的阶段。但是,当我在看板视图中添加stage字段时,其中包含记录的stage将显示在看板视图中,而不是所有stage

我有一个包含3个阶段和看板视图的选择字段。我在xml中使用下面的代码在看板视图中显示阶段

这是我的选择字段:

stage = fields.Selection([
        ('not reviewed', 'Not Reviewed'), 
        ('review in progress', 'Review In Progress'), 
        ('review complete', 'Review Complete')
    ], default='not reviewed')
在xml部分,我使用看板视图中的选择字段在视图中显示:

<record id="sources_daily_review_kanban_view" model="ir.ui.view">
        <field name="name">Daily Sources Review Kanban</field>
        <field name="model">daily.source.review</field>
        <field name="arch" type="xml">
            <kanban default_group_by="stage" class="o_kanban_small_column o_opportunity_kanban">
                <field name="stage" options='{"group_by_tooltip": {"requirments": "Description", "legend_priority": "Use of stars"}}'/>
                <field name="color"/>
                <field name="name"/>
                <field name="description"/>
                <field name="responsible"/>
                <field name="active"/>
                <field name="source_date"/>
                <templates>
                    <t t-name="kanban-box">
                        <div t-attf-class="#{kanban_color(record.color.raw_value)} oe_kanban_global_click">
                           <div class="o_dropdown_kanban dropdown">
                                <a class="dropdown-toggle btn" data-toggle="dropdown" href="#">
                                    <span class="fa fa-bars fa-log"/>
                                </a>
                                <ul class="dropdown-menu" role="menu" area-labelledby="dLabel">
                                    <t t-if="widget.editable"><li><a type="edit">Edit</a></li></t> 
                                    <t t-if="widget.deletable"><li><a type="delete">Delete</a></li></t>
                                    <li t-if="! record.active.value"><a name="action_set_active" type="object">Unarchive</a></li>
                                    <li t-if="record.active.value"><a name="action_set_unactive"  type="object">Archive</a></li>
                                    <li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
                                </ul>
                           </div>
                           <div class="oe_kanban_content">
                                <div>
                                    <field name="tag_ids"/>
                                </div>
                                <div>
                                    <strong><field name="name" domain="[('including_in_daily_review', '=', True)]"/></strong>
                                </div>
                                <div>
                                    <field name="description"/>
                                </div>
                                <div>
                                    <field name="responsible"/>
                                </div>
                                <div class="oe_kanban_footer">

                                </div>
                           </div>
                        </div>
                    </t>
                </templates>
            </kanban>
        </field>
</record>

每日资料回顾看板
每日。来源。评论

  • 与此问题相关的解决方案。但我的案例(选择字段)不清楚。

    使用group expand参数在人力资源合同模块中可以找到一个很好的例子

    stage = fields.Selection([
        ('not reviewed', 'Not Reviewed'), 
        ('review in progress', 'Review In Progress'), 
        ('review complete', 'Review Complete')
    ], default='not reviewed',group_expand='_expand_states')
    
    
    def _expand_states(self, states, domain, order):
        return [key for key, val in type(self).state.selection]
    

    我试图通过在Odoo10中应用Explorer解决方案来创建静态阶段,我也在Odoo12中发现了该功能,但在Odoo10中不起作用。因此,我使用了下面的技术来创建静态和固定阶段,即使看板视图中有空列:

    stage = fields.Many2one('checklist.stage', group_expand='_expand_stages', default=lambda self: self._default_stage())
    
    首先,我定义了一个新模型,如下所示:

    class CheckListStage(models.Model):
    
        _name = "checklist.stage"
        _rec_name = "name"
        _sequence = "sequence, name, id"
    
        name = fields.Text(string='Name', required=True, translate=True)
        sequence = fields.Integer('Sequence', default=1, help='Used to order stages. Loweer is better.')
    
    然后,我使用以下代码将3条记录作为xml文件中的数据文件添加到此模型中:

    <?xml version="1.0" encoding="utf-8"?>
    <odoo>
        <data>
            <record id="stage_not_reviewed" model="checklist.stage">
                <field name="name">Not Review</field>
                <field name="sequence">1</field>
            </record>
    
            <record id="stage_review_in_progress" model="checklist.stage">
                <field name="name">Review In Progress</field>
                <field name="sequence">2</field>
            </record>
    
            <record id="stage_review_complete" model="checklist.stage">
                <field name="name">Review Complete</field>
                <field name="sequence">3</field>
            </record>
        </data>
    </odoo>
    
    对于组扩展,我使用以下代码作为扩展方法:

    def _expand_stages(self, states, domain, order):
            stage_ids = self.env['checklist.stage'].search([])
            return stage_ids
    
    最后,在看板视图中,我刚刚将
    default\u group\u by=“stage”
    group\u create=“false”
    添加到看板emelent中。虽然有点长,但对我来说很有效

    它对我有用 在Python文件中:

    state = fields.Selection([('en_cours_confirmation', 'En Cours de Confirmation'), ('confirmer', 'Confirmé'), ('annuler', 'Annulé')]
                             , default='en_cours_confirmation', string="Status",  group_expand='_expand_states', index=True)
    
    def _expand_states(self, states, domain, order):
        return [key for key, val in type(self).state.selection]
    
    在XML文件中:

    ...<kanban colors="blue:state=='en_cours_confirmation';red:state=='annuler';grey:state=='confirmer'" default_group_by="state">...
    
    。。。。。。
    
    我应用了您的代码,但它没有运行。它有错误,你的代码准确吗?我还检查了hr.contract模型和基本代码,但无法确定任何内容。我认为,如果您在看板中显示您需要的内容,效果会更好