Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Gepetto
dashboard
Commits
56558b64
Commit
56558b64
authored
Jun 15, 2021
by
Guilhem Saurel
Browse files
board view
parent
3e03d2d2
Pipeline
#14943
failed with stage
in 2 minutes and 46 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
rainboard/models.py
View file @
56558b64
...
@@ -3,6 +3,10 @@ import logging
...
@@ -3,6 +3,10 @@ import logging
import
re
import
re
from
subprocess
import
check_output
from
subprocess
import
check_output
import
git
import
httpx
from
autoslug
import
AutoSlugField
from
autoslug.utils
import
slugify
from
django.conf
import
settings
from
django.conf
import
settings
from
django.db
import
models
from
django.db
import
models
from
django.db.models
import
Q
from
django.db.models
import
Q
...
@@ -11,11 +15,6 @@ from django.template.loader import get_template
...
@@ -11,11 +15,6 @@ from django.template.loader import get_template
from
django.utils
import
timezone
from
django.utils
import
timezone
from
django.utils.dateparse
import
parse_datetime
from
django.utils.dateparse
import
parse_datetime
from
django.utils.safestring
import
mark_safe
from
django.utils.safestring
import
mark_safe
import
git
import
httpx
from
autoslug
import
AutoSlugField
from
autoslug.utils
import
slugify
from
github
import
Github
from
github
import
Github
from
gitlab
import
Gitlab
from
gitlab
import
Gitlab
from
ndh.models
import
Links
,
NamedModel
,
TimeStampedModel
from
ndh.models
import
Links
,
NamedModel
,
TimeStampedModel
...
@@ -475,6 +474,18 @@ class Project(Links, NamedModel, TimeStampedModel):
...
@@ -475,6 +474,18 @@ class Project(Links, NamedModel, TimeStampedModel):
link
=
repo
.
first
().
url
+
'/pipeline_schedules'
link
=
repo
.
first
().
url
+
'/pipeline_schedules'
return
mark_safe
(
f
'<a href="
{
link
}
">
{
self
.
cron
()
}
</a>'
)
return
mark_safe
(
f
'<a href="
{
link
}
">
{
self
.
cron
()
}
</a>'
)
def
pipeline_result
(
self
,
branch
):
repo
=
self
.
main_gitlab_repo
()
build
=
repo
.
cibuild_set
.
filter
(
branch__name__endswith
=
branch
).
first
()
return
None
if
build
is
None
else
build
.
passed
def
master_result
(
self
):
master
=
self
.
pipeline_result
(
'master'
)
return
self
.
pipeline_result
(
'main'
)
if
master
is
None
else
master
def
devel_result
(
self
):
return
self
.
pipeline_result
(
'devel'
)
def
pipeline_results
(
self
):
def
pipeline_results
(
self
):
""" Show state and link to latest master & devel gitlab pipelines """
""" Show state and link to latest master & devel gitlab pipelines """
repo
=
self
.
main_gitlab_repo
()
repo
=
self
.
main_gitlab_repo
()
...
...
rainboard/templates/rainboard/board.html
0 → 100644
View file @
56558b64
{% extends 'base.html' %}
{% load django_tables2 bootstrap4 %}
{% block content %}
<h1>
Projects
</h1>
<table
class=
"table"
>
<thead>
<tr>
<th
scope=
"col"
>
Project
</th>
<th
scope=
"col"
>
Master
</th>
<th
scope=
"col"
>
Devel
</th>
<th
scope=
"col"
>
Commits since
</th>
<th
scope=
"col"
>
Issues
</th>
<th
scope=
"col"
>
PR
</th>
</tr>
</thead>
<tbody>
{% for project in projects %}
<tr>
<th
scope=
"row"
>
{{ project.get_link }}
</th>
<td>
{{ project.master_result|yesno:"✔,✘,?" }}
</td>
<td>
{{ project.devel_result|yesno:"✔,✘,?" }}
</td>
<td>
{{ project.commits_since }}
</td>
<td>
{{ project.open_issues }}
<td>
{{ project.open_pr }}
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
rainboard/urls.py
View file @
56558b64
...
@@ -21,7 +21,7 @@ router.register(r'dependency', views.DependencyViewSet)
...
@@ -21,7 +21,7 @@ router.register(r'dependency', views.DependencyViewSet)
app_name
=
'rainboard'
app_name
=
'rainboard'
urlpatterns
=
[
urlpatterns
=
[
path
(
''
,
Redirect
View
.
as_view
(
pattern_name
=
'rainboard:gepetto'
),
name
=
'home'
),
path
(
''
,
views
.
Board
View
.
as_view
(),
name
=
'home'
),
path
(
'forges'
,
views
.
ForgesView
.
as_view
(),
name
=
'forges'
),
path
(
'forges'
,
views
.
ForgesView
.
as_view
(),
name
=
'forges'
),
path
(
'namespaces'
,
views
.
NamespacesView
.
as_view
(),
name
=
'namespaces'
),
path
(
'namespaces'
,
views
.
NamespacesView
.
as_view
(),
name
=
'namespaces'
),
path
(
'contributors'
,
views
.
ContributorsView
.
as_view
(),
name
=
'contributors'
),
path
(
'contributors'
,
views
.
ContributorsView
.
as_view
(),
name
=
'contributors'
),
...
...
rainboard/views.py
View file @
56558b64
...
@@ -3,8 +3,7 @@ from subprocess import PIPE, Popen, run
...
@@ -3,8 +3,7 @@ from subprocess import PIPE, Popen, run
from
django.http
import
Http404
from
django.http
import
Http404
from
django.http.response
import
HttpResponse
,
HttpResponseRedirect
,
JsonResponse
from
django.http.response
import
HttpResponse
,
HttpResponseRedirect
,
JsonResponse
from
django.urls
import
reverse
from
django.urls
import
reverse
from
django.views.generic
import
DetailView
from
django.views.generic
import
DetailView
,
TemplateView
from
django_filters.views
import
FilterView
from
django_filters.views
import
FilterView
from
django_tables2
import
RequestConfig
from
django_tables2
import
RequestConfig
from
django_tables2.views
import
SingleTableMixin
,
SingleTableView
from
django_tables2.views
import
SingleTableMixin
,
SingleTableView
...
@@ -236,3 +235,10 @@ class ContributorMailViewSet(AuthenticatedOrReadOnlyModelViewSet):
...
@@ -236,3 +235,10 @@ class ContributorMailViewSet(AuthenticatedOrReadOnlyModelViewSet):
class
DependencyViewSet
(
AuthenticatedOrReadOnlyModelViewSet
):
class
DependencyViewSet
(
AuthenticatedOrReadOnlyModelViewSet
):
queryset
=
models
.
Dependency
.
objects
.
all
()
queryset
=
models
.
Dependency
.
objects
.
all
()
serializer_class
=
serializers
.
DependencySerializer
serializer_class
=
serializers
.
DependencySerializer
class
BoardView
(
TemplateView
):
template_name
=
'rainboard/board.html'
def
get_context_data
(
self
,
**
kwargs
):
return
{
'projects'
:
models
.
Project
.
objects
.
exclude
(
models
.
BAD_ONES
)}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment