Introduce a kanban view to the runbot build error records.
Kanban cards show the most valuable field with relevant icons.
The concept of "stage" was also introduced for the build error
model.
Currently there is 4 stages:
1. New: default stage for any new error build
2. Solved: when the issue should be solved
3. Ignored: build error currently ignored (test-tags)
4. Done: When the issue stop happening
Certain stages change automatically based as handled in a cron
Generally, any not-ignored on-going task end up in done after some
period of time if it is not seen for some time
The records also get eventually archived (field "Open (not fixed)")
after some time.
( see full details in function `_update_stage`).
The other stage are expected to be used by the user. For instance
after fixing an underteministic error the user can change the
stage from new -> solved so that it is moved to done if the build
error is not seen for 7 days (instead of 15 if it was in new).
The host form view was loading slowly because of the domain != "done"
whitch doesn't benefit from any index.
Switching it to a list of state that are not done solves the issue.
Adds frequency graphs for build errors as small html widgets.
All data is gathered from the last 30 days.
- Daily frequency (how many times per day)
- Hourly frequency (how many times per individual hour, 0-23)
- Day Of Week frequency (how many times per day of week, 0-6)
- Day of month frequency (how many times per day of month, 0-30)
Co-Authored-By: Xavier-Do <xdo@odoo.com>
When doing a search on runbot, the main navbar item (for the current
project) keeps the search, making it less convenient to arrive back at
the homepage.
Auto save mechanism when switching tab is unwanted in runbot, most of
the time we will use other tabs to get the data necessary for the record
we are modifying/creating and we don't care about saving yet.
We also prevent closing the window if the record is dirty.
Auto save in pager and context switch is still kept.
When teams want to work by merging many branches into a singular dev
branch before targetting master, they often require custom triggers
which we have to copy by hand.
With this change we hope to be able to set the custom trigger on the
target branch instead and inherit the custom triggers on the children
branches automatically.
Before this commit:
The only way to have details on the builds was to use the embed
one2many widget in the build error form view.
This was pretty inconvenient for complicated search as there is no
way to filter the records or group them
After this commit:
A list view now exist for the model `runbot.build.error.link`
allowing to filter and group on convenient fields.
This list view can be accessed on the runbot build error through
a smart button
When adding an internal link in discord or other platform, a preview of
the login page is given. This is not usefull nor elegant.
This commit proposes to remove the logo and give useful information
instead
This commit adds a `common_qualifiers` field on build error. Its purpose
is mainly to find similary qualified errors and similary qualified error
contents. This field is computed by finding qualifiers in common in all
the qualifiers of the error contents linked to the error.
A new `unique_qualifiers` is also added for the same kind of puprpose.
This field is computed by finding non contradictory qualifiers of the
linked error contents.
The fields can be used in 4 tabs added on the build error form.
This allows to configure a custom trigger to use the base commits.
This can be usefull to test a config on a branch that has some changes
to ensure it works proprely.
Looks like bu.database_ids[1:].sorted('name') was breaking the prefech
set leading to one query per build. Fiwing it by sorting without slicing
the ignoring the first record.
~230 ms improvement over 1.7 second
The row_number window function is quite unoptimized as it requires
reading the whole table.
Using lateral join and / or distinct makes better use of existing
indexes.
The current qualifying implementation is based solely on error content.
With this commit the fields on which the regular expression will apply
can be choosen with checkboxes. It defaults to the `content` field.
While it's useful to have a clickable link to the fixing pull request
on the runbot error list, we cannot display the entire url as it takes
too much space. So a static text `View PR` is used.
As this static text is of limited use, this commit adds a new widget
that displays a shortened URL for the github pull request only showing
the repo and the PR number.