コード例 #1
0
ファイル: views.py プロジェクト: vivienzou1/Task5
def transfer_2(request):
    context = {}
    err_message = []
    context['err_message'] = err_message
    context['User'] = request.user
    context['on_line'] = chat(request)
    if 'select_account' not in request.GET:
        err_message.append("Please select an account.")
        return render(request, "account/transfer_2.html", context)

    select = request.GET['select_account']
    main_account = request.user.profile.account
    if select == "checking":
        account = main_account.checking_account.account_number
    elif select == "saving":
        account = main_account.saving_account.account_number
    else:
        err_message.append("Account invalid.")
        return render(request, "account/transfer_2.html", context)

    context['target_account'] = request.GET['target_account']
    context['target_first_name'] = request.GET['target_first_name']
    context['target_last_name'] = request.GET['target_last_name']
    context['select'] = select
    context['account'] = account
    context['form'] = TransferForm3()
    return render(request, "account/transfer_3.html", context)
コード例 #2
0
def confirm_registration(request, form, token):
    user = get_object_or_404(User, username=form.cleaned_data['Username'])

    # Send 404 error if token is invalid
    if not default_token_generator.check_token(user, token):
        raise Http404

        # Otherwise token was valid, activate the user.
    user.is_active = True
    user.save()

    login(request, user)

    new_profile = Profile(
        last_name=user.first_name,
        first_name=user.last_name,
        user=user,
        email=user.email,
        phone=form.cleaned_data['phone'],
        middle_name=form.cleaned_data['middle_name'],
        address=form.cleaned_data['address'],
        date_of_birth=form.cleaned_data['date_of_birth'],
        gender='Male',
        ssn=form.cleaned_data['ssn'],
    )
    new_profile.save()
    context = {}
    context['on_line'] = chat(request)
    return redirect(reverse('create_account'))
コード例 #3
0
ファイル: views.py プロジェクト: vivienzou1/Task5
def account_context(request):
    context = {}
    logs_in = get_log_internal(request)
    logs_ex = get_log_external(request)
    profile = request.user.profile
    account = Account.objects.get(profile=profile)
    checking = account.checking_account.balance
    saving = account.saving_account.balance
    logs = logs_in + logs_ex
    description = []
    for log in logs:
        if log['type'] == 'C':
            log['description'] = "Saving to Checking"
        if log['type'] == 'S':
            log['description'] = "Checking to Saving"
        if log['type'] == 'T':
            log['description'] = log['account_2']

    context['on_line'] = chat(request)
    context['checking_logs'] = logs
    context['saving_logs'] = logs_in
    context['checking'] = checking
    context['saving'] = saving
    context['description'] = description
    context['log_time'] = (datetime.now() -
                           timedelta(days=90)).strftime("%Y-%m-%d")
    context['checknumber'] = account.checking_account.account_number
    context['savingnumber'] = account.saving_account.account_number
    context['number'] = account.account_number
    return context
コード例 #4
0
def register(request):

    context = {}
    errors = []
    context['errors'] = errors
    context['on_line'] = chat(request)

    # Just display the registration form if this is a GET request
    if request.method == 'GET':
        context['form'] = RegistrationForm()
        return render(request, 'register.html', context)

    print(12312312312312312312)
    form = RegistrationForm(request.POST)
    context['form'] = form
    print(form)
    if not form.is_valid():
        context['message'] = ["ERR: username exist or password don't match"]
        return render(request, 'register.html', context)
    print(123)
    new_user = User.objects.create_user(
        username=form.cleaned_data['Username'],
        password=form.cleaned_data['Password'],
        first_name=form.cleaned_data['first_name'],
        last_name=form.cleaned_data['last_name'],
        email=form.cleaned_data['email'],
    )
    print(12333)
    new_user.is_active = False
    new_user.save()

    token = default_token_generator.make_token(new_user)

    return confirm_registration(request, form, token)
コード例 #5
0
def user_login(request):
    context = {}
    errors = ""
    context['errors'] = errors
    context['on_line'] = chat(request)

    if request.method == 'GET':
        return render(request, 'login.html', context)

    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                context = account_context(request)
                return render(request, 'account.html', context)
            else:
                errors = "You're account is disabled."
        else:
            errors = "Invalid user ID or passcode."

    context['errors'] = errors

    return render(request, 'login.html', context)
コード例 #6
0
def profile(request):
    errors = []
    context = {}

    user = request.user

    try:
        user_profile = Profile.objects.get(user=user)
        context['profile'] = user_profile
    except:
        errors.append('No such profile')

    context['message'] = errors
    profile = user.profile
    context['first_name'] = profile.first_name
    context['last_name'] = profile.last_name
    context['middle_name'] = profile.middle_name
    context['email'] = profile.email
    context['phone'] = profile.phone
    context['address'] = profile.address
    context['dob'] = profile.date_of_birth
    context['gender'] = profile.gender
    context['ssn'] = profile.ssn
    context['on_line'] = chat(request)
    return render(request, 'profile.html', context)
