Example #1
0
def settings(request):
    if request.method == 'GET':
        form = SettingsForm(data={
            'login': request.user.username,
            'email': request.user.email
        })
    if request.POST:
        form = SettingsForm(data=request.POST, files=request.FILES,
                            instance=request.user.author)
        if form.is_valid():
            post = form.save(commit=False)
            username_field = form.cleaned_data.get('login')
            email_field = form.cleaned_data.get('email')
            author = request.user.author
            author.user_name = username_field
            author.avatar = request.FILES.get('avatar', request.user.author.avatar)
            author.save()

            user_ = request.user
            user_.username = username_field
            user_.email = email_field
            user_.save()

            form.save()
    return render(request, 'settings.html', {'form': form})
def settings(request):
    if request.method == 'POST':
        form = SettingsForm(request.POST, instance=request.user)
        formAv = AvatarForm(request.user, request.POST, request.FILES)
        if formAv.is_valid():
            formAv.save()
        if form.is_valid():
            form.save()
            return redirect('/main/')
        tags = Tag.objects.best_tags()[0:10]
        users = Client.objects.best_members()[0:10]
        return render(request, 'settings_page.html', {
            'tags': tags,
            'users': users,
            'form': form,
            'formAv': formAv,
            'user': request.user,
            'errors': form.errors,
        })
    else:
        form = SettingsForm(instance=request.user)
        formAv = AvatarForm(request.user)
        tags = Tag.objects.best_tags()[0:10]
        users = Client.objects.best_members()[0:10]
        return render(request, 'settings_page.html', {
            'tags': tags,
            'users': users,
            'form': form,
            'formAv': formAv,
            'user': request.user,
            'errors': form.errors,
        })
Example #3
0
def settings(request):
    if request.method == "GET":
        form = SettingsForm(
            initial={
                'first_name':
                request.user.first_name,
                'last_name':
                request.user.last_name,
                'email':
                request.user.email,
                'avatar':
                "/static/{}".format(Users.objects.get_avatar(request.user.pk)),
                'change':
                "/static/{}".format(Users.objects.get_avatar(request.user.pk))
            })
    if request.method == "POST":
        form = SettingsForm(request.POST, request.FILES)
        if form.is_valid():
            user = User.objects.get(pk=request.user.pk)
            user.first_name = form.cleaned_data['first_name']
            user.last_name = form.cleaned_data['last_name']
            user.email = form.cleaned_data['email']
            if form.cleaned_data['change'] is not None:
                user.users.avatar = form.cleaned_data['change']
                user.users.save()
            user.save()
            messages.success(request, 'Form submission successful')
    form.initial['avatar'] = "/static/{}".format(
        Users.objects.get_avatar(request.user.pk))

    print(form.initial)
    ctx = {'form': form}
    return render(request, 'settings.html', ctx)
Example #4
0
def settings(request):
    if request.method == "GET":
        form = SettingsForm(initial={
            "username": request.user.username,
            "email": request.user.email
        })
    else:
        form = SettingsForm(data=request.POST, files=request.FILES)
        if form.is_valid():
            user = request.user
            if form.cleaned_data["username"] != user.username:
                user.username = form.cleaned_data["username"]
            if form.cleaned_data["email"] != user.email:
                user.email = form.cleaned_data["email"]
            if form.cleaned_data["password"]:
                user.set_password(form.cleaned_data["password"])
            if form.cleaned_data["avatar"]:
                profile = Profile.objects.get(user=user)
                new_photo = upload_image(form.cleaned_data["avatar"], user.id)
                flag = False
                if profile.avatar == BASE_AVATAR:
                    flag = True
                profile.avatar = new_photo
                profile.save()
                if flag:
                    change_photos(user)
            user.save()

    return render(request, "settings.html", {
        "form": form,
        "avatar": Profile.objects.get(user=request.user).avatar,
    })
Example #5
0
def settings(request):
    if request.method == 'GET':
        form = SettingsForm(instance=request.user)
    elif request.method == 'POST':
        form = SettingsForm(data=request.POST,
                            instance=request.user,
                            files=request.FILES)
        if form.is_valid():
            form.save()
    return render(request, 'settings.html', {'form': form})
