Ejemplo n.º 1
0
def profile(request):
  """Show user profile, allow them to update it."""
  if not request.user.is_authenticated():
    return HttpResponseRedirect(reverse('index'))
  if request.method == 'POST':
    form = UserUpdateForm(request.POST or None, instance=request.user)
    if form.is_valid():
      form.save()
      if 'profile_image' in request.FILES:
        try:
          lbwuser = request.user.lbwuser
          lbwuser.profile_image = request.FILES['profile_image']
          lbwuser.save()
        except LbwUser.DoesNotExist:
          lbwuser = LbwUser(user=request.user,
                            profile_image=request.FILES['profile_image'])
          lbwuser.save()
      return redirect('index')
  else:
    try:
      lbwuser = request.user.lbwuser
    except LbwUser.DoesNotExist:
      lbwuser = LbwUser(user=request.user)
      lbwuser.save()
    form = UserUpdateForm(instance=request.user)
  return render(request, 'accounts/profile.html',
      {'form': form})
    def test_no_username(self):
        User.objects.create_user(username='******',
                                 email='*****@*****.**')

        form = UserUpdateForm({'email': '*****@*****.**'})
        self.assertFalse(form.is_valid())
        self.assertEqual(form.errors['username'], ['This field is required.'])
Ejemplo n.º 3
0
def update_view(request):
    contact_form = ContactForm()
    if request.user.is_authenticated:
        user = request.user
        if request.method == 'POST':
            form = UserUpdateForm(request.POST)
            if form.is_valid():
                data = form.cleaned_data
                user.city = data['city']
                user.language = data['language']
                user.send_email = data['send_email']
                user.save()
                messages.success(request, 'Данные сохраненны.')
                return redirect('accounts:update')

        form = UserUpdateForm(
            initial={
                'city': user.city,
                'language': user.language,
                'send_email': user.send_email
            })
        return render(request, 'accounts/update.html', {
            'form': form,
            'contact_form': contact_form
        })
    else:
        return redirect('accounts:login')
Ejemplo n.º 4
0
 def test_invalid_update_form_existing_username(self):
     """
     Test an invalid form due to existing username
     """
     form_data = {"username": "******", "email": ""}
     form = UserUpdateForm(data=form_data)
     self.assertFalse(form.is_valid())
     self.assertTrue("username" in form.errors)
Ejemplo n.º 5
0
 def test_invalid_update_form_existing_email(self):
     """
     Test an invalid form due to existing email
     """
     form_data = {"username": "", "email": "*****@*****.**"}
     form = UserUpdateForm(data=form_data)
     self.assertFalse(form.is_valid())
     self.assertTrue("email" in form.errors)
Ejemplo n.º 6
0
 def test_invalid_update_form_username_symbols(self):
     """
     Test an invalid form due to @ in username
     """
     form_data = {"username": "******", "email": ""}
     form = UserUpdateForm(data=form_data)
     self.assertFalse(form.is_valid())
     self.assertTrue("username" in form.errors)
Ejemplo n.º 7
0
 def post(self, request, *args, **kwargs):
     form = UserUpdateForm(request.POST, instance=request.user)
     if form.is_valid():
         form.save()
         messages.success(request, 'Successfully updated account details')
         return redirect('dashboard')
     else:
         messages.warning(request, 'Check you details')
         return redirect('account')
Ejemplo n.º 8
0
 def post(self, request, *args, **kwargs):
     user_form = UserUpdateForm(request.POST, instance=request.user)
     profile_form = ProfileUpdateForm(request.POST,
                                      request.FILES,
                                      instance=request.user.profile)
     if user_form.is_valid() and profile_form.is_valid():
         user_form.save() and profile_form.save()
         messages.success(request, f"Your account has been updated!")
         return redirect("bookstore")
