예제 #1
0
def brokerEditProfileLogic(request):
    if (request.method != 'POST'):
        return err_GE002()

    old_url = None
    broker = request.role_user
    if broker.user.photo:
        old_url = broker.user.photo.name

    broker_form = BrokerForm(request.POST, instance=broker)
    if not broker_form.is_valid():
        return err_GE031(broker_form)

    user_form = BrokerUserForm(request.POST,
                               request.FILES,
                               instance=broker.user)
    if not user_form.is_valid():
        return err_GE031(user_form)

    broker_form.save()
    user_form.save()

    new_url = None
    if broker.user.photo:
        new_url = broker.user.photo.name
    ImageHelper.generate_image(old_url, new_url)

    return HttpJSONSuccessResponse()
예제 #2
0
def brokerEditProfileLogic(request):
	if (request.method != 'POST'):
		return err_GE002()

	old_url = None
	broker = request.role_user
	if broker.user.photo:
		old_url = broker.user.photo.name

	broker_form = BrokerForm(request.POST, instance=broker)
	if not broker_form.is_valid():
		return err_GE031(broker_form)

	user_form = BrokerUserForm(request.POST, request.FILES, instance=broker.user)
	if not user_form.is_valid():
		return err_GE031(user_form)

	broker_form.save()
	user_form.save()

	new_url = None
	if broker.user.photo:
		new_url = broker.user.photo.name
	ImageHelper.generate_image(old_url, new_url)

	return HttpJSONSuccessResponse()
예제 #3
0
def createBroker(request):
	if (request.method != 'POST'):
		return err_GE002()

	broker_form = CreateBrokerForm(request.POST)
	mhluser_form = CreateBrokerMHLUserForm(request.POST, request.FILES)
	if (not mhluser_form.is_valid()):
		return err_GE031(mhluser_form)
	if (not broker_form.is_valid()):
		return err_GE031(broker_form)

	createNewBroker(mhluser_form, broker_form, request.role_user)
	return HttpJSONSuccessResponse()
예제 #4
0
def createOfficeStaff(request):
	if (request.method != 'POST'):
		return err_GE002()

	staff_form = CreateOfficeStaffForm(request.POST)
	mhluser_form = CreateMHLUserForm(request.POST, request.FILES)
	if (not mhluser_form.is_valid()):
		return err_GE031(mhluser_form)
	if (not staff_form.is_valid()):
		return err_GE031(staff_form)

	createNewOfficeStaff(mhluser_form, staff_form, request.role_user)
	return HttpJSONSuccessResponse()
예제 #5
0
def providerEditProfileLogic(request):
    if (request.method != 'POST'):
        return err_GE002()
    provider = request.role_user
    phys = Physician.objects.filter(user=provider)
    if phys and len(phys):
        phys = phys[0]
    else:
        phys = None

    old_url = None
    if provider.photo:
        old_url = provider.photo.name
    provider_form = ProviderForm(data=request.POST,
                                 files=request.FILES,
                                 instance=provider)
    if (not provider_form.is_valid()):
        return err_GE031(provider_form)

    physician_form = None
    if (phys):
        physician_form = PhysicianForm(request.POST, instance=phys)
        if (not physician_form.is_valid()):
            return err_GE031(physician_form)

    provider = provider_form.save(commit=False)
    provider.lat = provider_form.cleaned_data['lat']
    provider.longit = provider_form.cleaned_data['longit']
    provider.licensure_states = provider_form.cleaned_data['licensure_states']
    #add by xlin in 20120611 for issue897 that add city, address, zip into database
    provider.address1 = provider_form.cleaned_data['address1']
    provider.address2 = provider_form.cleaned_data['address2']
    provider.city = provider_form.cleaned_data['city']
    provider.state = provider_form.cleaned_data['state']
    provider.zip = provider_form.cleaned_data['zip']
    provider.save()
    if (physician_form):
        physician_form.save()

    new_url = None
    if provider.photo:
        new_url = provider.photo.name

    #thumbnail creating code moved from here to save method of provider mode
    #use common method to generate
    ImageHelper.generate_image(old_url, new_url)

    return HttpJSONSuccessResponse()
예제 #6
0
def composeReferLogic(request, api_secret=None, ss=None):
    if (request.method != 'POST'):
        return err_GE002()

    form = MessageReferForm(request.POST, request.FILES)
    if (not form.is_valid()):
        return err_GE031(form)

    sender = request.user
    sender_role_user = request.role_user
    subject = u'Refer'
    body = form.cleaned_data['reason_of_refer']
    recipients = form.cleaned_data['user_recipients']
    attachments = []
    if ('attachments' in request.FILES):
        attachments = request.FILES.getlist('attachments')

    createNewMessage(request,
                     sender,
                     sender_role_user,
                     recipients,
                     body,
                     ccs=None,
                     subject=subject,
                     uploads=attachments,
                     file_data_list=None,
                     refer_data=form.cleaned_data,
                     api_secret=api_secret,
                     ss=ss)
    return HttpJSONSuccessResponse()
