def motd():
    if auth.get_logged_in_user():
        return auth.get_logged_in_user().username
    else:
        resp = make_response()
        resp.status_code = 400
        return resp
def user_add_class():
    student_class = StudentClass(student=auth.get_logged_in_user(),
                                 school_class=SchoolClass.get(id=request.form['school_class']))
    student_class.save()

    resp = make_response()
    resp.status_code = 200
    return resp
def user_classes():
    classes = [c for c in StudentClass.select().where(
        StudentClass.student == auth.get_logged_in_user().id)]
    data = {}
    for c in classes:
        data[c.school_class.id] = c.school_class.title
    resp = jsonify(data)
    resp.status_code = 200
    return resp
def verify_logged_in():
    if auth.get_logged_in_user():
        resp = make_response()
        resp.status_code = 200
        return resp
    else:
        resp = make_response()
        resp.status_code = 400
        return resp
def hw_new_assignment():
    # this probably isn't going to work: you should think it out before actually testing this
    # new_assignment = str([a for a in HomeworkAssignment.select()][-1].id + 1) + '.jpg'
    # with open(os.path.join(app.config['MEDIA_ROOT'], new_assignment), 'w') as f:
        # f.write(request.form['b64_photo'])

    hw = HomeworkAssignment(school_class=SchoolClass.get(id=request.form['class']),
                            poster=auth.get_logged_in_user())
    if request.form['b64_photo']:
        hw.save_photo(request.form['b64_photo'])
    hw.save()

    resp = make_response()
    resp.status_code = 200
    return resp
def news_feed():
    # get list of classes of logged in user
    classes = [c for c in StudentClass.select().where(
        StudentClass.student == auth.get_logged_in_user().id)]

    # builds query:
    # SELECT * FROM HomeworkAssignment
    # WHERE school_class = 1
    # OR school_class = 2...
    query = 'HomeworkAssignment.select().where('
    for i in xrange(0, len(classes)):
        query += '(HomeworkAssignment.school_class == ' + \
            'classes[' + str(i) + '])'
        if i != (len(classes) - 1):
            query += ' | '
        else:
            query += ')'

    assignments = [a for a in eval(query)]
    assignments.sort(key=lambda a: a.id)
    assignments = assignments[-15:]
    return process_assignments(assignments)
def older_news_feed(oldest_pk):

    classes = [c for c in StudentClass.select().where(
        StudentClass.student == auth.get_logged_in_user().id)]

    # SELECT * FROM HomeworkAssignment
    # WHERE school_class = 1 & id < 123
    # OR school_class = 2 & id < 123...
    query = 'HomeworkAssignment.select().where('
    for i in xrange(0, len(classes)):
        query += '(HomeworkAssignment.school_class == ' + \
            'classes[' + str(i) + ']) & (HomeworkAssignment.id < ' + str(oldest_pk) + ')'
        if i != (len(classes) - 1):
            query += ' | '
        else:
            query += ')'

    # import ipdb;ipdb.set_trace()

    assignments = [a for a in eval(query)]
    assignments.sort(key=lambda a: a.id)
    assignments = assignments[-15:]
    return process_assignments(assignments)
def update_news_feed(latest_pk):
    classes = [c for c in StudentClass.select().where(
        StudentClass.student == auth.get_logged_in_user().id)]

    # SELECT * FROM HomeworkAssignment
    # WHERE school_class = 1 & id > 123
    # OR school_class = 2 & id > 123...
    query = 'HomeworkAssignment.select().where('
    for i in xrange(0, len(classes)):
        query += '(HomeworkAssignment.school_class == ' + \
            'classes[' + str(i) + ']) & (HomeworkAssignment.id > ' + str(latest_pk) + ')'
        if i != (len(classes) - 1):
            query += ' | '
        else:
            query += ')'

    assignments = [a for a in eval(query)]
    # if len(assignments) > 15:
    #     clear_feed_data = {'assignments': [{'clear_feed':0}]}
    #     resp = jsonify(clear_feed_data)
    #     return resp
    # else:
    assignments.sort(key=lambda a: a.id, reverse=True)
    return process_assignments(assignments)