Ejemplo n.º 9
0
 def post(self, request, *args, **kwargs):
     author_form = AuthorForm(request.POST,
                              request.FILES,
                              instance=request.user.author)
     user_form = UserUpdateForm(request.POST, instance=request.user)
     if author_form.is_valid() and user_form.is_valid():
         user_form.save()
         author_form.save()
     return redirect("accounts_update")
Ejemplo n.º 10
0
def user_update(request, user_slug):
    if request.method == "POST" and user_slug == request.user.slug:
        form = UserUpdateForm(request.POST)
        user = get_object_or_404(User, slug=user_slug)
        if form.is_valid():
            email = request.POST.get('email')
            new_password = request.POST.get('new_password')
            repeat_password = request.POST.get('repeat_password')
            current_password = request.POST.get('current_password')
            # check if email already exists
            if User.objects.filter(
                    email=email).exists() and email != user.email:
                messages.error(request,
                               'This email is already taken, try another.')
                return redirect('accounts:user_update', user_slug=user_slug)

            #check password
            if user.check_password(current_password):
                #check if password is to be updated
                if new_password != '':
                    if new_password == repeat_password:
                        user.set_password(new_password)
                    else:
                        print('new password : {}, repeat: {}'.format(
                            new_password, repeat_password))
                        messages.error(
                            request,
                            'New password repeated incorrectly, try again.')
                        return redirect('accounts:user_update',
                                        user_slug=user_slug)
                #save email
                user.email = email
                user.save()
                messages.success(request,
                                 'Credentials were updated successfuly.')
                # log in user with new credentials
                user = authenticate(request,
                                    username=email,
                                    password=new_password)
                login(request, user)
                return redirect('accounts:user_home', user_slug=user_slug)
            else:  # wrong password
                messages.error(request, 'Wrong Password')
                return redirect('accounts:user_update', user_slug=user_slug)

        else:  # invalid form
            messages.error(request, 'Ups. Something went wrong.')

        return redirect('accounts:user_home', user_slug=user_slug)
    else:
        form = UserUpdateForm(initial={
            'email': request.user.email,
        })
        return render(request, 'accounts/user_update.html', {
            'user_update_form': form,
        })
Ejemplo n.º 11
0
 def post(request):
     update_form = UserUpdateForm(request.POST, instance=request.user)
     if update_form.is_valid():
         update_form.save()
         messages.success(request, u'个人信息已更新')
         return HttpResponseRedirect(reverse('accounts:detail'))
     else:
         messages.error(request, u'信息更新失败')
         return render(request, "accounts/form_tpl.html",
                       {"form": update_form})
Ejemplo n.º 12
0
 def test_valid_update_form(self):
     """
     Test a valid form
     """
     form_data = {
         "username": "",
         "email": "*****@*****.**"
     }
     form = UserUpdateForm(data=form_data)
     self.assertTrue(form.is_valid())
Ejemplo n.º 13
0
 def post(self, request, username):
     u_form = UserUpdateForm(request.POST, instance=request.user)
     p_form = ProfileUpdateForm(request.POST, request.FILES,
                                instance=request.user.profile)
     if u_form.is_valid() and p_form.is_valid():
         u_form.save()
         p_form.save()
         messages.success(request, _('Account successfully updated!'))
         return redirect('accounts:profile:bio', self.get_username())
     return self.get(request, username)
Ejemplo n.º 14
0
def UserProfileUpdateView(request, pk):

    userprofile = UserProfile.objects.get(pk=pk)
    user = userprofile.user
    user_form = UserUpdateForm()
    user_profile_form = UserProfileUpdateForm()

    if request.POST:

        user_form = UserUpdateForm(request.POST, instance=user)
        user_profile_form = UserProfileUpdateForm(request.POST,
                                                  instance=userprofile)

        if user_form.is_valid() and user_profile_form.is_valid():
            user_form.save()
            user_profile_form.save()

        return HttpResponseRedirect(reverse('home'))

    user_form = UserUpdateForm(instance=user)
    user_profile_form = UserProfileUpdateForm(instance=userprofile)

    return render(request, 'userprofile/update.html', {
        'user_form': user_form,
        'user_profile_form': user_profile_form,
    })
