<odoo>

    <record id="form_repository" model="ir.ui.view">
        <field name="name">Repository form</field>
        <field name="model">runbot_merge.repository</field>
        <field name="arch" type="xml">
            <form>
                <sheet>
                    <div class="oe_title">
                        <h1><field name="name"/></h1>
                    </div>
                    <group>
                        <group>
                            <field name="group_id" string="Accessible to"/>
                        </group>
                        <group>
                            <field name="branch_filter"/>
                        </group>
                    </group>
                    <separator string="Required Statuses"/>
                    <field name="status_ids">
                        <tree editable="bottom">
                            <field name="context"/>
                            <field name="branch_filter"/>
                            <field name="prs"/>
                            <field name="stagings"/>
                        </tree>
                    </field>
                </sheet>
            </form>
        </field>
    </record>

    <record id="runbot_merge_action_projects" model="ir.actions.act_window">
        <field name="name">Projects</field>
        <field name="res_model">runbot_merge.project</field>
        <field name="view_mode">tree,form</field>
    </record>

    <record id="runbot_merge_action_prs" model="ir.actions.act_window">
        <field name="name">Pull Requests</field>
        <field name="res_model">runbot_merge.pull_requests</field>
        <field name="view_mode">tree,form</field>
        <field name="context">{'search_default_open': True}</field>
    </record>
    <record id="runbot_merge_search_prs" model="ir.ui.view">
        <field name="name">PR search</field>
        <field name="model">runbot_merge.pull_requests</field>
        <field name="arch" type="xml">
            <search>
                <filter
                    name="open" string="Open"
                    domain="[('state', 'not in', ['merged', 'closed'])]"
                />
                <field name="number"/>
                <field name="author"/>
                <field name="label"/>
                <field name="target"/>
                <field name="repository"/>
                <field name="state"/>

                <group>
                    <filter string="Target" name="target_" context="{'group_by':'target'}"/>
                    <filter string="Repository" name="repo_" context="{'group_by':'repository'}"/>
                    <filter string="State" name="state_" context="{'group_by':'state'}"/>
                    <filter string="Priority" name="priority_" context="{'group_by':'priority'}"/>
                </group>
            </search>
        </field>
    </record>
    <record id="runbot_merge_tree_prs" model="ir.ui.view">
        <field name="name">PR tree</field>
        <field name="model">runbot_merge.pull_requests</field>
        <field name="arch" type="xml">
            <tree>
                <field name="repository"/>
                <field name="number"/>
                <field name="target"/>
                <field name="state"/>
                <field name="author"/>
                <field name="reviewed_by"/>
            </tree>
        </field>
    </record>
    <record id="runbot_merge_form_prs" model="ir.ui.view">
        <field name="name">PR form</field>
        <field name="model">runbot_merge.pull_requests</field>
        <field name="arch" type="xml">
            <form>
                <header/>
                <sheet>
                    <div class="oe_title">
                        <h1>
                            <field name="repository"/>#<field name="number"/>
                        </h1>
                    </div>
                    <group>
                        <group>
                            <field name="target"/>
                            <field name="state"/>
                            <field name="author"/>
                        </group>
                        <group>
                            <field name="label"/>
                            <field name="priority"/>
                            <field name="squash"/>
                        </group>
                    </group>
                    <group>
                        <group colspan="4">
                            <field name="head"/>
                            <field name="statuses"/>
                        </group>
                        <group colspan="4">
                            <field name="overrides"/>
                        </group>
                    </group>
                    <group>
                        <group colspan="4" string="Message">
                            <field name="message" nolabel="1"/>
                        </group>
                    </group>
                    <group>
                        <group colspan="4" string="Delegates">
                            <field name="delegates" nolabel="1">
                                <tree>
                                    <field name="name"/>
                                    <field name="github_login"/>
                                </tree>
                            </field>
                        </group>
                    </group>
                </sheet>
            </form>
        </field>
    </record>

    <record id="runbot_merge_action_stagings" model="ir.actions.act_window">
        <field name="name">Stagings</field>
        <field name="res_model">runbot_merge.stagings</field>
        <field name="view_mode">tree,form</field>
        <field name="context">{'search_default_active': True, 'active_test': False}</field>
    </record>
    <record id="runbot_merge_search_stagings" model="ir.ui.view">
        <field name="name">Stagings Search</field>
        <field name="model">runbot_merge.stagings</field>
        <field name="arch" type="xml">
            <search>
                <filter string="Active" name="active"
                        domain="[('active', '=', True)]"/>
                <field name="state"/>
                <field name="target"/>

                <group>
                    <filter string="Target" name="target_" context="{'group_by': 'target'}"/>
                </group>
            </search>
        </field>
    </record>
    <record id="runbot_merge_tree_stagings" model="ir.ui.view">
        <field name="name">Stagings Tree</field>
        <field name="model">runbot_merge.stagings</field>
        <field name="arch" type="xml">
            <tree>
                <field name="target"/>
                <field name="state"/>
            </tree>
        </field>
    </record>
    <record id="runbot_merge_form_stagings" model="ir.ui.view">
        <field name="name">Stagings Form</field>
        <field name="model">runbot_merge.stagings</field>
        <field name="arch" type="xml">
            <form>
                <field name="active" invisible="1"/>
                <header>
                    <button type="object" name="action_cancel" string="Cancel" class="oe_highlight"
                            attrs="{'invisible': [('active', '=', False)]}"
                    />
                </header>
                <sheet>
                    <group>
                        <group>
                            <field name="target"/>
                            <field name="state"/>
                            <field name="reason"/>
                        </group>
                        <group>
                            <field name="staged_at"/>
                        </group>
                    </group>
                    <group string="Heads">
                        <field name="head_ids" colspan="4" nolabel="1">
                            <tree>
                                <field name="sha"/>
                                <field name="statuses"/>
                            </tree>
                        </field>
                    </group>
                    <group string="Batches">
                        <field name="batch_ids" colspan="4" nolabel="1">
                            <tree>
                                <field name="prs" widget="many2many_tags"
                                       options="{'no_quick_create': True}"/>
                            </tree>
                        </field>
                    </group>
                </sheet>
            </form>
        </field>
    </record>

    <record id="runbot_merge_action_commits" model="ir.actions.act_window">
        <field name="name">Commit Statuses</field>
        <field name="res_model">runbot_merge.commit</field>
        <field name="view_mode">tree,form</field>
    </record>
    <record id="runbot_merge_commits_tree" model="ir.ui.view">
        <field name="name">commits list</field>
        <field name="model">runbot_merge.commit</field>
        <field name="arch" type="xml">
            <tree>
                <field name="sha"/>
                <field name="statuses"/>
            </tree>
        </field>
    </record>

    <menuitem name="Mergebot" id="runbot_merge_menu"/>
        <menuitem name="Projects" id="runbot_merge_menu_project"
                  parent="runbot_merge_menu"
                  action="runbot_merge_action_projects"/>
        <menuitem name="Pull Requests" id="runbot_merge_menu_prs"
                  parent="runbot_merge_menu"
                  action="runbot_merge_action_prs"/>
        <menuitem name="Stagings" id="runbot_merge_menu_stagings"
                  parent="runbot_merge_menu"
                  action="runbot_merge_action_stagings"/>
        <menuitem name="Commits" id="runbot_merge_menu_commits"
                  parent="runbot_merge_menu"
                  action="runbot_merge_action_commits"/>
</odoo>