diff --git a/hc/front/tests/test_add_whatsapp.py b/hc/front/tests/test_add_whatsapp.py index 8c5dbd1f..d6885da1 100644 --- a/hc/front/tests/test_add_whatsapp.py +++ b/hc/front/tests/test_add_whatsapp.py @@ -12,7 +12,9 @@ TEST_CREDENTIALS = { @override_settings(**TEST_CREDENTIALS) 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): 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") r = self.client.post(self.url, form) - self.assertRedirects(r, "/integrations/") + self.assertRedirects(r, self.channels_url) c = Channel.objects.get() self.assertEqual(c.kind, "whatsapp") @@ -53,7 +55,7 @@ class AddWhatsAppTestCase(BaseTestCase): self.client.login(username="alice@example.org", password="password") r = self.client.post(self.url, form) - self.assertRedirects(r, "/integrations/") + self.assertRedirects(r, self.channels_url) c = Channel.objects.get() self.assertEqual(c.kind, "whatsapp") diff --git a/hc/front/urls.py b/hc/front/urls.py index 62c38e08..dd47097f 100644 --- a/hc/front/urls.py +++ b/hc/front/urls.py @@ -35,7 +35,6 @@ channel_urls = [ path("add_pushover/", views.add_pushover, name="hc-add-pushover"), path("telegram/bot/", views.telegram_bot, name="hc-telegram-webhook"), 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/settings/", views.trello_settings, name="hc-trello-settings"), 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_victorops/", views.add_victorops, name="hc-add-victorops"), 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("checks/", views.my_checks, name="hc-checks"), path("checks/add/", views.add_check, name="hc-add-check"), diff --git a/hc/front/views.py b/hc/front/views.py index d2e9f0b6..9bcba646 100644 --- a/hc/front/views.py +++ b/hc/front/views.py @@ -1401,14 +1401,15 @@ def add_sms(request, code): @login_required -def add_whatsapp(request): +def add_whatsapp(request, code): if not settings.TWILIO_USE_WHATSAPP: raise Http404("whatsapp integration is not available") + project = _get_project_for_user(request, code) if request.method == "POST": form = AddSmsForm(request.POST) if form.is_valid(): - channel = Channel(project=request.project, kind="whatsapp") + channel = Channel(project=project, kind="whatsapp") channel.name = form.cleaned_data["label"] channel.value = json.dumps( { @@ -1420,15 +1421,15 @@ def add_whatsapp(request): channel.save() channel.assign_all_checks() - return redirect("hc-channels") + return redirect("hc-p-channels", project.code) else: form = AddSmsForm() ctx = { "page": "channels", - "project": request.project, + "project": project, "form": form, - "profile": request.project.owner_profile, + "profile": project.owner_profile, } return render(request, "integrations/add_whatsapp.html", ctx) diff --git a/templates/front/channels.html b/templates/front/channels.html index 00aee543..6133c095 100644 --- a/templates/front/channels.html +++ b/templates/front/channels.html @@ -391,7 +391,7 @@

WhatsApp

Get a WhatsApp message when a check goes up or down.

- Add Integration + Add Integration {% endif %} diff --git a/templates/integrations/add_whatsapp.html b/templates/integrations/add_whatsapp.html index 767390a2..58f8f11f 100644 --- a/templates/integrations/add_whatsapp.html +++ b/templates/integrations/add_whatsapp.html @@ -24,7 +24,7 @@

Integration Settings

-
+ {% csrf_token %}