예제 #7
0
def changePasswordLogic(request):
    if (request.method != 'POST'):
        return err_GE002()
    form = ChangePasswordForm(request.mhluser, request.POST)
    if (not form.is_valid()):
        return err_GE031(form)
    change_pass_common(form, request)
    return HttpJSONSuccessResponse()
예제 #8
0
def providerEditProfileLogic(request):
	if (request.method != 'POST'):
		return err_GE002()
	provider = request.role_user
	phys = Physician.objects.filter(user=provider)
	if phys and len(phys):
		phys = phys[0]
	else:
		phys = None

	old_url = None
	if provider.photo:
		old_url = provider.photo.name
	provider_form = ProviderForm(data=request.POST, files=request.FILES, instance=provider)
	if (not provider_form.is_valid()):
		return err_GE031(provider_form)

	physician_form = None
	if (phys):
		physician_form = PhysicianForm(request.POST, instance=phys)
		if (not physician_form.is_valid()):
			return err_GE031(physician_form)
	
	provider = provider_form.save(commit=False)
	provider.lat = provider_form.cleaned_data['lat']
	provider.longit = provider_form.cleaned_data['longit']
	provider.licensure_states = provider_form.cleaned_data['licensure_states']
	#add by xlin in 20120611 for issue897 that add city, address, zip into database
	provider.address1 = provider_form.cleaned_data['address1']
	provider.address2 = provider_form.cleaned_data['address2']
	provider.city = provider_form.cleaned_data['city']
	provider.state = provider_form.cleaned_data['state']
	provider.zip = provider_form.cleaned_data['zip']
	provider.save()
	if (physician_form):
		physician_form.save()
	
	new_url = None
	if provider.photo:
		new_url = provider.photo.name
	
	#thumbnail creating code moved from here to save method of provider mode
	#use common method to generate
	ImageHelper.generate_image(old_url, new_url)

	return HttpJSONSuccessResponse()
예제 #9
0
def changePasswordLogic(request):
	if (request.method != 'POST'):
		return err_GE002()
	form = ChangePasswordForm(request.mhluser, request.POST)
	if (not form.is_valid()):
		return err_GE031(form)
	change_pass_common(form, request)
	return HttpJSONSuccessResponse()
예제 #10
0
def listTasksLogic(request):
	if (request.method != 'POST'):
		return err_GE002()
	form = TaskListForm(request.POST)
	if (not form.is_valid()):
		return err_GE031(form)

	data = getFollowUpList(form.cleaned_data, request.mhluser.id)
	return HttpJSONSuccessResponse(data=data)
예제 #11
0
def practiceSearch(request):
	if (request.method != 'POST'):
		return err_GE002()
	form = PracticeSearchForm(request.POST)
	if (not form.is_valid()):
		return err_GE031(form)

	data = getPracticeList(form.cleaned_data, org_type_id=RESERVED_ORGANIZATION_TYPE_ID_PRACTICE)
	return HttpJSONSuccessResponse(data=data)
예제 #12
0
def createProvider(request):
	if (request.method != 'POST'):
		return err_GE002()
	form = CreateProviderForm(request.POST)
	if (not form.is_valid()):
		return err_GE031(form)

	createNewProvider(form, request.role_user)
	return HttpJSONSuccessResponse()
예제 #13
0
def smartPhoneCallLogic(request, *args, **kwargs):
	if (request.method != 'POST'):
		return err_GE002()
	if (not request.mhluser.mobile_phone):
		return err_TE005()
	called_number = ''
	called_mhluser = None
	form = USNumberForm(request.POST)
	if(not form.is_valid()):
		return err_GE031(form)

	if('user_id' in kwargs):
		user_id = kwargs['user_id']
		called_mhluser = MHLUser.objects.filter(pk=user_id)
		if (not called_mhluser):
			return err_GE010()
	
		called_mhluser = called_mhluser[0]
	
		if (not called_mhluser.mobile_phone):
			return err_TE005()
		called_number = called_mhluser.mobile_phone
	if('practice_id' in kwargs):
		practice_id = kwargs['practice_id']
		called_practice = PracticeLocation.objects.filter(id=practice_id)
		if not called_practice:
			return err_GE010()

		called_number = called_practice[0].practice_phone
		if called_practice[0].backline_phone:
			called_number = called_practice[0].backline_phone

		if (not called_number):
			return err_TE006()
	elif('number' in request.POST):
		called_number = form.cleaned_data['number']
	elif('number' in kwargs):
		called_number = kwargs['number']
	if not called_mhluser and not called_number:
		return err_TE003()

	log = Click2Call_Log()
	log.caller = request.mhluser
	log.called_user = called_mhluser
	log.called_number = called_number
	log.caller_number = form.cleaned_data['caller_number']
	role_user = request.role_user
	if role_user and hasattr(role_user, "current_site") and role_user.current_site:
		log.current_site = role_user.current_site
	log.source = 'APP'
	log.save()

	data = {
		'number': ''.join(['+1',str(settings.TWILIO_C2C_NUMBER)])
	}

	return HttpJSONSuccessResponse(data=data)
