コード例 #1
0
ファイル: test_views_invites.py プロジェクト: DongHuaLu/mdcom
	def test_cancel_invite(self):
		invitation_id = 0
		email = '*****@*****.**'
		request = generateHttpRequest()

		#an office staff login
		staff = OfficeStaff(user=request.user)
		staff.save()
		assn = SmartPhoneAssn.all_objects.get(device_id=request.REQUEST['DCOM_DEVICE_ID'])
		assn.user_type = 101
		assn.save(request)
		result = cancel_invite(request, invitation_id)
		self.assertEqual(result.status_code, 403)

		#a provider login
		assn = SmartPhoneAssn.all_objects.get(device_id=request.REQUEST['DCOM_DEVICE_ID'])
		assn.user_type = 1
		assn.save(request)

		#404 not found invitation
		try:
			cancel_invite(request, invitation_id)
		except Http404:
			self.assertRaises(Http404())

		code = 'abcdefg'
		usertype = 1
		invite = Invitation(code=code, sender=request.user, recipient=email, 
			userType=usertype)
		invite.save()
		result = cancel_invite(request, invite.pk)
		self.assertEqual(result.status_code, 200)
		msg = json.loads(result.content)
		self.assertEqual(msg['data'], {})
		self.assertEqual(Invitation.objects.count(), 0)
コード例 #2
0
ファイル: test_views_invites.py プロジェクト: cnzhuran/mdcom
    def test_views_invites(self):
        request = generateHttpRequest()

        #an office staff login
        staff = OfficeStaff(user=request.user)
        staff.save()
        assn = SmartPhoneAssn.all_objects.get(
            device_id=request.REQUEST['DCOM_DEVICE_ID'])
        assn.user_type = 101
        assn.save(request)

        result = list_invites(request)
        self.assertEqual(result.status_code, 403)

        #a provider login
        assn = SmartPhoneAssn.all_objects.get(
            device_id=request.REQUEST['DCOM_DEVICE_ID'])
        assn.user_type = 1
        assn.save(request)

        #find 0 invitation
        result = list_invites(request)
        self.assertEqual(result.status_code, 200)
        msg = json.loads(result.content)
        self.assertEqual(len(msg['data']['invitations']), 0)

        usertype = 1
        #invite has assignPractice
        organization_type = create_org_type()
        practice = ct_practice('name', organization_type)
        code = '12345'
        email = '*****@*****.**'
        invite = Invitation(code=code,
                            sender=request.user,
                            recipient=email,
                            userType=usertype,
                            assignPractice=practice)
        invite.save()
        result = list_invites(request)
        self.assertEqual(result.status_code, 200)
        msg = json.loads(result.content)
        self.assertEqual(len(msg['data']['invitations']), 1)
コード例 #3
0
ファイル: test_views_invites.py プロジェクト: DongHuaLu/mdcom
	def test_resend_invite(self):
		email = '*****@*****.**'
		invitation_id = 0
		request = generateHttpRequest()

		#get method
		request.method = 'GET'
		result = resend_invite(request, invitation_id)
		self.assertEqual(result.status_code, 400)
		msg = json.loads(result.content)
		self.assertEqual(msg['errno'], 'GE002')

		#post method
		request.method = 'POST'
		#an office staff login
		staff = OfficeStaff(user=request.user)
		staff.save()
		assn = SmartPhoneAssn.all_objects.get(device_id=request.REQUEST['DCOM_DEVICE_ID'])
		assn.user_type = 101
		assn.save(request)
		result = resend_invite(request, invitation_id)
		self.assertEqual(result.status_code, 403)

		#a provider login
		assn = SmartPhoneAssn.all_objects.get(device_id=request.REQUEST['DCOM_DEVICE_ID'])
		assn.user_type = 1
		assn.save(request)

		#invalid invitation id
		note = 'test'
		request.POST['note'] = note
		try:
			resend_invite(request, invitation_id)
		except Http404:
			self.assertRaises(Http404())

		usertype = 1
		#another email
		errEmail = '*****@*****.**'
		code = '12345'
		invite = Invitation(code=code, sender=request.user, recipient=errEmail, 
			userType=usertype)
		invite.save()
		result = resend_invite(request, invite.pk)
		self.assertEqual(result.status_code, 200)
		msg = json.loads(result.content)
		self.assertEqual(msg['data']['id'], invite.id)

		#use time setting
		request.POST['use_time_setting'] = True
		errEmail = '*****@*****.**'
		code = '12wsxs'
		invite = Invitation(code=code, sender=request.user, recipient=errEmail, 
			userType=usertype)
		invite.save()
		result = resend_invite(request, invite.pk)
		self.assertEqual(result.status_code, 200)
		msg = json.loads(result.content)
		self.assertEqual(msg['data']['id'], invite.id)
