예제 #1
0
def register_user(request):
    if request.method == 'POST':
        register = RegisterForm(request.POST, prefix='register')
        usrprofile = ProfileForm(request.POST, prefix='profile')
        print(register.is_valid(), register.errors)
        print(usrprofile.is_valid())
        if register.is_valid() * usrprofile.is_valid():
            user = register.save()
            usrprof = usrprofile.save(commit=False)
            usrprof.user = user
            usrprof.set_token()
            usrprof.subscribed = '1'
            usrprof.save()
            return HttpResponseRedirect('/account/')
        else:
            messages.info(request, 'Password do not match!')
            userform = RegisterForm(prefix='register')
            userprofileform = ProfileForm(prefix='profile')
            #return HttpResponse('errors')
            return render(
                request, 'accounts/register.html', {
                    'messages': messages.get_messages(request),
                    'userform': userform,
                    'userprofileform': userprofileform
                })
    else:
        userform = RegisterForm(prefix='register')
        userprofileform = ProfileForm(prefix='profile')
        return render(request, 'accounts/register.html', {
            'userform': userform,
            'userprofileform': userprofileform
        })
예제 #2
0
def ModifyProfileView(request, owner):
    if request.method == "POST":
        if owner == "profile":
            profile_form = ProfileForm(request.POST,
                                       request.FILES,
                                       instance=request.user.profile)
        else:
            profile_form = ProfileFormP(request.POST,
                                        instance=request.user.profilep)
        user_form = UpdateFormRegistrazione(request.POST,
                                            instance=request.user)
        if user_form.is_valid() and profile_form.is_valid():
            profile_form.save()
            user_form.save()
            return HttpResponseRedirect('/')
        else:
            print("modifica profilo non valida")

    user_form = UpdateFormRegistrazione()
    if owner == "profile":
        profile_form = ProfileForm()
    else:
        profile_form = ProfileFormP()

    context = {"u_form": user_form, "p_form": profile_form}
    return render(request, 'core/modify_profile.html', context)
예제 #3
0
def update_profile(request):
    """
		Updates the user profile
	"""
    instance = get_object_or_404(Profile, user__username=request.user.username)

    form = ProfileForm(request.POST or None,
                       request.FILES or None,
                       instance=instance)

    if request.POST:
        if form.is_valid():
            instance = form.save(commit=False)
            instance.save()
            messages.success(request, "Edited nicely!")
            return HttpResponseRedirect(instance.get_absolute_url())
        else:
            messages.error(request,
                           "Sorry! Unable to Register Updates.",
                           extra_tags="")

    context = {
        "instance": instance,
    }

    return render(request, 'accounts/update_profile.html', context)
예제 #4
0
def registration(request):
    if request.user.is_authenticated:
        return redirect(reverse('index'))

    if request.method == "POST":
        registration_form = UserRegistrationForm(request.POST)
        profile_form = ProfileForm(request.POST, request.FILES)

        if registration_form.is_valid() and profile_form.is_valid():
            user = registration_form.save()
            profile = profile_form.save(commit=False)
            profile.user = user
            profile.save()
            user = auth.authenticate(username=request.POST['username'],
                                     password=request.POST['password1'])

            if user:
                auth.login(user=user, request=request)
                messages.success(request, "Registered!")
                return render(request, 'index.html')
            else:
                messages.error(
                    request, "Unable to register your account at this time.")
    else:
        registration_form = UserRegistrationForm()
        profile_form = ProfileForm()
    return render(request, 'registration.html', {
        "registration_form": registration_form,
        "profile_form": profile_form
    })
예제 #5
0
    def post(self, request, *args, **kwargs):
        print(request)
        oldUser = User.objects.get(id=request.user.id)
        user_form = UserForm(request.POST, oldUser)
        profile = oldUser.userprofile
        profile.user = oldUser
        profile_form = ProfileForm(request.POST or None,
                                   request.FILES or None,
                                   instance=profile)
        print(profile_form)
        if profile_form.is_valid():
            profile_form.save()
            print('Registering : ' + str(request.user))
            return render(
                request, 'accounts/message_page.html', {
                    'header': "Signed Up!",
                    'details': '',
                    'redirect': reverse('customer:homepage')
                })

        else:
            return render(
                request, 'accounts/message_page.html', {
                    'header': "Error!",
                    'details': 'Try Again',
                    'redirect': reverse('customer:homepage')
                })
        pass
예제 #6
0
파일: views.py 프로젝트: zouyapeng/Homepage
 def post(self, request, *args, **kwargs):
     form = ProfileForm(request.POST, request.FILES)
     if form.is_valid():
         form.save()
         return self.form_valid(form)
     else:
         return self.form_invalid(form)
 def test_valid_form(self):
     data = {
         "description":
         "few words which any is not longer than 45 characters"
     }
     form = ProfileForm(data)
     self.assertTrue(form.is_valid())
예제 #8
0
def register_user(request):
    if request.method == 'GET':
        if request.user.is_authenticated:
            return redirect('all quotes')

        context = {
            'user_form': RegisterForm(),
            'profile_form': ProfileForm(),
        }

        return render(request, 'registration/register.html', context)
    else:
        user_form = RegisterForm(request.POST)
        profile_form = ProfileForm(request.POST, request.FILES)

        if user_form.is_valid() and profile_form.is_valid():
            user = user_form.save()
            profile = profile_form.save(commit=False)
            profile.user = user
            profile.save()

            login(request, user)
            return redirect('all quotes')

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

        return render(request, 'registration/register.html', context)