예제 #14
0
def searchStaff(request):
	if (request.method != 'POST'):
		return err_GE002()
	form = StaffSearchForm(request.POST)
	if (not form.is_valid()):
		return err_GE031(form)

	data = getStaffList(form.cleaned_data)
	return HttpJSONSuccessResponse(data=data)
예제 #15
0
def siteSearch(request):
	if (request.method != 'POST'):
		return err_GE002()
	form = SiteSearchForm(request.POST)
	if (not form.is_valid()):
		return err_GE031(form)

	data = getSiteList(form.cleaned_data)
	return HttpJSONSuccessResponse(data=data)
예제 #16
0
def updateTaskLogic(request, task_id):
	if (request.method != 'POST'):
		return err_GE002()
	form = UpdateTaskForm(request.POST)
	if (not form.is_valid()):
		return err_GE031(form)

	updateFollowUp(form.cleaned_data, task_id, request.mhluser.id)
	return HttpJSONSuccessResponse()
예제 #17
0
def newTaskLogic(request):
	if (request.method != 'POST'):
		return err_GE002()
	form = NewTaskForm(request.POST)
	if (not form.is_valid()):
		return err_GE031(form)

	task = createFollowUp(form.cleaned_data, request.mhluser.id)
	data = {'id': task.id}
	return HttpJSONSuccessResponse(data=data)
예제 #18
0
def practiceManageLogic(request):
    user_type = int(request.user_type)
    role_user = request.role_user
    if (request.method != 'POST'):
        # Get the user's current practices, and list them.
        practices = role_user.practices.filter(\
          organization_type__id=RESERVED_ORGANIZATION_TYPE_ID_PRACTICE)
        if USER_TYPE_OFFICE_MANAGER == user_type:
            practices = get_managed_practice(role_user)

        practices = [[p.id, p.practice_name] for p in practices]
        current_practice = role_user.current_practice
        if ('pk' in dir(current_practice)):
            current_practice = current_practice.pk
            data = {
                'practices': practices,
                'current_practice': current_practice,
            }
        return HttpJSONSuccessResponse(data=data)

    # office staff can't change current practice
    if USER_TYPE_OFFICE_STAFF == user_type:
        return err403(request)

    form = SetPracticeForm(request.POST, user_type=user_type)
    if (not form.is_valid()):
        return err_GE031(form)

    new_practice = form.cleaned_data['current_practice']
    if (new_practice == None):
        # Clearing the current practice.
        role_user.current_practice = None
        role_user.save()
        data = {
            'providers': [],
            'staff': [],
        }
        return HttpJSONSuccessResponse(data=data)
    if (new_practice in role_user.practices.values_list('id', flat=True)):
        # great, do the change.
        role_user.current_practice_id = new_practice
        role_user.save()
        data = {
            'providers': getPracticeProviders(new_practice)['users'],
            'staff': getPracticeStaff(new_practice)['users'],
        }
        return HttpJSONSuccessResponse(data=data)

    err_obj = {
        'errno': 'AM001',
        'descr': _('Invalid practice selection.'),
    }
    return HttpResponseBadRequest(content=json.dumps(err_obj),
                                  mimetype='application/json')
