Esempio n. 1
0
def createNewBroker(mhluser_form, broker_form, current_user):
	if isinstance(mhluser_form, CreateBrokerMHLUserForm) and \
			isinstance(broker_form, CreateBrokerForm):
#		current_practice = current_user.current_practice
		mhluser = mhluser_form.save(commit=False)
		mhluser.is_active = 0
		mhluser.address1 = mhluser_form.cleaned_data['address1']
		mhluser.address2 = mhluser_form.cleaned_data['address2']
		mhluser.city = mhluser_form.cleaned_data['city']
		mhluser.state = mhluser_form.cleaned_data['state']
		mhluser.zip = mhluser_form.cleaned_data['zip']
		mhluser.lat = mhluser_form.cleaned_data['lat']
		mhluser.longit = mhluser_form.cleaned_data['longit']
		mhluser.save()

		broker = broker_form.save(commit=False)
		broker.user = mhluser
		broker.office_lat = 0.0 if not broker.office_lat else broker.office_lat
		broker.office_longit = 0.0 if not broker.office_longit else broker.office_longit
		broker.save()

		# TESTING_KMS_INTEGRATION
		create_default_keys(mhluser)

		# Generating the user's voicemail box configuration
		config = VMBox_Config(pin='')
		config.owner = broker
		config.save()

		sendAccountActiveCode(mhluser_form, 300, current_user)
	else:
		raise TypeError
Esempio n. 2
0
def member_provider_create(request):
	context = get_context_for_organization(request)
	current_practice = request.org

	if request.method == 'POST':
		provider_form = CreateProviderForm(data=request.POST, current_practice=current_practice)
		if provider_form.is_valid():
			provider = provider_form.save(commit=False)
			provider.lat = provider_form.cleaned_data['lat']
			provider.longit = provider_form.cleaned_data['longit']

			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.current_practice = get_practice_org(current_practice)
			provider.is_active = 0
			provider.office_lat = 0.0
			provider.office_longit = 0.0
			provider.save()

			provider.practices.add(current_practice)
			provider.user_id = provider.pk
			provider.save()

			user_type = int(provider_form.cleaned_data['user_type'])

			if USER_TYPE_DOCTOR == user_type:
				#Physician
				ph = Physician(user=provider)
				ph.save()
			elif USER_TYPE_NPPA == user_type:
				#NP/PA/Midwife
				np = NP_PA(user=provider)
				np.save()
			elif USER_TYPE_MEDICAL_STUDENT == user_type:
				ph = Physician(user=provider)
				ph.save()

			# TESTING_KMS_INTEGRATION
			create_default_keys(provider.user)

			# Generating the user's voicemail box configuration
			config = VMBox_Config(pin='')
			config.owner = provider
			config.save()

			sendAccountActiveCode(request, user_type, current_practice, 
				request.session["MHL_Users"]["MHLUser"])

		else:
			context['user_form'] = provider_form
			return render_to_response('MHLOrganization/Member/member_provider_create.html', context)

	provider_form = CreateProviderForm(current_practice=current_practice)
	context['user_form'] = provider_form
	return render_to_response('MHLOrganization/Member/member_provider_create.html', context)
Esempio n. 3
0
def createNewProvider(provider_form, current_user):
	if isinstance(provider_form, CreateProviderForm):
		current_practice = current_user.current_practice
		provider = provider_form.save(commit=False)
		provider.lat = provider_form.cleaned_data['lat']
		provider.longit = provider_form.cleaned_data['longit']

		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.current_practice = get_practice_org(current_practice)
		provider.is_active = 0
		provider.office_lat = 0.0 if not provider.office_lat else provider.office_lat
		provider.office_longit = 0.0 if not provider.office_longit else provider.office_longit
		provider.save()

		if current_practice:
			provider.practices.add(current_practice)
		provider.user_id = provider.pk
		provider.save()

		user_type = int(provider_form.cleaned_data['user_type'])

		if USER_TYPE_DOCTOR == user_type:
			#Physician
			ph = Physician(user=provider)
			ph.save()
		elif USER_TYPE_NPPA == user_type:
			#NP/PA/Midwife
			np = NP_PA(user=provider)
			np.save()
		elif USER_TYPE_MEDICAL_STUDENT == user_type:
			ph = Physician(user=provider)
			ph.save()

		# TESTING_KMS_INTEGRATION
		create_default_keys(provider.user)

		# Generating the user's voicemail box configuration
		config = VMBox_Config(pin='')
		config.owner = provider
		config.save()

		sendAccountActiveCode(provider_form, user_type, current_user)
	else:
		raise TypeError
