42 lines
1.7 KiB
Python
42 lines
1.7 KiB
Python
from django import forms
|
|
from django.contrib.auth.models import AbstractBaseUser
|
|
|
|
from membershipworks.models import EventExt
|
|
|
|
|
|
class EventInvoiceForm(forms.Form):
|
|
reviewed_invoice = forms.BooleanField(
|
|
label="I have reviewed this invoice and confirm that the course information, materials fee, course fees, enrollment information, invoice amount and all other details are correct.",
|
|
help_text='Please contact us at <a href="mailto:info@claremontmakerspace.org">info@claremontmakerspace.org</a> if corrections are required.',
|
|
required=True,
|
|
)
|
|
verified_payment_and_contact = forms.BooleanField(
|
|
label="I have verified my contact and payment information.",
|
|
help_text='You can <a href="https://claremontmakerspace.org/membersonly/">change your payment information here</a>. It may take up to an hour for your changes to take effect.',
|
|
required=True,
|
|
)
|
|
|
|
def __init__(self, *args, event: EventExt, user: AbstractBaseUser, **kwargs):
|
|
self.event = event
|
|
self.user = user
|
|
super().__init__(*args, **kwargs)
|
|
|
|
def clean(self):
|
|
if hasattr(self.event, "invoice"):
|
|
raise forms.ValidationError("An invoice was already created!")
|
|
|
|
if not self.event.ready_for_invoice:
|
|
raise forms.ValidationError(
|
|
"Event missing required information to generate invoice"
|
|
)
|
|
|
|
if not self.event.user_is_instructor(self.user):
|
|
raise forms.ValidationError(
|
|
"You are not the listed as the instructor for this event"
|
|
)
|
|
|
|
if hasattr(self.event, "eventinvoice"):
|
|
raise forms.ValidationError("Invoice already exists for this event")
|
|
|
|
return super().clean()
|