Skip to content

Commit 696b114

Browse files
committed
old ui
1 parent 910d4b9 commit 696b114

9 files changed

Lines changed: 206 additions & 0 deletions

File tree

dojo/cicd_infrastructure/__init__.py

Whitespace-only changes.

dojo/cicd_infrastructure/urls.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from django.urls import re_path
2+
3+
from . import views
4+
5+
urlpatterns = [
6+
re_path(r"^cicd_infrastructure/add$", views.new_cicd_infrastructure, name="add_cicd_infrastructure"),
7+
re_path(r"^cicd_infrastructure/(?P<ciid>\d+)/edit$", views.edit_cicd_infrastructure, name="edit_cicd_infrastructure"),
8+
re_path(r"^cicd_infrastructure/(?P<ciid>\d+)/delete$", views.delete_cicd_infrastructure, name="delete_cicd_infrastructure"),
9+
re_path(r"^cicd_infrastructure$", views.cicd_infrastructure, name="cicd_infrastructure"),
10+
]

dojo/cicd_infrastructure/views.py

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
import logging
2+
3+
from django.contrib import messages
4+
from django.http import HttpResponseRedirect
5+
from django.shortcuts import get_object_or_404, render
6+
from django.urls import reverse
7+
from django.utils.translation import gettext as _
8+
9+
from dojo.authorization.authorization_decorators import user_is_configuration_authorized
10+
from dojo.forms import CICDInfrastructureForm
11+
from dojo.models import CICDInfrastructure
12+
from dojo.utils import add_breadcrumb
13+
14+
logger = logging.getLogger(__name__)
15+
16+
17+
@user_is_configuration_authorized("dojo.view_cicdinfrastructure")
18+
def cicd_infrastructure(request):
19+
confs = CICDInfrastructure.objects.all().order_by("name")
20+
add_breadcrumb(title=_("CI/CD Infrastructure List"), top_level=not len(request.GET), request=request)
21+
return render(request, "dojo/cicd_infrastructure.html", {"confs": confs})
22+
23+
24+
@user_is_configuration_authorized("dojo.add_cicdinfrastructure")
25+
def new_cicd_infrastructure(request):
26+
if request.method == "POST":
27+
form = CICDInfrastructureForm(request.POST)
28+
if form.is_valid():
29+
form.save()
30+
messages.add_message(request, messages.SUCCESS,
31+
_("CI/CD Infrastructure successfully created."),
32+
extra_tags="alert-success")
33+
return HttpResponseRedirect(reverse("cicd_infrastructure"))
34+
else:
35+
form = CICDInfrastructureForm()
36+
add_breadcrumb(title=_("New CI/CD Infrastructure"), top_level=False, request=request)
37+
return render(request, "dojo/new_cicd_infrastructure.html", {"form": form})
38+
39+
40+
@user_is_configuration_authorized("dojo.change_cicdinfrastructure")
41+
def edit_cicd_infrastructure(request, ciid):
42+
conf = get_object_or_404(CICDInfrastructure, pk=ciid)
43+
if request.method == "POST":
44+
form = CICDInfrastructureForm(request.POST, instance=conf)
45+
if form.is_valid():
46+
form.save()
47+
messages.add_message(request, messages.SUCCESS,
48+
_("CI/CD Infrastructure successfully updated."),
49+
extra_tags="alert-success")
50+
return HttpResponseRedirect(reverse("cicd_infrastructure"))
51+
else:
52+
form = CICDInfrastructureForm(instance=conf)
53+
add_breadcrumb(title=_("Edit CI/CD Infrastructure"), top_level=False, request=request)
54+
return render(request, "dojo/edit_cicd_infrastructure.html", {"form": form, "conf": conf})
55+
56+
57+
@user_is_configuration_authorized("dojo.delete_cicdinfrastructure")
58+
def delete_cicd_infrastructure(request, ciid):
59+
conf = get_object_or_404(CICDInfrastructure, pk=ciid)
60+
if request.method == "POST":
61+
conf.delete()
62+
messages.add_message(request, messages.SUCCESS,
63+
_("CI/CD Infrastructure successfully deleted."),
64+
extra_tags="alert-success")
65+
return HttpResponseRedirect(reverse("cicd_infrastructure"))
66+
add_breadcrumb(title=_("Delete CI/CD Infrastructure"), top_level=False, request=request)
67+
return render(request, "dojo/delete_cicd_infrastructure.html", {"conf": conf})

dojo/forms.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
Benchmark_Product,
6666
Benchmark_Product_Summary,
6767
Benchmark_Requirement,
68+
CICDInfrastructure,
6869
Check_List,
6970
Choice,
7071
ChoiceAnswer,
@@ -2647,6 +2648,12 @@ def clean(self):
26472648
return form_data
26482649

26492650

