diff --git a/busManager/coord/templates/admin/settings_index.html b/busManager/coord/templates/admin/settings_index.html index ccdff9d..cb100da 100644 --- a/busManager/coord/templates/admin/settings_index.html +++ b/busManager/coord/templates/admin/settings_index.html @@ -2,6 +2,7 @@ {% block content %}
Run nightly task
+
Send SMS test message
Export
diff --git a/busManager/coord/templates/admin/sms_test_form.html b/busManager/coord/templates/admin/sms_test_form.html new file mode 100644 index 0000000..1d31638 --- /dev/null +++ b/busManager/coord/templates/admin/sms_test_form.html @@ -0,0 +1,10 @@ +{% extends "admin/base_site.html" %} + +{% block content %} +

SMS Test

+
+ {% csrf_token %} + {{ form.as_p }} + +
+{% endblock %} \ No newline at end of file diff --git a/busManager/coord/urls_settings.py b/busManager/coord/urls_settings.py index dd9732d..2929c6e 100644 --- a/busManager/coord/urls_settings.py +++ b/busManager/coord/urls_settings.py @@ -6,6 +6,7 @@ app_name = "settings" urlpatterns = [ path('rollover', views_settings.rollover, name='rollover'), path('nightly_task', views_settings.nightly_task, name='nightly_task'), + path('sms_test', views_settings.sms_test, name='sms_test'), path('export', views_settings.export, name='export'), path('', views_settings.settings, name='index'), ] diff --git a/busManager/coord/utils/send_sms.py b/busManager/coord/utils/send_sms.py index 84bbb01..0a515fe 100644 --- a/busManager/coord/utils/send_sms.py +++ b/busManager/coord/utils/send_sms.py @@ -145,3 +145,18 @@ def send_sms(send_sms_mixin, request, queryset): family_set = _family_context(queryset) return render(request, 'admin/sms_form.html', context={'form': form, 'items': family_set}) + + +class SMSTestForm(forms.Form): + phone_number = forms.CharField(label="Phone number", max_length=20) + message = forms.CharField(label="Message", max_length=160, widget=forms.Textarea) + + +def send_sms_test(request): + + if not settings.TELSTRA_AUTH: + return None + + if request.method == "POST": + _send_message(request.POST["phone_number"], request.POST["message"]) + return None diff --git a/busManager/coord/views_settings.py b/busManager/coord/views_settings.py index eb33be0..b9fc4eb 100644 --- a/busManager/coord/views_settings.py +++ b/busManager/coord/views_settings.py @@ -5,10 +5,11 @@ from django.contrib.admin.views.decorators import staff_member_required from django.http import HttpResponse from django.shortcuts import render, redirect -from coord.scheduled_tasks import nightly_check_active_status -from coord.utils.rollover import RolloverForm, execute_rollover +from .scheduled_tasks import nightly_check_active_status +from .utils.rollover import RolloverForm, execute_rollover -from coord.backup.backup_helpers import get_export_dict +from .backup.backup_helpers import get_export_dict +from .utils.send_sms import SMSTestForm, send_sms_test @staff_member_required @@ -28,6 +29,19 @@ def rollover(request): return render(request, 'admin/rollover_form.html', context={'form': form}) +@staff_member_required +def sms_test(request): + if request.method == 'POST': + form = SMSTestForm(request.POST) + if form.is_valid(): + send_sms_test(request) + return redirect('settings:index') + + else: + form = SMSTestForm() + return render(request, 'admin/sms_test_form.html', context={'form': form}) + + @staff_member_required def nightly_task(request): nightly_check_active_status()