コード例 #4
0
ファイル: test_views_invites.py プロジェクト: cnzhuran/mdcom
    def test_cancel_invite(self):
        invitation_id = 0
        email = '*****@*****.**'
        request = generateHttpRequest()

        #an office staff login
        staff = OfficeStaff(user=request.user)
        staff.save()
        assn = SmartPhoneAssn.all_objects.get(
            device_id=request.REQUEST['DCOM_DEVICE_ID'])
        assn.user_type = 101
        assn.save(request)
        result = cancel_invite(request, invitation_id)
        self.assertEqual(result.status_code, 403)

        #a provider login
        assn = SmartPhoneAssn.all_objects.get(
            device_id=request.REQUEST['DCOM_DEVICE_ID'])
        assn.user_type = 1
        assn.save(request)

        #404 not found invitation
        try:
            cancel_invite(request, invitation_id)
        except Http404:
            self.assertRaises(Http404())

        code = 'abcdefg'
        usertype = 1
        invite = Invitation(code=code,
                            sender=request.user,
                            recipient=email,
                            userType=usertype)
        invite.save()
        result = cancel_invite(request, invite.pk)
        self.assertEqual(result.status_code, 200)
        msg = json.loads(result.content)
        self.assertEqual(msg['data'], {})
        self.assertEqual(Invitation.objects.count(), 0)
コード例 #5
0
ファイル: test_views_invites.py プロジェクト: DongHuaLu/mdcom
	def test_views_invites(self):
		request = generateHttpRequest()

		#an office staff login
		staff = OfficeStaff(user=request.user)
		staff.save()
		assn = SmartPhoneAssn.all_objects.get(device_id=request.REQUEST['DCOM_DEVICE_ID'])
		assn.user_type = 101
		assn.save(request)

		result = list_invites(request)
		self.assertEqual(result.status_code, 403)

		#a provider login
		assn = SmartPhoneAssn.all_objects.get(device_id=request.REQUEST['DCOM_DEVICE_ID'])
		assn.user_type = 1
		assn.save(request)

		#find 0 invitation
		result = list_invites(request)
		self.assertEqual(result.status_code, 200)
		msg = json.loads(result.content)
		self.assertEqual(len(msg['data']['invitations']), 0)

		usertype = 1
		#invite has assignPractice
		organization_type = create_org_type()
		practice =  ct_practice('name', organization_type)
		code = '12345'
		email = '*****@*****.**'
		invite = Invitation(code=code, sender=request.user, recipient=email, 
			userType=usertype, assignPractice=practice)
		invite.save()
		result = list_invites(request)
		self.assertEqual(result.status_code, 200)
		msg = json.loads(result.content)
		self.assertEqual(len(msg['data']['invitations']), 1)