Ejemplo n.º 15
0
def employee_update_view(request, id):
    data = dict()
    employee_instance = Employee.objects.get(id=id)
    if request.method == 'POST':
        user_form = UserUpdateForm(request.POST,
                                   initial={
                                       'username':
                                       employee_instance.user.username,
                                       'email': employee_instance.user.email
                                   })
        employee_form = EmployeeForm(request.POST,
                                     request.FILES,
                                     instance=employee_instance)
        if employee_form.is_valid() and user_form.is_valid():
            username = user_form.cleaned_data.get("username")
            email = user_form.cleaned_data.get("email")
            user_qs = User.objects.filter(username=username).exclude(
                id=employee_instance.user.id).exists()
            if user_qs:
                data['username_error'] = {
                    "error": "Username is already taken!"
                }
                return JsonResponse(data)
            else:
                instance_user = employee_instance.user
                instance_user.username = username
                if email:
                    instance_user.email = email
                instance_user.save()
            employee_form.save()
        else:
            data['errors'] = {
                'status': 'form-invalid',
                'employee_user_errors': user_form.errors,
                'employee_errors': employee_form.errors
            }
    else:
        user_form = UserUpdateForm(
            initial={
                'username': employee_instance.user.username,
                'email': employee_instance.user.email
            })
        employee_form = EmployeeForm(instance=employee_instance)
    context = {
        'user_form': user_form,
        'employee_form': employee_form,
        'object': employee_instance
    }
    if request.is_ajax():
        data['html_form'] = render_to_string('employees/employee-form.html',
                                             context,
                                             request=request)
        return JsonResponse(data)
    return render(request, 'employees/employee-update.html', context)
Ejemplo n.º 16
0
def update_user(request):
    """Register new users"""
    active_user = request.user
    # check if a form was submitted
    if request.method == 'POST':
        next = request.POST.get('next', '/')
        user_form = UserUpdateForm(request.POST, instance=active_user)
        if user_form.is_valid():
            user = user_form.save()
    else:
        return redirect('accounts:profile')
    return redirect(next)
Ejemplo n.º 17
0
    def put(self, request, id=None):
        context = {}
        student = get_object_or_404(Student, id=id)
        user = get_object_or_404(User, id=student.user.id)
        user_form = UserUpdateForm(request.POST, instance=user)
        student_form = StudentForm(request.POST, instance=student)

        if user_form.is_valid():
            get_user = user_form.save(commit=False)
            if student_form.is_valid():
                student_form.save(user=get_user.id, commit=False)
        context = {'user_form': user_form, 'student_form': student_form}
        return render(request, 'accounts/student_new_update.html', context)
Ejemplo n.º 18
0
 def test_form_is_valid(self):
     post_dict = {
         'username':'******',
         'email':'*****@*****.**',
     }
     files_dict = {
         'icon':SimpleUploadedFile(
             name='sample.jpeg',
             content=open(os.path.join(os.environ['HOME'],'Pictures/sample.jpeg'), 'rb').read(),
             content_type='image/jpeg'
         )
     }
     form = UserUpdateForm(post_dict, files_dict)
     self.assertTrue(form.is_valid())
Ejemplo n.º 19
0
def profile_view(request):
    if request.method == 'POST':
        user_form = UserUpdateForm(request.POST, instance=request.user)
        profile_form = ProfileUpdateForm(request.POST,
                                         request.FILES,
                                         instance=request.user.userprofileinfo)

        if user_form.is_valid() and profile_form.is_valid():
            user_form.save()
            profile = profile_form.save(commit=False)
            user = user_form.save()
            user.email = profile.email
            user.save()
            profile.save()
            messages.success(request, 'Your profile is successfully updated!')
            return redirect('profile')
        else:
            messages.error(request, user_form.errors)
            messages.error(request, profile_form.errors)
    else:
        user_form = UserUpdateForm(instance=request.user)
        profile_form = ProfileUpdateForm(instance=request.user.userprofileinfo)

    return render(request, 'accounts/profile.html', {
        'user_form': user_form,
        'profile_form': profile_form
    })