예제 #19
0
def practiceManageLogic(request):
	user_type = int(request.user_type)
	role_user = request.role_user
	if (request.method != 'POST'):
		# Get the user's current practices, and list them.
		practices = role_user.practices.filter(\
				organization_type__id=RESERVED_ORGANIZATION_TYPE_ID_PRACTICE)
		if USER_TYPE_OFFICE_MANAGER == user_type:
			practices = get_managed_practice(role_user)

		practices = [[p.id, p.practice_name] for p in practices]
		current_practice = role_user.current_practice
		if ('pk' in dir(current_practice)):
			current_practice = current_practice.pk
			data = {
					'practices':practices,
					'current_practice':current_practice,
				}
		return HttpJSONSuccessResponse(data=data)

	# office staff can't change current practice
	if USER_TYPE_OFFICE_STAFF == user_type:
		return err403(request)

	form = SetPracticeForm(request.POST, user_type=user_type)
	if (not form.is_valid()):
		return err_GE031(form)
	
	new_practice = form.cleaned_data['current_practice']
	if (new_practice == None):
		# Clearing the current practice.
		role_user.current_practice = None
		role_user.save()
		data = {
				'providers': [],
				'staff': [],
			}
		return HttpJSONSuccessResponse(data=data)
	if (new_practice in role_user.practices.values_list('id', flat=True)):
		# great, do the change.
		role_user.current_practice_id = new_practice
		role_user.save()
		data = {
				'providers': getPracticeProviders(new_practice)['users'],
				'staff': getPracticeStaff(new_practice)['users'],
			}
		return HttpJSONSuccessResponse(data=data)
	
	err_obj = {
		'errno': 'AM001',
		'descr': _('Invalid practice selection.'),
	}
	return HttpResponseBadRequest(content=json.dumps(err_obj), mimetype='application/json')
예제 #20
0
def updateMobilePhoneLogic(request):
	if (request.method != 'POST'):
		return err_GE002()
	form = UpdateMobileForm(request.POST)
	if (not form.is_valid()):
		return err_GE031(form)
	mhluser_id = request.mhluser.id
	mobile_phone = form.cleaned_data["mobile_phone"]
	if has_mhluser_with_mobile_phone(mobile_phone, mhluser_id): 
		return err_AM020()

	MHLUser.objects.filter(id=mhluser_id).update(mobile_phone=mobile_phone)
	return HttpJSONSuccessResponse()
예제 #21
0
def updateMobilePhoneLogic(request):
    if (request.method != 'POST'):
        return err_GE002()
    form = UpdateMobileForm(request.POST)
    if (not form.is_valid()):
        return err_GE031(form)
    mhluser_id = request.mhluser.id
    mobile_phone = form.cleaned_data["mobile_phone"]
    if has_mhluser_with_mobile_phone(mobile_phone, mhluser_id):
        return err_AM020()

    MHLUser.objects.filter(id=mhluser_id).update(mobile_phone=mobile_phone)
    return HttpJSONSuccessResponse()
예제 #22
0
def markMessageLogic(request, read_flag=True):
    if (request.method != 'POST'):
        return err_GE002()
    form = MsgBatchIDForm(request.POST)
    if (not form.is_valid()):
        return err_GE031(form)
    read_timestamp = 0
    if read_flag:
        read_timestamp = int(time.time())
    message_ids = form.cleaned_data['message_ids']
    MessageBodyUserStatus.objects.filter(user=request.user,
     read_flag=not read_flag, msg_body__message__uuid__in=message_ids).\
      update(read_flag=read_flag, read_timestamp=read_timestamp)
    return HttpJSONSuccessResponse()
예제 #23
0
def markMessageLogic(request, read_flag=True):
	if (request.method != 'POST'):
		return err_GE002()
	form = MsgBatchIDForm(request.POST)
	if (not form.is_valid()):
		return err_GE031(form)
	read_timestamp = 0
	if read_flag:
		read_timestamp = int(time.time())
	message_ids = form.cleaned_data['message_ids']
	MessageBodyUserStatus.objects.filter(user=request.user, 
		read_flag=not read_flag, msg_body__message__uuid__in=message_ids).\
			update(read_flag=read_flag, read_timestamp=read_timestamp)
	return HttpJSONSuccessResponse()
예제 #24
0
def getReferPDFLogic(request, refer_id, ss=None):
    """
	get_refer_pdf

	:param request: Request info
	:type request: django.core.handlers.wsgi.WSGIRequest
	:param refer_id: referall id
	:type refer_id: uuid
	:returns: django.http.HttpResponse -- the result in an HttpResonse object
	"""
    if (request.method != 'POST'):
        return err_GE002()
    form = MsgGetForm(request.POST)
    if (not form.is_valid()):
        return err_GE031(form)

    refer = get_object_or_404(MessageRefer, uuid=refer_id)

    message = refer.message
    if ((message.sender and request.user.pk != message.sender.pk) and
            not ((request.user.pk, ) in message.recipients.values_list('id') or
                 (request.user.pk, ) in message.ccs.values_list('id'))):
        return err403(
            request,
            err_msg=_("You don't seem to be a valid recipient for this file."))

    # special for mobile app api
    # Get/set up data for KMS.
    request.session['key'] = request.device_assn.secret
    try:
        clearkey = decrypt_cipherkey(request, refer, ss=ss)
    except KeyInvalidException:
        return err_GE021()

    try:
        response = refer.get_file(request, key=clearkey)
        return response
    except Exception as e:
        err_email_body = '\n'.join([
            ('PDF file not exist!'),
            ''.join(['Server: ', settings.SERVER_ADDRESS]),
            ''.join(['Session: ',
                     str(request.session.session_key)]),
            ''.join(['Message: ', (u'PDF file not exist in media/refer/pdf')]),
            ''.join(['Exception: ', str(e)]),
            ''.join(['Exception data: ', str(e.args)]),
        ])
        mail_admins(_('PDF folder not exist'), err_email_body)
        raise Exception(
            _('A seemingly invalid URL has been stored for Refer Pdf.'))