コード例 #6
0
ファイル: test_views_member.py プロジェクト: DongHuaLu/mdcom
	def setUpClass(cls):
		clean_db_datas()
		cls.user = create_user('practicemgr1', 'lin', 'xing', 'demo')
		cls.user1 = create_user('practicemgr2', 'lin', 'xing', 'demo')

		practice = PracticeLocation(practice_name='test',
								practice_longit='0.1',
								practice_lat='0.0',)
		practice.save()
		practice1 = PracticeLocation(practice_name='test1',
								practice_longit='0.1',
								practice_lat='0.0',)
		practice1.save()
		
		OrganizationRelationship.objects.create(organization=practice,\
				parent=practice1,create_time=int(time.time()),billing_flag=True)
		cls.practice = practice
		cls.practice1 = practice1
		staff = OfficeStaff()
		staff.user = cls.user
		staff.office_lat = 0.0
		staff.office_longit = 0.0
		staff.current_practice = practice
		staff.save()
		staff.practices.add(practice)
		
		usertype = 1
		code = '12345'
		email = '*****@*****.**'
		invite = Invitation(code=code, sender=cls.user1, recipient=email, 
			userType=usertype, assignPractice=practice)
		invite.save()
		cls.invite = invite
		
		mgr = Office_Manager(user=staff, practice=practice, manager_role=2)
		mgr.save()
コード例 #7
0
ファイル: views.py プロジェクト: DongHuaLu/mdcom
def invite_user_email(email, user_type, msg, user, practice):
	invite = Invitation.objects.filter(recipient=email, userType=user_type,\
			 assignPractice=practice)
	if invite:
		invite.resend_invite(msg)
	else:
		invite = Invitation()
		invite.recipient = email
		invite.assignPractice = practice
		invite.sender = user
		invite.userType = user_type
		invite.save_invitation(msg)
	if hasattr(invite, 'error'):
		raise invite.error
コード例 #8
0
ファイル: views.py プロジェクト: cnzhuran/mdcom
def new_invites(request):
    context = get_context(request)

    if (request.method == 'POST'):
        context['form'] = multiUserSendForm(request.POST, request.user)
        if (context['form'].is_valid()):
            mass_mail_msgs = []
            test_flag = False
            if ('test' in context['form'].cleaned_data):
                test_flag = context['form'].cleaned_data['test']

            for addr in context['form'].cleaned_data['emailAddresses']:
                invit = Invitation.objects.filter(
                    sender=request.user,
                    recipient=addr,
                    userType=context['form'].cleaned_data['userType'])
                if invit:
                    i = invit[0]
                    i.requestTimestamp = datetime.datetime.now()
                else:
                    i = Invitation(
                        sender=request.user,
                        recipient=addr,
                        userType=context['form'].cleaned_data['userType'],
                        testFlag=test_flag,
                    )
                    i.generate_code()
                i.save()
                #msg_tuple = i.massmail_tuple(context['mhl_user_displayName'],
                #context['form'].cleaned_data['msg'])
                msg_tuple = i.massmail_tuple(
                    context['form'].cleaned_data['msg'])
                if (msg_tuple):
                    mass_mail_msgs.append(msg_tuple)

            if len(mass_mail_msgs):
                send_mass_mail(mass_mail_msgs, fail_silently=False)
                return HttpResponseRedirect(reverse('Sales_Dashboard'))
    else:
        context['form'] = multiUserSendForm()
    return render_to_response('invite_issue.html', context)
コード例 #9
0
ファイル: views.py プロジェクト: DongHuaLu/mdcom
def new_invites(request):
	context = get_context(request)

	if (request.method == 'POST'):
		context['form'] = multiUserSendForm(request.POST, request.user)
		if (context['form'].is_valid()):
			mass_mail_msgs = []
			test_flag = False
			if ('test' in context['form'].cleaned_data):
				test_flag = context['form'].cleaned_data['test']

			for addr in context['form'].cleaned_data['emailAddresses']:
				invit = Invitation.objects.filter(sender=request.user, recipient=addr, 
					userType=context['form'].cleaned_data['userType'])
				if invit:
					i = invit[0]
					i.requestTimestamp = datetime.datetime.now()
				else:
					i = Invitation(
							sender=request.user,
							recipient=addr,
							userType=context['form'].cleaned_data['userType'],
							testFlag=test_flag,
						)
					i.generate_code()
				i.save()
				#msg_tuple = i.massmail_tuple(context['mhl_user_displayName'], 
					#context['form'].cleaned_data['msg'])
				msg_tuple = i.massmail_tuple(context['form'].cleaned_data['msg'])
				if (msg_tuple):
					mass_mail_msgs.append(msg_tuple)

			if len(mass_mail_msgs):
				send_mass_mail(mass_mail_msgs, fail_silently=False)
				return HttpResponseRedirect(reverse('Sales_Dashboard'))
	else:
		context['form'] = multiUserSendForm()
	return render_to_response('invite_issue.html', context)
