diff --git a/forwardport/__manifest__.py b/forwardport/__manifest__.py
index 185f8256..b86c425e 100644
--- a/forwardport/__manifest__.py
+++ b/forwardport/__manifest__.py
@@ -8,6 +8,7 @@
'data/security.xml',
'data/crons.xml',
'data/views.xml',
+ 'data/queues.xml',
],
'license': 'LGPL-3',
}
diff --git a/forwardport/data/queues.xml b/forwardport/data/queues.xml
new file mode 100644
index 00000000..ba011344
--- /dev/null
+++ b/forwardport/data/queues.xml
@@ -0,0 +1,51 @@
+
+
+ Forward port batches
+ forwardport.batches
+ {'active_test': False}
+
+
+ Forward port batches
+ forwardport.batches
+
+
+
+
+
+
+
+
+ Forward port batch
+ forwardport.batches
+
+
+
+
+
+
+ Followup Updates
+ forwardport.updates
+
+
+ Followup Updates
+ forwardport.updates
+
+
+
+
+
+
+
+
+
+
+
diff --git a/forwardport/data/views.xml b/forwardport/data/views.xml
index ff7f66c9..b7000892 100644
--- a/forwardport/data/views.xml
+++ b/forwardport/data/views.xml
@@ -12,6 +12,7 @@
@@ -175,6 +176,9 @@
runbot_merge.pull_requests
+
+
+
diff --git a/runbot_merge/__manifest__.py b/runbot_merge/__manifest__.py
index 8375a3d8..9f44e106 100644
--- a/runbot_merge/__manifest__.py
+++ b/runbot_merge/__manifest__.py
@@ -10,6 +10,8 @@
'views/res_partner.xml',
'views/runbot_merge_project.xml',
'views/mergebot.xml',
+ 'views/queues.xml',
+ 'views/configuration.xml',
'views/templates.xml',
'models/project_freeze/views.xml',
],
diff --git a/runbot_merge/changelog/2022-06/ui.md b/runbot_merge/changelog/2022-06/ui.md
new file mode 100644
index 00000000..33a1667c
--- /dev/null
+++ b/runbot_merge/changelog/2022-06/ui.md
@@ -0,0 +1,6 @@
+IMP: various UI items
+
+- more clearly differentiate between "pending" and "unknown" statuses on stagings
+- fix "outstanding forward ports" count
+- add date of staging last modification (= success / failure instant)
+- correctly retrieve and include fast-forward and unstaging reasons
diff --git a/runbot_merge/controllers/__init__.py b/runbot_merge/controllers/__init__.py
index 199b4801..d96d703d 100644
--- a/runbot_merge/controllers/__init__.py
+++ b/runbot_merge/controllers/__init__.py
@@ -171,11 +171,7 @@ def handle_pr(env, event):
return "It's my understanding that closed/merged PRs don't get sync'd"
if pr_obj.state == 'ready':
- pr_obj.unstage(
- "PR %s updated by %s",
- pr_obj.display_name,
- event['sender']['login']
- )
+ pr_obj.unstage("updated by %s", event['sender']['login'])
_logger.info(
"PR %s updated to %s by %s, resetting to 'open' and squash=%s",
diff --git a/runbot_merge/models/pull_requests.py b/runbot_merge/models/pull_requests.py
index 63a7e3ef..76407ebf 100644
--- a/runbot_merge/models/pull_requests.py
+++ b/runbot_merge/models/pull_requests.py
@@ -846,7 +846,7 @@ class PullRequests(models.Model):
'pull_request': self.number,
'message': "PR priority reset to 1, as pull requests with priority 0 ignore review state.",
})
- self.unstage("unreview (r-) by %s", author.github_login)
+ self.unstage("unreviewed (r-) by %s", author.github_login)
ok = True
else:
msg = "r- makes no sense in the current PR state."
@@ -1349,7 +1349,7 @@ class PullRequests(models.Model):
# else remove this batch from the split
b.split_id = False
- self.staging_id.cancel(reason, *args)
+ self.staging_id.cancel('%s ' + reason, self.display_name, *args)
def _try_closing(self, by):
# ignore if the PR is already being updated in a separate transaction
@@ -1369,11 +1369,7 @@ class PullRequests(models.Model):
''', [self.id])
self.env.cr.commit()
self.modified(['state'])
- self.unstage(
- "PR %s closed by %s",
- self.display_name,
- by
- )
+ self.unstage("closed by %s", by)
return True
# state changes on reviews
diff --git a/runbot_merge/views/configuration.xml b/runbot_merge/views/configuration.xml
new file mode 100644
index 00000000..70e8d710
--- /dev/null
+++ b/runbot_merge/views/configuration.xml
@@ -0,0 +1,43 @@
+
+
+ CI / statuses overrides
+ res.partner.override
+
+
+ Overrides List
+ res.partner.override
+
+
+
+
+
+
+
+
+
+
+ Review Rights
+ res.partner.review
+ {'search_default_group_by_repository': True}
+
+
+ Review Rights
+ res.partner.review
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/runbot_merge/views/mergebot.xml b/runbot_merge/views/mergebot.xml
index f8922130..34472a5a 100644
--- a/runbot_merge/views/mergebot.xml
+++ b/runbot_merge/views/mergebot.xml
@@ -97,10 +97,10 @@
-
+
@@ -108,6 +108,8 @@
+
+
@@ -205,66 +207,33 @@
-
- PRs to fetch
- runbot_merge.fetch_job
- tree
- {'default_active': True}
+
+ Commit Statuses
+ runbot_merge.commit
+ tree,form
-
- Fetches Search
- runbot_merge.fetch_job
-
-
-
-
-
-
-
-
-
- Fetches Tree
- runbot_merge.fetch_job
+
+ commits list
+ runbot_merge.commit
-
-
-
-
-
-
-
- CI / statuses overrides
- res.partner.override
-
-
- Overrides List
- res.partner.override
-
-
-
-
-
+
+
-
-
-
-
-
-
+
+
+
+
diff --git a/runbot_merge/views/queues.xml b/runbot_merge/views/queues.xml
new file mode 100644
index 00000000..a72571f3
--- /dev/null
+++ b/runbot_merge/views/queues.xml
@@ -0,0 +1,97 @@
+
+
+
+ Splits
+ runbot_merge.split
+
+
+ Splits
+ runbot_merge.split
+
+
+
+
+
+
+
+
+
+ Feedback
+ runbot_merge.pull_requests.feedback
+
+
+ Feedback
+ runbot_merge.pull_requests.feedback
+
+
+
+
+
+
+
+
+
+
+
+ Tagging
+ runbot_merge.pull_requests.tagging
+
+
+ Tagging
+ runbot_merge.pull_requests.tagging
+
+
+
+
+
+
+
+
+
+
+
+ PRs to fetch
+ runbot_merge.fetch_job
+ tree
+ {'default_active': True}
+
+
+ Fetches Search
+ runbot_merge.fetch_job
+
+
+
+
+
+
+
+
+
+ Fetches Tree
+ runbot_merge.fetch_job
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/runbot_merge/views/templates.xml b/runbot_merge/views/templates.xml
index 49e475b3..fab3b1e6 100644
--- a/runbot_merge/views/templates.xml
+++ b/runbot_merge/views/templates.xml
@@ -135,11 +135,15 @@
visible-lg-block
- Cancelled:
- Fast Forward Failed
-
+ fast forward failed
+ last status
+
-
+
+
+
+ at Z
+
-
@@ -152,7 +156,7 @@