diff --git a/scha/settings.py b/scha/settings.py
index 1891b62..344be14 100644
--- a/scha/settings.py
+++ b/scha/settings.py
@@ -53,7 +53,7 @@ MIDDLEWARE = [
]
ROOT_URLCONF = "scha.urls"
-
+CSRF_TRUSTED_ORIGINS = ["https://schawheaton.aimloperations.com","https://www.schawheaton.aimloperations.com", "https://www.schawheaton.com", "https://schawheaton.com"]
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
diff --git a/scha/urls.py b/scha/urls.py
index cbc4b40..b1fee8b 100644
--- a/scha/urls.py
+++ b/scha/urls.py
@@ -23,6 +23,7 @@ from django.conf import settings
from schasite.views import stripe_cancelled, stripe_success, stripe_webhook
urlpatterns = [
+ path("schasite/", include("schasite.urls")),
path("", include("schasite.urls")),
path("success/", stripe_success),
path("cancelled/", stripe_cancelled),
diff --git a/schasite/forms.py b/schasite/forms.py
index 978250f..2c68303 100644
--- a/schasite/forms.py
+++ b/schasite/forms.py
@@ -11,21 +11,20 @@ from .models import (
from phonenumber_field.formfields import PhoneNumberField
from django.core.exceptions import ValidationError
-# from django_recaptcha.fields import ReCaptchaField
-# from django.conf import settings
-# from django_recaptcha.widgets import ReCaptchaV3
+from django_recaptcha.fields import ReCaptchaField
+from django.conf import settings
+from django_recaptcha.widgets import ReCaptchaV3
-# class CaptchaForm(forms.Form):
-# captcha = ReCaptchaField(
-# public_key=settings.RECAPTCHA_PUBLIC_KEY,
-# private_key=settings.RECAPTCHA_PRIVATE_KEY,
-# widget=ReCaptchaV3(
-# attrs={
-# 'required_score':0.85,
-# }
-# ),
-
-# )
+class CaptchaForm(forms.Form):
+ captcha = ReCaptchaField(
+ public_key=settings.RECAPTCHA_PUBLIC_KEY,
+ private_key=settings.RECAPTCHA_PRIVATE_KEY,
+ widget=ReCaptchaV3(
+ attrs={
+ 'required_score':0.85,
+ }
+ ),
+ )
class ChildrenForm(ModelForm):
diff --git a/schasite/templates/schasite/dues2.html b/schasite/templates/schasite/dues2.html
index bbf4c6e..6893f52 100644
--- a/schasite/templates/schasite/dues2.html
+++ b/schasite/templates/schasite/dues2.html
@@ -109,9 +109,8 @@
Credit/Debit Card
Pay securely with Visa, Mastercard, American Express, or Discover.
-
- Pay with Card
-
+
+
@@ -192,39 +191,6 @@
-
+
-{% endblock %}
\ No newline at end of file
+{% endblock %}
diff --git a/schasite/templates/schasite/scha_board2.html b/schasite/templates/schasite/scha_board2.html
index 4fcb1d1..46570eb 100644
--- a/schasite/templates/schasite/scha_board2.html
+++ b/schasite/templates/schasite/scha_board2.html
@@ -62,7 +62,7 @@
{{ officer.position }}
-

+
{{ officer.name }}
@@ -84,7 +84,7 @@
TBD
-

+
TBD
TBD
TBD
@@ -99,4 +99,4 @@
-{% endblock %}
\ No newline at end of file
+{% endblock %}
diff --git a/schasite/views.py b/schasite/views.py
index ab1fb71..f689357 100644
--- a/schasite/views.py
+++ b/schasite/views.py
@@ -1,5 +1,5 @@
from django.shortcuts import render, redirect
-from .models import UsefulLinks, CalendarEvent, MembershipPerson, Payments, SCHAOfficer, Membership, CommunityPost
+from .models import UsefulLinks, CalendarEvent, MembershipPerson, Payments, SCHAOfficer, Membership
from .forms import (
ChildrenForm,
CommunityPostForm,
@@ -7,8 +7,8 @@ from .forms import (
PeopleForm,
CommitteeForm,
ServicesForm,
-
-) # , CaptchaForm
+ CaptchaForm
+)
from django.db import transaction, IntegrityError
# Stripe required imports
@@ -36,28 +36,27 @@ def stripe_config(request):
@csrf_exempt
def create_checkout_session(request):
- if request.method == "GET":
- domain_url = "http://localhost:8000/"
+ if request.method == 'GET':
+ domain_url ="https://www.schawheaton.com/"
stripe.api_key = settings.STRIPE_SECRET_KEY
try:
checkout_session = stripe.checkout.Session.create(
- success_url=domain_url + "success?session_id={CHECKOUT_SESSION_ID}",
- cancel_url=domain_url + "cancelled/",
- payment_method_types=["card"],
+ success_url = domain_url+'success?session_id={CHECKOUT_SESSION_ID}',
+ cancel_url = domain_url+'cancelled/',
+ payment_method_types=['card'],
mode="payment",
- line_items=[
- {
- # 'name':'SCHA Dues',
- "quantity": 1,
- # 'currency': 'usd',
- "price": "price_1OxZLfDV0RPXOyxG5ipjhUXk",
- }
- ],
+ line_items = [{
+ # 'name':'SCHA Dues',
+ 'quantity': 1,
+ # 'currency': 'usd',
+ 'price':'price_1P5KBtIbGKYTLTtMJ0Rh1jMu',
+ #'price_1P5K7uIbGKYTLTtMFNxbkA8X'
+ #'price_1OxZLfDV0RPXOyxG5ipjhUXk',
+ }]
)
- return JsonResponse({"sessionId": checkout_session["id"]})
+ return JsonResponse({'sessionId': checkout_session['id']})
except Exception as e:
- return JsonResponse({"error": str(e)})
-
+ return JsonResponse({'error': str(e)})
def stripe_success(request):
return render(request, "schasite/dues_success.html", {})
@@ -72,11 +71,13 @@ def stripe_webhook(request):
stripe.api_key = settings.STRIPE_SECRET_KEY
endpoint_secret = settings.STRIPE_ENDPOINT_SECRET
payload = request.body
- sig_header = request.META["HTTP_STRIPE_SIGNATURE"]
+ sig_header = request.META['HTTP_STRIPE_SIGNATURE']
event = None
try:
- event = stripe.Webhook.construct_event(payload, sig_header, endpoint_secret)
+ event = stripe.Webhook.construct_event(
+ payload, sig_header, endpoint_secret
+ )
except ValueError as e:
# Invalid payload
return HttpResponse(status=400)
@@ -85,17 +86,18 @@ def stripe_webhook(request):
return HttpResponse(status=400)
# Handle the checkout.session.completed event
- if event["type"] == "checkout.session.completed":
+ if event['type'] == 'checkout.session.completed':
email = None
try:
- email = event["data"]["object"]["customer_details"]["email"]
+ email = event['data']['object']['customer_details']['email']
except:
pass
- person = MembershipPerson.objects.filter(
- email=email
- ).first() # just take the first
+ person = MembershipPerson.objects.filter(email=email).first() # just take the first
- payment = Payments.objects.create(email=email, person=person)
+ payment = Payments.objects.create(
+ email=email,
+ person = person
+ )
# try to link to a member
payment.save()
# TODO: run some custom code here
@@ -170,8 +172,6 @@ def dues2(request):
def membership_form2(request):
- print(request)
- print(request.POST)
def sanitize_phone_number(data):
if len(data) > 0:
data = data.replace("-", "")
@@ -241,51 +241,61 @@ def membership_form2(request):
peopleForm1 = PeopleForm(person1_data)
peopleForm2 = PeopleForm(person2_data)
- print(peopleForm1)
- breakpoint()
- for form in [addressForm, servicesForm, committeeForm, peopleForm1, peopleForm2]:
- print(f"is form valid: {form.is_valid()}")
- if not form.is_valid():
- print(f"form Errors: {form.errors}")
+ print("Validating the captcha form")
+ print(request.POST.get("captcha",""))
+ captchaForm = CaptchaForm({
+ "captcha": request.POST.get("captcha","")
+ })
+ print(f"Captch form is: {captchaForm.is_valid()}")
+
+
+ print(f"peopleForm1 form is: {peopleForm1.is_valid()}")
+ print(f"peopleForm2 form is: {peopleForm2.is_valid()}")
+ print(f"servicesForm form is: {servicesForm.is_valid()}")
- # captchaForm = CaptchaForm(post_data)
if (
addressForm.is_valid()
and committeeForm.is_valid()
and (peopleForm1.is_valid() or peopleForm2.is_valid())
and servicesForm.is_valid()
- ): # and captchaForm.is_valid():
+ and captchaForm.is_valid()
+ ):
with transaction.atomic():
- membership = Membership.objects.create()
+ print("starting to save")
+ try:
+ membership = Membership.objects.create()
- if peopleForm1.is_valid():
- people1_obj = peopleForm1.save(commit=False)
- people1_obj.membership = membership
- people1_obj.save()
+ if peopleForm1.is_valid():
+ people1_obj = peopleForm1.save(commit=False)
+ people1_obj.membership = membership
+ people1_obj.save()
- if peopleForm2.is_valid():
- people2_obj = peopleForm2.save(commit=False)
- people2_obj.membership = membership
- people2_obj.save()
+ if peopleForm2.is_valid():
+ people2_obj = peopleForm2.save(commit=False)
+ people2_obj.membership = membership
+ people2_obj.save()
- committee_obj = committeeForm.save(commit=False)
- committee_obj.membership = membership
- committee_obj.save()
+ committee_obj = committeeForm.save(commit=False)
+ committee_obj.membership = membership
+ committee_obj.save()
- services_obj = servicesForm.save(commit=False)
- services_obj.membership = membership
- services_obj.save()
+ services_obj = servicesForm.save(commit=False)
+ services_obj.membership = membership
+ services_obj.save()
- address_obj = addressForm.save(commit=False)
- address_obj.membership = membership
- address_obj.save()
+ address_obj = addressForm.save(commit=False)
+ address_obj.membership = membership
+ address_obj.save()
+ except Exception as e:
+ print(e)
return redirect("index2")
else:
+ print("Some field is not valid")
return render(
request,
"schasite/membership_form2.html",
@@ -295,7 +305,7 @@ def membership_form2(request):
"addressForm": addressForm,
"committeeForm": committeeForm,
"servicesForm": servicesForm,
- # 'captchaForm': captchaForm,
+ 'captchaForm': captchaForm,
},
)
else:
@@ -307,7 +317,7 @@ def membership_form2(request):
"peopleForm2": PeopleForm(prefix="person2"),
"committeeForm": CommitteeForm(),
"servicesForm": ServicesForm(),
- # 'captchaForm': CaptchaForm(),
+ 'captchaForm': CaptchaForm(),
"addressForm": AddressForm(
initial={
"city": "Wheaton",
@@ -523,4 +533,4 @@ def profile(request):
if request.method == "POST":
raise NotImplementedError()
else:
- return render(request, "schasite/profile.html",{})
\ No newline at end of file
+ return render(request, "schasite/profile.html",{})