예제 #9
0
파일: tests.py 프로젝트: lukaszdevos/Forum
 def test_max_description_characters(self):
     form_data = {
         'city':
         'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque tempor cursus iaculis. Maecenas at diam sed tellus cursus pellentesque non a quam.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque tempor cursus iaculis. Maecenas at diam sed tellus cursus pellentesque non a quam.'
     }
     profile_form = ProfileForm(data=form_data)
     self.assertFalse(profile_form.is_valid())
예제 #10
0
def update_profile(request):
    """
    Fetch data from user and user profile and render it on the form.
    Update both models.
    """

    if not request.user.is_authenticated:
        return redirect('login')
    else:
        if request.method == 'POST':
            user_form = UserForm(request.POST, instance=request.user)
            profile_form = ProfileForm(request.POST, request.FILES, instance=request.user.profiles)
            if user_form.is_valid() and profile_form.is_valid():
                user_form.save()
                profile_form.save()
                messages.success(request, ('Your profile has been updated successfully!'))
                return redirect('user_profile')
            else:
                messages.error(request, ('Please correct the error below.'))
        else:
            user_form = UserForm(instance=request.user)
            profile_form = ProfileForm(instance=request.user.profiles)
            context = {
                'user_form': user_form,
                'profile_form': profile_form,
                'title': 'Update',
                'profile': 'profile'
            }
            return render(request, 'update_profile.html', context)
예제 #11
0
def register(request):
    registered = False

    if request.method == "POST":
        user_form = UserForm(data=request.POST)
        profile_form = ProfileForm(data=request.POST)

        if user_form.is_valid() and profile_form.is_valid():
            user = user_form.save()
            user.set_password(user.password)
            user.save()

            profile = profile_form.save(commit=False)
            profile.user = user

            if 'profile_pic' in request.FILES:
                profile.profile_pic = request.FILES['profile_pic']

            profile.save()
            registered = True
            return redirect('tender:all')

        else:
            print(user_form.errors, profile_form.errors)

    else:
        user_form = UserForm()
        profile_form = ProfileForm()

    return render(
        request, 'registration.html', {
            'user_form': user_form,
            'profile_form': profile_form,
            'registered': registered
        })
예제 #12
0
def profile_view(request):
    try:
        profile = Profile.objects.get(user=request.user)
    except:
        return redirect('accounts:signup')
    if request.user.is_authenticated:
        if request.method == "POST":
            form = ProfileForm(request.POST, request.FILES, instance=profile)
            if form.is_valid():
                try:
                    if request.POST['terms_and_conditions']:
                        profile = form.save(commit=False)
                        profile.terms_and_conditions = True
                        profile.save()
                except:
                    profile = form.save(commit=False)
                    profile.terms_and_conditions = False
                    profile.save()

                return redirect("/")
        template_name = 'registration/profile.html'
        context = {}
        return render(request, template_name, context)

    else:
        return redirect('accounts:signup')
예제 #13
0
def user_profile_edit(request, pk):
    user = User.objects.get(pk=pk)
    if request.user != user.userprofile.user:
        return render(request, 'no_permission.html')

    if request.method == 'GET':
        context = {
            'form_user_profile': UserProfileEditForm(instance=user),
            'form_profile': ProfileForm(instance=user.userprofile),
        }
        return render(request, 'accounts/profile_edit.html', context)
    else:
        form_user = UserProfileEditForm(request.POST, instance=user)
        form_profile = ProfileForm(request.POST,
                                   request.FILES,
                                   instance=user.userprofile)
        if form_user.is_valid() and form_profile.is_valid():
            form_user.save()
            form_profile.save()
            return redirect('user profile', user.pk)

        context = {
            'form_user_profile': UserProfileEditForm(instance=user),
            'form_profile': ProfileForm(instance=user.userprofile),
        }
        return render(request, 'accounts/profile_edit.html', context)
예제 #14
0
def SignUp(request):

    registered = False

    if request.method == "POST":
        user_form = forms.UserCreateForm(data=request.POST)
        profile_form = ProfileForm(data=request.POST)

        if user_form.is_valid() and profile_form.is_valid():

            user = user_form.save()
            user.set_password(user.password)
            user.save()

            profile = profile_form.save(commit=False)
            profile.user = user

            profile.save()

            registered = True
            return HttpResponseRedirect(reverse_lazy('login'))
        else:
            print(user_form.errors, profile_form.errors)

    else:
        user_form = forms.UserCreateForm()
        profile_form = ProfileForm()

    return render(
        request, 'signup.html', {
            'user_form': user_form,
            'profile_form': profile_form,
            'registered': registered
        })
예제 #15
0
def register(request):
    if request.method == 'POST':
        u_form = UserForm(request.POST)
        p_form = ProfileForm(request.POST)
        if u_form.is_valid() and p_form.is_valid():
            user = u_form.save()
            gender = p_form.cleaned_data.get('gender')
            date_of_birth = p_form.cleaned_data.get('date_of_birth')
            contact_number = p_form.cleaned_data.get('contact_number')

            author = AuthorProfile.objects.create(
                author=user,
                gender=gender,
                date_of_birth=date_of_birth,
                contact_number=contact_number)
            p_form = ProfileForm(request.POST, instance=author)
            p_form.save()

            messages.success(request, 'Your account has been created!')
            return redirect('login')
    else:
        u_form = UserForm()
        p_form = ProfileForm()

    context = {'u_form': u_form, 'p_form': p_form}
    return render(request, 'accounts/register.html', context)
예제 #16
0
def edit_profile(request):
    """
    Create a view that allows us to edit your profile
    """
    user = request.user
    profile = user.profile

    if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        userForm = UserForm(request.POST)
        profileForm = ProfileForm(request.POST,
                                  request.FILES,
                                  instance=profile)

        # check whether it's valid:
        if userForm.is_valid() and profileForm.is_valid():

            # Save User model fields
            user.first_name = request.POST['first_name']
            user.last_name = request.POST['last_name']
            user.email = request.POST['email']
            user.save()

            profile = profileForm.save(commit=False)
            profile.save()

    # if a GET (or any other method): create a blank form
    else:
        userForm = UserForm(instance=user)
        profileForm = ProfileForm(instance=profile)

    return render(request, 'profile.html', {
        'userForm': userForm,
        'profileForm': profileForm
    })