Esempio n. 4
0
def create_user(username,
                first_name,
                last_name,
                password,
                addr="",
                city="",
                state="",
                zipcode="",
                uklass=MHLUser):
    user = uklass(username=username,
                  first_name=first_name,
                  last_name=last_name)
    user.address1 = addr
    user.city = city
    user.state = state
    user.zip = zipcode
    user.is_active = user.is_staff = user.tos_accepted = user.mobile_confirmed = True
    user.set_password(password)
    user.mobile_phone = random.randint(9001000000, 9009999999)

    if uklass == Administrator:
        user.is_superuser = True

    result = geocode2(user.address1, user.city, user.state, user.zip)
    user.lat = result['lat']
    user.longit = result['lng']

    if uklass != MHLUser:
        user.office_lat = 0.0
        user.office_longit = 0.0
    user.save()

    mhluser = user
    if uklass != MHLUser:
        user.user = MHLUser.objects.get(username=username)
        mhluser = MHLUser.objects.get(username=username)
        user.user = mhluser
        user.save()

    create_default_keys(mhluser)

    if uklass == Provider:
        # Generating the user's voicemail box configuration
        config = VMBox_Config(pin='')
        config.owner = user
        config.save()

    return user
Esempio n. 5
0
def create_user(username, first_name, last_name, password, 
			addr="", city="", state="", zipcode="", uklass=MHLUser):
	user = uklass(username=username, first_name=first_name, last_name=last_name)
	user.address1 = addr 
	user.city = city
	user.state = state
	user.zip = zipcode
	user.is_active = user.is_staff = user.tos_accepted = user.mobile_confirmed = True
	user.set_password(password)
	user.mobile_phone = random.randint(9001000000, 9009999999)

	if uklass == Administrator:
		user.is_superuser = True

	result = geocode2(user.address1, user.city, user.state, user.zip)
	user.lat = result['lat']
	user.longit = result['lng']

	if uklass != MHLUser:
		user.office_lat = 0.0
		user.office_longit = 0.0
	user.save()

	mhluser = user
	if uklass != MHLUser:
		user.user = MHLUser.objects.get(username=username)
		mhluser = MHLUser.objects.get(username=username)
		user.user = mhluser
		user.save()

	create_default_keys(mhluser)

	if uklass == Provider:
		# Generating the user's voicemail box configuration
		config = VMBox_Config(pin='')
		config.owner = user
		config.save()

	return user
Esempio n. 6
0
def generate_users(request):
	if (not settings.DEBUG):
		return HttpResponseRedirect(reverse('MHLogin.Administration.views.home'))
	context = get_context(request)
	if (request.method == 'GET'):
		context["form"] = GenerateUsersForm()
		return render_to_response('qa_tools/genereate_users.html', context)
	else:
		form = GenerateUsersForm(request.POST)
		if form.is_valid():
			current_practice = form.cleaned_data["practices"]
			user_type = int(form.cleaned_data["user_types"])
			number = int(form.cleaned_data["number"])
			user_name_start = form.cleaned_data["user_name_start"]
			generate_user = None
			for i in range(number):
				username = "******" % (user_name_start, i)
				first_name = "%s_f_%d" % (user_name_start, i)
				last_name = "%s_f_%d" % (user_name_start, i)
				email = "*****@*****.**" % (username)
				password = "******"
				if USER_TYPE_DOCTOR == user_type \
					or USER_TYPE_NPPA == user_type \
					or USER_TYPE_MEDICAL_STUDENT == user_type:
					provider = Provider(
						username=username,
						first_name=first_name,
						last_name=last_name,
						email=email,
						email_confirmed=True,
						lat=current_practice.practice_lat,
						longit=current_practice.practice_longit,

						address1=current_practice.practice_address1,
						address2=current_practice.practice_address2,
						city=current_practice.practice_city,
						state=current_practice.practice_state,
						zip=current_practice.practice_zip,

						current_practice=current_practice,
						is_active=1,
						office_lat=current_practice.practice_lat,
						office_longit=current_practice.practice_longit,

						mdcom_phone="8004664411"
					)
					provider.save()
					provider.set_password(password)

					provider.practices.add(current_practice)
					provider.user_id = provider.pk
					provider.save()

					if USER_TYPE_DOCTOR == user_type:
						#Physician
						ph = Physician(user=provider)
						ph.save()
					elif USER_TYPE_NPPA == user_type:
						#NP/PA/Midwife
						np = NP_PA(user=provider)
						np.save()
					elif USER_TYPE_MEDICAL_STUDENT == user_type:
						ph = Physician(user=provider)
						ph.save()

					create_default_keys(provider.user, password)
					# Generating the user's voicemail box configuration
					config = VMBox_Config(pin='')
					config.owner = provider
					config.save()
					generate_user = provider
				elif USER_TYPE_OFFICE_MANAGER == user_type \
					or USER_TYPE_NURSE == user_type \
					or USER_TYPE_DIETICIAN == user_type:
					mhluser = MHLUser(
						username = username,
						first_name = first_name,
						last_name = last_name,
						email = email,
						email_confirmed = True,

						is_active = 1,
						address1 = current_practice.practice_address1,
						address2 = current_practice.practice_address2,
						city = current_practice.practice_city,
						state = current_practice.practice_state,
						zip = current_practice.practice_zip,
						lat = current_practice.practice_lat,
						longit = current_practice.practice_longit
					)
					mhluser.save()
					mhluser.set_password(password)

					staff = OfficeStaff(
								user=mhluser,
								current_practice=current_practice
							)
					staff.user = mhluser
					staff.current_practice = current_practice
					staff.save()

					staff.practices.add(current_practice)
					staff.save()

					if USER_TYPE_OFFICE_MANAGER == user_type:
						manager = Office_Manager(user=staff, practice=current_practice)
						manager.save()
					if USER_TYPE_NURSE == user_type:
						nurse = Nurse(user=staff)
						nurse.save()
					elif USER_TYPE_DIETICIAN == user_type:
						dietician = Dietician(user=staff)
						dietician.save()
					generate_user = mhluser
				log_str = 'Generate user %d: for %s' % (i, str(generate_user))
				logger.debug(log_str)
				print log_str

			return render_to_response('qa_tools/genereate_users_success.html', context)
		else:
			context["form"] = form
			return render_to_response('qa_tools/genereate_users.html', context)
