Example #1
0
 def handle_job(self):
     utc = datetime.utcnow()
     for tz, offset in _tz_offsets.items():
         time = datetime(utc.year, utc.month, utc.day,
                         utc.hour) + timedelta(hours=offset)
         logging.info("Checking for sweep at: " + str(time) + " with tz: " +
                      tz)
         sweeps = AutoSweep.query(AutoSweep.time == time,
                                  AutoSweep.tz == tz)
         for sweep in sweeps:
             logging.info(sweep)
             leader_email = sweep.key.parent().string_id()
             team_leader = RoseboticsStudent.get_by_id(leader_email)
             try:
                 export_student_name = len(
                     str(sweep.options.get("student_name", ""))) > 0
                 export_rose_username = len(
                     str(sweep.options.get("rose_username", ""))) > 0
                 team_urlsafe = sweep.team_key.urlsafe()
                 timezone = sweep.options.get("timezone") or sweep.tz
                 course_progress = len(
                     str(sweep.options.get("course_progress", ""))) > 0
                 track_progress = len(
                     str(sweep.options.get("track_progress", ""))) > 0
                 unit_points = len(str(sweep.options.get("ppu", ""))) > 0
                 ppu = float(sweep.options.get("ppu", "1"))
                 ppt = float(sweep.options.get("ppt", "1"))
                 csv_data = get_csv_export_lists(team_leader, team_urlsafe,
                                                 export_student_name,
                                                 export_rose_username,
                                                 unit_points, ppu, ppt,
                                                 course_progress,
                                                 track_progress, timezone)
                 self.response.headers['Content-Type'] = 'application/csv'
                 mem_stream = StringIO.StringIO()
                 writer = csv.writer(mem_stream)
                 for csv_row in csv_data:
                     writer.writerow(csv_row)
                 self.send_email_with_attachment(
                     leader_email, "You've received an AutoSweep!",
                     mem_stream.getvalue())
                 mem_stream.close()
             except Exception, e:
                 import traceback
                 traceback.print_exc()
                 logging.error(e)
                 self.send_email(
                     leader_email,
                     "ERROR: Sorry there was an error generating your AutoSweep"
                 )
Example #2
0
 def handle_post(self, rosebotics_student):
   export_student_name = len(self.request.get("student_name")) > 0
   export_rose_username = len(self.request.get("rose_username")) > 0
   team_urlsafe = self.request.get("team_urlsafe")
   timezone = self.request.get("timezone")
   course_progress = len(self.request.get("course_progress")) > 0
   track_progress = len(self.request.get("track_progress")) > 0
   unit_points = len(self.request.get("ppu")) > 0
   ppu = float(self.request.get("ppu", "1"))
   ppt = float(self.request.get("ppt", "1"))
   csv_data = get_csv_export_lists(rosebotics_student, team_urlsafe, export_student_name, export_rose_username, unit_points, ppu, ppt, course_progress, track_progress, timezone)
   self.response.headers['Content-Type'] = 'application/csv'
   writer = csv.writer(self.response.out)
   for csv_row in csv_data:
     writer.writerow(csv_row)
Example #3
0
 def handle_post(self, rosebotics_student):
     export_student_name = len(self.request.get("student_name")) > 0
     export_rose_username = len(self.request.get("rose_username")) > 0
     team_urlsafe = self.request.get("team_urlsafe")
     timezone = self.request.get("timezone")
     course_progress = len(self.request.get("course_progress")) > 0
     track_progress = len(self.request.get("track_progress")) > 0
     unit_points = len(self.request.get("ppu")) > 0
     ppu = float(self.request.get("ppu", "1"))
     ppt = float(self.request.get("ppt", "1"))
     csv_data = get_csv_export_lists(rosebotics_student, team_urlsafe,
                                     export_student_name,
                                     export_rose_username, unit_points, ppu,
                                     ppt, course_progress, track_progress,
                                     timezone)
     self.response.headers['Content-Type'] = 'application/csv'
     writer = csv.writer(self.response.out)
     for csv_row in csv_data:
         writer.writerow(csv_row)