示例#1
0
    def test_profile_form_valid_zip(self):
        data = {
            'gender': 'male',
            'zip_code': 7030
        }
        form = ProfileForm(data=data)

        self.assertTrue(form.is_valid())
示例#2
0
    def test_profile_form_invalid_zip(self):
        data = {
            'gender': 'male',
            'zip_code': 123
        }
        form = ProfileForm(data=data)

        self.assertFalse(form.is_valid())
示例#3
0
def edit_profile(request):
    context = _create_profile_context(request)
    context["active_tab"] = "edit"

    if request.method == "POST":
        user_profile_form = ProfileForm(request.POST, instance=request.user)
        context["user_profile_form"] = user_profile_form

        if not user_profile_form.is_valid():
            messages.error(request, _("Noen av de påkrevde feltene mangler"))
        else:
            user_profile_form.save()
            messages.success(request, _("Brukerprofilen din ble endret"))

    return render(request, "profiles/index.html", context)
示例#4
0
文件: views.py 项目: EricSchles/bond
def settings(request):
    """Handles new interests, notifications, and event preferences"""
    interests = Interest.objects.filter(profile=request.user)  # based on selected user only
    profile = Profile.objects.get(id=request.user.id)
    cities = UserCity.objects.filter(profile=request.user)

    if 'interest' in request.POST:
        interest_form = InterestForm(request.POST, prefix='interest')
        if interest_form.is_valid():
            interest = interest_form.save(commit=False)
            interest.profile = request.user
            interest.save()
            return redirect("/settings")
    else:
        interest_form = InterestForm(prefix='interest')

    if 'notification' in request.POST:
        profile_form = ProfileForm(request.POST, prefix='notification', instance=request.user)
        if profile_form.is_valid():
            profile = profile_form.save(commit=False)
            profile.save()
            return redirect("/settings")
    else:
        profile_form = ProfileForm(prefix='notification', instance=profile)

    if 'city' in request.POST:
        city_form = UserCityForm(request.POST, prefix='city')
        if city_form.is_valid():
            city = city_form.save(commit=False)
            city.profile = request.user
            city.save()
            return redirect("/settings")

    else:
        city_form = UserCityForm(prefix='city')

    data = {'user': request.user, 'interests': interests, 'profile': profile,
            'interest_form': interest_form, 'profile_form': profile_form,
            'cities': cities, 'city_form': city_form
    }
    return render(request, 'settings.html', data)
示例#5
0
文件: views.py 项目: masterfung/bond
def settings(request):
    """Handles new interests, notifications, and event preferences"""
    interests = Interest.objects.filter(
        profile=request.user)  # based on selected user only
    profile = Profile.objects.get(id=request.user.id)
    cities = UserCity.objects.filter(profile=request.user)

    if 'interest' in request.POST:
        interest_form = InterestForm(request.POST, prefix='interest')
        if interest_form.is_valid():
            interest = interest_form.save(commit=False)
            interest.profile = request.user
            interest.save()
            return redirect("/settings")
    else:
        interest_form = InterestForm(prefix='interest')

    if 'notification' in request.POST:
        profile_form = ProfileForm(request.POST,
                                   prefix='notification',
                                   instance=request.user)
        if profile_form.is_valid():
            profile = profile_form.save(commit=False)
            profile.save()
            return redirect("/settings")
    else:
        profile_form = ProfileForm(prefix='notification', instance=profile)

    if 'city' in request.POST:
        city_form = UserCityForm(request.POST, prefix='city')
        if city_form.is_valid():
            city = city_form.save(commit=False)
            city.profile = request.user
            city.save()
            return redirect("/settings")

    else:
        city_form = UserCityForm(prefix='city')

    data = {
        'user': request.user,
        'interests': interests,
        'profile': profile,
        'interest_form': interest_form,
        'profile_form': profile_form,
        'cities': cities,
        'city_form': city_form
    }
    return render(request, 'settings.html', data)
示例#6
0
    def test_profile_form_invalid_zip(self):
        data = {"gender": "male", "zip_code": 123}
        form = ProfileForm(data=data)

        self.assertFalse(form.is_valid())
示例#7
0
    def test_profile_form_valid_zip(self):
        data = {"gender": "male", "zip_code": 7030}
        form = ProfileForm(data=data)

        self.assertTrue(form.is_valid())
