Exemple #1
0
def person_info(request):
    """
    Get more info about this person, for AJAX updates on new RA form
    """
    result = {'programs': []}
    emplid = request.GET.get('emplid', None)
    if not emplid or not emplid.isdigit() or len(emplid) != 9:
        pass
    else:
        programs = []
        
        # GradPrograms
        emplid = request.GET['emplid']
        grads = GradStudent.objects.filter(person__emplid=emplid, program__unit__in=Unit.sub_units(request.units))
        for gs in grads:
            pdata = {
                     'program': gs.program.label,
                     'unit': gs.program.unit.name,
                     'status': gs.get_current_status_display(),
                     }
            programs.append(pdata)

        result['programs'] = programs
        
        # other SIMS info
        try:
            otherinfo = more_personal_info(emplid, needed=['citizen', 'visa'])
            result.update(otherinfo)
        except SIMSProblem, e:
            result['error'] = e.message
Exemple #2
0
def person_info(request):
    """
    Get more info about this person, for AJAX updates on new RA form
    """
    result = {'programs': []}
    emplid = request.GET.get('emplid', None)
    if not emplid or not emplid.isdigit() or len(emplid) != 9:
        pass
    else:
        programs = []
        
        # GradPrograms
        emplid = request.GET['emplid']
        grads = GradStudent.objects.filter(person__emplid=emplid, program__unit__in=Unit.sub_units(request.units))
        for gs in grads:
            pdata = {
                     'program': gs.program.label,
                     'unit': gs.program.unit.name,
                     'status': gs.get_current_status_display(),
                     }
            programs.append(pdata)

        result['programs'] = programs
        
        # other SIMS info
        try:
            otherinfo = more_personal_info(emplid, needed=['citizen', 'visa'])
            result.update(otherinfo)
        except SIMSProblem, e:
            result['error'] = e.message
Exemple #3
0
def person_info(request):
    """
    Get more info about this person, for AJAX updates on new RA form
    """
    result = {'programs': []}
    emplid = request.GET.get('emplid', None)
    if not emplid or not emplid.isdigit() or len(emplid) != 9:
        pass
    else:
        programs = []

        # GradPrograms
        emplid = request.GET['emplid']
        grads = GradStudent.objects.filter(person__emplid=emplid,
                                           program__unit__in=request.units)
        for gs in grads:
            pdata = {
                'program': gs.program.label,
                'unit': gs.program.unit.name,
                'status': gs.get_current_status_display(),
            }
            programs.append(pdata)

        result['programs'] = programs

        # other SIMS info
        try:
            otherinfo = more_personal_info(emplid, needed=['citizen', 'visa'])
            result.update(otherinfo)
        except SIMSProblem as e:
            result['error'] = str(e)

    return HttpResponse(json.dumps(result),
                        content_type='application/json;charset=utf-8')
Exemple #4
0
def person_info(request):
    """
    Get more info about this person, for AJAX updates on new RA form
    """
    result = {'programs': []}
    emplid = request.GET.get('emplid', None)
    if not emplid or not emplid.isdigit() or len(emplid) != 9:
        pass
    else:
        programs = []
        
        # GradPrograms
        emplid = request.GET['emplid']
        grads = GradStudent.objects.filter(person__emplid=emplid, program__unit__in=request.units)
        for gs in grads:
            pdata = {
                     'program': gs.program.label,
                     'unit': gs.program.unit.name,
                     'status': gs.get_current_status_display(),
                     }
            programs.append(pdata)

        result['programs'] = programs
        
        # other SIMS info
        try:
            otherinfo = more_personal_info(emplid, needed=['citizen', 'visa'])
            result.update(otherinfo)
        except SIMSProblem as e:
            result['error'] = str(e)

    return HttpResponse(json.dumps(result), content_type='application/json;charset=utf-8')
Exemple #5
0
def student_more_info(request, userid):
    """
    AJAX request for contact info, etc. (queries SIMS directly)
    """
    student = get_object_or_404(Person, find_userid_or_emplid(userid))
    try:
        data = more_personal_info(student.emplid)
    except SIMSProblem as e:
        data = {'error': unicode(e)}

    response = HttpResponse(content_type='application/json')
    json.dump(data, response)
    return response
