project/scipycon/registration/models.py
author Madhusudan.C.S <madhusudancs@gmail.com>
Tue, 16 Nov 2010 17:34:36 +0530
branchpayments
changeset 259 93cc238021ae
parent 248 0fc144c69e84
child 260 c6f65d399286
permissions -rw-r--r--
Modify the help text for details field to be more harsh on users so that they are clear as to what they are supposed to provide.

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'),
    ('Other', 'Other')
    )

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")


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_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)

    paid = models.BooleanField(
        default=False, blank=True, verbose_name="Amount paid",
        help_text="Check this box if you have already paid the fees.")

    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>.<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</font> from which the "
        "transfer was made.", blank=True, null=True)