예제 #25
0
def officeStaffEditProfileLogic(request):
	if (request.method != 'POST'):
		return err_GE002()

	staff = request.role_user
	old_url = None
	if staff.user.photo:
		old_url = staff.user.photo.name

	staff_form = OfficeStaffForm(request.POST, instance=staff)
	if not staff_form.is_valid():
		return err_GE031(staff_form)

	user_form = UserForm(request.POST, request.FILES, instance=staff.user)
	if not user_form.is_valid():
		return err_GE031(user_form)

	user_form.save(commit=False)
	staff_form.save()
	new_url = None
	if staff.user.photo:
		new_url = staff.user.photo.name
	ImageHelper.generate_image(old_url, new_url)
	return HttpJSONSuccessResponse()
예제 #26
0
def officeStaffEditProfileLogic(request):
    if (request.method != 'POST'):
        return err_GE002()

    staff = request.role_user
    old_url = None
    if staff.user.photo:
        old_url = staff.user.photo.name

    staff_form = OfficeStaffForm(request.POST, instance=staff)
    if not staff_form.is_valid():
        return err_GE031(staff_form)

    user_form = UserForm(request.POST, request.FILES, instance=staff.user)
    if not user_form.is_valid():
        return err_GE031(user_form)

    user_form.save(commit=False)
    staff_form.save()
    new_url = None
    if staff.user.photo:
        new_url = staff.user.photo.name
    ImageHelper.generate_image(old_url, new_url)
    return HttpJSONSuccessResponse()
예제 #27
0
def siteManageLogic(request):
    user = request.role_user
    if (request.method != 'POST'):
        # Get the user's current practices, and list them.
        sites = user.sites.values('id', 'name')
        sites = [[s['id'], s['name']] for s in sites]
        current_site = user.current_site
        if ('pk' in dir(current_site)):
            current_site = current_site.pk
            data = {
                'sites': sites,
                'current_site': current_site,
            }
        return HttpJSONSuccessResponse(data=data)

    form = SetSiteForm(request.POST)
    if (not form.is_valid()):
        return err_GE031(form)

    new_site = form.cleaned_data['current_site']
    if (new_site == None):
        # Clearing the current site.
        user.current_site = None
        user.save()
        data = {
            'providers': [],
            'staff': [],
            'med_students': [],
        }
        return HttpJSONSuccessResponse(data=data)
    if (new_site in user.sites.values_list('id', flat=True)):
        # great, do the change.
        user.current_site_id = new_site
        user.save()
        data = {
            'med_students': getSiteStudents(new_site)['users'],
            'providers': getSiteProviders(new_site)['users'],
            'staff': getSiteStaff(new_site)['users'],
        }
        return HttpJSONSuccessResponse(data=data)

    err_obj = {
        'errno': 'AM001',
        'descr': _('Invalid site selection.'),
    }
    return HttpResponseBadRequest(content=json.dumps(err_obj),
                                  mimetype='application/json')
예제 #28
0
def siteManageLogic(request):
	user = request.role_user
	if (request.method != 'POST'):
		# Get the user's current practices, and list them.
		sites = user.sites.values('id', 'name')
		sites = [[s['id'], s['name']] for s in sites]
		current_site = user.current_site
		if ('pk' in dir(current_site)):
			current_site = current_site.pk
			data = {
					'sites':sites,
					'current_site':current_site,
				}
		return HttpJSONSuccessResponse(data=data)
	
	form = SetSiteForm(request.POST)
	if (not form.is_valid()):
		return err_GE031(form)
	
	new_site = form.cleaned_data['current_site']
	if (new_site == None):
		# Clearing the current site.
		user.current_site = None
		user.save()
		data = {
				'providers': [],
				'staff': [],
				'med_students': [],
			}
		return HttpJSONSuccessResponse(data=data)
	if (new_site in user.sites.values_list('id', flat=True)):
		# great, do the change.
		user.current_site_id = new_site
		user.save()
		data = {
				'med_students': getSiteStudents(new_site)['users'],
				'providers': getSiteProviders(new_site)['users'],
				'staff': getSiteStaff(new_site)['users'],
			}
		return HttpJSONSuccessResponse(data=data)
	
	err_obj = {
		'errno': 'AM001',
		'descr': _('Invalid site selection.'),
	}
	return HttpResponseBadRequest(content=json.dumps(err_obj), mimetype='application/json')