Exemple #6
0
def grad_more_info(request, grad_slug):
    """
    AJAX request for contact info, etc. (queries SIMS directly)
    """
    grad = get_object_or_404(GradStudent, slug=grad_slug, program__unit__in=request.units)
    try:
        data = more_personal_info(grad.person.emplid, exclude=GRADFIELDS)
    except SIMSProblem as e:
        data = {'error': e.message}
    
    response = HttpResponse(content_type='application/json')
    json.dump(data, response, indent=1)
    return response
Exemple #7
0
def student_more_info_short(request, userid):
    """
    Same as above, but with a more limited subset of info.
    """
    student = get_object_or_404(Person, find_userid_or_emplid(userid))
    try:
        data = more_personal_info(student.emplid, needed=['programs', 'gpa', 'citizen', 'gender'])
    except SIMSProblem as e:
        data = {'error': str(e)}

    response = HttpResponse(content_type='application/json')
    json.dump(data, response)
    return response
def grad_more_info(request, grad_slug):
    """
    AJAX request for contact info, etc. (queries SIMS directly)
    """
    grad = get_object_or_404(GradStudent, slug=grad_slug, program__unit__in=request.units)
    try:
        data = more_personal_info(grad.person.emplid, exclude=GRADFIELDS)
    except SIMSProblem as e:
        data = {'error': str(e)}
    
    response = HttpResponse(content_type='application/json')
    json.dump(data, response, indent=1)
    return response
Exemple #9
0
def import_active_grads_gpas(verbose=False, dry_run=False):
    """
    Update active grads GPAs.  We added this task because it turns out some people care
    more about this than we originally thought.  Let's run this every day instead with just the GPA and credits fields.
    """
    from coredata.queries import more_personal_info
    active_grads = GradStudent.objects.filter(current_status__in=STATUS_ACTIVE).select_related('person')
    for grad in active_grads:
        data = more_personal_info(grad.person.emplid, needed=['ccredits', 'gpa'])
        if verbose:
            print "Updating info for: ", grad.person.name(), " with: ", data
        grad.person.config.update(data)
        if not dry_run:
            grad.person.save()
Exemple #10
0
def import_active_grads_gpas(verbose=False, dry_run=False):
    """
    Update active grads GPAs.  We added this task because it turns out some people care
    more about this than we originally thought.  Let's run this every day instead with just the GPA and credits fields.
    """
    from coredata.queries import more_personal_info
    active_grads = GradStudent.objects.filter(current_status__in=STATUS_GPA).select_related('person')
    for grad in active_grads:
        data = more_personal_info(grad.person.emplid, needed=['ccredits', 'gpa'])
        if verbose:
            print("Updating info for: ", grad.person.name(), " with: ", data)
        grad.person.config.update(data)
        if not dry_run:
            grad.person.save()
Exemple #11
0
def get_addresses(request):
    if 'id' not in request.GET:
        return ForbiddenResponse(request, 'must send id')
    sid = request.GET['id']
    grad = get_object_or_404(GradStudent, id=sid, program__unit__in=request.units)
    emplid = grad.person.emplid
    
    try:
        data = more_personal_info(emplid, needed=['addresses'])
    except SIMSProblem as e:
        data = {'error': e.message}
        
    resp = HttpResponse(content_type="application/json")
    json.dump(data, resp, indent=1)
    return resp
Exemple #12
0
def get_addresses(request):
    if 'id' not in request.GET:
        return ForbiddenResponse(request, 'must send id')
    sid = request.GET['id']
    grad = get_object_or_404(GradStudent, id=sid, program__unit__in=request.units)
    emplid = grad.person.emplid
    
    try:
        data = more_personal_info(emplid, needed=['addresses'])
        if data:
            data['full_name'] = "%s\n" % grad.person.name()
    except SIMSProblem as e:
        data = {'error': str(e)}
        
    resp = HttpResponse(content_type="application/json")
    json.dump(data, resp, indent=1)
    return resp