Ejemplo n.º 20
0
def MasterUserUpdateView(request,slug):
    masteruser_user = get_object_or_404(UserModel,slug = slug)
    user_update_form = UserUpdateForm(request.POST or None, instance = masteruser_user)
    masteruser = get_object_or_404(MasterUserModel, user = masteruser_user)
    masteruser_update_form = MasterUserUpdateForm(request.POST or None, instance = masteruser)
    if masteruser_update_form.is_valid() and user_update_form.is_valid():
        user_update_form.save()
        masteruser_update_form.save()
        if 'picture' in request.FILES:
           masteruser.picture = request.FILES['picture']
           masteruser.save()
        return HttpResponseRedirect(reverse('masteruser:profile',
                                    kwargs={'slug':masteruser_user.slug}))
    return render(request,'masteruser/masteruserupdate.html',
                          {'masteruserform':masteruser_update_form,
                           'userform':user_update_form,})
Ejemplo n.º 21
0
 def get(self, request, username):
     u_form = UserUpdateForm(instance=self.request.user)
     p_form = ProfileUpdateForm(instance=self.request.user.profile)
     context = {
         'forms': [u_form, p_form],
     }
     return render(request, self.template_name, context)
Ejemplo n.º 22
0
 def get(self, request, *args, **kwargs):
     super().get(request, *args, **kwargs)
     user_form = UserUpdateForm(instance=request.user)
     profile_form = ProfileUpdateForm(instance=request.user.profile)
     context = {"user_form": user_form, "profile_form": profile_form}
     return render(request, self.template_name,
                   self.get_context_data(**context))
Ejemplo n.º 23
0
def profile_edit_view(request):
    if request.user.is_anonymous:
        return redirect("accounts:login")

    if request.method == 'POST':
        profile_form = ProfileForm(request.POST, request.FILES, instance=request.user.profile)
        update_form = UserUpdateForm(request.POST, instance=request.user)

        if profile_form.is_valid() and update_form.is_valid():
            if not request.user.profile.profile_img:
                request.user.profile.profile_img = 'default.jpg'

            profile_form.save()
            update_form.save()

            return redirect('/profile/' + request.user.username)
    else:
        profile_form = ProfileForm(instance=request.user.profile)
        update_form = UserUpdateForm(instance=request.user)


    context = {'profile_form':profile_form,
               'update_form':update_form }

    return render(request, 'accounts/profile_edit.html', context)
Ejemplo n.º 24
0
def bank_view(request):
    try:
        cart = Cart.objects.get(user=request.user.id, active=True)
        items = CartItem.objects.filter(cart=cart)
    except ObjectDoesNotExist:
        cart = Cart.objects.create(user=request.user)
        items = CartItem.objects.filter(cart=cart)
    total = cart.total

    if request.method == "POST":
        u_form = UserUpdateForm(request.POST, instance=request.user)
        p_form = ProfileUpdateForm(request.POST,
                                   request.FILES,
                                   instance=request.user.profile)
        if u_form.is_valid() and p_form.is_valid():
            u_form.save()
            p_form.save()
            return redirect('zarinpal:request')

    else:
        u_form = UserUpdateForm(instance=request.user)
        p_form = ProfileUpdateForm(instance=request.user.profile)

    context = {
        'u_form': u_form,
        'p_form': p_form,
        'cart': items,
        'total': total
    }
    return render(request, 'cart/bank.html', context)
