示例#1
0
    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()
示例#2
0
    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()
示例#3
0
    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"))
示例#4
0
    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)
示例#5
0
    def post(self, request, *args, **kwargs):
        form_class = self.get_form_class()
        form = self.get_form(form_class)
        form.full_clean()

        if form.is_valid():
            username = form.cleaned_data['username'].replace(' ', '').lower()
            password = form.cleaned_data['password']

            user = User.objects.create(username=username)
            user.email = form.cleaned_data['email']
            user.set_password(password)
            user.is_active = False
            user.save()

            user_settings = UserSettings(user=user,credit=100)
            user_settings.save()

            logger.info('New user signed up: %s (%s)', user, user.email)

            # Automatically authenticate the user after user creation.
            #user_auth = authenticate(username=username, password=password)
            #login(request, user_auth)

            return self.form_valid(form)
        else:
            return self.form_invalid(form)
示例#6
0
    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"))
示例#7
0
def register(request, trial):

    page_type = 'register'
    if trial == 'trial':
        trial_account = True
    else:
        trial_account = False

    if request.method == 'POST':
        user_form = UserRegisterForm(request.POST, label_suffix='')
        group_form = GroupRegisterForm(request.POST, label_suffix='')
        if user_form.is_valid() and group_form.is_valid():
            # save each form
            password = user_form.cleaned_data['password1']
            new_user = user_form.save()
            group = group_form.save()
            # associate the user with the group
            u = new_user
            group.users.add(u)
            # set the group as the user's current_group
            settings = UserSettings(user=u, current_group=group)
            settings.save()
            # generate a slug from the group name
            slug = slugify(group.name)[:20]
            group.slug = slug
            group.save()
            # set the account status to trial if required
            if trial_account == True:
                group.account_type = 'Trial'
                group.save()
            # save initial snapshots of new user and group details
            snapshot_user_details(u, password='******')
            snapshot_group_details(group)
            # log the new user in
            user = authenticate(username=new_user.username, password=password)
            login(request, user)
            # set the new user up as a participant
            participant = Participant(group=group,
                                      email=user.email,
                                      first_name=user.first_name,
                                      last_name=user.last_name)
            participant.save()
            # send the new user a welcome email
            send_welcome_email(group=group, user=user)

            return HttpResponseRedirect(reverse('welcome'))
    else:
        user_form = UserRegisterForm(label_suffix='')
        group_form = GroupRegisterForm(label_suffix='')

    return render(
        request, 'register.html', {
            'group_form': group_form,
            'page_type': page_type,
            'trial_account': trial_account,
            'user_form': user_form,
        })
示例#8
0
def register(request, trial):

    page_type = 'register'
    if trial == 'trial':
        trial_account = True
    else:
        trial_account = False
            
    if request.method == 'POST':
        user_form = UserRegisterForm(request.POST, label_suffix='')
        group_form = GroupRegisterForm(request.POST, label_suffix='')
        if user_form.is_valid() and group_form.is_valid():
            # save each form
            password = user_form.cleaned_data['password1']
            new_user = user_form.save()
            group = group_form.save()
            # associate the user with the group
            u = new_user
            group.users.add(u)
            # set the group as the user's current_group
            settings = UserSettings(user=u, current_group=group)
            settings.save()
            # generate a slug from the group name
            slug = slugify(group.name)[:20]
            group.slug = slug
            group.save()
            # set the account status to trial if required
            if trial_account == True:
                group.account_type = 'Trial'
                group.save()
            # save initial snapshots of new user and group details
            snapshot_user_details(u, password='******')
            snapshot_group_details(group)
            # log the new user in
            user = authenticate(username=new_user.username,
                                password=password)
            login(request, user)
            # set the new user up as a participant
            participant = Participant(group=group, email=user.email,
                                      first_name=user.first_name,
                                      last_name=user.last_name)
            participant.save()
            # send the new user a welcome email
            send_welcome_email(group=group, user=user)
                        
            return HttpResponseRedirect(reverse('welcome'))
    else:
        user_form = UserRegisterForm(label_suffix='')
        group_form = GroupRegisterForm(label_suffix='')
        
    return render(request, 'register.html', {
        'group_form': group_form,
        'page_type': page_type,
        'trial_account': trial_account,
        'user_form': user_form,
    })
示例#9
0
    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)
示例#10
0
    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"))
示例#11
0
    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")
示例#12
0
    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()
示例#13
0
    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()
示例#14
0
    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)