diff options
author | Parth Buch | 2012-08-28 17:03:37 +0530 |
---|---|---|
committer | Parth Buch | 2012-08-28 17:03:37 +0530 |
commit | 7e38fd922a8dd4742d09758cd1c94fb0302045d3 (patch) | |
tree | b43d6ea8c47fb80e09e5e0bfd8759ac7d697addf /project/scipycon/registration/models.py | |
download | scipywebsite-7e38fd922a8dd4742d09758cd1c94fb0302045d3.tar.gz scipywebsite-7e38fd922a8dd4742d09758cd1c94fb0302045d3.tar.bz2 scipywebsite-7e38fd922a8dd4742d09758cd1c94fb0302045d3.zip |
Reboot for scipy 2012
Diffstat (limited to 'project/scipycon/registration/models.py')
-rw-r--r-- | project/scipycon/registration/models.py | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/project/scipycon/registration/models.py b/project/scipycon/registration/models.py new file mode 100644 index 0000000..03013c5 --- /dev/null +++ b/project/scipycon/registration/models.py @@ -0,0 +1,167 @@ +from django.db import models +from django.contrib.auth.models import User + +from project.scipycon.base import models as base_models + +from project.scipycon.registration.labels import WIFI_CHOICES +from project.scipycon.registration.labels import WIFI_HELP + + +SIZE_CHOICES = ( + ('S', 'S'), + ('M', 'M'), + ('L', 'L'), + ('XL', 'XL'), + ('XXL', 'XXL'), + ) + +OCCUPATION_CHOICES = ( + ('Education: Student', 'Education: Student'), + ('Education: Faculty', 'Education: Faculty'), + ('Education: Research', 'Education: Research'), + ('Education: Other', 'Education: Other'), + ('Corporate: Research', 'Corporate: Research'), + ('Corporate: Other', 'Corporate: Other'), + ('Other', 'Other') + ) + +SEX_CHOICES = ( + ('Male', 'Male'), + ('Female', 'Female'), + ) + +PAYMENT_MODE_CHOICES = ( + ('Cheque', 'Cheque'), + ('Demand Draft(DD)', 'Demand Draft(DD)'), + ('Net Banking', 'Net Banking') + ) + + +class Wifi(base_models.ScopedBase): + """Defines wifi options at SciPy.in + """ + + user = models.ForeignKey(User) + + wifi = models.CharField(max_length=50, choices=WIFI_CHOICES, + help_text=WIFI_HELP, verbose_name="Laptop") + + registration_id = models.CharField( + max_length=255, verbose_name="Identification Number", + help_text="- Provide the serial or identification number at the " + "back of your laptop using which your laptop can be uniquely " + "identified. Ex: 8BDB8FB (Service Tag on Dell Laptops).<br /> - " + "This is for security reasons and will be used while you enter and " + "leave the venue.<br /> - Please don't provide the model number " + "like Dell Inspiron 1545. There may be many laptops of that model " + "and hence your laptop cannot be uniquely identified.", + blank=True, null=True) + + +class Accommodation(base_models.ScopedBase): + """Defines accommodation information for SciPy.in + """ + + user = models.ForeignKey(User) + + sex = models.CharField(max_length=50, choices=SEX_CHOICES, + verbose_name="Gender", + blank=True, null=True) + + accommodation_required = models.BooleanField( + default=False, blank=True, + verbose_name="Accommodation required", + help_text="Check if you need accommodation.") + + accommodation_on_1st = models.BooleanField( + default=False, verbose_name="Required for Ist Night") + accommodation_on_2nd = models.BooleanField( + default=False, verbose_name="Required for 2nd Night") + accommodation_on_3rd = models.BooleanField( + default=False, verbose_name="Required for 3rd Night") + accommodation_on_4th = models.BooleanField( + default=False, verbose_name="Required for 4th Night") + + accommodation_days = models.IntegerField( + default=0, blank=True, + verbose_name="Number of days", + help_text="Number of days the accommodation is required for?") + + +class Registration(base_models.ScopedBase): + """Defines registration at SciPy.in""" + + slug = models.SlugField() + + registrant = models.ForeignKey(User) + + organisation = models.CharField(max_length=255, blank=True) + + occupation = models.CharField(max_length=255, + choices=OCCUPATION_CHOICES, blank=True) + + city = models.CharField(max_length=255, blank=True) + + postcode = models.CharField(max_length=255, blank=True) + + phone_num = models.CharField(max_length=14, blank=True) + + tshirt = models.CharField(max_length=3, choices=SIZE_CHOICES) + + conference = models.BooleanField(default=False) + + tutorial = models.BooleanField(default=False) + + sprint = models.BooleanField(default=False) + + final_conference = models.BooleanField(default=False) + + final_tutorial = models.BooleanField(default=False) + + final_sprint = models.BooleanField(default=False) + + allow_contact = models.BooleanField(default=False) + + submitted = models.DateTimeField(auto_now_add=True) + + last_mod = models.DateTimeField(auto_now=True) + + def __unicode__(self): + return 'Registration for user: <%s %s> %s' % ( + self.registrant.first_name, + self.registrant.last_name, self.registrant.email) + + +class Payment(base_models.ScopedBase): + """Defines payment information for SciPy.in registrants + """ + + user = models.ForeignKey(User) + + confirmed = models.BooleanField( + default=False, blank=True) + + acco_confirmed = models.BooleanField( + default=False, blank=True) + + date_confirmed = models.DateTimeField(blank=True, null=True) + + confirmed_mail = models.BooleanField( + default=False, blank=True) + + acco_confirmed_mail = models.BooleanField( + default=False, blank=True) + + type = models.CharField(max_length=25, choices=PAYMENT_MODE_CHOICES, + verbose_name="Type", blank=True, null=True) + + details = models.CharField( + max_length=255, verbose_name="Details", + help_text="If the payment mode was cheque or DD please provide " + "the <font color='red'>cheque or DD number and the name of the bank " + "and branch</font>. Example: 4536234, SBI, IIT Powai, Mumbai.<br/> " + "If the payment mode was Net Banking please provide the <font " + "color='red'>last four digits of the account number and the name " + "of the account holder and the bank name</font> from which the " + "transfer was made. Example: 8804, Harish Chandra, SBI", + blank=True, null=True) |