def termsandconditions(request): context = { 'title': 'Terms and Conditions', 'terms': TermsAndConditions.get_active(), } #context['terms'] = TermsAndConditions.get_active() return render(request, 'designsafe/apps/accounts/termsandconditions.html', context)
def __init__(self, data=None, slug='default', initial=None, *args, **kwargs): """Lets you pass in a user= to bind this form from""" if initial is None: terms = TermsAndConditions.get_active(slug) text = terms.text slug = terms.slug version_number = terms.version_number initial = dict(text=text, slug=slug, version_number=version_number) super(TermsAndConditionsForm, self).__init__(data=data, initial=initial)
def save(self, source='DesignSafe', pi_eligibility=INELIGIBLE): data = self.cleaned_data data['source'] = source data['piEligibility'] = pi_eligibility safe_data = data.copy() safe_data['password'] = safe_data['confirmPassword'] = '******' logger.info('Attempting new user registration: %s' % safe_data) tas_user = TASClient().save_user(None, data) # create local user UserModel = get_user_model() try: # the user should not exist user = UserModel.objects.get(username=data['username']) logger.warning('On TAS registration, local user already existed? ' 'user=%s' % user) except UserModel.DoesNotExist: user = UserModel.objects.create_user( username=data['username'], first_name=tas_user['firstName'], last_name=tas_user['lastName'], email=tas_user['email'], agree_to_account_limit=data['agree_to_account_limit']) # extended profile information try: # again, this should not exist ds_profile = DesignSafeProfile.objects.get(user=user) ds_profile.ethnicity = data['ethnicity'] ds_profile.gender = data['gender'] except DesignSafeProfile.DoesNotExist: ds_profile = DesignSafeProfile(user=user, ethnicity=data['ethnicity'], gender=data['gender']) ds_profile.save() # terms of use logger.info( 'Prior to Registration, %s %s <%s> agreed to Terms of Use' % (data['firstName'], data['lastName'], data['email'])) try: terms = TermsAndConditions.get_active() user_terms = UserTermsAndConditions(user=user, terms=terms) user_terms.save() except: logger.exception('Error saving UserTermsAndConditions for user=%s', user) return tas_user
def save(self, source='DesignSafe', pi_eligibility=INELIGIBLE): data = self.cleaned_data data['source'] = source data['piEligibility'] = pi_eligibility safe_data = data.copy() safe_data['password'] = safe_data['confirmPassword'] = '******' logger.info('Attempting new user registration: %s' % safe_data) tas_user = TASClient().save_user(None, data) # create local user UserModel = get_user_model() try: # the user should not exist user = UserModel.objects.get(username=data['username']) logger.warning('On TAS registration, local user already existed? ' 'user=%s' % user) except UserModel.DoesNotExist: user = UserModel.objects.create_user( username=data['username'], first_name=tas_user['firstName'], last_name=tas_user['lastName'], email=tas_user['email'], ) # extended profile information try: # again, this should not exist ds_profile = DesignSafeProfile.objects.get(user=user) ds_profile.ethnicity = data['ethnicity'] ds_profile.gender = data['gender'] except DesignSafeProfile.DoesNotExist: ds_profile = DesignSafeProfile( user=user, ethnicity=data['ethnicity'], gender=data['gender'] ) ds_profile.save() # terms of use logger.info('Prior to Registration, %s %s <%s> agreed to Terms of Use' % ( data['firstName'], data['lastName'], data['email'])) try: terms = TermsAndConditions.get_active() user_terms = UserTermsAndConditions(user=user, terms=terms) user_terms.save() except: logger.exception('Error saving UserTermsAndConditions for user=%s', user) return tas_user
def test_terms_and_conditions_models(self): """Various tests of the TermsAndConditions Module""" # Testing Direct Assignment of Acceptance UserTermsAndConditions.objects.create(user=self.user1, terms=self.terms1) UserTermsAndConditions.objects.create(user=self.user2, terms=self.terms3) self.assertEquals(1.0, self.user1.userterms.get().terms.version_number) self.assertEquals(1.5, self.user2.userterms.get().terms.version_number) self.assertEquals('user1', self.terms1.users.all()[0].username) # Testing the get_active static method of TermsAndConditions self.assertEquals(2.0, TermsAndConditions.get_active(slug='site-terms').version_number) self.assertEquals(1.5, TermsAndConditions.get_active(slug='contrib-terms').version_number) # Testing the agreed_to_latest static method of TermsAndConditions self.assertEquals(False, TermsAndConditions.agreed_to_latest(user=self.user1, slug='site-terms')) self.assertEquals(True, TermsAndConditions.agreed_to_latest(user=self.user2, slug='contrib-terms')) # Testing the unicode method of TermsAndConditions self.assertEquals('site-terms-2.00', str(TermsAndConditions.get_active(slug='site-terms'))) self.assertEquals('contrib-terms-1.50', str(TermsAndConditions.get_active(slug='contrib-terms')))
def test_termsandconditions_get_active(self): """test if right terms are active""" active = TermsAndConditions.get_active() self.assertEqual(active.slug, self.terms_1.slug) self.assertEqual(active.version_number, self.terms_1.version_number) self.assertNotEqual(active.version_number, self.terms_2.version_number)
def save(self, source='DesignSafe', pi_eligibility=INELIGIBLE): data = self.cleaned_data data['source'] = source data['piEligibility'] = pi_eligibility #pull out specific fields from data for tas and pro profile tas_keys = [ 'firstName', 'lastName', 'email', 'confirmEmail', 'phone', 'institutionId', 'departmentId', 'institution', 'title', 'countryId', 'citizenshipId', 'ethnicity', 'gender', 'source', 'piEligibility', 'username', 'password', 'confirmPassword', 'agree_to_terms', 'agree_to_account_limit' ] pro_profile_fields = [ 'nh_interests', 'nh_interests_primary', 'nh_technical_domains', 'bio', 'website', 'orcid_id', 'professional_level', 'research_activities' ] pro_profile_data = {} tas_data = {} for key in data: if key in tas_keys: tas_data[key] = data[key] if key in pro_profile_fields: pro_profile_data[key] = data[key] safe_data = tas_data.copy() safe_data['password'] = safe_data['confirmPassword'] = '******' LOGGER.info('Attempting new user registration: %s' % safe_data) tas_user = TASClient().save_user(None, tas_data) # create local user UserModel = get_user_model() try: # the user should not exist user = UserModel.objects.get(username=data['username']) LOGGER.warning('On TAS registration, local user already existed? ' 'user=%s' % user) except UserModel.DoesNotExist: user = UserModel.objects.create_user( username=data['username'], first_name=tas_user['firstName'], last_name=tas_user['lastName'], email=tas_user['email']) # extended profile information try: # again, this should not exist ds_profile = DesignSafeProfile.objects.get(user=user) ds_profile.ethnicity = data['ethnicity'] ds_profile.gender = data['gender'] ds_profile.bio = data['bio'] ds_profile.website = data['website'] ds_profile.orcid_id = data['orcid_id'] ds_profile.professional_level = data['professional_level'] ds_profile.update_required = False except DesignSafeProfile.DoesNotExist: ds_profile = DesignSafeProfile( user=user, ethnicity=data['ethnicity'], gender=data['gender'], bio=data['bio'], website=data['website'], orcid_id=data['orcid_id'], professional_level=data['professional_level'], update_required=False) ds_profile.save() #save professional profile information pro_profile = ProfessionalProfileForm(instance=ds_profile) pro_profile.cleaned_data = pro_profile_data pro_profile.save() # terms of use LOGGER.info( 'Prior to Registration, %s %s <%s> agreed to Terms of Use' % (data['firstName'], data['lastName'], data['email'])) try: terms = TermsAndConditions.get_active() user_terms = UserTermsAndConditions(user=user, terms=terms) user_terms.save() except: LOGGER.exception('Error saving UserTermsAndConditions for user=%s', user) return tas_user