コード例 #10
0
    def test_cancelInvitation(self):
        #user is a manager
        staff = OfficeStaff(user=self.user)
        staff.current_practice = self.practice
        staff.save()
        staff.practices.add(self.practice)
        manager = Office_Manager(user=staff,
                                 practice=self.practice,
                                 manager_role=2)
        manager.save()

        #get method
        response = self.client.get(
            reverse('MHLogin.MHLPractices.views_ajax.cancelInvitation'))
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(msg[1], _('A server error has occured.'))

        #post method
        email = '*****@*****.**'
        user_type = 1
        invite = Invitation(sender=self.user,
                            recipient=email,
                            assignPractice=self.practice,
                            userType=user_type)
        invite.save()

        #there is no invite find
        data = {'email': '*****@*****.**', 'type': '0'}
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views_ajax.cancelInvitation'),
            data=data)
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(msg[1], _('A server error has occured.'))

        #there is 1 invite find
        data = {'email': email, 'type': user_type}
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views_ajax.cancelInvitation'),
            data=data)
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(msg[0], 'ok')
        self.assertEqual(Invitation.objects.count(), 0)

        #a new invite
        email2 = '*****@*****.**'
        invite2 = Invitation(sender=self.user,
                             recipient=email2,
                             assignPractice=self.practice,
                             userType=user_type)
        invite2.save()

        data = {'email': email2, 'type': user_type}
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views_ajax.cancelInvitation'),
            data=data)
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(msg[0], 'ok')
コード例 #11
0
ファイル: views_invites.py プロジェクト: DongHuaLu/mdcom
def new_invite(request):
	if (request.method != 'POST'):
		return err_GE002()
	
	user_type = int(request.user_type)
	role_user = request.role_user
	if USER_TYPE_OFFICE_STAFF == user_type:
		return err403(request)

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

	invite_user_type = int(form.cleaned_data['invite_user_type'])
	invite_type = int(form.cleaned_data['invite_type'])
	recipient = form.cleaned_data['email']

	if USER_TYPE_OFFICE_MANAGER != user_type and 2 == invite_type:
		return err403(request)

	if User.objects.filter(email=recipient).exists():
		return err_IN002()

	note = ''
	if ('note' in form.cleaned_data and form.cleaned_data['note']):
		note = form.cleaned_data['note']

#	if (Invitation.objects.filter(recipient=form.cleaned_data['email']).exists()):
#		err_obj = {
#			'errno': 'IN001',
#			'descr': _('Recipient already has an outstanding invitation'),
#		}
#		return HttpResponseBadRequest(content=json.dumps(err_obj), mimetype='application/json')

	current_practice = role_user.current_practice
	invites = Invitation.objects.filter(sender=request.user, recipient=form.cleaned_data['email'], userType=invite_user_type)
	if 2 == invite_type and current_practice:
		invites = invites.filter(assignPractice=current_practice)
	else:
		invites = invites.filter(assignPractice=None)

	if (len(invites) > 0):
		invite = invites[0]
		invite.resend_invite(msg=note)
	else:
		invite = Invitation(
						sender=request.user,
						recipient=recipient,
						userType=invite_user_type,
					)
		if 2 == invite_type and current_practice:
			invite.assignPractice = current_practice
	
		invite.save()
		invite.email_invite(msg=note)
		
	use_time_setting = False
	if 'use_time_setting' in request.POST and request.POST['use_time_setting'] == 'true':
		use_time_setting = True
	user = request.user
	local_tz = getCurrentTimeZoneForUser(user)
	response = {
		'data': {
				'id':invite.id,
				'timestamp': formatTimeSetting(user, invite.requestTimestamp, local_tz, use_time_setting),
				'request_timestamp': convertDatetimeToUTCTimestamp(invite.requestTimestamp),
			},
		'warnings': {},
	}
		
	return HttpResponse(content=json.dumps(response), mimetype='application/json')