Esempio n. 7
0
def newProvider(request):
	context = get_context(request)
	office_staff = request.session['MHL_Users']['OfficeStaff']
	current_practice = office_staff.current_practice
	request.session['SELECTED_ORG_ID'] = current_practice.id
	showDialog = 0
	username = ""
	if request.method == 'POST':
		provider_form = CreateProviderForm(data=request.POST, current_practice=current_practice)
		if provider_form.is_valid():
			# todo, using function createNewProvider in /mdcom/MHLogin/MHLUsers/utils_users.py
			username = provider_form.cleaned_data['username']
			provider = provider_form.save(commit=False)
			provider.lat = provider_form.cleaned_data['lat']
			provider.longit = provider_form.cleaned_data['longit']

			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.current_practice = get_practice_org(current_practice)
			provider.is_active = 0
			provider.save()

			provider.practices.add(current_practice)
			provider.user_id = provider.pk
			provider.save()

			user_type = provider_form.cleaned_data['user_type']

			if '1' == user_type:
				#Physician
				ph = Physician(user=provider)
				ph.save()
			elif '2' == user_type:
				#NP/PA/Midwife
				np = NP_PA(user=provider)
				np.save()
			elif '10' == user_type:
				ph = Physician(user=provider)
				ph.save()

			# TESTING_KMS_INTEGRATION
			create_default_keys(provider.user)

			# Generating the user's voicemail box configuration
			config = VMBox_Config(pin='')
			config.owner = provider
			config.save()

			sendAccountActiveCode(request, user_type)

			showDialog = 1
		else:
			context['showDialog'] = showDialog
			context['user_form'] = provider_form
			return render_to_response('Staff/newProvider.html', context)

	context['username'] = username
	context['showDialog'] = showDialog
	context['user_form'] = CreateProviderForm(current_practice=current_practice)
	return render_to_response('Staff/newProvider.html', context)
Esempio n. 8
0
	def done(self, request, form_list):
		inviteForm = form_list[0]
		brokerForm = form_list[1]
		brokerInfo = form_list[2]

		invite = Invitation.objects.get(code=inviteForm.cleaned_data['code'], userType__in=(300,))
		geocode_response = geocode2(brokerInfo.cleaned_data['address1'], \
								brokerInfo.cleaned_data['city'], \
								brokerInfo.cleaned_data['state'], \
								brokerInfo.cleaned_data['zip'])
		lat = geocode_response['lat']
		longit = geocode_response['lng']

		mhuser = brokerForm.save(commit=False)
		mhuser.set_password(brokerForm.cleaned_data['password1'])
		# use mhluser's address1, address2, city, state, zip to store "address" information,
		mhuser.address1 = brokerInfo.cleaned_data['address1']
		mhuser.address2 = brokerInfo.cleaned_data['address2']
		mhuser.city = brokerInfo.cleaned_data['city']
		mhuser.state = brokerInfo.cleaned_data['state']
		mhuser.zip = brokerInfo.cleaned_data['zip']
		mhuser.lat = lat
		mhuser.longit = longit
		if (invite.typeVerified):
			mhuser.status_verified = True
			mhuser.status_verifier = MHLUser.objects.get(id=invite.sender_id)
		mhuser.tos_accepted = True
		if invite.recipient == request.POST['email']:
			mhuser.email_confirmed = True
		mhuser.save()

		broker = Broker()
		broker.user = mhuser
		broker.save()

		# Generating the user's voicemail box configuration
		config = VMBox_Config(pin='')
		config.owner = broker
		config.save()

		# LocalNumberForm, area_code, pin, mdcom_phone, mdcom_phone_sid
		numberForm = form_list[3]
		mdcom_phone = numberForm.mdcom_phone
		mdcom_phone_sid = numberForm.mdcom_phone_sid
		pin = numberForm.cleaned_data['pin']

		broker.mdcom_phone = mdcom_phone
		broker.mdcom_phone_sid = mdcom_phone_sid

		#add doctorcom number
		if settings.CALL_ENABLE:
			user_type = ContentType.objects.get_for_model(broker)
			config = VMBox_Config.objects.get(owner_type=user_type, owner_id=broker.id)
			#config.change_pin(request, new_pin=pin)
			config.set_pin(pin)
			config.save()
			twilio_ConfigureProviderLocalNumber(broker, broker.mdcom_phone)
			request.session['userId'] = mhuser.id
			request.session['pin'] = pin

		broker.save()

		# TESTING_KMS_INTEGRATION
		create_default_keys(mhuser, brokerForm.cleaned_data['password1'])

		# Remove the invitation.
		invite.delete()
		return HttpResponseRedirect(self.redirect_url)