コード例 #7
0
ファイル: views.py プロジェクト: vivienzou1/Task5
def transfer_4(request):
    context = {}
    context['target_account'] = request.POST['target_account']
    context['target_first_name'] = request.POST['target_first_name']
    context['target_last_name'] = request.POST['target_last_name']
    context['account'] = request.POST['account']
    context['select'] = request.POST['select']
    context['amount'] = request.POST['amount']
    context['description'] = request.POST['description']
    context['time'] = request.POST['time']
    context['on_line'] = chat(request)
    return render(request, "account/transfer_confirm.html", context)
コード例 #8
0
ファイル: views.py プロジェクト: vivienzou1/Task5
def transfer_3(request):
    context = {}
    err_message = []
    context['err_message'] = err_message
    context['User'] = request.user
    form = TransferForm3(request.POST)
    context['form'] = form
    context['on_line'] = chat(request)
    if not form.is_valid():
        return render(request, 'account/transfer_3.html', context)

    owner_account = request.POST['account']
    owner = Saving_Account.objects.filter(account_number=owner_account)
    if len(owner) == 0:
        owner = Checking_Account.objects.filter(account_number=owner_account)

    owner = owner[0]
    amount = form.cleaned_data['balance']

    if not is_enough(owner, amount):
        err_message.append("you don't have enough money")
        return render(request, 'account/transfer_3.html', context)

    owner.balance = owner.balance - amount
    owner.save()

    target_account = request.POST['target_account']
    getter = Checking_Account.objects.filter(account_number=target_account)
    if len(getter) == 0:
        getter = Saving_Account.objects.filter(account_number=target_account)

    getter = getter[0]

    getter.balance = getter.balance + amount

    getter.save()
    add_log_external(type='T',
                     amount=form.cleaned_data['balance'],
                     account_number_1=owner.account_number,
                     account_number_2=getter.account_number)

    context['target_account'] = request.POST['target_account']
    context['target_first_name'] = request.POST['target_first_name']
    context['target_last_name'] = request.POST['target_last_name']
    context['account'] = request.POST['account']
    context['select'] = request.POST['select']
    context['amount'] = amount
    context['description'] = request.POST['description']
    context['profile'] = request.user.profile
    context['time'] = datetime.now()
    return render(request, 'account/transfer_4.html', context)
コード例 #9
0
ファイル: views.py プロジェクト: vivienzou1/Task5
def transfer_1(request):
    context = {}
    err_message = []
    context['err_message'] = err_message
    context['User'] = request.user
    context['on_line'] = chat(request)
    if request.method == 'GET':
        context['form'] = TransferForm1()
        return render(request, 'account/transfer_1.html', context)
    else:
        form = TransferForm1(request.POST)
        context['form'] = form
        if is_frozen(request.user.profile):
            err_message.append(
                "your account has already been frozen, plz connect us to deal with this"
            )
            return render(request, 'account/transfer_1.html', context)

        if not form.is_valid():
            return render(request, 'account/transfer_1.html', context)

        target_account = form.cleaned_data['target_account']
        getter = Checking_Account.objects.filter(account_number=target_account)
        if len(getter) == 0:
            getter = Saving_Account.objects.filter(
                account_number=target_account)

        getter = getter[0]

        if is_frozen(getter):
            err_message.append(
                "the target account has already been frozen, plz connect us to deal with this"
            )
            return render(request, 'account/transfer_1.html', context)

        context['target_account'] = form.cleaned_data['target_account']
        context['target_first_name'] = form.cleaned_data['target_first_name']
        context['target_last_name'] = form.cleaned_data['target_last_name']
        return render(request, 'account/transfer_2.html', context)
コード例 #10
0
ファイル: views.py プロジェクト: vivienzou1/Task5
def createAccount(request):
    err_message = []
    message = []
    context = {}
    if request.user.profile.type == 'C':
        err_message.append('you have no permission to do this, plz connect us')
        context = {
            'message': message,
            'err_message': err_message,
            'User': request.user
        }
        return render(request, 'account/err.html', context)
    if request.method == 'POST':
        form = createForm(request.POST)
        context['form'] = form
        context['User'] = request.user
        context['on_line'] = chat(request)
        if not form.is_valid():
            return render(request, 'account/create_account.html', context)
        else:
            new_account = Account(
                profile=get_object_or_404(
                    User, username=form.cleaned_data['username']).profile,
                account_number=request.POST['account_number'],
                account_status='active')
            new_account.save()

            account_number = random.randint(0, 9999999999)
            while Checking_Account.objects.filter(
                    account_number=account_number):
                account_number = random.randint(0, 9999999999)

            new_checking_account = Checking_Account(
                account_number=account_number, account=new_account, balance=0)
            new_checking_account.save()

            account_number = random.randint(0, 9999999999)
            while Checking_Account.objects.filter(
                    account_number=account_number):
                account_number = random.randint(0, 9999999999)

            new_saving_account = Saving_Account(account_number=account_number,
                                                account=new_account,
                                                balance=0)
            new_saving_account.save()

            message.append("create " + request.POST['account_number'] +
                           " successfully!")
            context = {
                'message': message,
                'err_message': err_message,
                'User': request.user
            }
            return view_accounts(request, context)

    else:
        form = createForm()
        context = {
            'message': message,
            'err_message': err_message,
            'User': request.user,
            'form': form
        }
        return render(request, 'account/create_account.html', context)
