Example #1
0
    def post(self, request):
        user_form = UserForm(data=request.POST)
        profile_form = UserProfileForm(data=request.POST)

        if user_form.is_valid() and profile_form.is_valid():
            self.process_valid_forms(profile_form, user_form)

        else:
            print user_form.errors, profile_form.errors
            return render_to_response(
                'accounts/register.html',
                {'user_form': user_form, 'profile_form': profile_form, 'registered': False},
                RequestContext(request))

        return render_to_response(
            'accounts/register.html',
            {'user_form': user_form, 'profile_form': profile_form, 'registered': True},
            RequestContext(request))
Example #2
0
def user_profile(request):
    """The user's profile page"""
    user = User.objects.get(id=request.user.id)
    profile = user.profile
    # profile = user.profile.objects.get_or_create(instance=user)

    userForm = UserForm(instance=user)
    profileForm = ProfileForm(instance=profile)
    edit_profile(request)

    if request.method == 'GET':
        return render(request, 'profile.html', {
            'user': user,
            'userForm': userForm,
            'profileForm': profileForm
        })
    if request.method == 'POST':
        return redirect('edit_profile')
Example #3
0
 def test_user_forms(self):
     form_data = {'username': '******',
                  'first_name': 'Martin',
                  'last_name': 'Bright',
                  'email':'*****@*****.**',
                  'password':'******',
                  'password_confirm':'pwd123',
                  'captcha_0':'dummy-value',
                  'captcha_1':'PASSED'}
     user_form = UserForm(data=form_data)
     
     if not user_form.is_valid():
         print user_form.errors
     else:
         self.assertTrue(user_form.is_valid())
         user = user_form.save(commit=False)
         user.set_password(user.password)
         user.save()
Example #4
0
def employee_list_view(request):
    page_obj = None
    form = UserForm()
    employee_form = EmployeeForm()
    try:
        owner = Owner.objects.get(user=request.user)
        employee_qs = owner.employees.all()
        page_number = request.GET.get('page')
        paginator = Paginator(employee_qs, 10)
        page_obj = paginator.get_page(page_number)
    except:
        pass
    context = {
        'form': form,
        'employee_form': employee_form,
        'page_obj': page_obj
    }
    return render(request, 'employees/employee-list.html', context)
Example #5
0
def signup_student(request):

    student_form = StudentForm(request.POST or None)
    user_form = UserForm(request.POST or None)

    if request.method == 'POST':
        if student_form.is_valid() and user_form.is_valid():
            user = user_form.save()
            student = student_form.save(commit=False)
            student.user = user
            student.save()
            return redirect('index')

    return render(request, 'signup_student.html', {
        'form': user_form,
        'student_form': student_form,
        'grades': GRADE_CHOICES,
    })
Example #6
0
    def get(self, request, **kwargs):
        if kwargs.get('user_form') is None:
            kwargs['user_form'] = UserForm(instance=self.request.user)
        if kwargs.get('profile_form') is None:
            kwargs['profile_form'] = UpdateUserProfileForm(
                instance=self.request.user.profile)
        if kwargs.get('referral_formset') is None:
            all_referrals = request.user.referral_code.all()
            kwargs['referral_formset'] = \
                UserUpdateView.ReferralFormSet(queryset=all_referrals)
        if kwargs.get('verification_form') is None:
            kwargs['verification_form'] = VerificationUploadForm()
        if kwargs.get('verification_list') is None:
            kwargs['verification_list'] = Verification.objects.filter(
                user=self.request.user)

        context = kwargs

        return render(request, 'accounts/user_profile.html', context)