Esempio n. 9
0
	def done(self, request, form_list):
		inviteForm = form_list[0]
		providerForm = form_list[1]
		providerInfo = form_list[2]
		extraSetupForm = form_list[3]

		invite = Invitation.objects.get(code=inviteForm.cleaned_data['code'])
		provider = providerForm.save(commit=False)
		provider.set_password(providerForm.cleaned_data['password1'])
		if (invite.typeVerified):
			provider.status_verified = True
			provider.status_verifier = MHLUser.objects.get(id=invite.sender_id)
		provider.save()

		provider.user = MHLUser.objects.get(id=provider.id)
		type = providerForm.cleaned_data['userType']
		if type == '1':
			Physician(user=provider,
				specialty=extraSetupForm.cleaned_data['specialty'],
				accepting_new_patients=extraSetupForm.cleaned_data['accepting_new_patients'],
				staff_type=extraSetupForm.cleaned_data['staff_type']
			).save()
		if type == '10':
			Physician(user=provider,
				specialty=extraSetupForm.cleaned_data['specialty'],
				accepting_new_patients=extraSetupForm.cleaned_data['accepting_new_patients'],
				staff_type=extraSetupForm.cleaned_data['staff_type']
			).save()
			provider.clinical_clerk = True
		if type == '2':
			NP_PA(user=provider).save()

		lst = extraSetupForm.cleaned_data['sites']
		lst2 = extraSetupForm.cleaned_data['licensed_states']
		sitesList = lst.split(',')
		sitesList2 = lst2.split(',')

		slst = []
		slst2 = []
		for s in sitesList:
			if s:
				slst.append(int(s))

		for s in sitesList2:
			if s:
				slst2.append(int(s))
		if slst:
			provider.sites = Site.objects.filter(id__in=slst)

		if extraSetupForm.cleaned_data['current_site']:
			currentSites = Site.objects.filter(id=int(extraSetupForm.cleaned_data['current_site']))
			if currentSites:
				cs = currentSites[0]
				provider.current_site = cs

		if slst2:
			provider.licensure_states = States.objects.filter(id__in=slst2)

		geocode_response = geocode2(providerInfo.cleaned_data['address1'], \
								providerInfo.cleaned_data['city'], \
								providerInfo.cleaned_data['state'], \
								providerInfo.cleaned_data['zip'])
		lat = geocode_response['lat']
		longit = geocode_response['lng']

		# use mhluser's address1, address2, city, state, zip to store "address" information,
		provider.address1 = providerInfo.cleaned_data['address1']
		provider.address2 = providerInfo.cleaned_data['address2']
		provider.city = providerInfo.cleaned_data['city']
		provider.state = providerInfo.cleaned_data['state']
		provider.zip = providerInfo.cleaned_data['zip']
		provider.lat = lat
		provider.longit = longit

		#add by xlin in 20120504 to add current practice	
		if invite.assignPractice:
			prac = invite.assignPractice
			provider.current_practice = get_practice_org(prac)

		provider.tos_accepted = True
		if invite.recipient == request.POST['email']:
			provider.email_confirmed = True

		# Generating the user's voicemail box configuration
		config = VMBox_Config(pin='')
		config.owner = provider
		config.save()

		# LocalNumberForm, area_code, pin, mdcom_phone, mdcom_phone_sid
		numberForm = form_list[4]
		mdcom_phone = numberForm.mdcom_phone
		mdcom_phone_sid = numberForm.mdcom_phone_sid
		pin = numberForm.cleaned_data['pin']

		provider.mdcom_phone = mdcom_phone
		provider.mdcom_phone_sid = mdcom_phone_sid

		#add doctorcom number
		if settings.CALL_ENABLE:
			user_type = ContentType.objects.get_for_model(provider)
			config = VMBox_Config.objects.get(owner_type=user_type, owner_id=provider.id)
			#config.change_pin(request, new_pin=pin)
			config.set_pin(pin)
			config.save()
			twilio_ConfigureProviderLocalNumber(provider, provider.mdcom_phone)
			request.session['userId'] = provider.id
			request.session['pin'] = pin

		provider.save()

		if invite.assignPractice:
			provider.practices.add(prac)
			#add by xlin in 20120504 add new provider in call group
			group = PracticeLocation.objects.get(pk=invite.assignPractice.id)
			#ONLY if practice set up before V2 of answering service
			if (prac.uses_original_answering_serice()):
				cm = CallGroupMember(call_group=group.call_group, member=provider, alt_provider=1)
				cm.save()

		# TESTING_KMS_INTEGRATION
		create_default_keys(provider.user, providerForm.cleaned_data['password1'])

		# Remove the invitation.
		invite.delete(createdUser=provider.user, send_notice=False)
		return HttpResponseRedirect(self.redirect_url)
