コード例 #1
0
ファイル: request.py プロジェクト: MarkLalor/Tutoring-Log
 def statisticsJSON(should_reload=False):
     #Retrieved cached value
     data = memcache.get('statistics')
     if data is None or should_reload:        
         summary = json.loads(Request.tutorSummaryJSON())
         
         statistics = {}
         
         statistics['members'] = len(summary)
         statistics['sessions'] = sum([entry[1] for entry in summary])
         statistics['minutes'] = sum([entry[3] for entry in summary])
         
         
         last_month = date.today() - timedelta(30)
         last_week = date.today() - timedelta(7)
         last_day = date.today() - timedelta(1)
         
         query = TutoringSession.all()
         query.filter('date_tutored >=', last_week)
         statistics['week'] = query.count(limit=10000)
         
         query.filter('date_tutored >=', last_day)
         statistics['yesterday'] = query.count(limit=10000)
         
         tutors = json.loads(Request.tutorsJSON())
         emails = [item[2] for item in tutors]
         
         statistics['none_month'] = []
         for email in emails:
             query = TutoringSession.all()
             query.filter('tutor_email =', email)
             query.filter('date_tutored >=', last_month)
             if query.count(limit=1) == 0:
                 statistics['none_month'].append(email)
                 
         statistics['top_tutor'] = [None]*3
         minutes_max = 0
         for tutor in tutors:
             email = tutor[2]
             sessions = json.loads(Request.sessionDataJSON('tutor', email))
             minutes = sum([session[7] for session in sessions])
             if minutes > minutes_max:
                 minutes_max = minutes
                 statistics['top_tutor'][0] = tutor[1] + ' ' + tutor[0]
                 statistics['top_tutor'][1] = email
                 statistics['top_tutor'][2] = minutes
                 
                 
         tutees = json.loads(Request.tuteesJSON())
         statistics['tutees'] =  len(tutees)
         
         data = json.dumps(statistics)
         memcache.add('statistics', data, 3600)
     
     return data
コード例 #2
0
    def statisticsJSON(should_reload=False):
        #Retrieved cached value
        data = memcache.get('statistics')
        if data is None or should_reload:
            summary = json.loads(Request.tutorSummaryJSON())

            statistics = {}

            statistics['members'] = len(summary)
            statistics['sessions'] = sum([entry[1] for entry in summary])
            statistics['minutes'] = sum([entry[3] for entry in summary])

            last_month = date.today() - timedelta(30)
            last_week = date.today() - timedelta(7)
            last_day = date.today() - timedelta(1)

            query = TutoringSession.all()
            query.filter('date_tutored >=', last_week)
            statistics['week'] = query.count(limit=10000)

            query.filter('date_tutored >=', last_day)
            statistics['yesterday'] = query.count(limit=10000)

            tutors = json.loads(Request.tutorsJSON())
            emails = [item[2] for item in tutors]

            statistics['none_month'] = []
            for email in emails:
                query = TutoringSession.all()
                query.filter('tutor_email =', email)
                query.filter('date_tutored >=', last_month)
                if query.count(limit=1) == 0:
                    statistics['none_month'].append(email)

            statistics['top_tutor'] = [None] * 3
            minutes_max = 0
            for tutor in tutors:
                email = tutor[2]
                sessions = json.loads(Request.sessionDataJSON('tutor', email))
                minutes = sum([session[7] for session in sessions])
                if minutes > minutes_max:
                    minutes_max = minutes
                    statistics['top_tutor'][0] = tutor[1] + ' ' + tutor[0]
                    statistics['top_tutor'][1] = email
                    statistics['top_tutor'][2] = minutes

            tutees = json.loads(Request.tuteesJSON())
            statistics['tutees'] = len(tutees)

            data = json.dumps(statistics)
            memcache.add('statistics', data, 3600)

        return data
コード例 #3
0
 def sessionDataJSON(which, email, should_reload=False):
     key = which + '_data_' + email
     data = memcache.get(key)
     if data is None or should_reload:
         print 'Reloading "' + key + '"'
         query = TutoringSession.all()
         query.filter(which + '_email', email)
         query.order("date_tutored")
         sessions = []
         for session in query.run(batch_size=2000):
             sessions.append(session.to_list())
         data = json.dumps(sessions)
         memcache.add(key=key, value=data, time=300)  #5 minutes per student
     return data
コード例 #4
0
ファイル: request.py プロジェクト: MarkLalor/Tutoring-Log
 def sessionDataJSON(which, email, should_reload=False):
     key = which + '_data_' + email
     data = memcache.get(key)
     if data is None or should_reload:
         print 'Reloading "' + key + '"'
         query = TutoringSession.all()
         query.filter(which + '_email', email)
         query.order("date_tutored")
         sessions = []
         for session in query.run(batch_size=2000):
             sessions.append(session.to_list())
         data = json.dumps(sessions)
         memcache.add(key=key, value=data, time=300) #5 minutes per student
     return data
コード例 #5
0
 def tutorDataJSON(self, email, should_reload=False):
     key = 'tutor_data_' + email
     data = memcache.get(key)
     if data is None or should_reload:
         print "Reloading... " + key
         q = TutoringSession.all()
         q.filter("tutor_email", email)
         q.order("date_tutored")
         compiled = {}
         for p in q.run(limit=2000):
             session_dict = p.to_dict()
             for k in session_dict.keys():
                 if not k in compiled:
                     compiled[k] = []
                 compiled[k].append(session_dict[k])
         data = json.dumps(compiled)
         memcache.add(key=key, value=data, time=300)  #5 minutes per student
     return data
コード例 #6
0
ファイル: request.py プロジェクト: MarkLalor/Tutoring-Log
 def tutorDataJSON(self, email, should_reload=False):
     key = 'tutor_data_' + email
     data = memcache.get(key)
     if data is None or should_reload:
         print "Reloading... " + key
         q = TutoringSession.all()
         q.filter("tutor_email", email)
         q.order("date_tutored")
         compiled = {}
         for p in q.run(limit=2000):
             session_dict = p.to_dict()
             for k in session_dict.keys():
                 if not k in compiled:
                     compiled[k] = []
                 compiled[k].append(session_dict[k])
         data = json.dumps(compiled)
         memcache.add(key=key, value=data, time=300) #5 minutes per student
     return data