예제 #17
0
def edit_user(request):
	profile = User_Profile.objects.get(User_associated=request.user)
	user = User.objects.get(id=request.user.id)
	# img = None

	if request.method == "POST":  
		profileForm = ProfileForm(request.POST, instance=profile, prefix="profile_form")
		userForm = UserForm(request.POST, instance=user, prefix="user_form")
		# passwordForm = PasswordChangeForm(data=request.POST, user=request.user, prefix="password_form")
		if profileForm.is_valid() and userForm.is_valid():
			profileForm.save()
			userForm.save()
			# passwordForm.save()

	else:
		profileForm = ProfileForm(prefix="profile_form", instance=profile,
				initial={"Degree": profile.Degree,
					"Year_first_enrolled": profile.Year_first_enrolled,})
		userForm = UserForm(prefix="user_form", instance=user,
			initial={'username': user.username,
					'email': user.email,
					'first_name': user.first_name,
					'last_name': user.last_name})
	   
	return render_to_response("accounts/settings.html", 
		{"profile_form": profileForm, "user_form": userForm}, context_instance=RequestContext(request))
예제 #18
0
def job_apply(request, id):

    job = Job.objects.get(id=id)
    user = request.user
    profile = Profile.objects.get(user=user)
    personal_info = user.candidate

    profile_form = ProfileForm(instance=profile)
    personal_info_form = EmployeeForm(instance=personal_info)
    if request.method == "POST":
        profile_form = ProfileForm(request.POST, instance=profile)
        personal_info_form = EmployeeForm(request.POST,
                                          request.FILES,
                                          instance=personal_info)
        if profile_form.is_valid() and personal_info_form.is_valid():
            form2 = profile_form.save(commit=False)
            form2.save()
            form3 = personal_info_form.save(commit=False)
            form3.save()
            form3.jobs.add(job)
            personal_info_form.save_m2m()
            messages.success(request, 'Your application has been accepted !')
            subject = f'{user.username} applied for your {job.title} job '
            message = f"{personal_info.cover_letter}"
            cv = request.FILES.getlist('cv')
            mail = EmailMessage(subject, message, settings.EMAIL_HOST_USER,
                                [job.owner.email])
            for f in cv:
                mail.attach(f.name, f.read(), f.content_type)
            mail.send()
            return redirect(reverse('jobs:job_list'))

    context = {"form2": profile_form, "form3": personal_info_form, 'job': job}

    return render(request, 'job/job_application.html', context)
예제 #19
0
파일: views.py 프로젝트: sepandy/vidido
def register(request):
    if request.FILES:
        print('file')
    if request.method == 'POST':
        userForm = UserCreationForm(request.POST)
        profileForm = ProfileForm(request.POST)
        if userForm.is_valid() and profileForm.is_valid():
            user = userForm.save()
            user.refresh_from_db()
            profileForm = ProfileForm(request.POST,
                                      request.FILES,
                                      instance=user.profile)
            profileForm.full_clean()
            profileForm.save()

            # return redirect('accounts/login.html')
            url = 'accounts/dashboard/' + str(user.username) + '/'
            return redirect('http://127.0.0.1:8000/' + url, permanent=True)
        else:
            return HttpResponse('failed')
    else:
        userForm = UserCreationForm()
        profileForm = ProfileForm()
        context = {'userForm': userForm, 'profileForm': profileForm}
        return render(request, 'accounts/signup.html', context)
예제 #20
0
def update_user_details(request):
    """
    Form to update user details
    """
    if request.method == "POST":

        user_form = UserUpdateForm(request.POST, instance=request.user)
        profile_form = ProfileForm(request.POST,
                                   request.FILES,
                                   instance=request.user.profile)

        if user_form.is_valid() and profile_form.is_valid():
            user_form.save()
            profile_form.save()
            return redirect(reverse("userarea:index"))

        else:
            messages.error(request, user_form.errors)
            messages.error(request, profile_form.errors)

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

    return redirect(reverse("userarea:index"))
예제 #21
0
def edit_profile(request):
    """
    Render a form to edit the user's profile but only if user is logged in
    """

    user = request.user

    if request.method == "POST":
        edit_user_form = UserEditProfileForm(request.POST, instance=user)
        edit_profile_form = ProfileForm(request.POST,
                                        request.FILES,
                                        instance=user.profile)

        if edit_user_form.is_valid() and edit_profile_form.is_valid():
            edit_user_form.save()
            edit_profile_form.save()
            return redirect('view_profile', request.user.id)

        else:
            messages.error(request, "Please check and amend the above.")

    else:
        """render user and profile forms"""
        edit_user_form = UserEditProfileForm(instance=user)
        edit_profile_form = ProfileForm(instance=user.profile)

    return render(request, "edit_profile.html", {
        "edit_user_form": edit_user_form,
        "edit_profile_form": edit_profile_form
    })
def profilepage(request):
    """Displays Profile Page / Handles updating of profile"""
    if request.method == 'POST':
        if 'user-information' in request.POST:
            user_form = UserDataForm(request.POST, instance=request.user)
            profile_form = ProfileForm(request.POST,
                                       instance=request.user.profile)
            if user_form.is_valid() and profile_form.is_valid():
                user_form.save()
                profile_form.save()
                messages.success(request, "User Information Updated.")
                return redirect('profile')
        else:
            shipping_form = ShippingForm(request.POST,
                                         instance=request.user.profile)
            if shipping_form.is_valid():
                shipping_form.save()
                messages.success(request, "User Information Updated.")
                return redirect('profile')

    user_form = UserDataForm(instance=request.user)
    profile_form = ProfileForm(instance=request.user.profile)
    shipping_form = ShippingForm(instance=request.user.profile)

    forms = {
        'UserDataForm': user_form,
        'ProfileForm': profile_form,
        'Shippingform': shipping_form
    }
    return render(request, 'profile.html', forms)