Esempio n. 10
0
def generate_users(request):
    if (not settings.DEBUG):
        return HttpResponseRedirect(
            reverse('MHLogin.Administration.views.home'))
    context = get_context(request)
    if (request.method == 'GET'):
        context["form"] = GenerateUsersForm()
        return render_to_response('qa_tools/genereate_users.html', context)
    else:
        form = GenerateUsersForm(request.POST)
        if form.is_valid():
            current_practice = form.cleaned_data["practices"]
            user_type = int(form.cleaned_data["user_types"])
            number = int(form.cleaned_data["number"])
            user_name_start = form.cleaned_data["user_name_start"]
            generate_user = None
            for i in range(number):
                username = "******" % (user_name_start, i)
                first_name = "%s_f_%d" % (user_name_start, i)
                last_name = "%s_f_%d" % (user_name_start, i)
                email = "*****@*****.**" % (username)
                password = "******"
                if USER_TYPE_DOCTOR == user_type \
                 or USER_TYPE_NPPA == user_type \
                 or USER_TYPE_MEDICAL_STUDENT == user_type:
                    provider = Provider(
                        username=username,
                        first_name=first_name,
                        last_name=last_name,
                        email=email,
                        email_confirmed=True,
                        lat=current_practice.practice_lat,
                        longit=current_practice.practice_longit,
                        address1=current_practice.practice_address1,
                        address2=current_practice.practice_address2,
                        city=current_practice.practice_city,
                        state=current_practice.practice_state,
                        zip=current_practice.practice_zip,
                        current_practice=current_practice,
                        is_active=1,
                        office_lat=current_practice.practice_lat,
                        office_longit=current_practice.practice_longit,
                        mdcom_phone="8004664411")
                    provider.save()
                    provider.set_password(password)

                    provider.practices.add(current_practice)
                    provider.user_id = provider.pk
                    provider.save()

                    if USER_TYPE_DOCTOR == user_type:
                        #Physician
                        ph = Physician(user=provider)
                        ph.save()
                    elif USER_TYPE_NPPA == user_type:
                        #NP/PA/Midwife
                        np = NP_PA(user=provider)
                        np.save()
                    elif USER_TYPE_MEDICAL_STUDENT == user_type:
                        ph = Physician(user=provider)
                        ph.save()

                    create_default_keys(provider.user, password)
                    # Generating the user's voicemail box configuration
                    config = VMBox_Config(pin='')
                    config.owner = provider
                    config.save()
                    generate_user = provider
                elif USER_TYPE_OFFICE_MANAGER == user_type \
                 or USER_TYPE_NURSE == user_type \
                 or USER_TYPE_DIETICIAN == user_type:
                    mhluser = MHLUser(
                        username=username,
                        first_name=first_name,
                        last_name=last_name,
                        email=email,
                        email_confirmed=True,
                        is_active=1,
                        address1=current_practice.practice_address1,
                        address2=current_practice.practice_address2,
                        city=current_practice.practice_city,
                        state=current_practice.practice_state,
                        zip=current_practice.practice_zip,
                        lat=current_practice.practice_lat,
                        longit=current_practice.practice_longit)
                    mhluser.save()
                    mhluser.set_password(password)

                    staff = OfficeStaff(user=mhluser,
                                        current_practice=current_practice)
                    staff.user = mhluser
                    staff.current_practice = current_practice
                    staff.save()

                    staff.practices.add(current_practice)
                    staff.save()

                    if USER_TYPE_OFFICE_MANAGER == user_type:
                        manager = Office_Manager(user=staff,
                                                 practice=current_practice)
                        manager.save()
                    if USER_TYPE_NURSE == user_type:
                        nurse = Nurse(user=staff)
                        nurse.save()
                    elif USER_TYPE_DIETICIAN == user_type:
                        dietician = Dietician(user=staff)
                        dietician.save()
                    generate_user = mhluser
                log_str = 'Generate user %d: for %s' % (i, str(generate_user))
                logger.debug(log_str)
                print log_str

            return render_to_response('qa_tools/genereate_users_success.html',
                                      context)
        else:
            context["form"] = form
            return render_to_response('qa_tools/genereate_users.html', context)