예제 #29
0
def getReferPDFLogic(request, refer_id, ss=None):
	"""
	get_refer_pdf

	:param request: Request info
	:type request: django.core.handlers.wsgi.WSGIRequest
	:param refer_id: referall id
	:type refer_id: uuid
	:returns: django.http.HttpResponse -- the result in an HttpResonse object
	"""
	if (request.method != 'POST'):
		return err_GE002()
	form = MsgGetForm(request.POST)
	if (not form.is_valid()):
		return err_GE031(form)

	refer = get_object_or_404(MessageRefer, uuid=refer_id)

	message = refer.message
	if ((message.sender and request.user.pk != message.sender.pk) and 
		not ((request.user.pk,) in message.recipients.values_list('id') or 
			(request.user.pk,) in message.ccs.values_list('id'))):
		return err403(request, err_msg=_("You don't seem to be a valid recipient for this file."))

	# special for mobile app api
	# Get/set up data for KMS.
	request.session['key'] = request.device_assn.secret
	try:
		clearkey = decrypt_cipherkey(request, refer, ss=ss)
	except KeyInvalidException:
		return err_GE021()

	try:
		response = refer.get_file(request, key=clearkey)
		return response
	except Exception as e: 
		err_email_body = '\n'.join([
				('PDF file not exist!'),
				''.join(['Server: ', settings.SERVER_ADDRESS]),
				''.join(['Session: ', str(request.session.session_key)]),
				''.join(['Message: ', (u'PDF file not exist in media/refer/pdf')]),
				''.join(['Exception: ', str(e)]),
				''.join(['Exception data: ', str(e.args)]),
			])
		mail_admins(_('PDF folder not exist'), err_email_body)
		raise Exception(_('A seemingly invalid URL has been stored for Refer Pdf.'))
예제 #30
0
def callFwdPrefsLogic(request):
    mhluser = request.mhluser
    role_user = request.role_user
    user_type = request.user_type
    if 100 == user_type:
        return err_DM020()

    if (request.method == 'GET'):
        choices = ['Voicemail']
        if (mhluser.mobile_phone):
            choices.append('Mobile')
        if (role_user.office_phone):
            choices.append('Office')
        if (mhluser.phone):
            choices.append('Other')

        data = {
            'choices': choices,
            'current': role_user.get_forward_voicemail_display()
        }
        return HttpJSONSuccessResponse(data=data)

    form = GetFwdPrefsForm(request.POST)
    if (not form.is_valid()):
        return err_GE031(form)

    choice = form.cleaned_data['forward']
    if (choice == 'Mobile'):
        if (not mhluser.mobile_phone):
            return _err_AM010()
        role_user.forward_voicemail = "MO"
    elif (choice == 'Office'):
        if (not role_user.office_phone):
            return _err_AM010()
        role_user.forward_voicemail = "OF"
    elif (choice == 'Other'):
        if (not mhluser.phone):
            return _err_AM010()
        role_user.forward_voicemail = "OT"
    else:
        role_user.forward_voicemail = "VM"

    role_user.save()
    return HttpJSONSuccessResponse()
예제 #31
0
def callFwdPrefsLogic(request):
	mhluser = request.mhluser
	role_user = request.role_user
	user_type = request.user_type
	if 100 == user_type:
		return err_DM020()

	if (request.method == 'GET'):
		choices = ['Voicemail']
		if (mhluser.mobile_phone):
			choices.append('Mobile')
		if (role_user.office_phone):
			choices.append('Office')
		if (mhluser.phone):
			choices.append('Other')
		
		data = {
				'choices': choices,
				'current': role_user.get_forward_voicemail_display()
			}
		return HttpJSONSuccessResponse(data=data)

	form = GetFwdPrefsForm(request.POST)
	if (not form.is_valid()):
		return err_GE031(form)

	choice = form.cleaned_data['forward']
	if (choice == 'Mobile'):
		if (not mhluser.mobile_phone):
			return _err_AM010()
		role_user.forward_voicemail = "MO"
	elif (choice == 'Office'):
		if (not role_user.office_phone):
			return _err_AM010()
		role_user.forward_voicemail = "OF"
	elif (choice == 'Other'):
		if (not mhluser.phone):
			return _err_AM010()
		role_user.forward_voicemail = "OT"
	else:
		role_user.forward_voicemail = "VM"

	role_user.save()
	return HttpJSONSuccessResponse()
