Exemplo n.º 1
0
def view_registry(cat, slug):
    category = REGISTRY_TYPES.get(cat, None)

    if not category:
        flash('The registry category does not exist', 'error')
        return redirect(url_for('.index'))

    registry = category.get_by_slug(slug)

    if not registry:
        flash('The registry does not exist', 'error')
        return redirect(url_for('.index'))

    if cat == 'weddings':
        form = DonationForm(request.form)
        if form.validate_on_submit():
            tran = Transaction()
            form.populate_obj(tran)
            tran.total_amount = form.amount.data
            tran.payment_status = 'unpaid'
            tran.type = 'donation'
            tran.save()

            tran.generate_txn_number()
            tran.save()

            donation = Donation()
            donation.registry_id = registry.id
            donation.transaction_id = tran.id
            donation.amount = form.amount.data
            donation.save()

            # initialize payments
            paystack = PaystackPay()
            response = paystack.fetch_authorization_url(
                email=tran.email, amount=tran.total_amount)

            if response.status_code == 200:
                json_response = response.json()

                tran.update(
                    payment_txn_number=json_response['data']['reference'])
                return redirect(json_response['data']['authorization_url'])
            else:
                flash('Something went wrong. Please try again', 'error')
        return render_template('frontend/registry.html',
                               registry=registry,
                               form=form,
                               cat=cat)

    return render_template('frontend/registry.html',
                           registry=registry,
                           cat=cat)