Esempio n. 11
0
def newProvider(request):
    context = get_context(request)
    office_staff = request.session['MHL_Users']['OfficeStaff']
    current_practice = office_staff.current_practice
    request.session['SELECTED_ORG_ID'] = current_practice.id
    showDialog = 0
    username = ""
    if request.method == 'POST':
        provider_form = CreateProviderForm(data=request.POST,
                                           current_practice=current_practice)
        if provider_form.is_valid():
            # todo, using function createNewProvider in /mdcom/MHLogin/MHLUsers/utils_users.py
            username = provider_form.cleaned_data['username']
            provider = provider_form.save(commit=False)
            provider.lat = provider_form.cleaned_data['lat']
            provider.longit = provider_form.cleaned_data['longit']

            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.current_practice = get_practice_org(current_practice)
            provider.is_active = 0
            provider.save()

            provider.practices.add(current_practice)
            provider.user_id = provider.pk
            provider.save()

            user_type = provider_form.cleaned_data['user_type']

            if '1' == user_type:
                #Physician
                ph = Physician(user=provider)
                ph.save()
            elif '2' == user_type:
                #NP/PA/Midwife
                np = NP_PA(user=provider)
                np.save()
            elif '10' == user_type:
                ph = Physician(user=provider)
                ph.save()

            # TESTING_KMS_INTEGRATION
            create_default_keys(provider.user)

            # Generating the user's voicemail box configuration
            config = VMBox_Config(pin='')
            config.owner = provider
            config.save()

            sendAccountActiveCode(request, user_type)

            showDialog = 1
        else:
            context['showDialog'] = showDialog
            context['user_form'] = provider_form
            return render_to_response('Staff/newProvider.html', context)

    context['username'] = username
    context['showDialog'] = showDialog
    context['user_form'] = CreateProviderForm(
        current_practice=current_practice)
    return render_to_response('Staff/newProvider.html', context)
Esempio n. 12
0
def profile_edit_office_staff(request):
	""" This function allows for ofice staff to edit their profiles.
	"""
	# First, get the relevant user's profile. Everything requires it.
	context = get_context(request)
	staff = request.session['MHL_Users']['OfficeStaff']

	if (not staff.vm_config.count()):
		config = VMBox_Config()
		config.owner = staff
		config.save()

	vmconfig_obj = staff.vm_config.get()
	#context['all_providers_box'] = box_all_providers()
	if (request.method == "POST"):
		old_url = None
		if staff.user.photo:
			old_url = staff.user.photo.name

		# First, deal with user form stuff
		if("old_password" in request.POST):
			password_form = ChangePasswordForm(staff.user, request.POST)
			# set these here so they still display properly when we get form errors 
			# in the password form
			staff_form = OfficeStaffForm(instance=staff)
			user_form = UserForm(instance=staff.user)
		else:
			staff_form = OfficeStaffForm(request.POST, instance=staff)
			user_form = UserForm(request.POST, request.FILES, instance=staff.user)
			password_form = ChangePasswordForm(staff.user)
			settings_form = VMBox_ConfigForm(request.POST, instance=vmconfig_obj)
			preference_form = PreferenceForm(request.POST, instance=staff.user)
		if user_form.is_valid():
			user_form.save(commit=False)
			context['user'] = staff
			context['user_form'] = user_form
			context['staff_form'] = staff_form
			context['password_form'] = password_form

			if(password_form.is_valid()):
				if(password_form.cleaned_data['old_password']):
					response = HttpResponseRedirect(reverse('MHLogin.MHLUsers.views.profile_view'))
					return change_pass(password_form, request, response)

			if (staff_form.is_valid() and user_form.is_valid() and settings_form.is_valid() \
					and preference_form.is_valid()):
				staff_form.save()
				user_form.save()
				settings_form.save()
				mhluser = MHLUser.objects.get(id=staff.user.id)
				mhluser.time_setting = preference_form.cleaned_data['time_setting']
				mhluser.time_zone = preference_form.cleaned_data['time_zone']
				mhluser.save()

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

				return HttpResponseRedirect(reverse('MHLogin.MHLUsers.views.profile_view'))
		else:
			context['user_form'] = user_form
			context['staff_form'] = staff_form
			context['settings_form'] = settings_form
			context['preference_form'] = preference_form
	else:
		context['user'] = staff
		context['user_form'] = UserForm(instance=staff.user)
		context['staff_form'] = OfficeStaffForm(instance=staff)
		context['password_form'] = ChangePasswordForm(user=staff.user)
		context['settings_form'] = VMBox_ConfigForm(instance=vmconfig_obj, 
									initial={'pin': ''})
		context['preference_form'] = PreferenceForm(initial={'time_setting':
			staff.user.time_setting if staff.user.time_setting else 0,
					'time_zone': staff.user.time_zone})

	from django import conf
	context['Language'] = LANGUAGE[conf.settings.FORCED_LANGUAGE_CODE]
	context['mobile_required'] = False
	context['isStaff'] = True
	return render_to_response('Profile/profile_edit.html', context)