예제 #32
0
def getReceivedMessagesLogic(request, return_python=False):
    """
	Gets a list of the received message headers.

	If return_python is true, this will just return the object that would have
	been converted to JSON format.
	"""

    if (request.method != 'POST'):
        return err_GE002()
    form = MsgListForm(request.POST)
    if (not form.is_valid()):
        return err_GE031(form)
    data = getReceivedMessageListData(request.user, form.cleaned_data)

    if (return_python):
        return {
            'data': data,
            'warnings': {},
        }
    return HttpJSONSuccessResponse(data=data)
예제 #33
0
def updateReferLogic(request, refer_id):
    """
	update_refer

	:param request: Recipient info
	:type request: django.core.handlers.wsgi.WSGIRequest
	:param refer_id: The refferal's id
	:type refer_id: uuid
	:returns: {
		'data': {},
		'warnings': {},
		}
	"""
    if (request.method != 'POST'):
        return err_GE002()
    form = ReferEditForm(request.POST)
    if (not form.is_valid()):
        return err_GE031(form)

    updateRefer(request, form, refer_id)
    return HttpJSONSuccessResponse()
예제 #34
0
def composeReferLogic(request, api_secret=None, ss=None):
	if (request.method != 'POST'):
		return err_GE002()

	form = MessageReferForm(request.POST, request.FILES)
	if (not form.is_valid()):
		return err_GE031(form)

	sender = request.user
	sender_role_user = request.role_user
	subject = u'Refer'
	body = form.cleaned_data['reason_of_refer']
	recipients = form.cleaned_data['user_recipients']
	attachments = []
	if ('attachments' in request.FILES):
		attachments = request.FILES.getlist('attachments')

	createNewMessage(request, sender, sender_role_user, recipients, body,
					ccs=None, subject=subject, uploads=attachments, file_data_list=None,
					refer_data=form.cleaned_data, api_secret=api_secret, ss=ss)
	return HttpJSONSuccessResponse()
예제 #35
0
def updateReferLogic(request, refer_id):
	"""
	update_refer

	:param request: Recipient info
	:type request: django.core.handlers.wsgi.WSGIRequest
	:param refer_id: The refferal's id
	:type refer_id: uuid
	:returns: {
		'data': {},
		'warnings': {},
		}
	"""
	if (request.method != 'POST'):
		return err_GE002()
	form = ReferEditForm(request.POST)
	if (not form.is_valid()):
		return err_GE031(form)

	updateRefer(request, form, refer_id)
	return HttpJSONSuccessResponse()
예제 #36
0
def getReceivedMessagesLogic(request, return_python=False):
	"""
	Gets a list of the received message headers.

	If return_python is true, this will just return the object that would have
	been converted to JSON format.
	"""

	if (request.method != 'POST'):
		return err_GE002()
	form = MsgListForm(request.POST)
	if (not form.is_valid()):
		return err_GE031(form)
	data = getReceivedMessageListData(request.user, form.cleaned_data)

	if (return_python):
		return {
			'data': data,
			'warnings': {},
		}
	return HttpJSONSuccessResponse(data=data)
예제 #37
0
def pageUserLogic(request, user_id):
	if (request.method != 'POST'):
		return err_GE002()
	form = PagerNumberForm(request.POST)
	if (not form.is_valid()):
		return err_GE031(form)
	
	if (not MHLUser.objects.filter(pk=user_id).exists()):
		return err_GE010()
	
	provider = None
	try:
		provider = Provider.objects.get(user=user_id)
	except Provider.DoesNotExist:
		# This is ok.
		pass
	
	office_staff = None
	try:
		office_staff = OfficeStaff.objects.get(user=user_id)
	except OfficeStaff.DoesNotExist:
		# this is okay.
		pass
	
	paged = None # The user getting paged.
	if (provider):
		paged = provider
		if (not provider.pager):
			return err_TE002()
	elif (office_staff):
		paged = office_staff
		if (not office_staff.pager):
			return err_TE002()
	else:
		# Error! User doesn't appear to be a provider or an office staffer.
		return err_GE010()
	
	send_page(request.mhluser, paged, form.cleaned_data['number'])
	return HttpJSONSuccessResponse()