예제 #23
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)
def user_profile(request):
    """User's profile page with auction results and profile form to update"""

    current_auctions = Auction.objects.filter(
        winning_bidder=request.user.pk, auction_end_time__gte=timezone.now())
    past_paid_auctions = Auction.objects.filter(
        winning_bidder=request.user.pk,
        auction_end_time__lt=timezone.now(),
        paid=True)
    past_unpaid_auctions = Auction.objects.filter(
        winning_bidder=request.user.pk,
        auction_end_time__lt=timezone.now(),
        paid=False)

    if request.method == 'POST':
        user_form = UserForm(request.POST, instance=request.user)
        profile_form = ProfileForm(request.POST, instance=request.user.profile)
        if user_form.is_valid() and profile_form.is_valid():
            user_form.save()
            profile_form.save()
            messages.success(request, 'Your profile was successfully updated.')
            return redirect('profile.html')
        else:
            messages.error(request, 'Please correct the error below.')
    else:
        user_form = UserForm(instance=request.user)
        profile_form = ProfileForm(instance=request.user.profile)
    return render(
        request, 'profile.html', {
            'user_form': user_form,
            'profile_form': profile_form,
            'current_auctions': current_auctions,
            'past_paid_auctions': past_paid_auctions,
            'past_unpaid_auctions': past_unpaid_auctions
        })
예제 #25
0
def profile_edit(request):
    profile_ = Profile.objects.get(
        user=request.user
    )  # get profile qui a user(dans profile) = au user request
    if request.method == 'POST':
        userform = UserForm(request.POST, instance=request.user)
        profileform = ProfileForm(
            request.POST, request.FILES,
            instance=profile_)  # request.FILES : pour uplaod file
        if userform.is_valid() and profileform.is_valid():
            userform.save(
            )  # save user directement mais le profile nécessité la suivante
            myform = profileform.save(
                commit=False)  # s'assurer que le profile est relié au user
            myform.user = request.user  # s'assurer que le profile est relié au user
            myform.save()  # save profile
            messages.success(
                request, 'updated')  # qui sera affiché dans redirect template
            return redirect('accounts:profile')
    else:  # (affichage)
        userform = UserForm(
            instance=request.user
        )  # request.user = data du user connecté (affichage)
        profileform = ProfileForm(
            instance=profile_
        )  # profile_ = profile du user connecté  (affichage)
    return render(request, 'accounts/profile/edit_profile.html', {
        'userform': userform,
        'profileform': profileform
    })
예제 #26
0
파일: views.py 프로젝트: lukaszdevos/Forum
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)
예제 #27
0
def signup_info(request):
    # 회원 가입 정보 입력 페이지
    if Profile.objects.filter(user=request.user).exists():
        # 사용자 프로필 정보가 이미 존재할 경우 메인 페이지로
        return redirect('cast:index')

    if request.method == 'POST':
        form = ProfileForm(request.POST)
        if form.is_valid():
            profile = form.save(
                commit=False)  # 사용자한테 받아온 정보로 프로필 폼 인스턴스 생성(모델에 저장하지 않음)
            profile.user = request.user  # 프로필 유저에 유저 정보 저장
            profile.user.username = profile.user.socialaccount_set.first(
            ).extra_data['properties']['nickname']  # 유저의 이름은 카카오톡 닉네임으로 저장
            profile.user.email = profile.user.socialaccount_set.first(
            ).extra_data['kaccount_email']  # 유저의 이메일은 카카오톡 아이디로 저장
            img = request.user.socialaccount_set.first().get_avatar_url(
            )  # 카카오 프로필의 이미지 경로를 받아온다.
            image = ContentFile(
                requests.get(img).content)  # 불러온 이미지 데이터를 ContentFile객체로 랩핑한다.
            profile.image.save(profile.user.username,
                               image)  # 랩핑된 이미지 데이터를 profile에 저장
            profile.user.save()  # 유저 모델에 저장
            profile.save()  # 프로필 모델에 저장
            return redirect('accounts:set_tag')
    else:
        form = ProfileForm()

    return render(request, 'accounts/signup_info.html', {
        'form': form,
    })
def edit_profile(request):
    if request.user.is_authenticated:
        user = User.objects.get(email=request.user.email)
      
        if request.method == "POST":
            # user_form = UserCreationForm(request.FILES, instance=request.user)
            profile_form = ProfileForm(request.POST, request.FILES, instance=request.user.profile)
            print(profile_form)
            if profile_form.is_valid():  # user_form.is_valid() and
                # user_form.save()
                profile_form.save()
                messages.success(request, ('Your profile was successfully updated!'))
                return render(request, 'profile.html', {'profile_form': profile_form})  # 'user_form': user_form,
            else:
                messages.error(request, 'forms not valid')
                # profile_form = ProfileForm()

        else:
            # user_form = UserCreationForm(request.FILES, instance=request.user)
            profile_form = ProfileForm(request.POST, request.FILES, instance=request.user.profile)
        return render(request, 'edit_profile.html', {
            # 'user_form': user_form,
            'profile_form': profile_form
            })
    else:
        return redirect('login')
예제 #29
0
파일: views.py 프로젝트: zouyapeng/Homepage
 def post(self, request, *args, **kwargs):
     form = ProfileForm(request.POST, request.FILES)
     if form.is_valid():
         form.save()
         return self.form_valid(form)
     else:
         return self.form_invalid(form)