コード例 #12
0
ファイル: test_views_invites.py プロジェクト: DongHuaLu/mdcom
	def test_new_invite(self):
		usertype = 1
		email = '*****@*****.**'
		email2 = '*****@*****.**'
		email3 = '*****@*****.**'
		email4 = '*****@*****.**'
		request = generateHttpRequest()

		#get method
		request.method = 'GET'
		result = new_invite(request)
		self.assertEqual(result.status_code, 400)
		msg = json.loads(result.content)
		self.assertEqual(msg['errno'], 'GE002')

		#post method
		request.method = 'POST'

		#an office staff login
		staff = OfficeStaff(user=request.user)
		staff.save()
		assn = SmartPhoneAssn.all_objects.get(device_id=request.REQUEST['DCOM_DEVICE_ID'])
		assn.user_type = 101
		assn.save(request)

		result = new_invite(request)
		self.assertEqual(result.status_code, 403)

		#a provider login
		assn = SmartPhoneAssn.all_objects.get(device_id=request.REQUEST['DCOM_DEVICE_ID'])
		assn.user_type = 1
		assn.save(request)

		#invalid form data
		request.POST['email'] = email
		request.POST['note'] = '2sxc'
		request.POST['invite_user_type'] = usertype
		request.POST['invite_type'] = 'sfsdf'

		result = new_invite(request)
		self.assertEqual(result.status_code, 400)
		msg = json.loads(result.content)
		self.assertEqual(msg['errno'], 'GE031')

		#valid form data but invite type is 2
		request.POST['email'] = email
		request.POST['note'] = 'test'
		request.POST['invite_user_type'] = usertype
		request.POST['invite_type'] = 2

		result = new_invite(request)
		self.assertEqual(result.status_code, 403)

		request.user.email = email
		request.user.save()
		#valid form data but user not exist
		request.POST['invite_type'] = 1
		result = new_invite(request)
		self.assertEqual(result.status_code, 400)
		msg = json.loads(result.content)
		self.assertEqual(msg['errno'], 'IN002')

		#valid form data and not exist email
		request.POST['email'] = '*****@*****.**'
		result = new_invite(request)
		self.assertEqual(result.status_code, 200)
		msg = json.loads(result.content)
		id = Invitation.objects.all()[0].id
		self.assertEqual(msg['data']['id'], id)

		#manager and has current practice
		assn = SmartPhoneAssn.all_objects.get(device_id=request.REQUEST['DCOM_DEVICE_ID'])
		assn.user_type = 100
		assn.save(request)
		request.POST['invite_type'] = 2
		request.POST['email'] = email2
		organization_type = create_org_type()
		practice = PracticeLocation(practice_name='test',
								practice_longit='0.1',
								practice_lat='0.0',
								mdcom_phone='8005550085',
								organization_type=organization_type)
		practice.save()
		user = OfficeStaff.objects.get(user=request.user)
		user.current_practice = practice
		user.save()
		result = new_invite(request)
		self.assertEqual(result.status_code, 200)
		msg = json.loads(result.content)
		id = Invitation.objects.get(recipient=email2).id
		self.assertEqual(msg['data']['id'], id)

		#resend invitation
		invite = Invitation(sender=request.user, recipient=email, userType=usertype)
		invite.save()
		request.POST['email'] = email3
		result = new_invite(request)
		self.assertEqual(result.status_code, 200)
		msg = json.loads(result.content)
		id = Invitation.objects.get(recipient=email3).id
		self.assertEqual(msg['data']['id'], id)

		#user time setting
		request.POST['use_time_setting'] = True
		request.POST['email'] = email4
		result = new_invite(request)
		self.assertEqual(result.status_code, 200)
		msg = json.loads(result.content)
		id = Invitation.objects.get(recipient=email4).id
		self.assertEqual(msg['data']['id'], id)