Example #7
0
 def post(self, request):
     form = UserForm(request.POST)
     if form.is_valid():
         user = User()
         user.username = form.cleaned_data['username']
         user.set_password(form.cleaned_data['password'])
         user.email = form.cleaned_data['email']
         user.first_name = form.cleaned_data['first_name']
         user.last_name = form.cleaned_data['last_name']
         user.save()
         birth_date = form.cleaned_data['birth_date']
         blood = form.cleaned_data['blood_type']
         pesel = form.cleaned_data['pesel']
         Profile.objects.create(user=user,
                                birth_date=birth_date,
                                blood=blood,
                                pesel=pesel)
         return redirect('/')
     return render(request, 'registration.html', {'form': form})
    def post(self, request, *args, **kwargs):
        user_form = UserForm(request.POST, instance=request.user)
        profile_form = ProfileForm(request.POST,
                                   request.FILES,
                                   instance=request.user.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('accounts:my_profile')
        else:

            context = {
                'user_form': user_form,
                'profile_form': profile_form,
                'title': 'My Profile'
            }
            return render(request, 'accounts/my_profile.html', context)
Example #9
0
def ClientCreateView(request):
    template_name = "client/create_client.html"

    user_form = UserForm(request.POST or None)
    client_form = ClientForm(request.POST or None)

    context = {
        'user': user_form,
        'client': client_form,
    }

    if user_form.is_valid() and client_form.is_valid():
        user = user_form.save()
        client = client_form.save(commit=False)
        client.user = user
        client.save()

        return redirect("login")

    return render(request, template_name, context)
Example #10
0
def search_users(request):
    form = UserForm(request.POST or None)
    users = []
    context = {'form': form}
    logged_in_user = request.user
    if request.method == 'POST':
        if form.is_valid():
            username = request.POST.get('username')
            users = User.objects.all().filter(
                username__icontains=username).exclude(username=request.user)

            for user in users:
                if AccountDetails.objects.filter(user=user):
                    details = AccountDetails.objects.get(user=user)
                    user.details = details
                user.my_friend = AccountDetails.is_my_friend(
                    request.user, user)
            context = {'users': users, 'form': form}

    return render(request, 'friends/find_account.html', context)
Example #11
0
    def post(self, request):
        user_form = UserForm(request.POST, instance=request.user)
        profile_form = ProfileForm(instance=request.user.profile)

        if user_form.is_valid():
            user = user_form.save()

            image = request.FILES['image']
            fs = FileSystemStorage(location=settings.MEDIA_ROOT + '/profile_pics')
            uploaded_filename = fs.save(image.name, image)
            user.profile.image = 'profile_pics/{}'.format(uploaded_filename)
            user.profile.save()

        clear_unused_profile_images.delay()

        self.insert_profile_image(request)

        return render(request, 'accounts/profile.html', {
            'user_form': user_form,
            'profile_form': profile_form
        })
Example #12
0
            def checkUNA():
                """ Handle UNA updates. """

                user_form = UserForm(request.POST, instance=request.user)
                """
                We also need to post the avatar which lives in tUserProfile.
                Create a new instance of AvatarForm.
                Notice the request.FILES.
                Django needs to know we are uploading a file.
                """
                user_profile_form = AvatarForm(
                    request.POST,
                    request.FILES,
                    instance=request.user.tuserprofile)

                if user_form.is_valid() and user_profile_form.is_valid():
                    user_form.save()
                    user_profile_form.save()
                    messages.success(request,
                                     'Your account was updated successfully!')
                else:
                    messages.error(request, user_form.errors)
Example #13
0
def add_teammate(request, slug):
    event = Event.objects.get(slug=slug)
    form = UserForm(request.POST or None)

    context = {'form': form}
    filtered_users = []

    if request.method == 'POST':
        if form.is_valid():
            username = request.POST.get('username')
            users = User.objects.all().filter(username__icontains=username)
            for user in users:
                if AccountDetails.is_my_friend(request.user, user):
                    if AccountDetails.objects.filter(user=user):
                        details = AccountDetails.objects.get(user=user)
                        user.details = details
                    user.my_friend = AccountDetails.is_my_friend(
                        request.user, user)
                    filtered_users.append(user)
            context = {'users': filtered_users, 'form': form, 'event': event}

    return render(request, 'events/add_teammate.html', context)
Example #14
0
    def post(self, request):
        user_form = \
            UserForm(request.POST,
                     instance=self.request.user)
        profile_form = \
            UpdateUserProfileForm(request.POST,
                                  instance=self.request.user.profile)

        success_message = ''

        # TODO: separate referrals and profile in Views.py and Frontend (tabs)
        if user_form.is_valid() and \
                profile_form.is_valid():
            success_message += '{}\n'.format(_('Profile updated successfully'))
            user_form.save()
            profile_form.save()

        if success_message:
            messages.success(self.request, success_message)
        return self.get(request,
                        user_form=user_form,
                        profile_form=profile_form)
Example #15
0
def event_attend_form(request, year, pk, template_name='events/event_attend.html'):
    fair = get_object_or_404(Fair, year=year)
    event = get_object_or_404(Event, pk=pk)
    if not user_eligible_event(request.user, event):
        raise Http404()
    questions = EventQuestion.objects.filter(event=pk).all()
    ea = EventAttendence.objects.filter(user=request.user, event=event).first()
    number_of_registrations = EventAttendence.objects.filter(event=event).count()
    questions_answers = [(question, EventAnswer.objects.filter(
        attendence=ea, question=question).first()) for question in questions]
    form = AttendenceForm(
        request.POST or None, questions_answers=questions_answers)
    user_form = UserForm(request.POST or None, instance=request.user)
    if form.is_valid() and registration_open(event) and user_form.is_valid():
        if not ea:
            status = 'A'
            if event.attendence_approvement_required or (0 < event.capacity <= number_of_registrations):
                status = 'S'
            ea = EventAttendence.objects.create(
                user=request.user, event=event, status=status)
            if event.send_submission_mail:
                send_mail_on_submission(request.user, event)
        for (question, id, answer) in form.get_answers():
            EventAnswer.objects.update_or_create(
                question_id=id, attendence=ea, defaults={'answer': answer})

        if not event.extra_field:
            # This creates an extra field
            event.save()
        event.extra_field.handle_answers_from_request(request, ea.user)
        user_form.save()
        return redirect('event_list', fair.year)

    return render(request, template_name, {
        "event": event, "form": form, "user_form": user_form,
        "extra_field_questions_with_answers": event.extra_field.questions_with_answers_for_user(ea.user if ea else None) if event.extra_field else None,
        "fair": fair,
    })
Example #16
0
    def save_both(request):
        """
        Edit, validate and save both the general user form and the employer profile form

        @type request: `request`  
        @param request: the user's current request object  
        @rtype: `UserForm`, `ProfileForm`  
        @returns: validated `UserForm` and `ProfileForm` upon failed validation 
        or `None` upon successful validation
        """

        profile = EmployerProfile.objects.get(user=request.user)
        profile_form = EmployerProfileForm(request.POST, instance=profile)
        user = User.objects.get(email=request.user.email)
        user_form = UserForm(request.POST, request.FILES, instance=user)
        if all((profile_form.is_valid(), user_form.is_valid())):
            # if the user changed their email, login again
            if user.email != request.user:
                login(request, user)
            user_form.save()
            profile_form.save()
            return None, None
        else:
            return profile_form, user_form
Example #17
0
def signupuser(request):
    if request.method == 'GET':
        return render(request, "store/signupuser.html", {'form': UserForm()})
    else:
        if request.POST['password1'] == request.POST['password2']:
            try:
                user = CustomUser.objects.create_user(request.POST['phone'],
                                                      password=request.POST['password1'])

                user.first_name = request.POST['first_name']
                user.last_name = request.POST['last_name']
                user.email = request.POST['email']
                user.address = request.POST['address']
                user.introduction = request.POST['introduction']
                try:
                    if request.POST['is_seller'] == 'on':
                        print("it is onnnnnnnnnnnnnn************************")
                        user.is_seller = True
                    else:
                        print("it is else else else else ************************")

                        user.is_seller = False
                except:
                    user.is_seller = False
                    print("it is try try try try ************************")

                user.save()
                login(request, user)
                return redirect('home')
            except IntegrityError:
                return render(request, "store/signupuser.html",
                              {'form': UserCreationForm(), 'error': 'This user name has already taken'})
        else:
            # Tell the user the password didn't match
            return render(request, "store/signupuser.html",
                          {'form': UserCreationForm(), 'error': 'password did not match'})
Example #18
0
    def post(self, request):
        user_form = UserForm(data=request.POST)
        profile_form = UserProfileInfoForm(data=request.POST)

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

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

            # make query from form fields
            city = profile_form.cleaned_data['city']
            street = profile_form.cleaned_data['street']
            house_number = profile_form.cleaned_data['house_number']
            search_text = city + ' ' + street + ' ' + ' ' + str(house_number)

            message = requests.get(
                'https://geocoder.api.here.com/6.2/geocode.json', {
                    'app_id': 'Z7uukAiQbHvHZ43KIBKW',
                    'app_code': 'nadFSh5EHBHkTdUQ3YnTEg',
                    'searchtext': search_text
                })

            data = message.json()
            latitude = data['Response']['View'][0]['Result'][0]['Location'][
                'NavigationPosition'][0]['Latitude']
            longitude = data['Response']['View'][0]['Result'][0]['Location'][
                'NavigationPosition'][0]['Longitude']

            for t in Truck.objects.all():
                status1 = checkDiv(t.start_latitude, t.start_longitude)
                status2 = checkDiv(t.end_latitude, t.end_longitude)
                if (status1 == 1):
                    if ((status2 == 1 and t.start_longitude > t.end_longitude)
                            or status2 == 4):
                        if (isBigger(t.start_latitude, t.start_longitude,
                                     latitude, longitude) or
                                not isBigger(t.end_latitude, t.end_longitude,
                                             latitude, longitude)):
                            profile.id_cluster = t
                    if (status2 == 2 or status2 == 3
                            or (status2 == 1
                                and t.start_longitude < t.end_longitude)):
                        if (isBigger(t.start_latitude, t.start_longitude,
                                     latitude, longitude)
                                and isBigger(t.end_latitude, t.end_longitude,
                                             latitude, longitude)):
                            profile.id_cluster = t
                if (status1 == 2):
                    if ((status2 == 2 and t.start_longitude < t.end_longitude)
                            or status2 == 3):
                        if (not isBigger(t.start_latitude, t.start_longitude,
                                         latitude, longitude)
                                and isBigger(t.end_latitude, t.end_longitude,
                                             latitude, longitude)):
                            profile.id_cluster = t
                    if ((status2 == 2
                         and t.start_longitude > t.end_longitude)):
                        if (not isBigger(t.start_latitude, t.start_longitude,
                                         latitude, longitude)
                                or isBigger(t.end_latitude, t.end_longitude,
                                            latitude, longitude)):
                            profile.id_cluster = t
                    if (status2 == 4 or status2 == 1
                            or (status2 == 2
                                and t.start_longitude < t.end_longitude)):
                        if (not isBigger(t.start_latitude, t.start_longitude,
                                         latitude, longitude) or
                                not isBigger(t.end_latitude, t.end_longitude,
                                             latitude, longitude)):
                            profile.id_cluster = t

                if (status1 == 3):
                    if (status2 == 4 or status2 == 1):
                        if (not isBigger(t.start_latitude, t.start_longitude,
                                         latitude, longitude) and
                                not isBigger(t.end_latitude, t.end_longitude,
                                             latitude, longitude)):
                            profile.id_cluster = t
                    if (status2 == 2 or status2 == 3):
                        if (not isBigger(t.start_latitude, t.start_longitude,
                                         latitude, longitude)
                                or isBigger(t.end_latitude, t.end_longitude,
                                            latitude, longitude)):
                            profile.id_cluster = t

                if (status1 == 4):
                    if ((status2 == 4 and t.start_longitude < t.end_longitude)
                            or status2 == 3 or status2 == 2):
                        if (isBigger(t.start_latitude, t.start_longitude,
                                     latitude, longitude) and
                                not isBigger(t.end_latitude, t.end_longitude,
                                             latitude, longitude)):
                            profile.id_cluster = t
                    if (status2 == 1
                            or (status2 == 4
                                and t.start_longitude > t.end_longitude)):
                        if (isBigger(t.start_latitude, t.start_longitude,
                                     latitude, longitude)
                                or isBigger(t.end_latitude, t.end_longitude,
                                            latitude, longitude)):
                            profile.id_cluster = t

            profile.latitude = float(latitude)
            profile.longitude = float(longitude)

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

            user.save()
            profile.save()

            self.registered = True
        else:
            print(user_form.errors, profile_form.errors)
        return render(
            request, self.template_name, {
                'user_form': user_form,
                'profile_form': profile_form,
                'registered': self.registered
            })
Example #19
0
def register(request):
    # Like before, get the request's context.
    context = RequestContext(request)

    # A boolean value for telling the template whether the registration was successful.
    # Set to False initially. Code changes value to True when registration succeeds.
    registered = False

    # If it's a HTTP POST, we're interested in processing form data.
    if request.method == 'POST':
        # Attempt to grab information from the raw form information.
        # Note that we make use of both UserForm and UserProfileForm.
        user_form = UserForm(data=request.POST)
        profile_form = UserProfileForm(data=request.POST)

        # If the two forms are valid...
        if user_form.is_valid() and profile_form.is_valid():
            # Save the user's form data to the database.
            user = user_form.save()

            # Now we hash the password with the set_password method.
            # Once hashed, we can update the user object.
            user.set_password(user.password)
            user.save()

            # Now sort out the UserProfile instance.
            # Since we need to set the user attribute ourselves, we set commit=False.
            # This delays saving the model until we're ready to avoid integrity problems.
            profile = profile_form.save(commit=False)
            profile.user = user

            # Did the user provide a profile picture?
            # If so, we need to get it from the input form and put it in the UserProfile model.
            if 'picture' in request.FILES:
                profile.picture = request.FILES['picture']

            # Now we save the UserProfile model instance.
            profile.save()

            # Update our variable to tell the template registration was successful.
            registered = True

            return redirect('home')
        else:
            # Invalid form or forms - mistakes or something else?
            # Print problems to the terminal.
            # They'll also be shown to the user.

            print user_form.errors, profile_form.errors

    # Not a HTTP POST, so we render our form using two ModelForm instances.
    # These forms will be blank, ready for user input.
    else:
        user_form = UserForm()
        profile_form = UserProfileForm()

    # Render the template depending on the context.
    return render_to_response(
        'accounts/register.html', {
            'user_form': user_form,
            'profile_form': profile_form,
            'registered': registered
        }, context)
Example #20
0
def update(request, identifier):
    customer = get_object_or_404(Customer.objects.filter(), id=identifier)
    user = customer.user
    profile = customer.user.userprofile

    if request.method == 'POST':
        user_form = UserForm(request.POST, instance=user)
        profile_form = ProfileForm(request.POST,
                                   request.FILES,
                                   instance=profile)
        customer_form = CustomerUpdateForm(request.POST, instance=customer)

        if user_form.is_valid() and profile_form.is_valid(
        ) and customer_form.is_valid():
            uf = user_form.save(commit=False)
            uf.save()

            g = Group.objects.get(name='Employer Admin')
            g.user_set.add(uf)

            pf = profile_form.save(commit=False)
            pf.agency = request.user.userprofile.agency
            pf.user = uf
            pf.save()

            cf = customer_form.save(commit=False)
            cf.user = uf

            customer_form.save_m2m()

            if not identifier:
                uf.activedate = datetime.now()

            cf.save()

            messages.success(request,
                             'Customer #' + identifier +
                             ' has been successfully updated.',
                             extra_tags="customer")
            return redirect('agencies_customers_backtosearch')

    else:
        customer_form = CustomerUpdateForm(instance=customer)
        user_form = UserForm(instance=user,
                             initial={
                                 'first_name':
                                 'aa' + datetime.now().strftime('%m%d%Y-%y%s'),
                                 'last_name':
                                 'aa' + datetime.now().strftime('%m%d%Y-%y%s'),
                                 'username':
                                 '******' + datetime.now().strftime('%m%d%Y-%y%s')
                             })
        profile_form = ProfileForm(instance=profile)

    return render(
        request, 'agencies/customers/update.html', {
            'identifier': identifier,
            'customer_form': customer_form,
            'user_form': user_form,
            'profile_form': profile_form,
        })
Example #21
0
def CommonUserSignupView(request):
    api = KavenegarAPI(settings.KAVENEGAR_API_KEY)
    try:
        last_retry_str = request.session['last_retry']
        retries = request.session['retries']
        last_retry = datetime.datetime.strptime(last_retry_str,
                                                "%Y-%m-%d %H:%M:%S")
    except:
        last_retry = datetime.datetime.now()
    now = datetime.datetime.now()
    if now >= last_retry or retries != 2:
        if request.method == 'POST':

            user_form = UserForm(data=request.POST)
            commonuser_form = CommonUserForm(data=request.POST)

            if user_form.is_valid() and commonuser_form.is_valid():
                request.session['name'] = user_form.cleaned_data.get(
                    'first_name')
                request.session['password1'] = user_form.cleaned_data.get(
                    'password1')
                request.session['username'] = user_form.cleaned_data.get(
                    'username')
                request.session['email'] = user_form.cleaned_data.get('email')

                phone_number = '0' + user_form.cleaned_data.get('username')
                #### generating code
                var = '1234567890'
                random_code = ''
                for i in range(5):
                    c = random.choice(var)
                    random_code += c
                code = random_code
                ######### send code to commonuser
                params = {
                    'sender':
                    settings.KAVENEGAR_PHONE_NUMBER,
                    'receptor':
                    phone_number,
                    'message':
                    'سامانه ورزش کن \n' + 'کد فعالسازی شما' + ' :' + code
                }

                try:
                    response = api.sms_send(params)
                    request.session['code'] = code
                    request.session['phone_number'] = phone_number
                    now = datetime.datetime.now() + datetime.timedelta(
                        minutes=2)
                    str_now = str(now.year) + '-' + str(now.month) + '-' + str(
                        now.day) + ' ' + str(now.hour) + ':' + str(
                            now.minute) + ':' + str(now.second)
                    request.session['last_retry'] = str_now
                    try:
                        if request.session['retries'] == 1:
                            request.session['retries'] = 2
                    except:
                        request.session['retries'] = 1

                except:
                    return HttpResponseRedirect(
                        reverse('accounts:wrongphonenumber'))

                return HttpResponseRedirect(reverse('commonuser:confirmation'))
            else:
                print(user_form.errors, commonuser_form.errors)

        else:
            user_form = UserForm()
            commonuser_form = CommonUserForm()

        return render(request, 'commonuser/commonusersignup.html', {
            'user_form': user_form,
            'commonuser_form': commonuser_form
        })
    else:
        return HttpResponseRedirect(reverse('commonuser:twominwait'))
Example #22
0
    def get(self, *args, **kwargs):
        # render signup form
        self.context['form'] = UserForm()
        self.context['profileform'] = UserProfileForm()

        return render(self.request, self.template_name, self.context)
Example #23
0
def create(request, identifier=None):
    customer = None
    user = None
    profile = None

    if request.method == 'POST':
        user_form = UserForm(request.POST, instance=user)
        profile_form = ProfileForm(request.POST,
                                   request.FILES,
                                   instance=profile)
        customer_form = CustomerNewForm(request.POST, instance=customer)

        if user_form.is_valid() and profile_form.is_valid(
        ) and customer_form.is_valid():
            uf = user_form.save(commit=False)
            uf.save()

            g = Group.objects.get(name='Employer Admin')
            g.user_set.add(uf)

            pf = profile_form.save(commit=False)
            pf.agency = request.user.userprofile.agency
            pf.user = uf
            pf.save()

            cf = customer_form.save(commit=False)
            cf.user = uf

            cf.activedate = datetime.now()

            cf.save()

            primary_dept = CustomerDepartment()
            primary_dept.customer = cf
            primary_dept.depname = 'Primary'
            primary_dept.activedate = datetime.now()
            primary_dept.save()

            messages.success(request,
                             'New customer has been successfully created.',
                             extra_tags="customer")
            return redirect('agencies_customers_backtosearch')

    else:
        customer_form = CustomerNewForm(instance=customer)
        user_form = UserForm(instance=user,
                             initial={
                                 'first_name':
                                 'aa' + datetime.now().strftime('%m%d%Y-%y%s'),
                                 'last_name':
                                 'aa' + datetime.now().strftime('%m%d%Y-%y%s'),
                                 'username':
                                 '******' + datetime.now().strftime('%m%d%Y-%y%s')
                             })
        profile_form = ProfileForm(instance=profile)

    return render(
        request, 'agencies/customers/create.html', {
            'identifier': identifier,
            'customer_form': customer_form,
            'user_form': user_form,
            'profile_form': profile_form,
        })
Example #24
0
def SportClubSignupView(request):
    registered = False

    if request.method == 'POST':

        user_form = UserForm(data=request.POST)
        sportclub_form = SportClubForm(data=request.POST)

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

            recaptcha_response = request.POST.get('g-recaptcha-response')
            url = 'https://www.google.com/recaptcha/api/siteverify'
            values = {
                'secret': settings.GOOGLE_RECAPTCHA_SECRET_KEY,
                'response': recaptcha_response
            }
            data = urllib.parse.urlencode(values).encode()
            req = urllib.request.Request(url, data=data)
            response = urllib.request.urlopen(req)
            result = json.loads(response.read().decode())
            ''' End reCAPTCHA validation '''
            if result['success']:
                messages.success(request, 'ثبت نام با موفقیت انجام شد')
                user = user_form.save(
                    commit=False)  #changed this if sth wrong happen ..
                user.is_sportclub = True
                user.save()
                sportclub = sportclub_form.save(commit=False)
                sportclub.user = user
                if 'picture' in request.FILES:
                    sportclub.picture = request.FILES['picture']

                sportclub.save()
                registered = True
                masteruser_instance = get_object_or_404(UserModel,
                                                        slug=request.user.slug)
                masteruser_instance_logs = masteruser_instance.user_logs

                new_log = '''{previous_logs}\n
 On {date_time}:\n
 Created SportClub: {sportclub}
 -------------------------------------------------------
                     '''.format(
                    previous_logs=masteruser_instance_logs,
                    date_time=timezone.localtime(timezone.now()),
                    sportclub=str(user.username),
                )
                masteruser_instance.user_logs = new_log
                masteruser_instance.save()
            else:
                messages.error(request,
                               'فیلد من ربات نیستم را به درستی کامل کنید')

        else:
            # One of the forms was invalid if this else gets called.
            #redirect to another page or anything else
            print(user_form.errors, sportclub_form.errors)

    else:
        user_form = UserForm()
        sportclub_form = SportClubForm()

    return render(
        request, 'sportclub/sportclubsignup.html', {
            'user_form': user_form,
            'sportclub_form': sportclub_form,
            'registered': registered
        })
Example #25
0
 def test_user_form_username_attr(self):
     form = UserForm()
     self.assertTrue("username" in form.fields)
Example #26
0
def MasterUserSignupView(request):
    registered = False

    if request.method == 'POST':

        user_form = UserForm(data=request.POST)
        masteruser_form = MasterUserForm(data=request.POST)

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

            recaptcha_response = request.POST.get('g-recaptcha-response')
            url = 'https://www.google.com/recaptcha/api/siteverify'
            values = {
                'secret': settings.GOOGLE_RECAPTCHA_SECRET_KEY,
                'response': recaptcha_response
            }
            data = urllib.parse.urlencode(values).encode()
            req = urllib.request.Request(url, data=data)
            response = urllib.request.urlopen(req)
            result = json.loads(response.read().decode())
            ''' End reCAPTCHA validation '''
            if result['success']:
                messages.success(request, 'ثبت نام با موفقیت انجام شد')
                user = user_form.save()
                user.is_masteruser = True
                user.save()
                masteruser = masteruser_form.save(commit=False)
                masteruser.user = user
                masteruser.save()
                registered = True
                ###
                superuser_instance = get_object_or_404(UserModel,
                                                       slug=request.user.slug)
                superuser_instance_logs = superuser_instance.user_logs
                now = jdatetime.datetime.now()
                dtime = str(now.year) + '-' + str(now.month) + '-' + str(
                    now.day) + '  ' + str(now.hour) + ':' + str(
                        now.minute) + ':' + str(now.second)
                new_log = '''{previous_logs}\n
On {date_time}:\n
Created Masteruser: {user}
-------------------------------------------------------
                     '''.format(
                    previous_logs=superuser_instance_logs,
                    date_time=dtime,
                    user=str(user.username),
                )
                superuser_instance.user_logs = new_log
                superuser_instance.save()
                ###
                return HttpResponseRedirect(
                    reverse('accounts:workspace',
                            kwargs={'slug': superuser_instance.slug}))
            else:
                messages.error(request,
                               'فیلد من ربات نیستم را به درستی کامل کنید')

        else:

            print(user_form.errors, masteruser_form.errors)

    else:
        user_form = UserForm()
        masteruser_form = MasterUserForm()

    return render(
        request, 'masteruser/masterusersignup.html', {
            'user_form': user_form,
            'masteruser_form': masteruser_form,
            'registered': registered
        })
Example #27
0
def my_account_view(request):
    """ Handle account changes. Check which form was passed by the request
        and update the account accordingly.

        Args:
            request: An HttpRequest to /account/my-account/

        Returns:
            An HttpResponse object with the account form or redirects to
            /account/my-account/ if a change has been made
    """

    if request.user.is_authenticated():

        template = 'accounts/my_account.html'

        # POST request: Validate and save the forms.
        # Then render them with the new values pre-populated.
        if request.method == 'POST':

            which_form = request.POST.get('which_form')

            def checkUNA():
                """ Handle UNA updates. """

                user_form = UserForm(request.POST, instance=request.user)
                """
                We also need to post the avatar which lives in tUserProfile.
                Create a new instance of AvatarForm.
                Notice the request.FILES.
                Django needs to know we are uploading a file.
                """
                user_profile_form = AvatarForm(
                    request.POST,
                    request.FILES,
                    instance=request.user.tuserprofile)

                if user_form.is_valid() and user_profile_form.is_valid():
                    user_form.save()
                    user_profile_form.save()
                    messages.success(request,
                                     'Your account was updated successfully!')
                else:
                    messages.error(request, user_form.errors)

            def checkEmail():
                """ Handle Email updates. """

                user_email_form = UserEmailForm(request.POST,
                                                instance=request.user)

                if user_email_form.is_valid():
                    user_email_form.save()
                    messages.success(request,
                                     'Your email was updated successfully!')
                else:
                    messages.error(request, user_email_form.errors)

            def checkSubscr():
                """ Handle Subscription changes. """

                # Create a new instance of the SubscrForm form
                subscr_form = SubscrForm(request.POST,
                                         instance=request.user.tuserprofile)

                if subscr_form.is_valid():
                    subscr_form.save()
                    messages.success(request,
                                     'Your account was updated successfully!')
                else:
                    messages.error(request, subscr_form.errors)

            def checkPassword():
                """ Handle Password changes. """

                # PasswordChangeForm does not inherit from ModelForm
                password_form = PasswordChangeForm(user=request.user,
                                                   data=request.POST)

                if password_form.is_valid():
                    user = password_form.save()
                    # The user should stay logged in after changing password.
                    update_session_auth_hash(request, user)
                    messages.success(
                        request, 'Your password was updated successfully!')
                else:
                    messages.error(request, password_form.errors)

            def checkClosure():
                """ Handle account closure. """

                account_closure_form = AccountClosureForm(
                    request.POST, instance=request.user)

                if account_closure_form.is_valid():
                    account_closure_form.save()

            # Create a dictionary that maps the form name with a function
            options = {
                'UNAForm': checkUNA,
                'EmailForm': checkEmail,
                'SubscrForm': checkSubscr,
                'PasswordForm': checkPassword,
                'AccountClosureForm': checkClosure
            }

            options[which_form]()

            return redirect('/account/my-account/')

        # GET request: Render the forms, pre-populated with the existed values.
        else:
            user_form = UserForm(instance=request.user)
            user_profile_form = AvatarForm(instance=request.user.tuserprofile)
            user_email_form = UserEmailForm(instance=request.user)
            subscr_form = SubscrForm(instance=request.user.tuserprofile)
            password_form = PasswordChangeForm(user=request.user)
            account_closure_form = AccountClosureForm(instance=request.user)

        return render(
            request, template, {
                'user_form': user_form,
                'user_profile_form': user_profile_form,
                'user_email_form': user_email_form,
                'subscr_form': subscr_form,
                'password_form': password_form,
                'account_closure_form': account_closure_form
            })
    # If the user is not authenticated redirect him/her to the home page
    else:
        return redirect('/home/')
Example #28
0
 def get(self, request):
     form = UserForm()
     return render(request, 'registration.html', {'form': form})
Example #29
0
def recruitment_application_new(request, year, recruitment_period_pk, pk=None,
                                template_name='recruitment/recruitment_application_new.html'):
    fair = get_object_or_404(Fair, year=year)
    recruitment_period = get_object_or_404(RecruitmentPeriod, pk=recruitment_period_pk)

    if not pk:
        recruitment_application = recruitment_period.recruitmentapplication_set.filter(user=request.user).first()

        # If the user already has an application for this period redirect to it
        if recruitment_application:
            return redirect('recruitment_application_new', fair.year, recruitment_period.pk, recruitment_application.pk)

    recruitment_application = RecruitmentApplication.objects.filter(pk=pk).first()

    user = recruitment_application.user if recruitment_application else request.user
    profile = Profile.objects.filter(user=user).first()
    if not profile:
        p = Profile(user=user)
        p.save()

    now = timezone.now()

    if recruitment_period.start_date > now:
        return render(request, 'recruitment/recruitment_application_closed.html', {
            'recruitment_period': recruitment_period,
            'message': 'Application has not opened',
            'fair': fair
        })

    if recruitment_period.end_date < now:
        return render(request, 'recruitment/recruitment_application_closed.html', {
            'recruitment_period': recruitment_period,
            'message': 'Application closed',
            'fair': fair
        })

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

    role_form = RoleApplicationForm(request.POST or None)

    user_form = UserForm(request.POST or None, instance=user)

    for i in range(1, 4):
        key = 'role%d' % i
        role_form.fields[key].queryset = recruitment_period.recruitable_roles
        if recruitment_application:
            role_application = RoleApplication.objects.filter(
                recruitment_application=recruitment_application,
                order=i - 1
            ).first()
            if role_application:
                role_form.fields[key].initial = role_application.role.pk

    if request.POST:
        recruitment_period.application_questions.handle_answers_from_request(request, user)

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

            if not recruitment_application:
                recruitment_application = RecruitmentApplication()

            recruitment_application.user = user
            recruitment_application.recruitment_period = recruitment_period
            recruitment_application.save()

            recruitment_application.roleapplication_set.all().delete()
            for i in range(1, 4):
                key = 'role%d' % i
                role = role_form.cleaned_data[key]
                if role:
                    RoleApplication.objects.create(
                        recruitment_application=recruitment_application,
                        role=role,
                        order=i - 1
                    )

            if pk == None: #Slack webhook for signup notifications

                r.post(settings.RECRUITMENT_HOOK_URL,
                        data=json.dumps({'text': ' {!s} {!s} just applied for {!s}!'.format(user.first_name, user.last_name, role_form.cleaned_data["role1"])}))

            profile_form.save()
            user_form.save()
            return redirect('recruitment_period', fair.year, recruitment_period.pk)

    return render(request, template_name, {
        'application_questions_with_answers': recruitment_period.application_questions.questions_with_answers_for_user(
            recruitment_application.user if recruitment_application else None),
        'recruitment_period': recruitment_period,
        'profile_form': profile_form,
        'user_form': user_form,
        'profile': profile,
        'role_form': role_form,
        'new_application': pk == None,
        'fair': fair,
    })
Example #30
0
 def get(self, request, *args, **kwargs):
     self.user_form = UserForm(instance=request.user)
     return super(ProfilePageView, self).get(request, *args, **kwargs)