예제 #38
0
def composeMessageLogic(request, recipients_together=True, ss=None):
	if (request.method != 'POST'):
		return err_GE002()
	form = MsgCompositionForm(request.POST)
	if (not form.is_valid()):
		return err_GE031(form)

	sender = request.user
	sender_role_user = request.role_user
	subject = form.cleaned_data['subject']
	body = form.cleaned_data['body']
	recipients = []
	form.cleaned_data['recipients']
	if 'recipients' in form.cleaned_data and len(form.cleaned_data['recipients']) > 0:
		recipients = form.cleaned_data['recipients']

	elif 'practice_recipients' in form.cleaned_data and \
			len(form.cleaned_data['practice_recipients']) > 0:
		recipients = form.cleaned_data['practice_recipients']

	ccs = []
	if 'ccs' in form.cleaned_data and len(form.cleaned_data['ccs']) > 0:
		ccs = form.cleaned_data['ccs']

	attachments = []
	if ('attachment' in request.FILES):
		attachments = request.FILES.getlist('attachment')

	attachment_count = len(attachments)
	if not sendMessageCheck(sender, attachment_count, recipients, ccs):
		return HttpJSONErrorResponse(errno='MS002')
	exist_attchments = None
	if 'message_id' in form.cleaned_data and form.cleaned_data['message_id']\
		and 'attachment_ids' in form.cleaned_data and \
			len(form.cleaned_data['attachment_ids']) > 0:
		exist_attchments = {
				"message_id": form.cleaned_data['message_id'],
				"attachment_ids": form.cleaned_data['attachment_ids']
			}
	exist_refer = None
	if 'message_id' in form.cleaned_data and form.cleaned_data['message_id'] \
		and 'refer_id' in form.cleaned_data and form.cleaned_data['refer_id']:
		exist_refer = {
				"message_id": form.cleaned_data['message_id'],
				"refer_id": form.cleaned_data['refer_id']
			}

	thread_uuid = None
	if 'thread_uuid' in form.cleaned_data and form.cleaned_data['thread_uuid']:
		thread_uuid = form.cleaned_data['thread_uuid']

	if recipients_together:
		createNewMessage(request, sender, sender_role_user, recipients, body,
					ccs=ccs, subject=subject, uploads=attachments,
					exist_attchments=exist_attchments,
					exist_refer=exist_refer, thread_uuid=thread_uuid, ss=ss)
	else:
		createNewADS(request, sender, sender_role_user, recipients, body,
					subject=subject, uploads=attachments)

	return HttpJSONSuccessResponse()
예제 #39
0
def composeMessageLogic(request, recipients_together=True, ss=None):
    if (request.method != 'POST'):
        return err_GE002()
    form = MsgCompositionForm(request.POST)
    if (not form.is_valid()):
        return err_GE031(form)

    sender = request.user
    sender_role_user = request.role_user
    subject = form.cleaned_data['subject']
    body = form.cleaned_data['body']
    recipients = []
    form.cleaned_data['recipients']
    if 'recipients' in form.cleaned_data and len(
            form.cleaned_data['recipients']) > 0:
        recipients = form.cleaned_data['recipients']

    elif 'practice_recipients' in form.cleaned_data and \
      len(form.cleaned_data['practice_recipients']) > 0:
        recipients = form.cleaned_data['practice_recipients']

    ccs = []
    if 'ccs' in form.cleaned_data and len(form.cleaned_data['ccs']) > 0:
        ccs = form.cleaned_data['ccs']

    attachments = []
    if ('attachment' in request.FILES):
        attachments = request.FILES.getlist('attachment')

    attachment_count = len(attachments)
    if not sendMessageCheck(sender, attachment_count, recipients, ccs):
        return HttpJSONErrorResponse(errno='MS002')
    exist_attchments = None
    if 'message_id' in form.cleaned_data and form.cleaned_data['message_id']\
     and 'attachment_ids' in form.cleaned_data and \
      len(form.cleaned_data['attachment_ids']) > 0:
        exist_attchments = {
            "message_id": form.cleaned_data['message_id'],
            "attachment_ids": form.cleaned_data['attachment_ids']
        }
    exist_refer = None
    if 'message_id' in form.cleaned_data and form.cleaned_data['message_id'] \
     and 'refer_id' in form.cleaned_data and form.cleaned_data['refer_id']:
        exist_refer = {
            "message_id": form.cleaned_data['message_id'],
            "refer_id": form.cleaned_data['refer_id']
        }

    thread_uuid = None
    if 'thread_uuid' in form.cleaned_data and form.cleaned_data['thread_uuid']:
        thread_uuid = form.cleaned_data['thread_uuid']

    if recipients_together:
        createNewMessage(request,
                         sender,
                         sender_role_user,
                         recipients,
                         body,
                         ccs=ccs,
                         subject=subject,
                         uploads=attachments,
                         exist_attchments=exist_attchments,
                         exist_refer=exist_refer,
                         thread_uuid=thread_uuid,
                         ss=ss)
    else:
        createNewADS(request,
                     sender,
                     sender_role_user,
                     recipients,
                     body,
                     subject=subject,
                     uploads=attachments)

    return HttpJSONSuccessResponse()