Ejemplo n.º 25
0
def update_user_profile(request):
    
    user = User.objects.get(email=request.user.email)
    #forms to update user profile
    if request.method == 'POST':
        user_form = UserUpdateForm(request.POST, instance=request.user)
        profile_form = ProfileUpdateForm(request.POST,
                                   request.FILES,
                                   instance=request.user.profile)
        if user_form.is_valid() and profile_form.is_valid():
            user_form.save()
            profile_form.save()
            messages.success(request,'Your account has been updated!')
            return redirect('profile')

    else:
        user_form = UserUpdateForm(instance=request.user)
        profile_form = ProfileUpdateForm(instance=request.user.profile)

    context = {
        'user_form': user_form,
        'profile_form': profile_form,
        'user': user
    }
        
    return render(request, 'update_profile.html', context)
Ejemplo n.º 26
0
def user_profile(request):
    '''The user profile page'''
    if request.method == "POST":
        u_form = UserUpdateForm(request.POST, instance=request.user)
        p_form = ProfileUpdateForm(request.POST,
                                   request.FILES,
                                   instance=request.user.profile)

        if u_form.is_valid() and p_form.is_valid():
            u_form.save()
            p_form.save()
            messages.success(request, "Your account has been updated")
            return redirect('profile')
    else:
        u_form = UserUpdateForm(instance=request.user)
        p_form = ProfileUpdateForm(instance=request.user.profile)

    context = {'u_form': u_form, 'p_form': p_form}
    # Gettting user object
    user = User.objects.get(email=request.user.email)
    # Gettting profile object through foreign key
    return render(request, 'profile.html', {
        'profile': user,
        'u_form': u_form,
        'p_form': p_form
    })
Ejemplo n.º 27
0
def update_profile(request, slug):
    profile = Profile.objects.get(slug=slug)
    if request.method == 'POST':
        u_form = UserUpdateForm(request.POST, instance=request.user)
        p_form = ProfileUpdateForm(request.POST,
                                   request.FILES,
                                   instance=profile)

        if u_form.is_valid() and p_form.is_valid():
            u_form.save()
            p_form.save()
            new_slug = request.POST.get('slug')
            messages.success(request, f'User information has been updated!')
            # return reverse("accounts:profile", kwargs={"slug": slug})
            return HttpResponseRedirect(
                reverse('accounts:profile', args=[new_slug]))
        else:
            print("user errors:", u_form.errors.as_data())
            print("profile errors:", p_form.errors.as_data())
    else:
        u_form = UserUpdateForm(instance=request.user)
        p_form = ProfileUpdateForm(instance=profile)

    context = {
        'p_form': p_form,
        'u_form': u_form,
        'categories': Category.objects.all()
    }
    return render(request, 'accounts/profile_update.html', context)
Ejemplo n.º 28
0
def ProfileView(request):
    if request.method == 'POST':
        u_form = UserUpdateForm(request.POST, instance=request.user)
        p_form = ProfileUpdateForm(
            request.POST, request.FILES, instance=request.user.profile)
        if u_form.is_valid() and p_form.is_valid():
            u_form.save()
            p_form.save()
            messages.success(
                request, 'Your account has been updated')
            return redirect('memberships:dashboard')

    else:
        u_form = UserUpdateForm(instance=request.user)
        p_form = ProfileUpdateForm(instance=request.user.profile)

    courses = Course.objects.order_by('start_date').all()[:3]
    instructors = Instructor.objects.order_by('dofb').all()[:3]
    context = {
        'u_form': u_form,
        'p_form': p_form,
        'courses': courses,
        'instructors': instructors
    }
    return render(request, 'accounts/profile.html', context)
Ejemplo n.º 29
0
def update_profile(request):
    """Esta função exibe ou edita um perfil de um usuário, a depender do método da requisição"""

    # Tenta obter o objeto com a pk informado. Se não conseguir, retorna um erro 404
    profile = get_object_or_404(Profile, user=request.user)

    # Se o usuário mandar dados, ou seja, se a requisição for POST
    if request.method == "POST":
        # Instancia um formulário vinculado a um objeto Turma com os dados recebidos da requisição POST
        form = UserUpdateForm(request.POST, instance=request.user)
        profile_form = ProfileForm(request.POST, instance=profile)
        if form.is_valid() and profile_form.is_valid():
            form.save()
            profile_form.save()

            # Retorna para a página de lista de turmas
            return redirect("dashboard:view_dashboard")

    # Se o usuário apenas solicitar para acessar a página, ou seja, se a requisição for GET
    else:
        # Cria uma instância com os dados do objeto passado como parâmetro
        form = UserUpdateForm(instance=request.user)
        profile_form = ProfileForm(instance=profile)

    context = {"form": form, "profile_form": profile_form, "link": "profile"}

    # Renderiza a página de editar turma com os campos e seus respectivos dados
    return render(request, "dashboard/profile.html", context)
