25ddf1edfa
Added settings page Cleaned up rollover page
40 lines
1.7 KiB
Python
40 lines
1.7 KiB
Python
from django.http import HttpResponseRedirect
|
|
from django import forms
|
|
from django.shortcuts import render
|
|
|
|
|
|
class SMSForm(forms.Form):
|
|
_selected_action = forms.CharField(widget=forms.MultipleHiddenInput)
|
|
send_to_parents = forms.BooleanField(required=False)
|
|
send_to_emergency_contacts = forms.BooleanField(required=False)
|
|
only_include_active_travellers = forms.BooleanField(initial=True, required=False)
|
|
message = forms.CharField(label="Message", max_length=320, widget=forms.Textarea)
|
|
|
|
|
|
def send_sms(send_sms_mixin, request, queryset):
|
|
if 'confirm' in request.POST:
|
|
message = request.POST["message"]
|
|
send_to_parents = False
|
|
if request.POST.get("send_to_parents"):
|
|
send_to_parents = True
|
|
send_to_emergency_contacts = False
|
|
if request.POST.get("send_to_emergency_contacts"):
|
|
send_to_emergency_contacts = True
|
|
only_include_active_travellers = False
|
|
if request.POST.get("only_include_active_travellers"):
|
|
only_include_active_travellers = True
|
|
total = 0
|
|
numbers = []
|
|
for traveller in queryset:
|
|
if only_include_active_travellers and not traveller._is_active():
|
|
continue
|
|
numbers.append(traveller.get_parsed_numbers(parents=send_to_parents, emergency=send_to_emergency_contacts))
|
|
|
|
len(numbers)
|
|
send_sms_mixin.message_user(request, f"SMS has been sent to {total} recipients")
|
|
return HttpResponseRedirect(request.get_full_path())
|
|
|
|
form = SMSForm(initial={'_selected_action': queryset.values_list('id', flat=True)})
|
|
|
|
return render(request, 'admin/sms_form.html', context={'form': form, 'items': queryset})
|