def createSession(self, msg): logInfo("Could not find session with id:{0}. Creating new Session".format(msg.getContextValue(SESSION_ID_CONTEXT_KEY)), 3) userId = msg.getContextValue(USER_ID_CONTEXT_KEY) if userId is not None: student = self.retrieveStudentFromCacheOrDB(userId, msg, True) else: student = None session = DBSession(sessionId = msg.getContextValue(SESSION_ID_CONTEXT_KEY)) session.messageIds = [] session.hints = [] session.feedback = [] session.performance = {} session.startTime = datetime.utcnow().strftime(DATE_TIME_FORMAT) session.duration = 0 session.subtaskNumber = -1 session.id = msg.getContextValue(SESSION_ID_CONTEXT_KEY) session.task = msg.getContextValue(TASK_ID_CONTEXT_KEY) if session.task in self.taskASSISTmentsDictionary.keys(): session.task = self.taskASSISTmentsDictionary[session.task] if student is not None: student.sessionIds.append(session.id) session.students.append(student.studentId) student.save() session.save() self.sessionCache[session.id] = session return session
def _logMessage(self, msg): serializedMsg = serializeObject(msg) if len(serializedMsg) <= self._maxMsgSize and msg is not None: #incomingMsg = DBLoggedMessage(actor=msg.getActor(), verb=msg.getVerb(), object=msg.getObject(), result=msg.getResult(), speechAct=msg.getSpeechAct(), context=msg.getContext(), timestamp=msg.getTimestamp()) incomingMsg = DBLoggedMessage.convert(msg) incomingMsg.id = msg.getId() if msg.getVerb() != "Dump Logs" or msg.getVerb() != VALUE_VERB: incomingMsg.save() if msg.getVerb() == COMPLETED_VERB: #print(getKCsForUserAfterAGivenTime('p1', 'KC1',"2016-02-04T00:57:14.000Z")) #print(getAverageKCScoreAfterAGivenTime('p1', 'KC1', "2016-02-04T23:27:14.000Z")) #print(getTotalScoreForAGivenUserAndTask('p1', 'http://localhost:5533/QueryLogDebug.html?')) data = DBSession() data.task = 'http://localhost:5533/QueryLogDebug.html?' data.students = ['p1'] data.startTime = '2016-02-04T23:27:14.000Z' #performance = data.getFeedback(False) #print(performance) else: print("Message size too long for msg #: " + msg.getId())
def _logMessage(self, msg): serializedMsg = serializeObject(msg) if len(serializedMsg) <= self._maxMsgSize and msg is not None: #incomingMsg = DBLoggedMessage(actor=msg.getActor(), verb=msg.getVerb(), object=msg.getObject(), result=msg.getResult(), speechAct=msg.getSpeechAct(), context=msg.getContext(), timestamp=msg.getTimestamp()) incomingMsg = DBLoggedMessage.convert(msg) incomingMsg.id = msg.getId() if msg.getVerb() != "Dump Logs" or msg.getVerb() != VALUE_VERB: incomingMsg.save() if msg.getVerb() == COMPLETED_VERB: #print(getKCsForUserAfterAGivenTime('p1', 'KC1',"2016-02-04T00:57:14.000Z")) #print(getAverageKCScoreAfterAGivenTime('p1', 'KC1', "2016-02-04T23:27:14.000Z")) #print(getTotalScoreForAGivenUserAndTask('p1', 'http://localhost:5533/QueryLogDebug.html?')) data = DBSession() data.task = 'http://localhost:5533/QueryLogDebug.html?' data.students = ['p1'] data.startTime = '2016-02-04T23:27:14.000Z' #performance = data.getFeedback(False) #print(performance) else: print("Message size too long for msg #: " + msg.getId())