Changeset beaf731 for asadb/util


Ignore:
Timestamp:
Dec 26, 2011, 5:28:39 AM (15 years ago)
Author:
Alex Dehnert <adehnert@…>
Branches:
master, space-access, stable, stage
Children:
41146ff
Parents:
1ffd96e
git-author:
Alex Dehnert <adehnert@…> (12/26/11 05:28:39)
git-committer:
Alex Dehnert <adehnert@…> (12/26/11 05:28:39)
Message:

Clean up util/import_db.py slightly

File:
1 edited

Legend:

Unmodified
Added
Removed
  • asadb/util/import_db.py

    r53ca693 rbeaf731  
    3333    else: return int(number)
    3434
     35def import_group(d):
     36    g = groups.models.Group()
     37    g.pk                = d['ASA_STUDENT_GROUP_KEY']
     38    g.name              = d['STUDENT_GROUP_NAME']
     39    g.abbreviation      = d['STUDENT_GROUP_ACRONYM']
     40    g.description       = d['STUDENT_GROUP_DESCRIPTION']
     41    cat_name = d['GROUP_ACTIVITY_CATEGORY']
     42    try:
     43        g.activity_category = groups.models.ActivityCategory.objects.get(name=cat_name)
     44    except groups.models.ActivityCategory.DoesNotExist:
     45        print ">> Unknown category '%s' on group '%s'" % (cat_name, g.name, )
     46        pass
     47    class_name = d['GROUP_CLASS']
     48    status_name = d['GROUP_STATUS']
     49    funding_name = d['GROUP_FUNDING_TYPE']
     50    if class_name == 'Standard':
     51        if status_name == 'Provisional':
     52            class_name = 'Unfunded'
     53            status_name = 'Active'
     54        elif status_name == 'Active':
     55            class_name = 'MIT-funded'
     56        elif status_name == 'Suspended' or status_name == 'Derecognized':
     57            class_name = 'MIT-funded'
     58    g.group_class = groups.models.GroupClass.objects.get(name=class_name)
     59    g.group_status = groups.models.GroupStatus.objects.get(name=status_name)
     60    if funding_name == 'none':
     61        g.group_funding = None
     62    else:
     63        g.group_funding = groups.models.GroupFunding.objects.get(name=funding_name)
     64    g.website_url       = d['WEBSITE_URL']
     65    g.constitution_url  = d['CONSTITUTION_WEB_URL']
     66    g.meeting_times     = d['MEETING_TIMES']
     67    g.advisor_name      = d['ADVISOR']
     68    g.num_undergrads    = convert_to_int(d['NUM_OF_UNDERGRADUATE'])
     69    g.num_grads         = convert_to_int(d['NUM_OF_GRADUATE'])
     70    g.num_community     = convert_to_int(d['NUM_OF_COMMUNITY'])
     71    g.num_other         = convert_to_int(d['NUM_OF_OTHERS'])
     72    g.group_email       = canonicalize_email(d['STUDENT_GROUP_EMAIL'])
     73    g.officer_email     = canonicalize_email(d['OFFICER_EMAIL'])
     74    try:
     75        g.main_account_id   = convert_to_int(d['MAIN_ACCOUNT_ID'])
     76    except ValueError:
     77        if d['MAIN_ACCOUNT_ID'] == "contact LWard":
     78            print "Ignoring account ID contact LWard..."
     79            g.main_account_id = None
     80        else:
     81            raise
     82    g.funding_account_id= convert_to_int(d['FUNDING_ACCOUNT_ID'])
     83    g.athena_locker     = d['ATHENA_LOCKER']
     84    g.recognition_date  = db_parse_date(d['RECOGNITION_DATE'])
     85    g.update_date       = db_parse_date(d['UPDATE_DATE'])
     86    g.updater           = d['UPDATER']
     87    g.save()
     88
    3589if __name__ == '__main__':
    3690    indb = sys.stdin
     
    4094        d = dictize_line(header, line)
    4195        print d
    42         g = groups.models.Group()
    43         g.pk                = d['ASA_STUDENT_GROUP_KEY']
    44         g.name              = d['STUDENT_GROUP_NAME']
    45         g.abbreviation      = d['STUDENT_GROUP_ACRONYM']
    46         g.description       = d['STUDENT_GROUP_DESCRIPTION']
    47         cat_name = d['GROUP_ACTIVITY_CATEGORY']
    48         try:
    49             g.activity_category = groups.models.ActivityCategory.objects.get(name=cat_name)
    50         except groups.models.ActivityCategory.DoesNotExist:
    51             print ">> Unknown category '%s' on group '%s'" % (cat_name, g.name, )
    52             pass
    53         class_name = d['GROUP_CLASS']
    54         status_name = d['GROUP_STATUS']
    55         funding_name = d['GROUP_FUNDING_TYPE']
    56         if class_name == 'Standard':
    57             if status_name == 'Provisional':
    58                 class_name = 'Unfunded'
    59                 status_name = 'Active'
    60             elif status_name == 'Active':
    61                 class_name = 'MIT-funded'
    62             elif status_name == 'Suspended' or status_name == 'Derecognized':
    63                 class_name = 'MIT-funded'
    64         g.group_class = groups.models.GroupClass.objects.get(name=class_name)
    65         g.group_status = groups.models.GroupStatus.objects.get(name=status_name)
    66         if funding_name == 'none':
    67             g.group_funding = None
    68         else:
    69             g.group_funding = groups.models.GroupFunding.objects.get(name=funding_name)
    70         g.website_url       = d['WEBSITE_URL']
    71         g.constitution_url  = d['CONSTITUTION_WEB_URL']
    72         g.meeting_times     = d['MEETING_TIMES']
    73         g.advisor_name      = d['ADVISOR']
    74         g.num_undergrads    = convert_to_int(d['NUM_OF_UNDERGRADUATE'])
    75         g.num_grads         = convert_to_int(d['NUM_OF_GRADUATE'])
    76         g.num_community     = convert_to_int(d['NUM_OF_COMMUNITY'])
    77         g.num_other         = convert_to_int(d['NUM_OF_OTHERS'])
    78         g.group_email       = canonicalize_email(d['STUDENT_GROUP_EMAIL'])
    79         g.officer_email     = canonicalize_email(d['OFFICER_EMAIL'])
    80         try:
    81             g.main_account_id   = convert_to_int(d['MAIN_ACCOUNT_ID'])
    82         except ValueError:
    83             if d['MAIN_ACCOUNT_ID'] == "contact LWard":
    84                 print "Ignoring account ID contact LWard..."
    85                 g.main_account_id = None
    86             else:
    87                 raise
    88         g.funding_account_id= convert_to_int(d['FUNDING_ACCOUNT_ID'])
    89         g.athena_locker     = d['ATHENA_LOCKER']
    90         g.recognition_date  = db_parse_date(d['RECOGNITION_DATE'])
    91         g.update_date       = db_parse_date(d['UPDATE_DATE'])
    92         g.updater           = d['UPDATER']
    93         g.save()
     96        import_group(d)
Note: See TracChangeset for help on using the changeset viewer.