コード例 #11
0
ファイル: views.py プロジェクト: vivienzou1/Task5
def saving_to_check(request):
    err_message = []
    message = []
    context = {}
    context['on_line'] = chat(request)
    if request.method == 'GET':
        context = {
            'message': message,
            'err_message': err_message,
            'User': request.user,
            'form': csForm()
        }
        return render(request, 'account/saving_to_check.html', context)
    else:
        form = csForm(request.POST)
        if is_frozen(request.user.profile):
            err_message.append(
                "your account has already been frozen, plz connect us to deal with this"
            )
            context = {
                'message': message,
                'err_message': err_message,
                'User': request.user,
                'form': form
            }
            return render(request, 'account/saving_to_check.html', context)
        context['form'] = form
        context['User'] = request.user
        if not form.is_valid():
            return render(request, 'account/saving_to_check.html', context)

        owner_check = request.user.profile.account.checking_account
        owner_saving = request.user.profile.account.saving_account

        amount = form.cleaned_data['balance']
        if not is_enough(owner_saving, amount):
            err_message.append("you don't have enough money")
            context = {
                'message': message,
                'err_message': err_message,
                'User': request.user,
                'form': csForm()
            }
            return render(request, 'account/saving_to_check.html', context)
        else:
            owner_check.balance = owner_check.balance + amount
            owner_saving.balance = owner_saving.balance - amount
            owner_saving.save()
            owner_check.save()
            add_log_internal(type='C',
                             amount=amount,
                             user_name=request.user.username)
            message.append(
                "you successfully transfer money from saving to check account")
            context = {
                'message': message,
                'err_message': err_message,
                'User': request.user
            }
            #return render(request, 'account/suceed.html', context)
            return view_accounts(request, context)
コード例 #12
0
ファイル: views.py プロジェクト: vivienzou1/Task5
def transfer(request):
    err_message = []
    message = []
    context = {}
    context['on_line'] = chat(request)
    if request.method == 'GET':
        context['form'] = TransferForm()

        context['User'] = request.user
        #context['balance'] = request.user.profile.
        return render(request, 'account/transfer.html', context)
    else:
        form = TransferForm(request.POST)
        if is_frozen(request.user.profile):
            err_message.append(
                "your account has already been frozen, plz connect us to deal with this"
            )
            context = {
                'message': message,
                'err_message': err_message,
                'User': request.user,
                'form': form
            }
            return render(request, 'account/transfer.html', context)

        context['form'] = form
        context['User'] = request.user
        if not form.is_valid():
            return render(request, 'account/transfer.html', context)

        owner = request.user.profile.account.checking_account
        amount = form.cleaned_data['balance']
        if not is_enough(owner, amount):
            err_message.append("you don't have enough money")
            context = {
                'message': message,
                'err_message': err_message,
                'User': request.user,
                'form': form
            }
            return render(request, 'account/transfer.html', context)
        else:
            owner.balance = owner.balance - form.cleaned_data['balance']
            owner.save()
            getter = get_object_or_404(
                Checking_Account,
                account_number=form.cleaned_data['target_account'])

            if is_frozen(getter):
                err_message.append(
                    "the target account has already been frozen, plz connect us to deal with this"
                )
                context = {
                    'message': message,
                    'err_message': err_message,
                    'User': request.user,
                    'form': form
                }
                return render(request, 'account/transfer.html', context)
            getter.balance = getter.balance + form.cleaned_data['balance']

            getter.save()
            add_log_external(type='T',
                             amount=form.cleaned_data['balance'],
                             account_number_1=owner.account_number,
                             account_number_2=getter.account_number)
            message.append("you successfully transfer money to " +
                           str(form.cleaned_data['target_account']))
            context = {
                'message': message,
                'err_message': err_message,
                'User': request.user
            }
            #return render(request, 'account/suceed.html', context)
            return view_accounts(request)
コード例 #13
0
def view_accounts(request):
    context = account_context(request)
    context['on_line'] = chat(request)
    return render(request, 'account.html', context)
コード例 #14
0
def home(request):
    on_line = chat(request)
    return render(request, 'index.html', {"on_line": on_line})