2651+
class CICDInfrastructureForm(forms.ModelForm):
2652+
class Meta:
2653+
model = CICDInfrastructure
2654+
fields = ["name", "description", "url", "infrastructure_type"]
2655+
2656+
26502657
class SLAConfigForm(forms.ModelForm):
26512658
def __init__(self, *args, **kwargs):
26522659
super().__init__(*args, **kwargs)
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
{% extends "base.html" %}
2+
{% load navigation_tags %}
3+
{% load authorization_tags %}
4+
{% block content %}
5+
{{ block.super }}
6+
<div class="row">
7+
<div class="col-md-12">
8+
<div class="panel panel-default">
9+
<div class="panel-heading tight">
10+
<h3 class="has-filters">
11+
CI/CD Infrastructure
12+
<div class="dropdown pull-right">
13+
{% if "dojo.add_cicdinfrastructure"|has_configuration_permission:request %}
14+
<button class="btn btn-primary dropdown-toggle" type="button" id="dropdownMenu1"
15+
data-toggle="dropdown" aria-expanded="true" aria-label="CI/CD infrastructure options">
16+
<span class="fa-solid fa-server"></span>
17+
<span class="caret"></span>
18+
</button>
19+
<ul class="dropdown-menu dropdown-menu-right" role="menu"
20+
aria-labelledby="dropdownMenu1">
21+
<li role="presentation">
22+
<a href="{% url 'add_cicd_infrastructure' %}">
23+
<i class="fa-solid fa-plus"></i> Add CI/CD Infrastructure
24+
</a>
25+
</li>
26+
</ul>
27+
{% endif %}
28+
</div>
29+
</h3>
30+
</div>
31+
</div>
32+
{% if confs %}
33+
<div class="panel panel-default table-responsive">
34+
<table id="cicd_infrastructure"
35+
class="tablesorter-bootstrap table table-condensed table-striped">
36+
<thead>
37+
<tr>
38+
<th>Name</th>
39+
<th>Description</th>
40+
<th>URL</th>
41+
<th>Type</th>
42+
<th>Actions</th>
43+
</tr>
44+
</thead>
45+
<tbody>
46+
{% for conf in confs %}
47+
<tr>
48+
<td>
49+
{% if "dojo.change_cicdinfrastructure"|has_configuration_permission:request %}
50+
<a href="{% url 'edit_cicd_infrastructure' conf.id %}"><b>{{ conf.name }}</b></a>
51+
{% else %}
52+
{{ conf.name }}
53+
{% endif %}
54+
</td>
55+
<td>
56+
{% if conf.description %}{{ conf.description }}{% endif %}
57+
</td>
58+
<td>
59+
{% if conf.url %}{{ conf.url }}{% endif %}
60+
</td>
61+
<td>
62+
{{ conf.get_infrastructure_type_display }}
63+
</td>
64+
<td>
65+
{% if "dojo.delete_cicdinfrastructure"|has_configuration_permission:request %}
66+
<a href="{% url 'delete_cicd_infrastructure' conf.id %}" class="btn btn-xs" title="Delete">
67+
<i class="fa-solid fa-trash"></i>
68+
</a>
69+
{% endif %}
70+
</td>
71+
</tr>
72+
{% endfor %}
73+
</tbody>
74+
</table>
75+
</div>
76+
{% else %}
77+
<p class="text-center">No CI/CD infrastructure found.</p>
78+
{% endif %}
79+
</div>
80+
</div>
81+
{% endblock %}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{% extends "base.html" %}
2+
{% block content %}
3+
{{ block.super }}
4+
<h3>Delete CI/CD Infrastructure</h3>
5+
<p>Are you sure you want to delete <b>{{ conf.name }}</b>?</p>
6+
<p>Any engagements referencing this infrastructure will have the reference cleared.</p>
7+
<form method="post">{% csrf_token %}
8+
<div class="form-group">
9+
<a href="{% url 'cicd_infrastructure' %}" class="btn btn-default">Cancel</a>
10+
<input class="btn btn-danger" type="submit" value="Delete"/>
11+
</div>
12+
</form>
13+
{% endblock %}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{% extends "base.html" %}
2+
{% block content %}
3+
{{ block.super }}
4+
<h3>Edit CI/CD Infrastructure</h3>
5+
<form class="form-horizontal" method="post">{% csrf_token %}
6+
{% include "dojo/form_fields.html" with form=form %}
7+
<div class="form-group">
8+
<div class="col-sm-offset-2 col-sm-10">
9+
<input class="btn btn-primary" type="submit" value="Submit"/>
10+
</div>
11+
</div>
12+
</form>
13+
{% endblock %}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{% extends "base.html" %}
2+
{% block content %}
3+
{{ block.super }}
4+
<h3>Add CI/CD Infrastructure</h3>
5+
<form class="form-horizontal" action="{% url 'add_cicd_infrastructure' %}" method="post">{% csrf_token %}
6+
{% include "dojo/form_fields.html" with form=form %}
7+
<div class="form-group">
8+
<div class="col-sm-offset-2 col-sm-10">
9+
<input class="btn btn-primary" type="submit" value="Submit"/>
10+
</div>
11+
</div>
12+
</form>
13+
{% endblock %}

dojo/urls.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@
8686
from dojo.search.urls import urlpatterns as search_urls
8787
from dojo.sla_config.urls import urlpatterns as sla_urls
8888
from dojo.survey.urls import urlpatterns as survey_urls
89+
from dojo.cicd_infrastructure.urls import urlpatterns as cicd_infrastructure_urls
8990
from dojo.system_settings.urls import urlpatterns as system_settings_urls
9091
from dojo.test.urls import urlpatterns as test_urls
9192
from dojo.test_type.urls import urlpatterns as test_type_urls
@@ -193,6 +194,7 @@
193194
ur += tool_type_urls
194195
ur += tool_config_urls
195196
ur += tool_product_urls
197+
ur += cicd_infrastructure_urls
196198
ur += sla_urls
197199
ur += system_settings_urls
198200
ur += notifications_urls

0 commit comments

Comments
 (0)