예제 #30
0
파일: views.py 프로젝트: spc-12/weblate
def user_profile(request):

    profile = request.user.get_profile()

    if request.method == "POST":
        # Read params
        form = ProfileForm(request.POST, instance=profile)
        subscriptionform = SubscriptionForm(request.POST, instance=profile)
        userform = UserForm(request.POST, instance=request.user)
        if appsettings.DEMO_SERVER and request.user.username == "demo":
            messages.warning(request, _("You can not change demo profile on the demo server."))
            return redirect("profile")

        if form.is_valid() and userform.is_valid() and subscriptionform.is_valid():
            # Save changes
            form.save()
            subscriptionform.save()
            userform.save()

            # Change language
            set_lang(request.user, request=request, user=request.user)

            # Redirect after saving (and possibly changing language)
            response = redirect("profile")

            # Set language cookie and activate new language (for message below)
            lang_code = profile.language
            response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang_code)
            translation.activate(lang_code)

            messages.info(request, _("Your profile has been updated."))

            return response
    else:
        form = ProfileForm(instance=profile)
        subscriptionform = SubscriptionForm(instance=profile)
        userform = UserForm(instance=request.user)

    social = request.user.social_auth.all()
    social_names = [assoc.provider for assoc in social]
    new_backends = [x for x in load_backends(BACKENDS).keys() if x == "email" or x not in social_names]

    response = render_to_response(
        "accounts/profile.html",
        RequestContext(
            request,
            {
                "form": form,
                "userform": userform,
                "subscriptionform": subscriptionform,
                "profile": profile,
                "title": _("User profile"),
                "licenses": Project.objects.exclude(license=""),
                "associated": social,
                "new_backends": new_backends,
            },
        ),
    )
    response.set_cookie(settings.LANGUAGE_COOKIE_NAME, profile.language)
    return response
def edit_profile(request):
    profile = ""
    UserProfiles = UserProfile.objects.all()
    for prof in UserProfiles:
        if request.user == prof.user:
            profile = prof
    if request.method == 'GET':
        context = {
            'profile': profile,
            'form': ProfileForm(instance=profile),
        }

        return render(request, 'edit_profile.html', context)

    elif request.method == "POST":
        form = ProfileForm(request.POST, request.FILES, instance=profile)
        if form.is_valid():
            form.save()
            return redirect('accounts:User_Profile')
        context = {
            'profile': profile,
            'form': ProfileForm(instance=profile),
        }

        return render(request, 'edit_profile.html', context)
예제 #32
0
def registration_next_steps(request):
	"""
	Loads next steps page to complete user registration
	"""
	referer = request.META.get('data[HTTP_REFERER]', '')
	if request.method == 'POST':
		form = ProfileForm(request.POST)
		if form.is_valid():
			# associate profile with user object
			next_step = form.save(commit=False)
			next_step.user = request.user

			# create a Stripe customer instance
			customer = create_customer_stripe_account(
				request.user, commit=False
			)
			next_step.stripe_id = customer.id

			# create a customer balance object of 0
			cbal = CustomerBalance.objects.create(customer=request.user)
			cbal.save()

			# save and redirect to home page
			next_step.save()
			return redirect('/')

	else:
		form = ProfileForm()

	return render(request, 'form-next-step.html', {'form': form})
예제 #33
0
def IndexView(request):
    if request.user.is_authenticated():
        return HttpResponseRedirect('cricket_center')
    else:
        registered = False
        user_form = UserForm(request.POST or None)
        profile_form = ProfileForm(request.POST or None)
        login_form = UserLogInForm(request.POST or None)
        if request.method == 'POST':
            if request.POST.get('submit') == 'Login':
                login_form = UserLogInForm(data=request.POST)
                if login_form.is_valid:
                    username = login_form.data.get("username")
                    password = login_form.data.get("password")
                    user = authenticate(username=username, password=password)
                    if user:
                        # Check it the account is active
                        if user.is_active:
                            # Log the user in.
                            login(request, user)
                            # user.profile.balance = user.profile.balance+10
                            # print(user.profile.balance)
                            user.save()

                            # print(request.user.profile.balance)
                            # print(request.user.profile.balance+10)
                            # request.user.profile.save()
                            # Send the user back to some page.
                            # In this case their homepage.
                            return HttpResponseRedirect('cricket_center')
                        else:
                            # If account is not active:
                            return HttpResponse("Your account is not active.")

                    else:
                        print("Someone tried to login and failed.")
                        print("They used username: {} and password: {}".format(
                            username, password))
                        return HttpResponse("Invalid login details supplied.")
            if request.POST.get('submit') == 'Register':
                user_form = UserForm(data=request.POST)
                profile_form = ProfileForm(data=request.POST)
                if user_form.is_valid() and profile_form.is_valid():
                    user = user_form.save(commit=False)
                    user.set_password(user.password)
                    user.save()
                    profile = profile_form.save(commit=False)
                    profile.user = user
                    profile.save()
                    registered = True
                else:
                    print(user_form.errors, profile_form.errors)
        return render(
            request, 'index.html', {
                'user_form': user_form,
                'profile_form': profile_form,
                'login_form': login_form,
                'registered': registered
            })
예제 #34
0
파일: views.py 프로젝트: ginking/gallery
def profile(request):
    form = ProfileForm(request.POST or None, instance=request.user)
    if form.is_valid():
        form.save()
        messages.success(request, PROFILE_MESSAGE)
        return redirect(reverse('accounts:profile'))
    context = {'form': form}
    return render(request, 'accounts/profile.html', context)
