Esempio n. 1
0
def readApi(doc_type):
    if doc_type == "students":
        data_set = Student.objects()
    elif doc_type == "grades":
        data_set = Grade.objects()
    elif doc_type == "courses":
        data_set = Course.objects()
    else:
        return render_template('404.html', title='404'), 404
    return json.dumps({"aaData": MongoEngineJSONEncoder(data_set)}), 200
Esempio n. 2
0
def index():
    rez = r.get("topstudent")
    ti = ''
    data = None
    top_grade = []
    if not rez:
        top_grade = list(Grade.objects().aggregate(*[{
            "$group": {
                "_id": {
                    "student": "$student",
                    "course": "$course"
                },
                "avggrade": {
                    "$avg": "$grade"
                }
            }
        }, {
            "$sort": {
                "avggrade": -1
            }
        }, {
            "$limit": 1
        }]))
        if top_grade:

            student_db = Student.objects.get(id=top_grade[0]["_id"]["student"])
            top_grade[0]["name"] = student_db.firstName
            top_grade[0]["lname"] = student_db.lastName

            course_db = Course.objects.get(id=top_grade[0]["_id"]["course"])
            s = json.dumps(top_grade[0], indent=4, sort_keys=True)
            r.set("topstudent", s)
            r.expire('topstudent', 30)
            rez = r.get("topstudent")

            ti = json.dumps(MongoEngineJSONEncoder(course_db),
                            indent=4,
                            sort_keys=True)
            data = json.loads(rez)
    return render_template("index.html", top_student=data, loaded=ti)