Esempio n. 13
0
def profile_edit_office_staff(request):
    """ This function allows for ofice staff to edit their profiles.
	"""
    # First, get the relevant user's profile. Everything requires it.
    context = get_context(request)
    staff = request.session['MHL_Users']['OfficeStaff']

    if (not staff.vm_config.count()):
        config = VMBox_Config()
        config.owner = staff
        config.save()

    vmconfig_obj = staff.vm_config.get()
    #context['all_providers_box'] = box_all_providers()
    if (request.method == "POST"):
        old_url = None
        if staff.user.photo:
            old_url = staff.user.photo.name

        # First, deal with user form stuff
        if ("old_password" in request.POST):
            password_form = ChangePasswordForm(staff.user, request.POST)
            # set these here so they still display properly when we get form errors
            # in the password form
            staff_form = OfficeStaffForm(instance=staff)
            user_form = UserForm(instance=staff.user)
        else:
            staff_form = OfficeStaffForm(request.POST, instance=staff)
            user_form = UserForm(request.POST,
                                 request.FILES,
                                 instance=staff.user)
            password_form = ChangePasswordForm(staff.user)
            settings_form = VMBox_ConfigForm(request.POST,
                                             instance=vmconfig_obj)
            preference_form = PreferenceForm(request.POST, instance=staff.user)
        if user_form.is_valid():
            user_form.save(commit=False)
            context['user'] = staff
            context['user_form'] = user_form
            context['staff_form'] = staff_form
            context['password_form'] = password_form

            if (password_form.is_valid()):
                if (password_form.cleaned_data['old_password']):
                    response = HttpResponseRedirect(
                        reverse('MHLogin.MHLUsers.views.profile_view'))
                    return change_pass(password_form, request, response)

            if (staff_form.is_valid() and user_form.is_valid() and settings_form.is_valid() \
              and preference_form.is_valid()):
                staff_form.save()
                user_form.save()
                settings_form.save()
                mhluser = MHLUser.objects.get(id=staff.user.id)
                mhluser.time_setting = preference_form.cleaned_data[
                    'time_setting']
                mhluser.time_zone = preference_form.cleaned_data['time_zone']
                mhluser.save()

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

                return HttpResponseRedirect(
                    reverse('MHLogin.MHLUsers.views.profile_view'))
        else:
            context['user_form'] = user_form
            context['staff_form'] = staff_form
            context['settings_form'] = settings_form
            context['preference_form'] = preference_form
    else:
        context['user'] = staff
        context['user_form'] = UserForm(instance=staff.user)
        context['staff_form'] = OfficeStaffForm(instance=staff)
        context['password_form'] = ChangePasswordForm(user=staff.user)
        context['settings_form'] = VMBox_ConfigForm(instance=vmconfig_obj,
                                                    initial={'pin': ''})
        context['preference_form'] = PreferenceForm(
            initial={
                'time_setting':
                staff.user.time_setting if staff.user.time_setting else 0,
                'time_zone':
                staff.user.time_zone
            })

    from django import conf
    context['Language'] = LANGUAGE[conf.settings.FORCED_LANGUAGE_CODE]
    context['mobile_required'] = False
    context['isStaff'] = True
    return render_to_response('Profile/profile_edit.html', context)
Esempio n. 14
0
    def done(self, request, form_list):
        inviteForm = form_list[0]
        brokerForm = form_list[1]
        brokerInfo = form_list[2]

        invite = Invitation.objects.get(code=inviteForm.cleaned_data['code'],
                                        userType__in=(300, ))
        geocode_response = geocode2(brokerInfo.cleaned_data['address1'], \
              brokerInfo.cleaned_data['city'], \
              brokerInfo.cleaned_data['state'], \
              brokerInfo.cleaned_data['zip'])
        lat = geocode_response['lat']
        longit = geocode_response['lng']

        mhuser = brokerForm.save(commit=False)
        mhuser.set_password(brokerForm.cleaned_data['password1'])
        # use mhluser's address1, address2, city, state, zip to store "address" information,
        mhuser.address1 = brokerInfo.cleaned_data['address1']
        mhuser.address2 = brokerInfo.cleaned_data['address2']
        mhuser.city = brokerInfo.cleaned_data['city']
        mhuser.state = brokerInfo.cleaned_data['state']
        mhuser.zip = brokerInfo.cleaned_data['zip']
        mhuser.lat = lat
        mhuser.longit = longit
        if (invite.typeVerified):
            mhuser.status_verified = True
            mhuser.status_verifier = MHLUser.objects.get(id=invite.sender_id)
        mhuser.tos_accepted = True
        if invite.recipient == request.POST['email']:
            mhuser.email_confirmed = True
        mhuser.save()

        broker = Broker()
        broker.user = mhuser
        broker.save()

        # Generating the user's voicemail box configuration
        config = VMBox_Config(pin='')
        config.owner = broker
        config.save()

        # LocalNumberForm, area_code, pin, mdcom_phone, mdcom_phone_sid
        numberForm = form_list[3]
        mdcom_phone = numberForm.mdcom_phone
        mdcom_phone_sid = numberForm.mdcom_phone_sid
        pin = numberForm.cleaned_data['pin']

        broker.mdcom_phone = mdcom_phone
        broker.mdcom_phone_sid = mdcom_phone_sid

        #add doctorcom number
        if settings.CALL_ENABLE:
            user_type = ContentType.objects.get_for_model(broker)
            config = VMBox_Config.objects.get(owner_type=user_type,
                                              owner_id=broker.id)
            #config.change_pin(request, new_pin=pin)
            config.set_pin(pin)
            config.save()
            twilio_ConfigureProviderLocalNumber(broker, broker.mdcom_phone)
            request.session['userId'] = mhuser.id
            request.session['pin'] = pin

        broker.save()

        # TESTING_KMS_INTEGRATION
        create_default_keys(mhuser, brokerForm.cleaned_data['password1'])

        # Remove the invitation.
        invite.delete()
        return HttpResponseRedirect(self.redirect_url)
