diff --git a/pinaxcon/registrasion/models.py b/pinaxcon/registrasion/models.py new file mode 100644 index 0000000000000000000000000000000000000000..392b69d73cee3f974821b2267e045c860f9256eb --- /dev/null +++ b/pinaxcon/registrasion/models.py @@ -0,0 +1,82 @@ +from django.db import models +from registrasion import models as rego + +class AttendeeProfile(rego.AttendeeProfileBase): + + @classmethod + def name_field(cls): + ''' This is used to pre-fill the attendee's name from the + speaker profile. If it's None, that functionality is disabled. ''' + return "name" + + def invoice_recipient(self): + if self.company: + base = "%(name_per_invoice)s c/- %(company)s" + else: + base = "%(name_per_invoice)s" + return base % self.__dict__ + + def save(self): + if not self.name_per_invoice: + self.name_per_invoice = self.name + super(AttendeeProfile, self).save() + + # Things that appear on badge + name = models.CharField( + verbose_name="Your name (for your conference nametag)", + max_length=64, + help_text="Your name, as you'd like it to appear on your badge. ", + ) + + company = models.CharField( + max_length=64, + help_text="The name of your company, as you'd like it on your badge", + blank=True, + ) + free_text_1 = models.CharField( + max_length=64, + verbose_name="Free text line 1", + help_text="A line of free text that will appear on your badge. Use " + "this for your Twitter handle, IRC nick, your preferred " + "pronouns or anything else you'd like people to see on " + "your badge.", + blank=True, + ) + free_text_2 = models.CharField( + max_length=64, + verbose_name="Free text line 2", + blank=True, + ) + + # Other important Information + name_per_invoice = models.CharField( + verbose_name="Your legal name (for invoicing purposes)", + max_length=64, + help_text="If your legal name is different to the name on your badge, " + "fill this in, and we'll put it on your invoice. Otherwise, " + "leave it blank.", + blank=True, + ) + of_legal_age = models.BooleanField( + default=False, + verbose_name="18+?", + blank=True, + ) + dietary_requirements = models.CharField( + max_length=256, + blank=True, + ) + accessibility_requirements = models.CharField( + max_length=256, + blank=True, + ) + gender = models.CharField( + max_length=64, + blank=True, + ) + + +class DemoPayment(rego.PaymentBase): + ''' A subclass of PaymentBase for use in our demo payments function. ''' + + pass # No custom features here, but yours could be here.