def get_data(self,students,get_all=True, year=-1): """Returns list of students with student data information""" print 'From year:', (str(year)+'-'+str(year+1)) print 'From title:',self.s.title # Check if year is requested year if year != -1 and (str(year)+'-'+str(year+1)) != self.s.title: return for row in range(self.header_row+1,self.s.get_highest_row()+1): rowID = 0 val1 = self.s.cell(row=row,column=self.id_column).value if self.s.cell(row=row,column=self.id_column).data_type == 's': # remove hyphens val1 = val1.replace('-','') rowID = atoi(val1) else: rowID = int(val1) student = find_by_id(students,rowID) if student is None: if get_all: student = Student() students.append(student) else: continue # Get ID and year student.stuID = rowID student.set_hs_grade(int(self.s.cell(row=row,column=self.grade_column).value)) # Get Name student.last = str(self.s.cell(row=row,column=self.last_column).value) student.first = str(self.s.cell(row=row,column=self.first_column).value) # DOB if str(self.s.cell(row=row,column=self.dob_column).value) == "None": student.dob = "" else: time_tuple = time.strptime(str(self.s.cell(row=row,column=self.dob_column).value),"%Y-%m-%d %H:%M:%S") student.dob = str(time_tuple.tm_mon)+"/"+str(time_tuple.tm_mday)+"/"+str(time_tuple.tm_year)
def ReadMaster(docsFile, students,sections,target_grade = -1): gd_client = gdata.spreadsheet.service.SpreadsheetsService() email = raw_input('Enter DP username: (omit @democracyprep.org) ') email += '@democracyprep.org' gd_client.email = email passwd = getpass.getpass(prompt='Enter Password: '******'DPGoogleSheet' gd_client.source = 'MasterSchedule' gd_client.ProgrammaticLogin() q = gdata.spreadsheet.service.DocumentQuery() q['title'] = docsFile q['title-exact'] = 'true' feed = gd_client.GetSpreadsheetsFeed(query=q) spreadsheet_id = feed.entry[0].id.text.rsplit('/',1)[1] feed = gd_client.GetWorksheetsFeed(spreadsheet_id) worksheet_id = feed.entry[0].id.text.rsplit('/',1)[1] for worksheet in feed.entry: if 'MonThurSections' in str(worksheet.title): worksheet_id = worksheet.id.text.rsplit('/',1)[1] rows = gd_client.GetListFeed(spreadsheet_id, worksheet_id).entry for row in rows: #for key in row.custom: # print " %s: %s" % (key, row.custom[key].text) title = row.custom['course'].text grades = row.custom['primarygrade'].text period = row.custom['period'].text subject = 'all' teacher = row.custom['teacher'].text if teacher == None: teacher = '-' room = row.custom['classroom'].text sections.append(Section(title=title,subject=subject,teacher=teacher,period=int(period),room=room)) for worksheet in feed.entry: if 'FridaySection' in str(worksheet.title): worksheet_id = worksheet.id.text.rsplit('/',1)[1] rows = gd_client.GetListFeed(spreadsheet_id, worksheet_id).entry for row in rows: title = row.custom['course'].text grades = row.custom['primarygrade'].text period = row.custom['period'].text subject = 'all' teacher = row.custom['teacher'].text if teacher == None: teacher = '-' room = row.custom['classroom'].text sections.append(Section(title=title,subject=subject,teacher=teacher,period=int(period),room=room, friday=True)) for worksheet in feed.entry: if 'Students' in str(worksheet.title): worksheet_id = worksheet.id.text.rsplit('/',1)[1] rows = gd_client.GetListFeed(spreadsheet_id, worksheet_id).entry for row in rows: #for key in row.custom: # print " %s: %s" % (key, row.custom[key].text) grade = row.custom['grade'].text if 'Leave' in grade: continue #if grade != target_grade and target_grade != -1: continue ID = row.custom['studentid'].text last = row.custom['lastname'].text first = row.custom['firstname'].text advisor = row.custom['advisor'].text homeroom = row.custom['homeroom'].text student = Student(stuID=ID,last=last,first=first,homeroom=homeroom,advisor=advisor) student.set_hs_grade(grade) students.append(student) for period in xrange(1,10): sec_title = row.custom['period'+str(period)].text if sec_title == None: continue sec_found = False for section in sections: if sec_title == section.title and period == section.period and not section.is_friday: section.students.append(student) student.schedule[period-1] = section sec_found = True if not sec_found: print 'WARNING: ',sec_title, 'not found in section catalog.' tmp_section = Section(title=sec_title,subject='all',teacher='',period=int(period)) student.schedule[period-1] = tmp_section for period in xrange(1,7): sec_title = row.custom['fridayperiod'+str(period)].text sec_found = False for section in sections: if sec_title == section.title and period == section.period and section.is_friday: section.students.append(student) student.friday_schedule[period-1] = section sec_found = True if not sec_found: print 'WARNING: ',sec_title, 'not found in friday section catalog.' tmp_section = Section(title=sec_title,subject='all',teacher='',period=int(period),friday=True) student.friday_schedule[period-1] = tmp_section