Project code in URL for the "Add Pagertree" page. cc: #336

This commit is contained in:
Pēteris Caune 2020-02-21 15:18:15 +02:00
parent 1f950feee1
commit 5fb5b05f2e
No known key found for this signature in database
GPG Key ID: E28D7679E9A9EDE2
5 changed files with 13 additions and 9 deletions

View File

@ -3,7 +3,9 @@ from hc.test import BaseTestCase
class AddPagerTreeTestCase(BaseTestCase): class AddPagerTreeTestCase(BaseTestCase):
url = "/integrations/add_pagertree/" def setUp(self):
super(AddPagerTreeTestCase, self).setUp()
self.url = "/projects/%s/add_pagertree/" % self.project.code
def test_instructions_work(self): def test_instructions_work(self):
self.client.login(username="alice@example.org", password="password") self.client.login(username="alice@example.org", password="password")
@ -15,7 +17,7 @@ class AddPagerTreeTestCase(BaseTestCase):
self.client.login(username="alice@example.org", password="password") self.client.login(username="alice@example.org", password="password")
r = self.client.post(self.url, form) r = self.client.post(self.url, form)
self.assertRedirects(r, "/integrations/") self.assertRedirects(r, self.channels_url)
c = Channel.objects.get() c = Channel.objects.get()
self.assertEqual(c.kind, "pagertree") self.assertEqual(c.kind, "pagertree")

View File

@ -28,7 +28,6 @@ channel_urls = [
path("add_pd/", views.add_pd, name="hc-add-pd"), path("add_pd/", views.add_pd, name="hc-add-pd"),
path("add_pdc/", views.add_pdc, name="hc-add-pdc"), path("add_pdc/", views.add_pdc, name="hc-add-pdc"),
path("add_pdc/<str:state>/", views.add_pdc, name="hc-add-pdc-state"), path("add_pdc/<str:state>/", views.add_pdc, name="hc-add-pdc-state"),
path("add_pagertree/", views.add_pagertree, name="hc-add-pagertree"),
path("add_slack/", views.add_slack, name="hc-add-slack"), path("add_slack/", views.add_slack, name="hc-add-slack"),
path("add_slack_btn/", views.add_slack_btn, name="hc-add-slack-btn"), path("add_slack_btn/", views.add_slack_btn, name="hc-add-slack-btn"),
path("add_pushbullet/", views.add_pushbullet, name="hc-add-pushbullet"), path("add_pushbullet/", views.add_pushbullet, name="hc-add-pushbullet"),
@ -64,6 +63,7 @@ project_urls = [
path("add_msteams/", views.add_msteams, name="hc-add-msteams"), path("add_msteams/", views.add_msteams, name="hc-add-msteams"),
path("add_opsgenie/", views.add_opsgenie, name="hc-add-opsgenie"), path("add_opsgenie/", views.add_opsgenie, name="hc-add-opsgenie"),
path("add_pagerteam/", views.add_pagerteam, name="hc-add-pagerteam"), path("add_pagerteam/", views.add_pagerteam, name="hc-add-pagerteam"),
path("add_pagertree/", views.add_pagertree, name="hc-add-pagertree"),
path("add_webhook/", views.add_webhook, name="hc-add-webhook"), path("add_webhook/", views.add_webhook, name="hc-add-webhook"),
path("badges/", views.badges, name="hc-badges"), path("badges/", views.badges, name="hc-badges"),
path("checks/", views.my_checks, name="hc-checks"), path("checks/", views.my_checks, name="hc-checks"),

View File

@ -977,20 +977,22 @@ def add_pdc(request, state=None):
@login_required @login_required
def add_pagertree(request): def add_pagertree(request, code):
project = _get_project_for_user(request, code)
if request.method == "POST": if request.method == "POST":
form = AddUrlForm(request.POST) form = AddUrlForm(request.POST)
if form.is_valid(): if form.is_valid():
channel = Channel(project=request.project, kind="pagertree") channel = Channel(project=project, kind="pagertree")
channel.value = form.cleaned_data["value"] channel.value = form.cleaned_data["value"]
channel.save() channel.save()
channel.assign_all_checks() channel.assign_all_checks()
return redirect("hc-channels") return redirect("hc-p-channels", project.code)
else: else:
form = AddUrlForm() form = AddUrlForm()
ctx = {"page": "channels", "project": request.project, "form": form} ctx = {"page": "channels", "project": project, "form": form}
return render(request, "integrations/add_pagertree.html", ctx) return render(request, "integrations/add_pagertree.html", ctx)

View File

@ -288,7 +288,7 @@
<h2>PagerTree</h2> <h2>PagerTree</h2>
<p>DevOps Incident Management - On-Call Schedules, Alerts, &amp; Notifications</p> <p>DevOps Incident Management - On-Call Schedules, Alerts, &amp; Notifications</p>
<a href="{% url 'hc-add-pagertree' %}" class="btn btn-primary">Add Integration</a> <a href="{% url 'hc-add-pagertree' project.code %}" class="btn btn-primary">Add Integration</a>
</li> </li>
<li> <li>

View File

@ -72,7 +72,7 @@
<h2>Integration Settings</h2> <h2>Integration Settings</h2>
<form method="post" class="form-horizontal" action="{% url 'hc-add-pagertree' %}"> <form method="post" class="form-horizontal">
{% csrf_token %} {% csrf_token %}
<div class="form-group {{ form.value.css_classes }}"> <div class="form-group {{ form.value.css_classes }}">
<label for="post-url" class="col-sm-2 control-label">Endpoint</label> <label for="post-url" class="col-sm-2 control-label">Endpoint</label>