mirror of
https://github.com/odoo/runbot.git
synced 2025-03-16 07:55:45 +07:00

The bootstrap version was freezed during a previous migration to avoid loosing to much time adapting the style again to fit the previous look and feel. Anyway, the latest version of bootsrap offers more flexibility about themes, and it could be a good oportunity to modernise a little the runbot interface and answer to long lasting requests. The main part of the adaptation is to tweak colors to match the previous style, and adapt some class in xml views. Some css rules are also tweaked to keep the same looks without the need to rewrite xml views too much, this could be done in a future commit.
210 lines
10 KiB
XML
210 lines
10 KiB
XML
<odoo>
|
|
<template id="alerts" inherit_id="runbot_merge.alerts">
|
|
<xpath expr="//div[@id='alerts']">
|
|
<t t-set="fpcron" t-value="env(user=1).ref('forwardport.port_forward')"/>
|
|
<div t-if="not fpcron.active" class="alert alert-warning col-12" role="alert">
|
|
Forward-port is disabled, merged pull requests will not be forward-ported.
|
|
</div>
|
|
</xpath>
|
|
<!-- key block (hopefully) -->
|
|
<xpath expr="//div[@id='alerts']" position="inside">
|
|
<t t-if="env['runbot_merge.pull_requests'].check_access_rights('read', False)">
|
|
<t t-set="outstanding" t-value="env['runbot_merge.pull_requests'].search_count([
|
|
('source_id', '!=', False),
|
|
('state', 'not in', ['merged', 'closed']),
|
|
('source_id.merge_date', '<', datetime.datetime.now() - relativedelta(days=3)),
|
|
])"/>
|
|
<div t-if="outstanding != 0" class="alert col-md-12 alert-warning mb-0">
|
|
<a href="/forwardport/outstanding">
|
|
<t t-esc="outstanding"/> outstanding forward-ports
|
|
</a>
|
|
</div>
|
|
</t>
|
|
</xpath>
|
|
</template>
|
|
|
|
<template id="pr_background">
|
|
<t t-if="p.state == 'merged'">bg-success</t>
|
|
<t t-elif="p.state == 'closed'">bg-light</t>
|
|
<t t-elif="p.state == 'error'">bg-danger</t>
|
|
<t t-else="">bg-warning</t>
|
|
</template>
|
|
|
|
<record id="forwardport.outstanding_fp" model="website.page">
|
|
<field name="name">Outstanding forward ports</field>
|
|
<field name="type">qweb</field>
|
|
<field name="url">/forwardport/outstanding</field>
|
|
<field name="website_indexed" eval="False"/>
|
|
<field name="is_published">True</field>
|
|
<field name="key">forwardport.outstanding_fp</field>
|
|
<field name="arch" type="xml">
|
|
<t name="Outstanding forward ports" t-name="forwardport.outstanding_fp">
|
|
<t t-call="website.layout">
|
|
<t t-set="hof" t-value="env['runbot_merge.pull_requests']._hall_of_shame()"/>
|
|
<div id="wrap" class="oe_structure oe_empty"><div class="container-fluid">
|
|
<ul class="alert bg-light list-inline">
|
|
<span t-foreach="hof.reviewers" t-as="count" class="list-inline-item">
|
|
<a t-attf-href="?reviewer={{count[0].id}}"
|
|
t-field="count[0].display_name"
|
|
t-att-title="count[1]"
|
|
/>
|
|
</span>
|
|
</ul>
|
|
<h1>List of pull requests with outstanding forward ports</h1>
|
|
<t t-set="reviewer" t-value="env['res.partner'].browse(int(request.params.get('reviewer') or 0))"/>
|
|
<form method="get" action="" id="reset-filter"/>
|
|
<h2 t-if="reviewer" class="text-muted">
|
|
merged by <span t-field="reviewer.display_name" t-attf-title="@{{reviewer.github_login}}"/>
|
|
<button form="reset-filter" type="submit"
|
|
name="reviewer" value=""
|
|
title="See All" class="btn fa fa-times"/>
|
|
</h2>
|
|
<dl><t t-foreach="hof.outstanding" t-as="x">
|
|
<t t-set="source" t-value="x[0]"/>
|
|
<t t-if="not reviewer or source.reviewed_by == reviewer">
|
|
<dt>
|
|
<a t-att-href="source.url"><span t-field="source.display_name"/></a>
|
|
by <span t-field="source.author.display_name"
|
|
t-attf-title="@{{source.author.github_login}}"/>
|
|
merged <span t-field="source.merge_date"
|
|
t-options="{'widget': 'relative'}"
|
|
t-att-title="source.merge_date"/>
|
|
<t t-if="not reviewer">
|
|
by <span t-field="source.reviewed_by.display_name"
|
|
t-attf-title="@{{source.reviewed_by.github_login}}"/>
|
|
</t>
|
|
</dt>
|
|
<dd>
|
|
Outstanding forward-ports:
|
|
<ul>
|
|
<li t-foreach="x.prs" t-as="p">
|
|
<a t-att-href="p.url"><span t-field="p.display_name"/></a>
|
|
(<span t-field="p.state"/>)
|
|
targeting <span t-field="p.target.name"/>
|
|
</li>
|
|
</ul>
|
|
</dd>
|
|
</t>
|
|
</t></dl>
|
|
</div></div>
|
|
</t>
|
|
</t>
|
|
</field>
|
|
</record>
|
|
|
|
<template id="view_pull_request" inherit_id="runbot_merge.view_pull_request">
|
|
<xpath expr="//dl[hasclass('runbot-merge-fields')]" position="inside">
|
|
<t t-if="pr.state == 'merged'">
|
|
<dt>merged</dt>
|
|
<dd>
|
|
<span t-field="pr.merge_date" t-options="{'widget': 'relative'}"
|
|
t-att-title="pr.merge_date"/>
|
|
by <span t-field="pr.reviewed_by.display_name"
|
|
t-attf-title="@{{pr.reviewed_by.github_login}}"/>
|
|
</dd>
|
|
</t>
|
|
<t t-if="pr.source_id">
|
|
<dt>forward-port of</dt>
|
|
<dd>
|
|
<a t-att-href="pr.source_id.url">
|
|
<span t-field="pr.source_id.display_name"/>
|
|
</a>
|
|
<span t-if="not pr.parent_id"
|
|
class="badge text-bg-danger user-select-none"
|
|
title="A detached PR behaves like a non-forward-port, it has to be approved via the mergebot, this is usually caused by the forward-port having been in conflict or updated.">
|
|
DETACHED (<span t-out="pr.detach_reason" style="white-space: pre-wrap;"/>)
|
|
</span>
|
|
</dd>
|
|
</t>
|
|
<t t-if="pr.forwardport_ids">
|
|
<dt>forward-ports</dt>
|
|
<dd><ul>
|
|
<t t-foreach="pr.forwardport_ids" t-as="p">
|
|
<t t-set="bgsignal"><t t-call="forwardport.pr_background"/></t>
|
|
<li t-att-class="bgsignal">
|
|
<a t-att-href="p.url"><span t-field="p.display_name"/></a>
|
|
targeting <span t-field="p.target.name"/>
|
|
</li>
|
|
</t>
|
|
</ul></dd>
|
|
</t>
|
|
</xpath>
|
|
</template>
|
|
|
|
<record model="ir.ui.view" id="project">
|
|
<field name="name">Show forwardport project fields</field>
|
|
<field name="inherit_id" ref="runbot_merge.runbot_merge_form_project"/>
|
|
<field name="model">runbot_merge.project</field>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//sheet/group[2]" position="after">
|
|
<group string="Forwardport Configuration">
|
|
<group>
|
|
<field string="Token" name="fp_github_token"/>
|
|
</group>
|
|
<group>
|
|
<field string="Bot Name" name="fp_github_name"/>
|
|
<field string="Bot Email" name="fp_github_email"/>
|
|
</group>
|
|
</group>
|
|
</xpath>
|
|
<xpath expr="//field[@name='repo_ids']/tree" position="inside">
|
|
<field string="FP remote" name="fp_remote_target"
|
|
help="Repository where forward port branches will be created"
|
|
/>
|
|
</xpath>
|
|
|
|
<xpath expr="//field[@name='branch_ids']/tree" position="inside">
|
|
<field name="fp_target" string="FP to"
|
|
help="This branch will be forward-ported to (from lower ones)"
|
|
/>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="repository">
|
|
<field name="name">Show forwardport repository fields</field>
|
|
<field name="inherit_id" ref="runbot_merge.form_repository"/>
|
|
<field name="model">runbot_merge.repository</field>
|
|
<field name="arch" type="xml">
|
|
<field name="branch_filter" position="after">
|
|
<field string="FP remote" name="fp_remote_target"
|
|
help="Repository where forward port branches will be created"/>
|
|
</field>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="pr">
|
|
<field name="name">Show forwardport PR fields</field>
|
|
<field name="inherit_id" ref="runbot_merge.runbot_merge_form_prs"/>
|
|
<field name="model">runbot_merge.pull_requests</field>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//field[@name='state']" position="after">
|
|
<field name="merge_date" attrs="{'invisible': [('state', '!=', 'merged')]}"/>
|
|
</xpath>
|
|
<xpath expr="//sheet/group[2]" position="after">
|
|
<separator string="Forward Port" attrs="{'invisible': [('source_id', '=', False)]}"/>
|
|
<group attrs="{'invisible': [('source_id', '!=', False)]}">
|
|
<group>
|
|
<field string="Policy" name="fw_policy"/>
|
|
</group>
|
|
</group>
|
|
<group attrs="{'invisible': [('source_id', '=', False)]}">
|
|
<group>
|
|
<field string="Original PR" name="source_id"/>
|
|
</group>
|
|
<group attrs="{'invisible': [('parent_id', '=', False)]}">
|
|
<field name="parent_id"/>
|
|
</group>
|
|
<group colspan="4" attrs="{'invisible': [('parent_id', '!=', False)]}">
|
|
<field string="Detached because" name="detach_reason" readonly="1"/>
|
|
</group>
|
|
<group>
|
|
<field string="Forward ported up to" name="limit_id"/>
|
|
</group>
|
|
</group>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
|
|
</odoo>
|