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

This commit is contained in:
Pēteris Caune 2020-02-21 15:33:42 +02:00
parent 9f5c133719
commit 056134f2de
No known key found for this signature in database
GPG Key ID: E28D7679E9A9EDE2
5 changed files with 14 additions and 11 deletions

View File

@ -12,7 +12,9 @@ TEST_CREDENTIALS = {
@override_settings(**TEST_CREDENTIALS) @override_settings(**TEST_CREDENTIALS)
class AddWhatsAppTestCase(BaseTestCase): class AddWhatsAppTestCase(BaseTestCase):
url = "/integrations/add_whatsapp/" def setUp(self):
super(AddWhatsAppTestCase, self).setUp()
self.url = "/projects/%s/add_whatsapp/" % 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")
@ -38,7 +40,7 @@ class AddWhatsAppTestCase(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, "whatsapp") self.assertEqual(c.kind, "whatsapp")
@ -53,7 +55,7 @@ class AddWhatsAppTestCase(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, "whatsapp") self.assertEqual(c.kind, "whatsapp")

View File

@ -35,7 +35,6 @@ channel_urls = [
path("add_pushover/", views.add_pushover, name="hc-add-pushover"), path("add_pushover/", views.add_pushover, name="hc-add-pushover"),
path("telegram/bot/", views.telegram_bot, name="hc-telegram-webhook"), path("telegram/bot/", views.telegram_bot, name="hc-telegram-webhook"),
path("add_telegram/", views.add_telegram, name="hc-add-telegram"), path("add_telegram/", views.add_telegram, name="hc-add-telegram"),
path("add_whatsapp/", views.add_whatsapp, name="hc-add-whatsapp"),
path("add_trello/", views.add_trello, name="hc-add-trello"), path("add_trello/", views.add_trello, name="hc-add-trello"),
path("add_trello/settings/", views.trello_settings, name="hc-trello-settings"), path("add_trello/settings/", views.trello_settings, name="hc-trello-settings"),
path("add_apprise/", views.add_apprise, name="hc-add-apprise"), path("add_apprise/", views.add_apprise, name="hc-add-apprise"),
@ -65,6 +64,7 @@ project_urls = [
path("add_sms/", views.add_sms, name="hc-add-sms"), path("add_sms/", views.add_sms, name="hc-add-sms"),
path("add_victorops/", views.add_victorops, name="hc-add-victorops"), path("add_victorops/", views.add_victorops, name="hc-add-victorops"),
path("add_webhook/", views.add_webhook, name="hc-add-webhook"), path("add_webhook/", views.add_webhook, name="hc-add-webhook"),
path("add_whatsapp/", views.add_whatsapp, name="hc-add-whatsapp"),
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"),
path("checks/add/", views.add_check, name="hc-add-check"), path("checks/add/", views.add_check, name="hc-add-check"),

View File

@ -1401,14 +1401,15 @@ def add_sms(request, code):
@login_required @login_required
def add_whatsapp(request): def add_whatsapp(request, code):
if not settings.TWILIO_USE_WHATSAPP: if not settings.TWILIO_USE_WHATSAPP:
raise Http404("whatsapp integration is not available") raise Http404("whatsapp integration is not available")
project = _get_project_for_user(request, code)
if request.method == "POST": if request.method == "POST":
form = AddSmsForm(request.POST) form = AddSmsForm(request.POST)
if form.is_valid(): if form.is_valid():
channel = Channel(project=request.project, kind="whatsapp") channel = Channel(project=project, kind="whatsapp")
channel.name = form.cleaned_data["label"] channel.name = form.cleaned_data["label"]
channel.value = json.dumps( channel.value = json.dumps(
{ {
@ -1420,15 +1421,15 @@ def add_whatsapp(request):
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 = AddSmsForm() form = AddSmsForm()
ctx = { ctx = {
"page": "channels", "page": "channels",
"project": request.project, "project": project,
"form": form, "form": form,
"profile": request.project.owner_profile, "profile": project.owner_profile,
} }
return render(request, "integrations/add_whatsapp.html", ctx) return render(request, "integrations/add_whatsapp.html", ctx)

View File

@ -391,7 +391,7 @@
<h2>WhatsApp</h2> <h2>WhatsApp</h2>
<p>Get a WhatsApp message when a check goes up or down.</p> <p>Get a WhatsApp message when a check goes up or down.</p>
<a href="{% url 'hc-add-whatsapp' %}" class="btn btn-primary">Add Integration</a> <a href="{% url 'hc-add-whatsapp' project.code %}" class="btn btn-primary">Add Integration</a>
</li> </li>
{% endif %} {% endif %}

View File

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