def testClaraGet(self): kenny = User.objects.get(username="******") clara = User.objects.get(username="******") settings_kenny = UserSettings() settings_kenny = settings_kenny.get_settings_based_on_user(kenny) settings_clara = UserSettings() settings_clara = settings_clara.get_settings_based_on_user(clara) c = Client() loginAttempt = c.login(username='******', password='******') response = c.get("/account/settings") self.assertNotEqual(response.context["first_name"], kenny.first_name) self.assertNotEqual(response.context["last_name"], kenny.last_name) self.assertNotEqual(response.context["email"], kenny.email) self.assertNotEqual(response.context["phone_number"], "") self.assertEqual(response.context["first_name"], clara.first_name) self.assertEqual(response.context["last_name"], clara.last_name) self.assertEqual(response.context["email"], clara.email) self.assertEqual(response.context["phone_number"], settings_clara.PhoneNumber)
def setUp(self): # Necessary Currency Objects usd = Currency.objects.create() USA = Country() USA.PrimaryCurrency = usd USA.Name = "United States" USA.Code = "US" USA.save() # Types u1 = UserType.objects.create(Name="Type 1") u2 = UserType.objects.create(Name="Type 2") u3 = UserType.objects.create(Name="Type 3") brian = User.objects.create(username="******", email="*****@*****.**", first_name="Brian", last_name="Katchmar") # Passes settings_brian = UserSettings() settings_brian = settings_brian.get_settings_based_on_user(brian) settings_brian.BusinessName = "MIAC" settings_brian.Region = "New York" settings_brian.save() UserAssociatedTypes.objects.create(UserAccount=brian, UserFreelanceType=u1) josh = User.objects.create(username="******", email="*****@*****.**", first_name="Josh", last_name="Blank") # No User Settings kenny = User.objects.create( username="******", email="*****@*****.**", first_name="Kenny", last_name="Kim" ) # Has User Settings, has associated types, neither of the two fields we check kenny.set_password("Thing5Ar3Gr34t") kenny.save() settings_kenny = UserSettings() settings_kenny = settings_brian.get_settings_based_on_user(kenny) settings_kenny.save() UserAssociatedTypes.objects.create(UserAccount=kenny, UserFreelanceType=u2) UserAssociatedTypes.objects.create(UserAccount=kenny, UserFreelanceType=u3) clara = User.objects.create( username="******", email="*****@*****.**", first_name="Clara", last_name="Chang") # Has User Settings, no associated types clara.set_password("Thing5Ar3Gr34t") clara.save() settings_clara = UserSettings() settings_clara = settings_brian.get_settings_based_on_user(clara) settings_clara.BusinessName = "InFlow" settings_clara.Region = "New York" settings_clara.save()
def setUp(self): # Necessary Currency Objects usd = Currency.objects.create() USA = Country() USA.PrimaryCurrency = usd USA.Name = "United States" USA.Code = "US" USA.save() kenny = User.objects.create(username="******", email="*****@*****.**", first_name="Kenny", last_name="Kim") kenny.set_password("Thing5Ar3Gr34t") kenny.save() clara = User.objects.create(username="******", email="*****@*****.**", first_name="Clara", last_name="Chang") clara.set_password("Thing5Ar3Gr34t") clara.save() settings_kenny = UserSettings() settings_kenny = settings_kenny.get_settings_based_on_user(kenny) settings_kenny.save() settings_clara = UserSettings() settings_clara = settings_clara.get_settings_based_on_user(clara) settings_clara.BusinessName = "InFlow" settings_clara.Region = "New York" settings_clara.PhoneNumber = "2125555555" settings_clara.StripeConnectAccountKey = "1234567890" settings_clara.save()
def setUp(self): # Necessary Currency Objects usd = Currency.objects.create() USA = Country() USA.PrimaryCurrency = usd USA.Name = "United States" USA.Code = "US" USA.save() # Types u1 = UserType.objects.create(Name="Kenny Type 1") u2 = UserType.objects.create(Name="Kenny Type 2") u3 = UserType.objects.create(Name="Kenny Type 3") kenny = User.objects.create( username="******", email="*****@*****.**", first_name="Kenny", last_name="Kim" ) # Has User Settings, has associated types, neither of the two fields we check kenny.set_password("Thing5Ar3Gr34t") kenny.save() settings_kenny = UserSettings() settings_kenny = settings_kenny.get_settings_based_on_user(kenny) settings_kenny.save() UserAssociatedTypes.objects.create(UserAccount=kenny, UserFreelanceType=u2) UserAssociatedTypes.objects.create(UserAccount=kenny, UserFreelanceType=u3)
def post(self, request): context = self.get_context_data(request) selected_frequency = request.POST.get( "frequency", UserSettings._meta.get_field("FreelancerFrequency").get_default()) other_text = request.POST.get("other", "") # Go through each UserType and see what was selected, add that to the DB # Remove anything that was previously selected UserAssociatedTypes.objects.filter(UserAccount=request.user).delete() for type in self.all_user_types: current_type = request.POST.get(type.Name, "") if current_type == "on": UserAssociatedTypes.objects.create(UserAccount=request.user, UserFreelanceType=type) # Build up user settings or fetch previously saved ones, then save what was selected as the freelancer frequency type usersettings = UserSettings() usersettings = usersettings.get_settings_based_on_user(request.user) usersettings.FreelancerFrequency = selected_frequency usersettings.OtherType = other_text usersettings.save() return redirect(reverse("accounts:onboarding_2"))
def post(self, request): context = self.get_context_data(request) # Gather Data From Post selected_work_with = request.POST.get( "work-with", UserSettings._meta.get_field("FreelancerWorkWith").get_default()) # Remove anything that was previously selected UserInterest.objects.filter(UserAccount=request.user).delete() for interest in FREELANCER_INTERESTED_IN: interest_point = request.POST.get(interest[0], "") if interest_point == "on": UserInterest.objects.create(UserAccount=request.user, Interest=interest[0]) # Build up user settings or fetch previously saved ones, then save what was selected as the freelancer work with and interested in usersettings = UserSettings() usersettings = usersettings.get_settings_based_on_user(request.user) usersettings.FreelancerWorkWith = selected_work_with usersettings.save() return redirect(reverse("accounts:onboarding_3"))
def setUp(self): # Necessary Currency Objects usd = Currency.objects.create() USA = Country() USA.PrimaryCurrency = usd USA.Name = "United States" USA.Code = "US" USA.save() # Types u1 = UserType.objects.create(Name="Clara Type 1") u2 = UserType.objects.create(Name="Clara Type 2") u3 = UserType.objects.create(Name="Clara Type 3") clara = User.objects.create( username="******", email="*****@*****.**", first_name="Clara", last_name="Chang") # Has User Settings, no associated types clara.set_password("Thing5Ar3Gr34t") clara.save() settings_clara = UserSettings() settings_clara = settings_clara.get_settings_based_on_user(clara) settings_clara.BusinessName = "InFlow" settings_clara.Region = "New York" settings_clara.save()
def get(self, request): context = {} stripe.api_key = settings.STRIPE_TEST_API_SECRET currentlyloggedinuser = "" usersettings = UserSettings() if request.user.is_authenticated: currentlyloggedinuser = request.user usersettings = usersettings.get_settings_based_on_user(currentlyloggedinuser) # Call Stripe Settings For The Link Generation context["call_state"] = settings.STRIPE_CALL_STATE context["stripe_acct"] = settings.STRIPE_ACCOUNT_ID # If this is from a Stripe Auth Page comm = StripeCommunication() response_code = request.GET.get("code", "") json_response = {} if response_code != "": json_response = comm.create_new_stripe_custom_account(response_code) if "stripe_user_id" in json_response: print("Found Stripe User ID") print(json_response["stripe_user_id"]) if "error_description" in json_response: context["error_description"] = json_response["error_description"] return render(request, self.template_name, context)
def setUp(self): # Necessary Currency Objects usd = Currency.objects.create() USA = Country() USA.PrimaryCurrency = usd USA.Name = "United States" USA.Code = "US" USA.save() # Users user_1 = User.objects.create(username="******", email="*****@*****.**", first_name="Brian", last_name="Katchmar") user_1.set_password("Th3L10nK1ng15Fun") user_1.save() settings_user_1 = UserSettings() settings_user_1 = settings_user_1.get_settings_based_on_user(user_1) settings_user_1.BusinessName = "MIAC" settings_user_1.Region = "New York" settings_user_1.save() user_2 = User.objects.create(username="******", email="*****@*****.**", first_name="Brian", last_name="Katchmar") user_2.set_password("Thing5Ar3Gr34t") user_2.save() settings_user_2 = UserSettings() settings_user_2 = settings_user_2.get_settings_based_on_user(user_2) settings_user_2.save() user_3 = User.objects.create(username="******", email="*****@*****.**", first_name="Brian", last_name="Katchmar") user_3.set_password("Thing5Ar3Gr34t") user_3.save() settings_user_3 = UserSettings() settings_user_3 = settings_user_3.get_settings_based_on_user(user_3) settings_user_3.BusinessName = "InFlow" settings_user_3.Region = "New York" settings_user_3.PhoneNumber = "2125555555" settings_user_3.StripeConnectAccountKey = "1234567890" settings_user_3.save()
def getUserSettings(self, request): currentlyloggedinuser = "" usersettings = UserSettings() if request.user.is_authenticated: currentlyloggedinuser = request.user usersettings = usersettings.get_settings_based_on_user(currentlyloggedinuser) return usersettings
def setUp(self): # Necessary Currency Objects usd = Currency.objects.create() USA = Country() USA.PrimaryCurrency = usd USA.Name = "United States" USA.Code = "US" USA.save() # Users brian_1 = User.objects.create(username="******", email="*****@*****.**", first_name="Brian", last_name="Katchmar") brian_1.set_password("Th3L10nK1ng15Fun") brian_1.save() settings_brian_1 = UserSettings() settings_brian_1 = settings_brian_1.get_settings_based_on_user(brian_1) settings_brian_1.save() brian_2 = User.objects.create(username="******", email="*****@*****.**", first_name="Brian", last_name="Katchmar") brian_2.set_password("Th3L10nK1ng15Fun") brian_2.save() settings_brian_2 = UserSettings() settings_brian_2 = settings_brian_2.get_settings_based_on_user(brian_2) settings_brian_2.save() if not Contract.objects.filter(Name=self.contract_name_1).exists(): contract_1 = Contract.objects.create(Creator=brian_1, Name=self.contract_name_1, StartDate=date.today(), EndDate=date.today()) Relationship.objects.create(ContractUser=brian_1, ContractForRelationship=contract_1, RelationshipType="f") Relationship.objects.create(ContractUser=brian_2, ContractForRelationship=contract_1, RelationshipType="c")
def get_context_data(self, request, **kwargs): context = super(UserDashboardLowFi, self).get_context_data(**kwargs) user_settings = UserSettings() user_settings = user_settings.get_settings_based_on_user(request.user) user_contracts_where_relationship_exists = Relationship.objects.filter( ContractUser=request.user) all_recipients = Recipient.objects.all() all_milestones = Milestone.objects.all().order_by("Deadline") context["needs_stripe"] = user_settings.does_this_user_need_stripe() context["call_state"] = settings.STRIPE_CALL_STATE context["stripe_acct"] = settings.STRIPE_ACCOUNT_ID context["first_name"] = request.user.first_name context["projects_in_progress"] = [] context["upcoming_milestones"] = [] for relationship in user_contracts_where_relationship_exists: if relationship.ContractForRelationship.StartDate <= timezone.now( ).date( ) and relationship.ContractForRelationship.EndDate >= timezone.now( ).date(): # Get recipient and fill in entry for the in progress projects recipient_for_contract = all_recipients.filter( ContractForRecipient=relationship.ContractForRelationship ).first() context["projects_in_progress"].append({ "name": relationship.ContractForRelationship.Name, "progress": relationship.ContractForRelationship. get_contract_state_view(), "client": recipient_for_contract.Name }) # Get milestones for this contract that are still due contract_milestones = all_milestones.filter( MilestoneContract=relationship.ContractForRelationship) for milestone in contract_milestones: if milestone.Deadline >= timezone.now().date(): context["upcoming_milestones"].append({ "date": milestone.Deadline.strftime("%b %d %Y"), "name": milestone.Name, "project": milestone.MilestoneContract.Name, "amount": "{0:.2f}".format(milestone.MilestonePaymentAmount) }) return context
def testUniqueUserSlugsGeneratedEvenIfMultipleUsersAlreadyExists(self): user_1 = User.objects.get(username="******") settings_user_1 = UserSettings() settings_user_1 = settings_user_1.get_settings_based_on_user(user_1) user_2 = User.objects.get(username="******") settings_user_2 = UserSettings() settings_user_2 = settings_user_2.get_settings_based_on_user(user_2) user_3 = User.objects.get(username="******") settings_user_3 = UserSettings() settings_user_3 = settings_user_1.get_settings_based_on_user(user_3) self.assertIsNotNone(settings_user_1.UrlSlug) self.assertIsNotNone(settings_user_2.UrlSlug) self.assertIsNotNone(settings_user_3.UrlSlug) self.assertNotEqual(settings_user_1.UrlSlug, settings_user_2.UrlSlug) self.assertNotEqual(settings_user_1.UrlSlug, settings_user_3.UrlSlug) self.assertNotEqual(settings_user_2.UrlSlug, settings_user_3.UrlSlug)
def get(self, request): context = self.get_context_data(request) # If true, This call came from a Stripe page and came back with a User ID if context["came_from_stripe"] and context["user_stripe_acct"] != "": user_settings = UserSettings() user_settings = user_settings.get_settings_based_on_user( request.user) user_settings.StripeConnectAccountKey = context["user_stripe_acct"] user_settings.save() context["needs_stripe"] = False return render(request, self.template_name, context)
def get_context_data(self, request, **kwargs): context = {} # Get user content settings usersettings = UserSettings() usersettings = usersettings.get_settings_based_on_user(request.user) # Set context for view context["name"] = request.user.first_name context["country"] = Country.objects.all() context["currency"] = Currency.objects.all() context["selected_country"] = usersettings.BaseCountry.IdCountry context[ "selected_country_currency"] = usersettings.BaseCountry.PrimaryCurrency.IdCurrency return context
def post(self, request): context = self.get_context_data(request) # Gather Data From Post business_name = request.POST.get("business-name", "") region = request.POST.get("region", "") zip_code = request.POST.get("zip-code", "") # Build up user settings or fetch previously saved ones, then save what was selected as the freelancer work with and interested in usersettings = UserSettings() usersettings = usersettings.get_settings_based_on_user(request.user) usersettings.BusinessName = business_name usersettings.Region = region usersettings.ZipCode = zip_code usersettings.save() return redirect(reverse("base:dashboard"))
def testKennyPostTryToChangeToClara(self): kenny = User.objects.get(username="******") settings_kenny = UserSettings() settings_kenny = settings_kenny.get_settings_based_on_user(kenny) c = Client() loginAttempt = c.login(username='******', password='******') response = c.post( '/account/settings', { 'first-name': 'Snickity', 'last-name': 'Snack', 'email-address': '*****@*****.**', 'phone-number': '2121234567' }) self.assertTrue("error_message" in response.context)
def get_context_data(self, request, **kwargs): # Get some necessary User Information user_settings = UserSettings() user_settings = user_settings.get_settings_based_on_user(request.user) # Set the context context = super(EditAccountView, self).get_context_data(**kwargs) # Call Stripe Settings For The Link Generation context["needs_stripe"] = user_settings.does_this_user_need_stripe() context["call_state"] = settings.STRIPE_CALL_STATE context["stripe_acct"] = settings.STRIPE_ACCOUNT_ID # If this is from a Stripe Auth Page comm = StripeCommunication() response_code = request.GET.get("code", "") stripe_state = request.GET.get("state", "") json_response = {} # We need to check if this request even came from Stripe if response_code != "": json_response = comm.create_new_stripe_custom_account( response_code) context["came_from_stripe"] = True if stripe_state != settings.STRIPE_CALL_STATE: context["error_message"] = "Bad Call State" context["needs_stripe"] = True else: context["came_from_stripe"] = False # Did we get the stripe User ID in the response? if "stripe_user_id" in json_response: context["user_stripe_acct"] = json_response["stripe_user_id"] else: context["user_stripe_acct"] = "" # Did the response come with an error description? if "error_description" in json_response: context["error_message"] = json_response["error_description"] context["needs_stripe"] = True return context
def testKennyPostBasicInfoEdit(self): kenny = User.objects.get(username="******") settings_kenny = UserSettings() settings_kenny = settings_kenny.get_settings_based_on_user(kenny) c = Client() loginAttempt = c.login(username='******', password='******') response = c.post( '/account/settings', { 'first-name': 'Snickity', 'last-name': 'Snack', 'email-address': '*****@*****.**', 'phone-number': '2121234567' }) self.assertEqual(response.context["first_name"], "Snickity") self.assertEqual(response.context["last_name"], "Snack") self.assertNotEqual(response.context["first_name"], "Kenny") self.assertNotEqual(response.context["last_name"], "Kim") self.assertTrue("error_message" not in response.context)
def setUp(self): # Necessary Currency Objects usd = Currency.objects.create() USA = Country() USA.PrimaryCurrency = usd USA.Name = "United States" USA.Code = "US" USA.save() # Users brian = User.objects.create(username="******", email="*****@*****.**", first_name="Brian", last_name="Katchmar") brian.set_password("Th3L10nK1ng15Fun") brian.save() settings_brian = UserSettings() settings_brian = settings_brian.get_settings_based_on_user(brian) settings_brian.BusinessName = "MIAC" settings_brian.Region = "New York" settings_brian.save() kenny = User.objects.create( username="******", email="*****@*****.**", first_name="Kenny", last_name="Kim" ) # Has User Settings, has associated types, neither of the two fields we check kenny.set_password("Thing5Ar3Gr34t") kenny.save() settings_kenny = UserSettings() settings_kenny = settings_kenny.get_settings_based_on_user(kenny) settings_kenny.save() clara = User.objects.create(username="******", email="*****@*****.**", first_name="Clara", last_name="Chang") clara.set_password("Thing5Ar3Gr34t") clara.save() settings_clara = UserSettings() settings_clara = settings_clara.get_settings_based_on_user(clara) settings_clara.BusinessName = "InFlow" settings_clara.Region = "New York" settings_clara.PhoneNumber = "2125555555" settings_clara.StripeConnectAccountKey = "1234567890" settings_clara.save() if NotificationSetting.objects.filter( SettingName=self.setting_string_1).exists(): ns1 = NotificationSetting.objects.get( SettingName=self.setting_string_1) else: ns1 = NotificationSetting.objects.create( SettingName=self.setting_string_1) if NotificationSetting.objects.filter( SettingName=self.setting_string_2).exists(): ns2 = NotificationSetting.objects.get( SettingName=self.setting_string_2) else: ns2 = NotificationSetting.objects.create( SettingName=self.setting_string_2) if NotificationSetting.objects.filter( SettingName=self.setting_string_3).exists(): ns3 = NotificationSetting.objects.get( SettingName=self.setting_string_3) else: ns3 = NotificationSetting.objects.create( SettingName=self.setting_string_3) if NotificationSetting.objects.filter( SettingName=self.setting_string_4).exists(): ns4 = NotificationSetting.objects.get( SettingName=self.setting_string_4) else: ns4 = NotificationSetting.objects.create( SettingName=self.setting_string_4) # Purge the DB Entries, we're rebuild what we're expecting UserNotificationSettings.objects.filter(UserAccount=brian).delete() UserNotificationSettings.objects.filter(UserAccount=kenny).delete() UserNotificationSettings.objects.filter(UserAccount=clara).delete() # Brian UserNotificationSettings.objects.create(UserAccount=brian, Setting=ns1, Selected=True) UserNotificationSettings.objects.create(UserAccount=brian, Setting=ns2, Selected=True) UserNotificationSettings.objects.create(UserAccount=brian, Setting=ns3, Selected=True) UserNotificationSettings.objects.create(UserAccount=brian, Setting=ns4, Selected=True) # Kenny UserNotificationSettings.objects.create(UserAccount=kenny, Setting=ns1, Selected=True) UserNotificationSettings.objects.create(UserAccount=kenny, Setting=ns2, Selected=False) UserNotificationSettings.objects.create(UserAccount=kenny, Setting=ns3, Selected=False) UserNotificationSettings.objects.create(UserAccount=kenny, Setting=ns4, Selected=True) # Clara UserNotificationSettings.objects.create(UserAccount=clara, Setting=ns1, Selected=False) UserNotificationSettings.objects.create(UserAccount=clara, Setting=ns2, Selected=True) UserNotificationSettings.objects.create(UserAccount=clara, Setting=ns3, Selected=False) UserNotificationSettings.objects.create(UserAccount=clara, Setting=ns4, Selected=True)