예제 #1
0
def trigger_loaded(courseId, studentId):
    loaded = Log(type='loaded', courseId=courseId, student=studentId)
    loaded.put()

    loadedUpdated(courseId, {
        'student': studentId
    })
예제 #2
0
def trigger_help(lti=lti):
#def trigger_help():
    content = request.get_json(silent=True)
    logging.info(content)
    studentId = cgi.escape(content['studentId'])
    studentName = cgi.escape(content['studentName'])
    courseId = cgi.escape(content['courseId'])

    student = ndb.Key('Student', courseId + studentId).get()
    help = Log(type='help', courseId=courseId, student=studentId)
    help.put()

    fullName = student.fullName if student else 'Unknown student'
    avatarUrl = student.avatarUrl if student else ''

    feedUpdated(courseId, {
        'student': studentId,
        'fullName': fullName,
        'avatarUrl': avatarUrl
    })

    newMessage(courseId, {
        'student': studentId,
        'courseId': courseId,
        'id': help.key.id(),
        'type': 'help',
        'content': '',
        'info': student.info(),
        'date': DateTimeJSONEncoder().encode(help.date).replace('"', '')
    })
    return "Help received"
예제 #3
0
def new_message(lti=lti):
#def new_message():
    content = request.get_json(silent=True)
    logging.info(content)
    studentId = cgi.escape(content['studentId']) #From Field
    courseId = cgi.escape(content['courseId'])
    text = cgi.escape(content['text'])

    student_key = ndb.Key('Student', courseId + studentId)
    student = student_key.get()
    message = Log(type='text', courseId=courseId, student=studentId)
    message.content = text
    message.put()

    fullName = student.fullName if student else 'Unknown student'
    avatarUrl = student.avatarUrl if student else ''

    newMessage(courseId, {
        'student': studentId, #Broadcast message from:
        'courseId': courseId,
        'id': message.key.id(),
        'type': 'text',
        'content': text,
        'info': student.info(),
        'date': ''
    })
    return "Message received"
예제 #4
0
def trigger_reward():
    studentId = cgi.escape(request.form['studentId'])

    reward = Log(type=LogType.REWARD, student=studentId)
    reward.put()

    p.trigger('private-status', 'client-reward', {'studentId': studentId})
    return "Reward received"
예제 #5
0
def trigger_register():
    studentId = cgi.escape(request.form['studentId'])

    register = Log(type=LogType.REGISTERED, student=studentId)
    register.put()

    p.trigger('private-status', 'registered', {'studentId': studentId})
    return "Registration received"
예제 #6
0
def trigger_help():
    studentId = cgi.escape(request.form['studentId'])

    help = Log(type=LogType.HELP_NEEDED, student=studentId)
    help.put()

    p.trigger('private-status', 'help', {'studentId': studentId})
    return "Help received"
예제 #7
0
def trigger_ping():
    studentId = cgi.escape(request.form['studentId'])

    pinged = Log(type=LogType.PINGED, student=studentId)
    pinged.put()

    p.trigger('private-status', 'client-ping', {'studentId': studentId})
    return "Ping received"


#endregion
예제 #8
0
def trigger_register(lti=lti):
    content = request.get_json(silent=True)
    studentId = cgi.escape(content['studentId'])
    courseId = cgi.escape(content['courseId'])

    register = Log(type='registered', courseId=courseId, student=studentId)
    register.put()

    registerUpdated(courseId, {
        'student': studentId
    })
    return "Registration received"
예제 #9
0
def trigger_reward():
    studentId = cgi.escape(request.form['studentId'])
    student = getStudent(studentId)

    reward = Log(type='reward', student=studentId)
    reward.put()

    p.trigger('private-status', 'client-reward', {
        'studentId': studentId,
        'student': student
    })
    return "Reward received"
예제 #10
0
def trigger_ping():
    studentId = cgi.escape(request.form['studentId'])
    student = getStudent(studentId)

    pinged = Log(type='ping', student=studentId)
    pinged.put()

    p.trigger('private-status', 'client-ping', {
        'studentId': studentId,
        'student': student
    })
    return "Ping received"


#endregion
예제 #11
0
def new_teacher_message(lti=lti):
#def new_teacher_message():
    content = request.get_json(silent=True)
    logging.info(content)
    studentId = cgi.escape(content['studentId'])
    teacherId = cgi.escape(content['teacherId'])
    courseId = cgi.escape(content['courseId'])
    text = cgi.escape(content['text'])

    student_key = ndb.Key('Student', courseId + studentId)
    student = student_key.get()
    teacher_key = ndb.Key('Student', courseId + teacherId)
    teacher = teacher_key.get()

    message = Log(type='text', courseId=courseId, student=studentId)
    message.content = text
    message.teacher = teacherId
    message.put()

    newStudentMessage(courseId, studentId, {
        'student': teacherId,
        'courseId': courseId,
        'id': message.key.id(),
        'type': 'text',
        'content': text,
        'info': teacher.info(),
        'teacherinfo': student.info(),
        'date': DateTimeJSONEncoder().encode(message.date).replace('"', '')
    })
    newMessage(courseId, {
        'student': studentId,
        'courseId': courseId,
        'id': message.key.id(),
        'type': 'text',
        'content': text,
        'info': teacher.info(),
        'teacherinfo': student.info(),
        'date': DateTimeJSONEncoder().encode(message.date).replace('"', '')
    })
    return "Message received"
예제 #12
0
def new_student_message(lti=lti):
#def new_student_message():
    content = request.get_json(silent=True)
    logging.info(content)
    studentId = cgi.escape(content['studentId'])
    courseId = cgi.escape(content['courseId'])
    text = cgi.escape(content['text'])

    student_key = ndb.Key('Student', courseId + studentId)
    student = student_key.get()
    message = Log(type='text', courseId=courseId, student=studentId)
    message.content = text
    message.put()

    fullName = student.fullName if student else 'Unknown student'
    avatarUrl = student.avatarUrl if student else ''

    newStudentMessage(courseId, studentId, {
        'student': studentId,
        'courseId': courseId,
        'id': message.key.id(),
        'type': 'text',
        'content': text,
        'info': student.info(),
        'date': DateTimeJSONEncoder().encode(message.date).replace('"', '')
    })
    newMessage(courseId, {
        'student': studentId,
        'courseId': courseId,
        'id': message.key.id(),
        'type': 'text',
        'info': student.info(),
        'content': text,
        'date': DateTimeJSONEncoder().encode(message.date).replace('"', '')
    })
    return "Message received"