예제 #35
0
파일: views.py 프로젝트: tiradoe/giflocker
def new_profile(request):
    if request.method == "POST":
        form = ProfileForm(request.POST)

        if form.is_valid():
            create_profile(request, form)
    else:
        form = ProfileForm()
    return render(request, "accounts/profile_new.html", {"form": form})
예제 #36
0
def profile_edit(request):
    from django.utils.translation import ugettext as _
    if request.method == 'POST':
        form = ProfileForm(request.user, request.POST)
        if form.is_valid():
            form.save()
            raise RedirectException(redirect(request), notice_message=_(u'Changes to profile saved.'))
    else:
        form = ProfileForm(request.user)
    return {'form': form}
예제 #37
0
파일: views.py 프로젝트: alasin/mentor
def profile_form(request):
    user = request.user
    profile = request.user.p2puprofile
    form = ProfileForm(instance=profile, initial={'first_name':user.first_name, 'last_name':user.last_name})
    if request.method == 'POST':
        form = ProfileForm(request.POST, instance=profile)
        if form.is_valid():
            form.save()
            return redirect('project_form')
    return direct_to_template(request, 'profile_form.html', locals())
예제 #38
0
파일: views.py 프로젝트: thorgate/CodeClub
    def get(self, request, *args, **kwargs):

        form = ProfileForm(request.POST or None, instance=self.request.user)

        if form.is_valid():
            form.save()

            return redirect('dashboard')

        context = self.get_context_data(**kwargs)
        context['form'] = form

        return self.render_to_response(context)
예제 #39
0
파일: views.py 프로젝트: gpichot/webldap
def profile_edit(request, l):
    error_msg = None
    me = l.get_ldap_node(request.session['ldap_binddn'])

    if request.method == 'POST':
        f = ProfileForm(request.POST)
        if f.is_valid():
            me.displayName = f.cleaned_data['name']
            me.cn = f.cleaned_data['nick']
            me.save()

            passwd_new = f.cleaned_data['passwd']
            email_new = f.cleaned_data['email']

            if passwd_new:
                me.set_password(passwd_new)
                request.session['ldap_passwd'] = passwd_new

            if email_new != str(me.mail):
                req = Request()
                req.type = Request.EMAIL
                req.uid = me.uid
                req.email = email_new
                req.save()

                t = loader.get_template('accounts/email_email_request')
                c = Context({
                        'name': me.displayName,
                        'url': request.build_absolute_uri(
                                         reverse(process, kwargs={ 'token': req.token })),
                        'expire_in': settings.REQ_EXPIRE_STR,
                        })
                send_mail(u'Confirmation email FedeRez', t.render(c), settings.EMAIL_FROM,
                          [req.email], fail_silently=False)

            return HttpResponseRedirect('/')

    else:
        f = ProfileForm(label_suffix='', initial={ 'email': me.mail,
                                                   'name': me.displayName,
                                                   'nick': me.cn })

    c = { 'form': f,
          'name': me.displayName,
          'nick': me.cn,
          'email': me.mail,
          'error_msg': error_msg, }
    c.update(csrf(request))

    return render_to_response('accounts/edit.html', c,
                              context_instance=RequestContext(request))
예제 #40
0
def user_profile(request):

    profile = request.user.get_profile()

    if request.method == "POST":
        # Read params
        form = ProfileForm(request.POST, instance=profile)
        subscriptionform = SubscriptionForm(request.POST, instance=profile)
        userform = UserForm(request.POST, instance=request.user)
        if form.is_valid() and userform.is_valid() and subscriptionform.is_valid():
            # Save changes
            form.save()
            subscriptionform.save()
            userform.save()

            # Change language
            set_lang(request.user, request=request, user=request.user)

            # Redirect after saving (and possibly changing language)
            response = HttpResponseRedirect(reverse("profile"))

            # Set language cookie and activate new language (for message below)
            lang_code = profile.language
            response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang_code)
            translation.activate(lang_code)

            messages.info(request, _("Your profile has been updated."))

            return response
    else:
        form = ProfileForm(instance=profile)
        subscriptionform = SubscriptionForm(instance=profile)
        userform = UserForm(instance=request.user)

    response = render_to_response(
        "profile.html",
        RequestContext(
            request,
            {
                "form": form,
                "userform": userform,
                "subscriptionform": subscriptionform,
                "profile": profile,
                "title": _("User profile"),
                "licenses": Project.objects.exclude(license=""),
            },
        ),
    )
    response.set_cookie(settings.LANGUAGE_COOKIE_NAME, profile.language)
    return response
예제 #41
0
def edit(request):
    profile = request.user.profile

    def is_selected(prefix):
        if request.method == "POST":
            for name in request.POST.keys():
                if name.startswith(prefix + '-'):
                    return True
            if request.FILES:
                for name in request.FILES.keys():
                    if name.startswith(prefix + '-'):
                        return True
        return False

    if is_selected("profile"):
        had_enabled_stream_emails = profile.enabled_stream_emails
        profile_form = ProfileForm(request, request.POST, instance=profile, prefix="profile")
        if profile_form.is_valid():
            enabled_stream_emails = profile_form.cleaned_data.get("enabled_stream_emails")
            # If is enabling stream emails, set last_stream_email_sent to now
            if not had_enabled_stream_emails and enabled_stream_emails:
                profile.last_stream_email_sent = datetime.datetime.now()
            profile.save()
            return HttpResponseRedirect(reverse("accounts-home"))
    else:
        profile_form = ProfileForm(request, instance=profile, prefix="profile")

    if is_selected("image"):
        image_form = AvatarForm(request.POST, request.FILES, prefix="image")
        if image_form.is_valid():
            if image_form.cleaned_data["remove"]:
                profile.has_avatar = False
                profile.save()
            else:
                handle_uploaded_image(profile, image_form.cleaned_data["file"])
                profile.has_avatar = True
                profile.save()
            return HttpResponseRedirect(reverse("accounts-home"))
    else:
        image_form = AvatarForm(prefix="image")

    has_granted_permissions = AccessToken.objects.filter(user=request.user).count()

    tvars = {
        'profile': profile,
        'profile_form': profile_form,
        'image_form': image_form,
        'has_granted_permissions': has_granted_permissions
    }
    return render(request, 'accounts/edit.html', tvars)