コード例 #13
0
ファイル: test_views_invites.py プロジェクト: cnzhuran/mdcom
    def test_new_invite(self):
        usertype = 1
        email = '*****@*****.**'
        email2 = '*****@*****.**'
        email3 = '*****@*****.**'
        email4 = '*****@*****.**'
        request = generateHttpRequest()

        #get method
        request.method = 'GET'
        result = new_invite(request)
        self.assertEqual(result.status_code, 400)
        msg = json.loads(result.content)
        self.assertEqual(msg['errno'], 'GE002')

        #post method
        request.method = 'POST'

        #an office staff login
        staff = OfficeStaff(user=request.user)
        staff.save()
        assn = SmartPhoneAssn.all_objects.get(
            device_id=request.REQUEST['DCOM_DEVICE_ID'])
        assn.user_type = 101
        assn.save(request)

        result = new_invite(request)
        self.assertEqual(result.status_code, 403)

        #a provider login
        assn = SmartPhoneAssn.all_objects.get(
            device_id=request.REQUEST['DCOM_DEVICE_ID'])
        assn.user_type = 1
        assn.save(request)

        #invalid form data
        request.POST['email'] = email
        request.POST['note'] = '2sxc'
        request.POST['invite_user_type'] = usertype
        request.POST['invite_type'] = 'sfsdf'

        result = new_invite(request)
        self.assertEqual(result.status_code, 400)
        msg = json.loads(result.content)
        self.assertEqual(msg['errno'], 'GE031')

        #valid form data but invite type is 2
        request.POST['email'] = email
        request.POST['note'] = 'test'
        request.POST['invite_user_type'] = usertype
        request.POST['invite_type'] = 2

        result = new_invite(request)
        self.assertEqual(result.status_code, 403)

        request.user.email = email
        request.user.save()
        #valid form data but user not exist
        request.POST['invite_type'] = 1
        result = new_invite(request)
        self.assertEqual(result.status_code, 400)
        msg = json.loads(result.content)
        self.assertEqual(msg['errno'], 'IN002')

        #valid form data and not exist email
        request.POST['email'] = '*****@*****.**'
        result = new_invite(request)
        self.assertEqual(result.status_code, 200)
        msg = json.loads(result.content)
        id = Invitation.objects.all()[0].id
        self.assertEqual(msg['data']['id'], id)

        #manager and has current practice
        assn = SmartPhoneAssn.all_objects.get(
            device_id=request.REQUEST['DCOM_DEVICE_ID'])
        assn.user_type = 100
        assn.save(request)
        request.POST['invite_type'] = 2
        request.POST['email'] = email2
        organization_type = create_org_type()
        practice = PracticeLocation(practice_name='test',
                                    practice_longit='0.1',
                                    practice_lat='0.0',
                                    mdcom_phone='8005550085',
                                    organization_type=organization_type)
        practice.save()
        user = OfficeStaff.objects.get(user=request.user)
        user.current_practice = practice
        user.save()
        result = new_invite(request)
        self.assertEqual(result.status_code, 200)
        msg = json.loads(result.content)
        id = Invitation.objects.get(recipient=email2).id
        self.assertEqual(msg['data']['id'], id)

        #resend invitation
        invite = Invitation(sender=request.user,
                            recipient=email,
                            userType=usertype)
        invite.save()
        request.POST['email'] = email3
        result = new_invite(request)
        self.assertEqual(result.status_code, 200)
        msg = json.loads(result.content)
        id = Invitation.objects.get(recipient=email3).id
        self.assertEqual(msg['data']['id'], id)

        #user time setting
        request.POST['use_time_setting'] = True
        request.POST['email'] = email4
        result = new_invite(request)
        self.assertEqual(result.status_code, 200)
        msg = json.loads(result.content)
        id = Invitation.objects.get(recipient=email4).id
        self.assertEqual(msg['data']['id'], id)
