runbot/runbot_merge/views/mergebot.xml
Xavier Morel c3b90454a2 [IMP] runbot_merge: a few backend screens
- override the staging's name_get to provide a slightly more useful
  display_name (though still not great as the staging object remains
  quite technical and inimical to human interaction)
- show individual PRs in a batch (as m2m tags) for readability
- update PR views to show the author and reviewer, except in the list
  of delegations of users where it's a lot less useful

/cc #632
2022-08-05 15:35:51 +02:00

243 lines
9.7 KiB
XML

<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>