예제 #1
0
    def post(self, request, username=None, mode=None):
        context = {}

        if username is not None:
            return self.get(request, username, mode)

        context['detailsform'] = DetailsForm(instance=request.user.details)
        context['userform'] = UserForm(instance=request.user)
        context['settingsform'] = SettingsForm(instance=request.user.settings)

        if mode == "details":
            form = DetailsForm(request.POST, instance=request.user.details)

            if form.is_valid():
                form.save()
                messages.success(request, "Persoonsgegevens veranderd")
                return self.get(request)
            else:
                messages.warning(request, "Er zijn een paar velden niet goed ingevuld")
                context['detailsform'] = form

        elif mode == "profile":
            user = UserForm(request.POST, instance=request.user)

            if user.is_valid():
                user.save()
                messages.success(request, "Profiel opgeslagen!")
                return self.get(request)
            else:
                messages.warning(request, "Er zijn een paar velden niet goed ingevuld")
                context['userform'] = user

        elif mode == "settings":
            settings = SettingsForm(request.POST, request.FILES, instance=request.user.settings)

            if settings.is_valid():
                settings.save()
                messages.success(request, "Intelling gewijzigd")
                return self.get(request)
            else:
                messages.warning(request, "Er zijn een paar velden niet goed ingevuld")
                context['settingsform'] = settings

        return render(request, "account/profile.html", context)
예제 #2
0
파일: views.py 프로젝트: qysnolan/ChoiceNet
def account_settings(request):
    """
    *GET*
    Allows a user to change an account.
    *POST*
    Saves account with selected attributes
    *TEMPLATES*
    'accounts/settings.html'
    """

    from accounts.forms import SettingsForm

    if request.method == "GET":

        form = SettingsForm(request.user)

        redirect_to = "/home/#settings"

        if "next" in request.GET:
            redirect_to = request.GET["next"]

        return render_with_user(request, "accounts/settings.html", {"form": form, "redirect_to": redirect_to})

    if request.method == "POST":

        form = SettingsForm(request.user, request.POST)

        form_valid = False

        redirect_to = request.GET.get("next", "/home/#settings")

        if form.is_valid():
            # FORM IS VALID, CREATE USER

            form_valid = True
            form.save()

            return redirect(redirect_to)

        return render_with_user(
            request, "accounts/settings.html", {"form": form, "form_valid": form_valid, "redirect_to": redirect_to}
        )