def resendForm(studentId, newBlankFormIds):
    blankFormIds = map(lambda form: FormsDOM.getBlankFormId(form),
                       studentsDOM.getForms(studentId))

    uniqueBlankFormIds = set(blankFormIds)

    parentIds = studentsDOM.getParents(studentId)

    formIds = []

    additionalBlankForms = []

    for newBlankFormId in newBlankFormIds:
        if newBlankFormId not in uniqueBlankFormIds:
            for parentId in parentIds:
                currID = FormsDOM.createForm(newBlankFormId, None, None, True,
                                             False, [], parentId)
                formIds.append(currID)
            additionalBlankForms.append(newBlankFormId)

    for formId in formIds:
        studentsDOM.addNewFormId(studentId, formId)

    # return parentIds
    return parentIds
def addStudent():
    student = request.json['studentData']

    parentIds = []
    parents = request.json['parentData']
    for parent in parents:
        currID = None
        if parentsDOM.exists(parent['email']):
            currID = parentsDOM.get(email=parent['email'])
        else:
            currID = parentsDOM.createParent(parent['firstName'],
                                             parent['lastName'],
                                             parent['email'])
        parentIds.append(currID)

    formIds = []
    for form in request.json['forms']:
        for parentId in parentIds:
            id = form['id']
            # createForm(id, date, required, comp, data, parentID):
            currID = FormsDOM.createForm(ObjectId(id), None, None, True, False,
                                         [], parentId)
            formIds.append(currID)

    dateOfBirth = datetime.strptime(student['dob'], '%m/%d/%Y')
    studentId = studentsDOM.createStudent(student['firstName'],
                                          student['middleName'],
                                          student['lastName'], dateOfBirth,
                                          int(student['grade']), formIds,
                                          parentIds, student['class'])

    for parentId in parentIds:
        parentsDOM.addStudentId(parentId, studentId)

    # send emails
    failed = []

    for parentId in parentIds:
        failed = failed + emailParent(parentId)

    return {
        'failed': failed,
    }
def testFormCreateForm():
    newData = {'0': 1000}
    FormsDOM.createForm('1000', '1212-12-12', True, 123, 0.22, newData)
    actual = FormsDOM.getFormData('1000')
    return newData == actual