Example #1
0
 def tutorsJSON(should_reload=False):
     #Retrieved cached value
     data = memcache.get('tutors')
     if data is None or should_reload:
         #Load data if not cached
         query = Tutor.all()
         query.order('last')
         #Empty tutors list.
         tutors = []
         #Iterate through all the database results.
         for tutor in query.run(batch_size=200):
             #Add the tutor list data to the tutors list.
             tutors.append(tutor.to_list())
         #Create JSON string to store in memcache.
         data = json.dumps(tutors)
         #Add to cache
         memcache.add('tutors', data, 3600)
     #Return created or cached data
     return data
Example #2
0
 def tutorsJSON(should_reload=False):
     #Retrieved cached value
     data = memcache.get('tutors')
     if data is None or should_reload:
         #Load data if not cached
         query = Tutor.all()
         query.order('last')
         #Empty tutors list.
         tutors = []
         #Iterate through all the database results.
         for tutor in query.run(batch_size=200):
             #Add the tutor list data to the tutors list.
             tutors.append(tutor.to_list())
         #Create JSON string to store in memcache.
         data = json.dumps(tutors)
         #Add to cache
         memcache.add('tutors', data, 3600)
     #Return created or cached data
     return data
Example #3
0
    def get(self):
        if not users.is_current_user_admin():
            return

        ### Database queries ###
        data_query = self.request.get('data')
        if 'data' in self.request.GET:
            if data_query == 'tutor':
                if self.request.get('type') == 'csv':
                    data = json.loads(
                        Request.sessionDataJSON('tutor',
                                                self.request.get('email')))
                    if not data:
                        self.response.out.write("No data")
                        return

                    #CSV filetype / filename headers.
                    self.response.headers['Content-Type'] = 'application/csv'
                    self.response.headers['Content-Disposition'] = str(
                        'attachment; filename="' + data[0][0] + '_' +
                        data[0][1] + '_' + data[0][2] + '.csv"')

                    #Create the CSV writer
                    writer = csv.writer(self.response.out)

                    head = [
                        "Tutee Name", "Tutee Email", "Subject", "Date Tutored",
                        "Minutes", "Satisfaction", "Comments", "ID"
                    ]
                    keys = [3, 4, 8, 6, 7, 9, 10, 11]

                    writer.writerow(head)
                    entries = len(data)
                    for i in range(0, entries):
                        row = []
                        for key in keys:
                            row.append(data[i][key])
                        writer.writerow(row)
                elif self.request.get('type') == 'pdf':
                    data = json.loads(
                        Request.sessionDataJSON('tutor',
                                                self.request.get('email')))
                    self.response.headers['Content-Type'] = 'application/pdf'
                    output = StringIO()
                    pdf = pisa.CreatePDF(Request.tutorJSONtoPDF(data),
                                         output,
                                         encoding='utf-8')
                    pdf_data = pdf.dest.getvalue()
                    self.response.out.write(pdf_data)
                else:
                    self.response.out.write(
                        Request.sessionDataJSON('tutor',
                                                self.request.get('email')))
                    #OLD self.response.out.write(self.tutorDataJSON(self.request.get('email')))
            elif data_query == 'tutee':
                if self.request.get('type') == 'csv':
                    self.response.out.write("none")
                elif self.request.get('type') == 'pdf':
                    self.response.out.write("none")
                else:
                    self.response.out.write(
                        Request.sessionDataJSON('tutee',
                                                self.request.get('email')))

        if 'tutors' in self.request.GET:
            self.response.out.write(Request.tutorsJSON())
        elif 'tutees' in self.request.GET:
            self.response.out.write(Request.tuteesJSON())
        elif 'refreshtutors' in self.request.GET:
            q = db.GqlQuery("SELECT * FROM Tutor")
            for p in q.run():
                p.delete()
            tutors_file = open("static/tutors.csv", "r")
            reader = csv.reader(tutors_file)
            for line in reader:
                print line
                tutor = Tutor(last=line[0], first=line[1], email=line[2])
                tutor.put()
        elif 'summary' in self.request.GET:
            self.response.headers['Content-Type'] = 'application/pdf'
            output = StringIO()
            pdf = pisa.CreatePDF(Request.summaryPDF(),
                                 output,
                                 encoding='utf-8')
            pdf_data = pdf.dest.getvalue()
            self.response.out.write(pdf_data)
        elif 'statistics' in self.request.GET:
            self.response.out.write(Request.statisticsJSON())
Example #4
0
 def get(self):
     if not users.is_current_user_admin():
         return
     
     ### Database queries ###
     data_query = self.request.get('data')
     if 'data' in self.request.GET:
         if data_query == 'tutor':
             if self.request.get('type') == 'csv':
                 data = json.loads(Request.sessionDataJSON('tutor', self.request.get('email')))
                 if not data:
                     self.response.out.write("No data")
                     return
                 
                 #CSV filetype / filename headers.
                 self.response.headers['Content-Type'] = 'application/csv'
                 self.response.headers['Content-Disposition'] = str('attachment; filename="' + data[0][0] + '_' + data[0][1] + '_' + data[0][2] + '.csv"')
                 
                 #Create the CSV writer
                 writer = csv.writer(self.response.out)
                 
                 head = ["Tutee Name", "Tutee Email", "Subject", "Date Tutored", "Minutes", "Satisfaction", "Comments", "ID"];
                 keys = [3,            4,             8,         6,              7,         9,              10,         11];
                 
                 writer.writerow(head)
                 entries = len(data)
                 for i in range(0, entries):
                     row = [];
                     for key in keys:
                         row.append(data[i][key])
                     writer.writerow(row)
             elif self.request.get('type') == 'pdf':
                 data = json.loads(Request.sessionDataJSON('tutor', self.request.get('email')))
                 self.response.headers['Content-Type'] = 'application/pdf'
                 output = StringIO()
                 pdf = pisa.CreatePDF(Request.tutorJSONtoPDF(data), output, encoding='utf-8')
                 pdf_data = pdf.dest.getvalue()
                 self.response.out.write(pdf_data)
             else:
                 self.response.out.write(Request.sessionDataJSON('tutor', self.request.get('email')))
                 #OLD self.response.out.write(self.tutorDataJSON(self.request.get('email'))) 
         elif data_query == 'tutee':
             if self.request.get('type') == 'csv':
                 self.response.out.write("none")
             elif self.request.get('type') == 'pdf':
                 self.response.out.write("none")
             else:
                 self.response.out.write(Request.sessionDataJSON('tutee', self.request.get('email')))
             
     if 'tutors' in self.request.GET:
         self.response.out.write(Request.tutorsJSON())
     elif 'tutees' in self.request.GET:
         self.response.out.write(Request.tuteesJSON())
     elif 'refreshtutors' in self.request.GET:
         q = db.GqlQuery("SELECT * FROM Tutor")
         for p in q.run():
             p.delete()
         tutors_file = open("static/tutors.csv", "r")
         reader = csv.reader(tutors_file)
         for line in reader:
             print line
             tutor = Tutor(last=line[0], first=line[1], email=line[2])
             tutor.put()
     elif 'summary' in self.request.GET:
         self.response.headers['Content-Type'] = 'application/pdf'
         output = StringIO()
         pdf = pisa.CreatePDF(Request.summaryPDF(), output, encoding='utf-8')
         pdf_data = pdf.dest.getvalue()
         self.response.out.write(pdf_data)
     elif 'statistics' in self.request.GET:
         self.response.out.write(Request.statisticsJSON())