示例#8
0
def _create_profile_context(request):
    groups = Group.objects.all()

    Privacy.objects.get_or_create(user=request.user)  # This is a hack
    """
    To make sure a privacy exists when visiting /profiles/privacy/.
    Until now, it has been generated upon loading models.py, which is a bit hacky.
    The code is refactored to use Django signals, so whenever a user is created, a privacy-property is set up.
    """

    if request.user.is_staff and not request.user.online_mail:
        create_online_mail_alias(request.user)

    context = {
        # edit
        "position_form": PositionForm(),
        "user_profile_form": ProfileForm(instance=request.user),
        # positions
        "groups": groups,
        # privacy
        "privacy_form": PrivacyForm(instance=request.user.privacy),
        # nibble information
        "transactions": PaymentTransaction.objects.filter(user=request.user),
        "orders": Order.objects.filter(order_line__user=request.user).order_by(
            "-order_line__datetime"
        ),
        # SSO / OAuth2 approved apps
        "connected_apps": AccessToken.objects.filter(
            user=request.user, expires__gte=timezone.now()
        ).order_by("expires"),
        # marks
        "mark_rule_set": MarkRuleSet.get_current_rule_set(),
        "mark_rules_accepted": request.user.mark_rules_accepted,
        "marks": [
            # Tuple syntax ('title', list_of_marks, is_collapsed)
            (_("aktive prikker"), Mark.marks.active(request.user), False),
            (_("inaktive prikker"), Mark.marks.inactive(request.user), True),
        ],
        "suspensions": [
            # Tuple syntax ('title', list_of_marks, is_collapsed)
            (
                _("aktive suspensjoner"),
                Suspension.objects.filter(user=request.user, active=True),
                False,
            ),
            (
                _("inaktive suspensjoner"),
                Suspension.objects.filter(user=request.user, active=False),
                True,
            ),
        ],
        # password
        "password_change_form": PasswordChangeForm(request.user),
        # email
        "new_email": NewEmailForm(),
        # approvals
        "field_of_study_application": FieldOfStudyApplicationForm(),
        "has_active_approvals": MembershipApproval.objects.filter(
            applicant=request.user, processed=False
        ).count()
        > 0,
        "approvals": [
            # Tuple syntax ('title', list_of_approvals, is_collapsed)
            (
                _("aktive søknader"),
                MembershipApproval.objects.filter(
                    applicant=request.user, processed=False
                ),
                False,
            ),
            (
                _("avslåtte søknader"),
                MembershipApproval.objects.filter(
                    applicant=request.user, processed=True, approved=False
                ),
                True,
            ),
            (
                _("godkjente søknader"),
                MembershipApproval.objects.filter(
                    applicant=request.user, processed=True
                ),
                True,
            ),
        ],
        "payments": [
            (
                _("ubetalt"),
                PaymentDelay.objects.all().filter(user=request.user, active=True),
                False,
            ),
            (
                _("betalt"),
                PaymentRelation.objects.all().filter(user=request.user),
                True,
            ),
        ],
        "internal_services_form": InternalServicesForm(),
        "in_comittee": has_access(request),
        "enable_dataporten_application": settings.DATAPORTEN.get("STUDY").get("ENABLED")
        or settings.DATAPORTEN.get("STUDY").get("TESTING"),
    }

    return context
示例#9
0
def _create_profile_context(request):
    groups = Group.objects.all()

    Privacy.objects.get_or_create(user=request.user)  # This is a hack
    """
    To make sure a privacy exists when visiting /profiles/privacy/.
    Until now, it has been generated upon loading models.py, which is a bit hacky.
    The code is refactored to use Django signals, so whenever a user is created, a privacy-property is set up.
    """

    if request.user.is_staff and not request.user.online_mail:
        create_online_mail_alias(request.user)

    context = {
        # edit
        'position_form':
        PositionForm(),
        'user_profile_form':
        ProfileForm(instance=request.user),
        # positions
        'groups':
        groups,
        # privacy
        'privacy_form':
        PrivacyForm(instance=request.user.privacy),
        # nibble information
        'transactions':
        PaymentTransaction.objects.filter(user=request.user),
        'orders':
        Order.objects.filter(
            order_line__user=request.user).order_by('-order_line__datetime'),

        # SSO / OAuth2 approved apps
        'connected_apps':
        AccessToken.objects.filter(
            user=request.user,
            expires__gte=timezone.now()).order_by('expires'),

        # marks
        'mark_rules_accepted':
        request.user.mark_rules,
        'marks': [
            # Tuple syntax ('title', list_of_marks, is_collapsed)
            (_('aktive prikker'), Mark.marks.active(request.user), False),
            (_('inaktive prikker'), Mark.marks.inactive(request.user), True),
        ],
        'suspensions': [
            # Tuple syntax ('title', list_of_marks, is_collapsed)
            (_('aktive suspensjoner'),
             Suspension.objects.filter(user=request.user, active=True), False),
            (_('inaktive suspensjoner'),
             Suspension.objects.filter(user=request.user, active=False), True),
        ],
        # password
        'password_change_form':
        PasswordChangeForm(request.user),
        # email
        'new_email':
        NewEmailForm(),
        # approvals
        'field_of_study_application':
        FieldOfStudyApplicationForm(),
        'has_active_approvals':
        MembershipApproval.objects.filter(applicant=request.user,
                                          processed=False).count() > 0,
        'approvals': [
            # Tuple syntax ('title', list_of_approvals, is_collapsed)
            (_("aktive søknader"),
             MembershipApproval.objects.filter(applicant=request.user,
                                               processed=False), False),
            (_("avslåtte søknader"),
             MembershipApproval.objects.filter(applicant=request.user,
                                               processed=True,
                                               approved=False), True),
            (_("godkjente søknader"),
             MembershipApproval.objects.filter(applicant=request.user,
                                               processed=True), True),
        ],
        'payments': [
            (_('ubetalt'), PaymentDelay.objects.all().filter(user=request.user,
                                                             active=True),
             False),
            (_('betalt'),
             PaymentRelation.objects.all().filter(user=request.user), True),
        ],
        'internal_services_form':
        InternalServicesForm(),
        'in_comittee':
        has_access(request)
    }

    return context