Esempio n. 15
0
    def done(self, request, form_list):
        inviteForm = form_list[0]
        providerForm = form_list[1]
        providerInfo = form_list[2]
        extraSetupForm = form_list[3]

        invite = Invitation.objects.get(code=inviteForm.cleaned_data['code'])
        provider = providerForm.save(commit=False)
        provider.set_password(providerForm.cleaned_data['password1'])
        if (invite.typeVerified):
            provider.status_verified = True
            provider.status_verifier = MHLUser.objects.get(id=invite.sender_id)
        provider.save()

        provider.user = MHLUser.objects.get(id=provider.id)
        type = providerForm.cleaned_data['userType']
        if type == '1':
            Physician(
                user=provider,
                specialty=extraSetupForm.cleaned_data['specialty'],
                accepting_new_patients=extraSetupForm.
                cleaned_data['accepting_new_patients'],
                staff_type=extraSetupForm.cleaned_data['staff_type']).save()
        if type == '10':
            Physician(
                user=provider,
                specialty=extraSetupForm.cleaned_data['specialty'],
                accepting_new_patients=extraSetupForm.
                cleaned_data['accepting_new_patients'],
                staff_type=extraSetupForm.cleaned_data['staff_type']).save()
            provider.clinical_clerk = True
        if type == '2':
            NP_PA(user=provider).save()

        lst = extraSetupForm.cleaned_data['sites']
        lst2 = extraSetupForm.cleaned_data['licensed_states']
        sitesList = lst.split(',')
        sitesList2 = lst2.split(',')

        slst = []
        slst2 = []
        for s in sitesList:
            if s:
                slst.append(int(s))

        for s in sitesList2:
            if s:
                slst2.append(int(s))
        if slst:
            provider.sites = Site.objects.filter(id__in=slst)

        if extraSetupForm.cleaned_data['current_site']:
            currentSites = Site.objects.filter(
                id=int(extraSetupForm.cleaned_data['current_site']))
            if currentSites:
                cs = currentSites[0]
                provider.current_site = cs

        if slst2:
            provider.licensure_states = States.objects.filter(id__in=slst2)

        geocode_response = geocode2(providerInfo.cleaned_data['address1'], \
              providerInfo.cleaned_data['city'], \
              providerInfo.cleaned_data['state'], \
              providerInfo.cleaned_data['zip'])
        lat = geocode_response['lat']
        longit = geocode_response['lng']

        # use mhluser's address1, address2, city, state, zip to store "address" information,
        provider.address1 = providerInfo.cleaned_data['address1']
        provider.address2 = providerInfo.cleaned_data['address2']
        provider.city = providerInfo.cleaned_data['city']
        provider.state = providerInfo.cleaned_data['state']
        provider.zip = providerInfo.cleaned_data['zip']
        provider.lat = lat
        provider.longit = longit

        #add by xlin in 20120504 to add current practice
        if invite.assignPractice:
            prac = invite.assignPractice
            provider.current_practice = get_practice_org(prac)

        provider.tos_accepted = True
        if invite.recipient == request.POST['email']:
            provider.email_confirmed = True

        # Generating the user's voicemail box configuration
        config = VMBox_Config(pin='')
        config.owner = provider
        config.save()

        # LocalNumberForm, area_code, pin, mdcom_phone, mdcom_phone_sid
        numberForm = form_list[4]
        mdcom_phone = numberForm.mdcom_phone
        mdcom_phone_sid = numberForm.mdcom_phone_sid
        pin = numberForm.cleaned_data['pin']

        provider.mdcom_phone = mdcom_phone
        provider.mdcom_phone_sid = mdcom_phone_sid

        #add doctorcom number
        if settings.CALL_ENABLE:
            user_type = ContentType.objects.get_for_model(provider)
            config = VMBox_Config.objects.get(owner_type=user_type,
                                              owner_id=provider.id)
            #config.change_pin(request, new_pin=pin)
            config.set_pin(pin)
            config.save()
            twilio_ConfigureProviderLocalNumber(provider, provider.mdcom_phone)
            request.session['userId'] = provider.id
            request.session['pin'] = pin

        provider.save()

        if invite.assignPractice:
            provider.practices.add(prac)
            #add by xlin in 20120504 add new provider in call group
            group = PracticeLocation.objects.get(pk=invite.assignPractice.id)
            #ONLY if practice set up before V2 of answering service
            if (prac.uses_original_answering_serice()):
                cm = CallGroupMember(call_group=group.call_group,
                                     member=provider,
                                     alt_provider=1)
                cm.save()

        # TESTING_KMS_INTEGRATION
        create_default_keys(provider.user,
                            providerForm.cleaned_data['password1'])

        # Remove the invitation.
        invite.delete(createdUser=provider.user, send_notice=False)
        return HttpResponseRedirect(self.redirect_url)