Ejemplo n.º 30
0
def update_user_profile(request, username):
    user = User.objects.all()
    for i in user:
        if i.username == username:

            if request.method == 'POST':
                u_form = UserUpdateForm(request.POST, instance=i)
                p_form = CreateUserProfile(request.POST,
                                           request.FILES,
                                           instance=i.userprofile)
                if u_form.is_valid() and p_form.is_valid():
                    u_form.save()
                    p_form.save()
                    messages.success(request,
                                     f'Your accounts has been updated!')
                    return redirect('user_list')

            else:
                u_form = UserUpdateForm(instance=i)
                p_form = CreateUserProfile(instance=i.userprofile)

            context = {
                'u_form': u_form,
                'p_form': p_form,
                'user': user,
                'i': i,
            }
            return render(request, 'accounts/update_user_profile.html',
                          context)
Ejemplo n.º 31
0
def profile(request):
    articles = Article.objects.filter(status=1).order_by('-date_posted')[:2]
    if request.method == 'POST':
        user_form = UserUpdateForm(request.POST, instance=request.user)
        profile_form = ProfileUpdateForm(request.POST,
                                         request.FILES,
                                         instance=request.user.profile)
        if user_form.is_valid() and profile_form.is_valid():
            user_form.save()
            profile_form.save()
            messages.success(request, f'Your account has been updated!')
            return redirect('profile')

    else:
        user_form = UserUpdateForm(instance=request.user)
        profile_form = ProfileUpdateForm(instance=request.user.profile)

    context = {
        'title': 'Profile',
        'articles': articles,
        'user_form': user_form,
        'profile_form': profile_form,
    }

    return render(request, 'accounts/profile.html', context)
Ejemplo n.º 32
0
def profile(request):
    """
    Return the user's profile page. Allows editing the profile,
    as well as the login details for a user.
    """

    if request.method == 'POST':
        user_form = UserUpdateForm(request.POST, initial={'username': ''}, instance=request.user)
        profile_form = ProfileUpdateForm(request.POST,
                                         request.FILES,
                                         instance=request.user.profile)
        if user_form.is_valid() and profile_form.is_valid():
            user_form.save()
            profile_form.save()
            messages.success(request, f'Your account has been updated!')
            return redirect('profile')
    else:
        user_form = UserUpdateForm(instance=request.user)
        profile_form = ProfileUpdateForm(instance=request.user.profile)

    context = {
        'user_form': user_form,
        'profile_form': profile_form
    }
    return render(request, 'accounts/profile.html', context)
Ejemplo n.º 33
0
def UserProfileUpdateView(request, pk):

    userprofile = UserProfile.objects.get(pk=pk)
    user = userprofile.user
    user_form = UserUpdateForm()
    user_profile_form = UserProfileUpdateForm()

    if request.POST:

        user_form = UserUpdateForm(request.POST, instance=user)
        user_profile_form = UserProfileUpdateForm(request.POST, instance=userprofile)

        if user_form.is_valid() and user_profile_form.is_valid():
            user_form.save()
            user_profile_form.save()

        return HttpResponseRedirect(reverse('home'))

    user_form = UserUpdateForm(instance=user)
    user_profile_form = UserProfileUpdateForm(instance = userprofile)


    return render(request, 'userprofile/update.html', {
        'user_form': user_form,
        'user_profile_form': user_profile_form,
    })