def register(request): ''' Register a patient to the waitinglist of a medicine, i.e. a new subscription of the infoservice is created. ''' ajax_url= reverse('web_check_call_received') medicines = InfoService.objects.all().filter(type='medicine') ways_of_communication = get_ways_of_communication(immediate = True) if request.method == "POST": set_session_variables_for_register(request) infoservice = None form = None form = RegisterPatientForMedicineForm(request.POST) request.session['medicine'] = request.POST.get('medicine', '') if form.is_valid(): number = fill_authentication_session_variable(request) auth_number = AUTH_NUMBER backurl = reverse('web_index') return redirect_to_authentication_or( reverse('medicines_register_save', kwargs = {'medicine_id': request.session['medicine']})) else: logger.info("register patient for medicine: Invalid form.") backurl = reverse("web_index") return render_to_response('medicine/register.html', locals(), context_instance = RequestContext(request))
def create_notification(request, notification_type_name = None): ''' Display the form and creates a new notification, but does not save it yet. Redirect to authentication if switched on ''' notification_type = NotificationType.objects. \ filter(name = notification_type_name)[0] nexturl = "" backurl = reverse('web_index') ways_of_communication = get_ways_of_communication( notification_type.notify_immediately) if request.method == "POST": data = deepcopy(request.POST) if notification_type.notify_immediately: data['date'] = date.today().strftime('%Y-%m-%d') + \ ' ' + DEFAULT_SEND_TIME else: data['date'] = data.get('date', '') + ' ' + DEFAULT_SEND_TIME form = NotificationValidationForm(data) woc = get_woc_by_id( request.POST['way_of_communication'] ) if not woc.can_send_immediately: form = NotificationValidationFormBluetooth(data) if form.is_valid(): notification = Notification() patient = Patient() if woc.can_send_immediately: patient.phone_number = form.cleaned_data['phone_number'] notification.date = form.cleaned_data['date'] notification.notification_type = notification_type notification.hospital = Hospital.get_current_hospital() notification.way_of_communication = \ form.cleaned_data['way_of_communication'] request.session['notification'] = notification request.session['patient'] = patient logger.info("Create notification via %s" % notification.way_of_communication.verbose_name) if notification.way_of_communication == get_woc('bluetooth'): return HttpResponseRedirect(reverse("web_list_devices") + \ "?next=" + reverse("notifications_send")) elif notification.way_of_communication.name in ('sms', 'voice' ): return redirect_to_authentication_or( reverse("notifications_save")) else: logger.error("Unknown way of communication selected.") raise Exception ("Unknown way of communication %s " \ %notification.way_of_communication.\ verbose_name + "(this is neither " + \ "bluetooth nor sms or voice)") else: logger.info("create_notification: Invalid form.") return render_to_response('notifications/create.html', locals(), context_instance=RequestContext(request))