コード例 #14
0
ファイル: test_views_invites.py プロジェクト: cnzhuran/mdcom
    def test_resend_invite(self):
        email = '*****@*****.**'
        invitation_id = 0
        request = generateHttpRequest()

        #get method
        request.method = 'GET'
        result = resend_invite(request, invitation_id)
        self.assertEqual(result.status_code, 400)
        msg = json.loads(result.content)
        self.assertEqual(msg['errno'], 'GE002')

        #post method
        request.method = 'POST'
        #an office staff login
        staff = OfficeStaff(user=request.user)
        staff.save()
        assn = SmartPhoneAssn.all_objects.get(
            device_id=request.REQUEST['DCOM_DEVICE_ID'])
        assn.user_type = 101
        assn.save(request)
        result = resend_invite(request, invitation_id)
        self.assertEqual(result.status_code, 403)

        #a provider login
        assn = SmartPhoneAssn.all_objects.get(
            device_id=request.REQUEST['DCOM_DEVICE_ID'])
        assn.user_type = 1
        assn.save(request)

        #invalid invitation id
        note = 'test'
        request.POST['note'] = note
        try:
            resend_invite(request, invitation_id)
        except Http404:
            self.assertRaises(Http404())

        usertype = 1
        #another email
        errEmail = '*****@*****.**'
        code = '12345'
        invite = Invitation(code=code,
                            sender=request.user,
                            recipient=errEmail,
                            userType=usertype)
        invite.save()
        result = resend_invite(request, invite.pk)
        self.assertEqual(result.status_code, 200)
        msg = json.loads(result.content)
        self.assertEqual(msg['data']['id'], invite.id)

        #use time setting
        request.POST['use_time_setting'] = True
        errEmail = '*****@*****.**'
        code = '12wsxs'
        invite = Invitation(code=code,
                            sender=request.user,
                            recipient=errEmail,
                            userType=usertype)
        invite.save()
        result = resend_invite(request, invite.pk)
        self.assertEqual(result.status_code, 200)
        msg = json.loads(result.content)
        self.assertEqual(msg['data']['id'], invite.id)
コード例 #15
0
def new_invite(request):
    if (request.method != 'POST'):
        return err_GE002()

    user_type = int(request.user_type)
    role_user = request.role_user
    if USER_TYPE_OFFICE_STAFF == user_type:
        return err403(request)

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

    invite_user_type = int(form.cleaned_data['invite_user_type'])
    invite_type = int(form.cleaned_data['invite_type'])
    recipient = form.cleaned_data['email']

    if USER_TYPE_OFFICE_MANAGER != user_type and 2 == invite_type:
        return err403(request)

    if User.objects.filter(email=recipient).exists():
        return err_IN002()

    note = ''
    if ('note' in form.cleaned_data and form.cleaned_data['note']):
        note = form.cleaned_data['note']


#	if (Invitation.objects.filter(recipient=form.cleaned_data['email']).exists()):
#		err_obj = {
#			'errno': 'IN001',
#			'descr': _('Recipient already has an outstanding invitation'),
#		}
#		return HttpResponseBadRequest(content=json.dumps(err_obj), mimetype='application/json')

    current_practice = role_user.current_practice
    invites = Invitation.objects.filter(sender=request.user,
                                        recipient=form.cleaned_data['email'],
                                        userType=invite_user_type)
    if 2 == invite_type and current_practice:
        invites = invites.filter(assignPractice=current_practice)
    else:
        invites = invites.filter(assignPractice=None)

    if (len(invites) > 0):
        invite = invites[0]
        invite.resend_invite(msg=note)
    else:
        invite = Invitation(
            sender=request.user,
            recipient=recipient,
            userType=invite_user_type,
        )
        if 2 == invite_type and current_practice:
            invite.assignPractice = current_practice

        invite.save()
        invite.email_invite(msg=note)

    use_time_setting = False
    if 'use_time_setting' in request.POST and request.POST[
            'use_time_setting'] == 'true':
        use_time_setting = True
    user = request.user
    local_tz = getCurrentTimeZoneForUser(user)
    response = {
        'data': {
            'id':
            invite.id,
            'timestamp':
            formatTimeSetting(user, invite.requestTimestamp, local_tz,
                              use_time_setting),
            'request_timestamp':
            convertDatetimeToUTCTimestamp(invite.requestTimestamp),
        },
        'warnings': {},
    }

    return HttpResponse(content=json.dumps(response),
                        mimetype='application/json')