odoo看板笔记

案例0001
odoo中看板使用
#其中一定要many2one阶段字段名称 stage_id  <kanban default_group_by="stage_id">    否则 挂件widget="state_selection"会报错
''' <field name="kanban_state" widget="state_selection"/>
'''
看板默认分组当无此类型当值时也默认出现在看板里
#对于odoo12来说  group_expand=''   对于selection类型
state = fields.Selection([('a', "A"), ('b', "B"),('c', "C"), ('d', "D")], group_expand='_expand_states')

def _expand_states(self, states, domain, order):
    # return all possible states, in order
    return [key for key, val in type(self).state.selection]





案例0002
#对于odoo12来说  group_expand=''   对于many2one类型
stage_id = fields.Many2one('crm.stage', string='Stage', ondelete='restrict', track_visibility='onchange', index=True,
                           domain="['|', ('team_id', '=', False), ('team_id', '=', team_id)]",
                           group_expand='_read_group_stage_ids', default=lambda self: self._default_stage_id())
kanban_state = fields.Selection([
('normal', 'Grey'),
('done', 'Green'),
('blocked', 'Red')], string='Kanban State',
copy=False, default='normal', required=True)

@api.multi
def write(self, vals):
now = fields.Datetime.now()
if 'stage_id' in vals:
# reset kanban state when changing stage
if 'kanban_state' not in vals:
vals['kanban_state'] = 'normal'
result = super(Task, self).write(vals)
return result
 



@api.model
def _read_group_stage_ids(self, stages, domain, order): """ Read group customization in order to display all the stages in the kanban view, even if they are empty """ stage_ids = stages._search([], order=order, access_rights_uid=SUPERUSER_ID) return stages.browse(stage_ids)
<record id="accountant_income_expenditure_kanban_view" model="ir.ui.view">
            <field name="name">Accountant Expenditure Kanban</field>
            <field name="model">accountant.income.expenditure</field>
            <field name="arch" type="xml">
                <kanban default_group_by="stage_id">
                    <field name="id"/>
                    <field name="image_small"/>
                    <field name="name"/>
                    <templates>
                        <t t-name="kanban-box">
                            <div class="oe_kanban_global_click">
                                <div class="o_kanban_image">
                                    <img t-att-src="kanban_image('accountant.income.expenditure', 'image_medium', record.id.raw_value)" alt="事件"/>
                                </div>
                                <div class="oe_kanban_details">
                                    <strong class="o_kanban_record_title">
                                        <field name="name"/></strong>
                                    <div class="o_kanban_tags_section">
                                        <field name="in_out_put" />
                                    </div>
                                    <ul>
                                        <li><strong>金额: <field name="amount"></field></strong></li>
                                    </ul>
                                    <div name="tags"/>
                                    <div>
                                        <field name="leave_property" widget="priority"/>
<field name="kanban_state" widget="state_selection"/> </div> </div> </div> </t> </templates> </kanban> </field> </record>

 

posted @ 2019-08-20 22:30  何双新  阅读(953)  评论(0编辑  收藏  举报