예제 #42
0
def register_person(request):

    if not 'confirmation_code' in request.session:
        raise Http404
    
    if request.method == 'POST':
        form = ProfileForm(request.POST, request.FILES)
        if form.is_valid():
            confirmation_code = request.session['confirmation_code']
            try:
                registrationManager = RegistrationManager.objects.get(confirmation_code=confirmation_code)
            except RegistrationManager.DoesNotExist:
                raise Http404
            email = registrationManager.email
    
            first_name = form.cleaned_data['first_name']
            last_name = form.cleaned_data['last_name']
            password = form.cleaned_data['password']
            picture = form.cleaned_data['picture']
    
            user = User(username=email, first_name=first_name, last_name=last_name, email=email)
            user.set_password(password)
            user.save()
    
            email_domain = email.split('@')[1]
            try:
                organization = Organization.objects.get(email_domain=email_domain)
                group = organization.primary_group
            except Organization.DoesNotExist: # first user for organization
                organization = None
                group = None
        
            person = Person(user=user, organization=organization, picture=picture, group=group)
            person.save()
    
            del request.session['confirmation_code']
            registrationManager.delete()
            user = authenticate(username=email, password=password)
            login(request, user)
            return HttpResponseRedirect('/')
    else:
        form = ProfileForm()

    c = RequestContext(request, {'form': form })
    c.update(csrf(request))
    return render_to_response('registration/register_person.html', c)
예제 #43
0
파일: register.py 프로젝트: gvidon/byhands
def form(request):
	form = ProfileForm(auto_id='%s')
	
	if request.POST:
		form = ProfileForm(auto_id='%s', data=request.POST)
		
		if(form.is_valid()):
			return render_to_response('accounts/register/thanx.html', { 'email': register_inactive(
				form.cleaned_data['username'],
				form.cleaned_data['email'],
				form.cleaned_data['first_name'],
				form.cleaned_data['last_name'],
				form.cleaned_data['sur_name'],
			).email }, context_instance=RequestContext(request))
	
	return render_to_response(
		'accounts/register/form.html',
		{'form': form},
		context_instance=RequestContext(request)
	)
예제 #44
0
def edit(request):
    profile = request.user.profile

    def is_selected(prefix):
        if request.method == "POST":
            for name in request.POST.keys():
                if name.startswith(prefix + '-'):
                    return True
            if request.FILES:
                for name in request.FILES.keys():
                    if name.startswith(prefix + '-'):
                        return True
        return False

    if is_selected("profile"):
        profile_form = ProfileForm(request, request.POST, instance=profile, prefix="profile")
        if profile_form.is_valid():
            profile_form.save()
            return HttpResponseRedirect(reverse("accounts-home"))
    else:
        profile_form = ProfileForm(request,instance=profile, prefix="profile")

    if is_selected("image"):
        image_form = AvatarForm(request.POST, request.FILES, prefix="image")
        if image_form.is_valid():
            if image_form.cleaned_data["remove"]:
                profile.has_avatar = False
                profile.save()
            else:
                handle_uploaded_image(profile, image_form.cleaned_data["file"])
                profile.has_avatar = True
                profile.save()
            return HttpResponseRedirect(reverse("accounts-home"))
    else:
        image_form = AvatarForm(prefix="image")

    return render_to_response('accounts/edit.html', dict(profile=profile, profile_form=profile_form, image_form=image_form), context_instance=RequestContext(request))
예제 #45
0
def save_profile(request):
    title = "Edit My Profile"
    icon = "edit"
    if request.POST.get('save_changes'):
        form = ProfileForm(data=request.POST, files=request.FILES, instance=request.user.profile)
        if form.is_valid():
            if request.POST.get('username', request.user.username) != request.user.username:
                # change username
                try:
                    check = User.objects.get(username=request.POST.get('username'))
                    messages.error(request, 'That username has already been taken!')
                    return locals()
                except User.DoesNotExist:
                    request.user.username = request.POST.get('username')
                    request.user.save()
            form.save()
            request.user.first_name = request.POST.get('first_name', request.user.first_name)
            request.user.last_name = request.POST.get('last_name', request.user.last_name)
            request.user.save()
            messages.success(request, 'Your profile has been updated!')
        else:
            messages.error(request, 'Unable to save changes to your profile!')
            return locals()
    return view_profile(request)
