sdi/models.py
author nishanth
Wed, 14 Jul 2010 11:51:05 +0530
branchanoop
changeset 80 c200156c80a9
parent 78 e84f56d4968e
child 81 8218d96eb765
permissions -rw-r--r--
fixed a bug that arises when a query does not have any parameters to filter

from django.db import models

GENDER_CHOICES = (('M', "Male"),
                  ("F", "Female"),
                 )

PYTHON_KNOWLEDGE_CHOICES = (("1", "No clue what Python is"),
                            ("2", "I know for sure that Python is a language"),
                            ("3", "Solved some basic problems using Python"),
                            ("4", "Been using Python for quite some time"),
                            ("5", "Written production level code in Python"),
                           )

SAGE_KNOWLEDGE_CHOICES = (("1", "No clue what Sage is"),
                          ("2", "I know for sure that Sage is a mathematical software"),
                          ("3", "Solved some basic problems using Sage"),
                          ("4", "Been using Sage for quite some time"),
                          #("5", "Written production level code in Sage"),
                         )

TOPICS_CHOICES = (("1", "Cryptography"),
                  ("2", "Basic Algebra"),
                  ("3", "Calculus"),
                  ("4", "Arbitrary Precision Numerics"),
                  ("5", "Basic Plotting"),
                  ("6", "Number Theory"),
                  ("7", "Polynomials"),
                  ("8", "Combinatorics and Graph Theory"),                                          
                 )


LIKELINESS_CHOICES = (('5', "Will attend at any cost"),
                      ('4', "Will attend most probably"),
                      ('3', "Unsure of attending"),
                      ('2', "Might not attend"),
                      ('1', "Will not attend"),
                     )

T_SHIRT_CHOICES = (("S","S"),
                   ("M","M"),
                   ("L","L"),
                   ("XL","XL"),                   
                  )

class Registrant(models.Model):
    """ A model to hold the details of registered users.
    """

    first_name = models.CharField(max_length=30)
    last_name =  models.CharField(max_length=30)
    email = models.EmailField()
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
    t_shirt_size = models.CharField(max_length=2, choices=T_SHIRT_CHOICES, verbose_name="T-Shirt size")

    profession = models.CharField(max_length=20)
    affiliated_to = models.CharField(max_length=30, verbose_name="Affiliated Institution/Company")

    topics_interested = models.CharField(max_length=30, blank=True)

    knowledge_of_python = models.CharField(max_length=1, choices=PYTHON_KNOWLEDGE_CHOICES)
    need_for_python_workshop = models.BooleanField(verbose_name="Do you need a workshop on Python before you attend Sage Days")

    knowledge_of_sage = models.CharField(max_length=1, choices=SAGE_KNOWLEDGE_CHOICES)
    tools_used = models.TextField(help_text="Ex: Scilab, Mathematica, Matlab etc.", verbose_name="Other tools used", blank=True)

    #address = models.TextField(help_text="To send DVD containing tutorials on Python if required.", blank=True)
    address = models.TextField(blank=True)
    phone_num = models.CharField(max_length=15, verbose_name="Phone Number", blank=True)
    acco_required = models.BooleanField(verbose_name="Need accomodation", default=False)

    priority_for_attending = models.CharField(max_length=1, default="3")
    selected_for_attending = models.BooleanField(default=False)
    
    likeliness_of_attending = models.CharField(max_length=1, choices=LIKELINESS_CHOICES)

    def __unicode__(self):

        return self.first_name + " " + self.last_name