Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
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