예제 #46
0
파일: profile.py 프로젝트: gvidon/byhands
def form(request):
	profile = Profile.objects.get(user=request.user)
	
	form = ProfileForm(auto_id='%s', initial={
		'id'        : request.user.id,
		'username'  : request.user.username,
		'email'     : request.user.email,
		'avatar'    : profile.avatar,
		
		'first_name': request.user.first_name,
		'sur_name'  : profile.sur_name,
		'last_name' : request.user.last_name,
		
		'gender'    : profile.gender,
		'birthdate' : profile.birthdate,
		
		'phone'     : profile.phone,
		'icq'       : profile.icq,
	})
	
	if request.POST:
		form = ProfileForm(auto_id='%s', data=request.POST, files=request.FILES)
		
		if(form.is_valid()):
			# update user info and profile
			User.objects.filter(id=request.user.id).update(
				username   = form.cleaned_data.get('username'),
				email      = form.cleaned_data.get('email'),
				first_name = form.cleaned_data.get('first_name'),
				last_name  = form.cleaned_data.get('last_name')
			)
			
			Profile.objects.filter(id=request.user.get_profile().id).update(
				user      = request.user,
				avatar    = request.FILES and 'upload/avatars/'+str(request.user.id) or '',
				sur_name  = form.cleaned_data.get('sur_name'),
				gender    = form.cleaned_data.get('gender'),
				birthdate = form.cleaned_data.get('birthdate'),
				phone     = form.cleaned_data.get('phone'),
				icq       = form.cleaned_data.get('icq')
			)
			
			# resize and save uploaded avatar
			if request.FILES:
				filename = settings.UPLOAD_ROOT+'avatars/'+str(request.user.id)
				
				avatar = open(filename,'wb+')
				for chunk in request.FILES['avatar'].chunks(): avatar.write(chunk)
				avatar.close()
				
				image = Image.open(filename)
				
				if image.mode not in ('L', 'RGB'):
					image = image.convert('RGB')
				
				image.thumbnail((70, 70), Image.ANTIALIAS)
				image.save(filename, image.format)
				
				Profile.objects.filter(id=form.cleaned_data.get('id')).update(
					avatar='upload/avatars/'+str(request.user.id)
				)
			
			profile = Profile.objects.get(user=request.user)
				
	return render_to_response('accounts/profile.html', {
		'form'   : form,
		'profile': profile,
	}, context_instance=RequestContext(request))
예제 #47
0
파일: views.py 프로젝트: camilonova/weblate
def user_profile(request):

    profile = request.user.get_profile()

    if request.method == 'POST':
        # Read params
        form = ProfileForm(
            request.POST,
            instance=profile
        )
        subscriptionform = SubscriptionForm(
            request.POST,
            instance=profile
        )
        userform = UserForm(
            request.POST,
            instance=request.user
        )
        if (form.is_valid()
                and userform.is_valid()
                and subscriptionform.is_valid()):
            # Save changes
            form.save()
            subscriptionform.save()
            userform.save()

            # Change language
            set_lang(request.user, request=request, user=request.user)

            # Redirect after saving (and possibly changing language)
            response = HttpResponseRedirect(reverse('profile'))

            # Set language cookie and activate new language (for message below)
            lang_code = profile.language
            response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang_code)
            translation.activate(lang_code)

            messages.info(request, _('Your profile has been updated.'))

            return response
    else:
        form = ProfileForm(
            instance=profile
        )
        subscriptionform = SubscriptionForm(
            instance=profile
        )
        userform = UserForm(
            instance=request.user
        )

    response = render_to_response('profile.html', RequestContext(request, {
        'form': form,
        'userform': userform,
        'subscriptionform': subscriptionform,
        'profile': profile,
        'title': _('User profile'),
    }))
    response.set_cookie(
        settings.LANGUAGE_COOKIE_NAME,
        profile.language
    )
    return response
예제 #48
0
def update(request):
    '''
    Данная функция отвечает за обноление всех данных о пользователе: Профиль, Юр. данные, Инф. о доставке.
    Она принимает на вход всего 1 форму и в зависимости от параметров расбрасывает эти данные в набор моделей.
    '''
    if request.method == 'POST': # Если пришли данные от формы
        form = ProfileForm(request.POST, request.FILES) # Создадним экземпляр формы
        if form.is_valid(): # Если все данные введены корректно...
            # Если произошли изменения в модели пользователя
            user = User.objects.get(id=request.user.id)
            user.first_name = form.cleaned_data['first_name']
            user.last_name = form.cleaned_data['last_name']
            user.save()
            
            # Если произошли изменения в модели профиля
            profile = Profile.objects.get(user=user)
            profile.phone = form.cleaned_data['phone']
            is_legal = int(form.cleaned_data['is_legal'])
            # Подгрузка аватарки на сервер
            try:
                profile.img = handle_uploaded_file(request.FILES['img'], 'user_pic')
            except:
                pass
            # Проверка, является ли пользователь юр.лицом
            if is_legal == 0:
                profile.is_legal = False
            else:
                profile.is_legal = True
            profile.save()

            # Если пользователь становится юр.лицом, необходимо сохранить в базе его юридические данные
            form = LegalForm(request.POST)
            if form.is_valid():
                try:
                    legal = Legal.objects.get(profile=profile)
                    legal.title = form.cleaned_data['legal_name']
                    legal.inn = form.cleaned_data['inn']
                    legal.kpp = form.cleaned_data['kpp']
                    legal.bik = form.cleaned_data['bik']
                    legal.rs = int(form.cleaned_data['rs'])
                    legal.ks = int(form.cleaned_data['ks'])
                    legal.post = form.cleaned_data['post']
                except:
                    legal = Legal(
                        profile = profile,
                        title = form.cleaned_data['legal_name'],
                        inn = form.cleaned_data['inn'],
                        kpp = form.cleaned_data['kpp'],
                        bik = form.cleaned_data['bik'],
                        rs = int(form.cleaned_data['rs']),
                        ks = int(form.cleaned_data['ks']),
                        post = form.cleaned_data['post'],
                    )
                legal.save()

            # Если пользователь вводит свои данные по доставке
            form = DeliveryForm(request.POST)
            if form.is_valid():
                try:
                    delivery = Delivery.objects.get(profile=profile)
                    delivery.title = form.cleaned_data['delivery_name']
                    delivery.address = form.cleaned_data['address']
                    delivery.city = form.cleaned_data['city']
                except:
                    delivery = Delivery(
                        profile = profile,
                        title = form.cleaned_data['delivery_name'],
                        address = form.cleaned_data['address'],
                        city = form.cleaned_data['city']
                    )
                delivery.save()


    return HttpResponseRedirect('/profile/')