Example #1
0
def lookup_student(obj):
	first = namecase(obj['first'])
	last = namecase(obj['last'])
	student = Students.fetch(first=first,family__last=last)
	if not student:
		student = Students.fetch(alt_first=first,family__last=last)
	return student
Example #2
0
def update_existing_family(already, family):
    if not already.hid:
        already.hid = family.accessid
    if not already.phone:
        already.phone = family.home
    if not already.email:
        already.email = family.email
    if not already.address:
        already.address = Addresses.create(
            line1=family.street,
            line2='Apt. ' + family.apt if family.apt else '',
            city=family.city.title(),
            state=family.state.upper(),
            zipcode=family.zip,
        )
    if not already.mother:
        already.mother = Parents.create(
            first=family.mfirst,
            # alt_first = family.mnick,
            alt_last='' if family.mlast == family.family else family.mlast,
            sex='F',
            alt_phone=0 if family.mcell == family.home else family.mcell,
            family_id=already.id,
        )
    if not already.father:
        already.father = Parents.create(
            first=family.ffirst,
            # alt_first = family.fnick,
            alt_last='' if family.flast == family.family else family.flast,
            sex='M',
            alt_phone=0 if family.fcell == family.home else family.fcell,
            family_id=already.id,
        )
    for student in OldStudents.filter(familyid=family.accessid):
        alreadyStudent = find_existing_student(already, student)
        if alreadyStudent:
            update_existing_student(alreadyStudent, student)
        else:
            stu = Students.create(
                oid=student.id,
                hid=student.studentid,
                created_at=student.creationdate,
                updated_at=student.moddate,
                family=already,
                first=namecase(student.first),
                alt_last='' if (not already) or already.last == student.last
                else student.last,
                alt_email='' if (not already) or already.email == student.email
                else student.email,
                sex=student.sex,
                birthday=student.dob if student.dob else '2020-12-31',
                grad_year=est_grad(student),
                tshirt=sub(student.tshirt, {'AXL': 'XL'}),
                needs=student.needsdescribe)
Example #3
0
def family_post(request, ref):
    me = getme(request)
    if me:
        me.username = request.POST['username']
        if me.owner:
            me.owner.save()
    new_family = copy(request.POST, ['last', 'phone', 'phone_type', 'email'])
    new_family['last'] = namecase(new_family['last'])
    new_user = copy(request.POST, ['username', 'password', 'pw_confm'])
    new_user['permission'] = 2
    ouu = me and str(new_user['username']) == str(me.username)
    if Families.isValid(new_family) and Users.isValid(
            new_user, override_unique_username=ouu):
        new_user.pop('pw_confm')
        if not me:
            new_family = Families.create(**new_family)
            new_user['owner'] = new_family
            me = Users.create(**new_user)
        elif me and not me.owner:
            me.username = new_user['username']
            new_family = Families.create(**new_family)
            me.owner = new_family
            me.save()
        elif me and me.owner:
            me.username = new_user['username']
            family = me.owner
            family.last = new_family['last']
            family.phone = new_family['phone']
            family.email = new_family['email']
            family.phone_type = new_family['phone_type']
            print new_family['email']
            print family.email
            family.save()
            me.save()
        request.session['e'] = {}
        request.session['meid'] = me.id
        return redirect('/register/parents')
    else:
        request.session['p'] = {
            'family': new_family,
            'user': new_user,
        }
        request.session['e'] = {
            'family': Families.errors(new_family),
            'user': Users.errors(new_user)
        }
        return redirect('/register/family')
Example #4
0
def find_existing_family(family):
    already = Families.filter(last=namecase(family.family))
    if already:
        # if len(already) == 1:
        # 	return already[0]
        # elif len(already) > 1:
        old_children = OldStudents.filter(familyid=family.accessid)
        old_children = set(Each(old_children).first.lower())
        nMatches = []
        for fam in already:
            new_children = set(Each(fam.children).first.lower())
            new_children |= set(Each(fam.children).alt_first.lower())
            nMatches.append(len(old_children & new_children))
        nMatches.append(0)
        best = max(nMatches)
        if best:
            return already[nMatches.index(best)]
Example #5
0
 def create(self, **kwargs):
     if 'last' in kwargs:
         kwargs['last'] = namecase(kwargs['last'])
         las = kwargs['last'][:3].upper()
         # kwargs['hid'] = las + str(serial(self, 'hid', hid__startswith=las))
     return super(FamilyManager, self).create(**kwargs)
Example #6
0
 def create(self, **kwargs):
     if 'alt_last' in kwargs:
         kwargs['alt_last'] = namecase(kwargs['alt_last'])
     return super(StudentManager, self).create(**kwargs)