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

* Adds a changelog page, linked from the main, with content automatically loaded from the source. To avoid conflicts, each entry is its own file and entries are grouped by the month during which the update will (probably) be deployed * The last group (most likely "last update") doesn't have a title, the rest do. * Add changelog entries from the last update so it's not too empty. * Also update the layout for the alerts a bit: remove bottom margin to reduce loss of whitespace.
207 lines
10 KiB
XML
207 lines
10 KiB
XML
<odoo>
|
|
<template id="dashboard" inherit_id="runbot_merge.dashboard">
|
|
<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']),
|
|
])"/>
|
|
<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>
|
|
</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)"
|
|
/>
|
|
<field name="fp_sequence" string="FP sequence"
|
|
help="Overrides the normal sequence"
|
|
/>
|
|
</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="//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)]}">
|
|
<span>
|
|
Detached from forward porting (either conflicting
|
|
or explicitly updated).
|
|
</span>
|
|
</group>
|
|
<group>
|
|
<field string="Forward ported up to" name="limit_id"/>
|
|
</group>
|
|
</group>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
|
|
</odoo>
|