cciw-website / scripts / reference_importer.py

#!/usr/bin/env python

import sys
import re
import datetime
from cciw.officers.models import Reference, ReferenceForm, Application

def import_reference(fname):
    m = re.search("reference_data\.(?P<appid>\d+)\.(?P<refnum>[12])$", fname)
    if m is None:
        sys.stderr.write("Filename '%s' was not in expected format.\n" % fname)
        sys.exit(1)
    print fname
    appid = int(m.groupdict()['appid'])
    refnum = int(m.groupdict()['refnum'])
    data = eval("".join(open(fname).readlines()))
    data['referee_name'] = data['referee_name'].replace("\n", " ")
    app = Application.objects.get(id=appid)
    ref = app.references[refnum-1]
    refform = ReferenceForm(**data)
    refform.reference_info = ref
    refform.save()
    ref.received = True
    ref.save()

usage = """Usage:

./reference_importer.py reference_data.<appid>.<refnum>
"""

if __name__ == '__main__':
    if len(sys.argv) != 2:
        sys.stderr.write(usage)
        sys.exit(1)
    else:
        import_reference(sys.argv[1])
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.