Changeset a03cb61


Ignore:
Timestamp:
Apr 6, 2012, 1:28:28 AM (14 years ago)
Author:
ASA Group Database <asa-db@…>
Branches:
master, space-access, stable, stage
Children:
2c86ed1
Parents:
0ac15a1
git-author:
Alex Dehnert <adehnert@…> (04/06/12 01:28:28)
git-committer:
ASA Group Database <asa-db@…> (04/06/12 01:28:28)
Message:

Add indices to database tables

Fixes ASA Trac #38. Also, makes space-related scripts quick instead of
stupidly slow...

Location:
asadb
Files:
3 added
3 edited

Legend:

Unmodified
Added
Removed
  • asadb/forms/models.py

    rc297267 ra03cb61  
    1010
    1111class FYSM(models.Model):
    12     group = models.ForeignKey(groups.models.Group)
     12    group = models.ForeignKey(groups.models.Group, db_index=True, )
    1313    display_name = models.CharField(max_length=50)
    14     year = models.IntegerField()
     14    year = models.IntegerField(db_index=True, )
    1515    website = models.URLField()
    1616    join_url = models.URLField(verbose_name="recruiting URL", help_text="""<p>If you have a specific web page for recruiting new members of your group, you can link to it here. It will be used as the destination for most links about your group (join link on the main listing page and when clicking on the slide, but not the "website" link on the slide page). If you do not have such a page, use your main website's URL.</p>""")
     
    3939class FYSMCategory(models.Model):
    4040    name = models.CharField(max_length=25)
    41     slug = models.SlugField()
     41    slug = models.SlugField(unique=True, )
    4242    blurb = models.TextField()
    4343
     
    139139class GroupConfirmationCycle(models.Model):
    140140    name = models.CharField(max_length=30)
    141     slug = models.SlugField()
     141    slug = models.SlugField(unique=True, )
    142142    create_date = models.DateTimeField(default=datetime.datetime.now)
    143143
     
    155155    updater_title = models.CharField(max_length=30, help_text="You need not hold any particular title in the group, but we like to know who is completing the form.")
    156156   
    157     group = models.ForeignKey(groups.models.Group, help_text="If your group does not appear in the list above, then please email asa-exec@mit.edu.")
     157    group = models.ForeignKey(groups.models.Group, help_text="If your group does not appear in the list above, then please email asa-exec@mit.edu.", db_index=True, )
    158158    group_email = models.EmailField(help_text="The text of the law will be automatically distributed to your members via this list, in order to comply with the law.")
    159159    officer_email = models.EmailField()
     
    196196    update_time = models.DateTimeField(default=datetime.datetime.utcfromtimestamp(0))
    197197    username = models.CharField(max_length=30)
    198     cycle = models.ForeignKey(GroupConfirmationCycle)
     198    cycle = models.ForeignKey(GroupConfirmationCycle, db_index=True, )
    199199    deleted = models.DateTimeField(default=None, null=True, blank=True, )
    200200    valid = models.IntegerField(choices=VALID_CHOICES, default=VALID_UNSET)
  • asadb/groups/models.py

    r4325823 ra03cb61  
    2323
    2424class Group(models.Model):
    25     name = models.CharField(max_length=100)
    26     abbreviation = models.CharField(max_length=10, blank=True)
     25    name = models.CharField(max_length=100, db_index=True, )
     26    abbreviation = models.CharField(max_length=10, blank=True, db_index=True, )
    2727    description = models.TextField()
    28     activity_category = models.ForeignKey('ActivityCategory', null=True, blank=True, )
    29     group_class = models.ForeignKey('GroupClass')
    30     group_status = models.ForeignKey('GroupStatus')
    31     group_funding = models.ForeignKey('GroupFunding', null=True, blank=True, )
     28    activity_category = models.ForeignKey('ActivityCategory', null=True, blank=True, db_index=True, )
     29    group_class = models.ForeignKey('GroupClass', db_index=True, )
     30    group_status = models.ForeignKey('GroupStatus', db_index=True, )
     31    group_funding = models.ForeignKey('GroupFunding', null=True, blank=True, db_index=True, )
    3232    website_url = models.URLField()
    3333    constitution_url = models.CharField(max_length=200, blank=True)
     
    225225
    226226class GroupStartup(models.Model):
    227     group = models.ForeignKey(Group)
     227    group = models.ForeignKey(Group, unique=True, )
    228228    stage = models.IntegerField(choices=GROUP_STARTUP_STAGE)
    229229    submitter = models.CharField(max_length=30, editable=False, )
     
    239239
    240240class GroupNote(models.Model):
    241     author = models.CharField(max_length=30, ) # match Django username field
     241    author = models.CharField(max_length=30, db_index=True, ) # match Django username field
    242242    timestamp = models.DateTimeField(default=datetime.datetime.now, editable=False, )
    243243    body = models.TextField()
    244244    acl_read_group = models.BooleanField(default=True, help_text='Can the group read this note')
    245245    acl_read_offices = models.BooleanField(default=True, help_text='Can "offices" that interact with groups (SAO, CAC, and funding boards) read this note')
    246     group = models.ForeignKey(Group)
     246    group = models.ForeignKey(Group, db_index=True, )
    247247
    248248    def __str__(self, ):
     
    274274
    275275    display_name = models.CharField(max_length=50)
    276     slug = models.SlugField()
     276    slug = models.SlugField(unique=True, )
    277277    description = models.TextField()
    278278    max_count = models.IntegerField(default=UNLIMITED, help_text='Maximum number of holders of this role. Use %d for no limit.' % UNLIMITED)
     
    314314    END_NEVER       = datetime.datetime.max
    315315
    316     person = models.CharField(max_length=30)
    317     role = models.ForeignKey('OfficerRole')
    318     group = models.ForeignKey('Group')
    319     start_time = models.DateTimeField(default=datetime.datetime.now)
    320     end_time = models.DateTimeField(default=datetime.datetime.max)
     316    person = models.CharField(max_length=30, db_index=True, )
     317    role = models.ForeignKey('OfficerRole', db_index=True, )
     318    group = models.ForeignKey('Group', db_index=True, )
     319    start_time = models.DateTimeField(default=datetime.datetime.now, db_index=True, )
     320    end_time = models.DateTimeField(default=datetime.datetime.max, db_index=True, )
    321321
    322322    objects = models.Manager()
     
    433433
    434434class AthenaMoiraAccount(models.Model):
    435     username = models.CharField(max_length=8)
     435    username = models.CharField(max_length=8, unique=True, )
    436436    mit_id = models.CharField(max_length=15)
    437437    first_name      = models.CharField(max_length=45)
  • asadb/space/models.py

    r5680065 ra03cb61  
    9898    END_NEVER       = datetime.datetime.max
    9999
    100     group = models.ForeignKey(groups.models.Group)
    101     space = models.ForeignKey(Space)
    102     start = models.DateField(default=datetime.datetime.now)
    103     end = models.DateField(default=END_NEVER)
     100    group = models.ForeignKey(groups.models.Group, db_index=True, )
     101    space = models.ForeignKey(Space, db_index=True, )
     102    start = models.DateField(default=datetime.datetime.now, db_index=True, )
     103    end = models.DateField(default=END_NEVER, db_index=True, )
    104104
    105105    notes = models.TextField(blank=True, )
     
    139139    END_NEVER       = datetime.datetime.max
    140140
    141     group = models.ForeignKey(groups.models.Group)
    142     space = models.ForeignKey(Space)
    143     start = models.DateTimeField(default=now_offset)
    144     end = models.DateTimeField(default=END_NEVER)
     141    group = models.ForeignKey(groups.models.Group, db_index=True, )
     142    space = models.ForeignKey(Space, db_index=True, )
     143    start = models.DateTimeField(default=now_offset, db_index=True, )
     144    end = models.DateTimeField(default=END_NEVER, db_index=True, )
    145145
    146146    name = models.CharField(max_length=50)
Note: See TracChangeset for help on using the changeset viewer.