Example #6
0
def edit_settings(request):
    
    organizations = [membership.organization for membership in OrganizationMember.objects.filter(user=request.user, is_owner=True)]

    try:
        credentials = SlackCredentials.objects.get(user=request.user)
        slack_auth = None
    except SlackCredentials.DoesNotExist:
        slack_auth = {
            'auth_url': SlackCredentials.get_auth_url(request)
        }

    initial = {
        'name': request.user.name,
        'email': request.user.email,
        'bio': request.user.bio,
        'city': request.user.city,
        'country': request.user.country,
        'public_phone': request.user.public_phone,
        'public_email': request.user.public_email
    }

    form = SettingsForm(initial=initial)
    if request.method == 'POST':
        form = SettingsForm(request.POST, initial=initial)
        form.set_user(request.user)
        if form.is_valid():
            if request.FILES.get('userpic'):
                request.user.userpic =  request.FILES.get('userpic')
            request.user.name = form.cleaned_data.get('name')
            request.user.city = form.cleaned_data.get('city')
            request.user.country = form.cleaned_data.get('country')
            request.user.public_phone = form.cleaned_data.get('public_phone')
            request.user.public_email = form.cleaned_data.get('public_email')
            request.user.bio = form.cleaned_data.get('bio')
            request.user.save()
            # TODO: if email was updated -> mark user account is_active=False and send activation link
            password = form.cleaned_data.get('password')
            request.user.email = form.cleaned_data.get('email').lower()
            if password != '':
                request.user.set_password(password)
            request.user.save()
            messages.add_message(request, messages.SUCCESS, _('Your account was updated successfully'))
            return redirect(reverse('index'))
    return render(request, 'app/settings.html', locals())
Example #7
0
def form_with_settings(request):
    best_members = UserProfile.objects.best_members()
    popular_tags = Tag.objects.popular_tags()

    if request.method == 'GET':
        form = SettingsForm()
        avatar_form = AvatarForm()
        print('tut')
    else:
        print("регистрируемся")
        form = SettingsForm(data=request.POST)
        avatar_form = AvatarForm(data=request.POST,
                                 files=request.FILES,
                                 instance=request.user.userprofile)
        print(request.FILES)
        if form.is_valid():
            user = request.user
            print('валидный')
            if form.cleaned_data[
                    "login"] != user.username and form.cleaned_data[
                        "login"] != '':
                user.name = form.cleaned_data["login"]
            if form.cleaned_data[
                    "username"] != user.username and form.cleaned_data[
                        "username"] != '':
                user.username = form.cleaned_data["username"]
            if form.cleaned_data["email"] != user.email and form.cleaned_data[
                    "email"] != '':
                user.email = form.cleaned_data["email"]
            if form.cleaned_data["password"] != '':
                user.set_password(form.cleaned_data["password"])
            user.save()
            auth.login(request, user)
            # if avatar_form.get('image_profile', None) is not None:
            avatar_form.save()
            return redirect('main_page')

    return render(
        request, 'form_with_settings.html', {
            'form': form,
            'avatar_form': avatar_form,
            'popular_tags': popular_tags,
            'best_members': best_members,
            'settings': settings
        })
Example #8
0
def profile(request):
    tags = Tag.objects.get_popular()
    if request.method == "GET":
        form = SettingsForm()
    else:
        form = SettingsForm(data=request.POST)
        if form.is_valid():
            user = request.user
            if form.cleaned_data["username"] != user.username:
                user.username = form.cleaned_data["username"]
            if form.cleaned_data["email"] != user.email:
                user.email = form.cleaned_data["email"]
            if form.cleaned_data["password"]:
                user.set_password(form.cleaned_data["password"])
            user.save()
    return render(request, 'profile.html', {
        'form': form,
        'user': request.user,
        'tags': tags,
    })
Example #9
0
def settings_page(request):
    if request.method == 'POST':
        form = SettingsForm(data=request.POST,
                            instance=request.user,
                            files=request.FILES)
        if form.is_valid():
            form.save()

            return redirect(reverse('settings'))

    else:
        user_data = {
            'username': request.user.username,
            'first_name': request.user.first_name,
            'email': request.user.email
        }

        form = SettingsForm(initial=user_data)

    return render(request, 'settings_page.html', {'form': form})
Example #10
0
def settings(request):

    initial = {'username': request.user.username}
    form = SettingsForm(initial=initial)

    if request.method == "POST":
        form = SettingsForm(request.POST, request.FILES)
        if form.is_valid():
            username = form.cleaned_data.get('username')
            users = User.objects.filter(username=username)
            if len(users) == 0:
                request.user.username = username
            elif request.user.id != users[0].id:
                messages.add_message(request, messages.ERROR,
                                     'Sorry, this username is taken!')
            userpic = request.FILES.get('userpic')
            if userpic is not None:
                request.user.profile.userpic = userpic
                request.user.profile.save()
            password = form.cleaned_data.get('password')
            if password != '':
                if request.user.check_password(password):
                    new_password = form.cleaned_data.get('new_password')
                    confirm_password = form.cleaned_data.get(
                        'confirm_password')
                    if new_password != '':
                        if new_password == confirm_password:
                            request.user.set_password(new_password)
                            update_session_auth_hash(request, request.user)
                            messages.add_message(request, messages.SUCCESS,
                                                 'Password was updated')
                        else:
                            messages.add_message(request, messages.ERROR,
                                                 'Passwords do not match!')
                else:
                    messages.add_message(request, messages.ERROR,
                                         'Wrong password!')
            request.user.save()
            return redirect(request.path)

    return render(request, 'settings.html', locals())