def genNoId(cmb, sql , first_item = '') : #sql should be designed to return two items 'id' and 'title' try: origional_str = fetch.cmbValue(cmb) except: origional_str = '' ##rint'origional_str', origional_str dataSet = fetch.getList(sql) #rint dataSet cmb.Freeze() # locks the combo so that other processes are not called cmb.Clear() try: if first_item: cmb.Append(first_item, 0) x = 1 for item in dataSet: #rint row cmb.Append(str(item), x) x += 1 #if x%10==0: rint x #restored = restore_str(cmb, origional_str) cmb.Thaw() if restored: return origional_str else: return 0 except: #rint 'load cmb error' return 0 cmb.Thaw()
def excul_subjectsPool(cmb, excul_id, edited_activity_id=0): # collect activity_ids for exculset_id sql = " SELECT es.id \ FROM excul_groups eg \ JOIN excul_subjects es ON es.id = eg.excul_subject_id \ WHERE eg.id = %d " % (excul_id, ) activityIDs = fetch.getList(sql) if edited_activity_id: l = [] for x in activityIDs: #rint x if not x == edited_activity_id: l.append(x) activityIDs = l activityIDs = [str(x) for x in activityIDs] #rint 'activityIDs',activityIDs listStr = "'%s'" % ','.join(activityIDs) sql = " SELECT id, name \ FROM excul_subjects \ WHERE NOT FIND_IN_SET(id, %s) \ ORDER BY name" % listStr #rint sql, fetch.getAllCol(sql) fillCmb(cmb, fetch.getAllCol(sql), 'without activity') restore(cmb, int(edited_activity_id))
def populate_list_ctrl_RegistrationsForSchYr(list_ctrl, schYr, filter=""): list_ctrl.DeleteAllItems() # rint 'populate_list_ctrl_RegistrationsForSchYr' sql = ( " SELECT s.id, first_name, booking_date, observation_date, \ offering_letter_date, admision_fee_date, c.name, \ FROM students s \ JOIN courses c ON s.enter_course_id = c.id \ WHERE s.exit_year <='%s' \ AND s.reg_year = %d \ %s \ ORDER BY s.id " % (gVar.schYr, schYr, filter) ) list = fetch.getList(sql) # rint sql, ' : ', list for row in list: student_id = row("s.id") index = list_ctrl.Append(str(student_id)) # key = student_id list_ctrl.SetStringItem(index, 0, str(student_id)) # display student_id list_ctrl.SetStringItem(index, 2, row["first_name"]) list_ctrl.SetStringItem(index, 3, row["cl.name"]) # form year admision_fee_date = row["admision_fee_date"] if admision_fee_date == True: status = "accepted" else: status = "rejected" list_ctrl.SetStringItem(index, 4, status) # Status list_ctrl.SetStringItem(index, 5, row["booking_date"]) # booking_date list_ctrl.SetStringItem(index, 6, row["observation_date"]) # observation_date list_ctrl.SetStringItem(index, 6, row["offering_letter_date"]) # offering_letter_date list_ctrl.SetStringItem(index, 7, admision_fee_date) # admission_fee_date decorateBanding(list_ctrl) return
def showData(self): """ TYPE CLASSNAME CURRENT_POPULATION LEAVING RETAKE CONTINUE TOTAL CLASS_SIZE CLASSES PENDING_BOOKINGS notes heading CLASSNAME CURRENT_POPULATION LEAVING RETAKE CONTINUE kelas ClassName CurrentPopulation Leaving Retake Continue kelas ClassName CurrentPopulation Leaving Retake Continue tot Totals CurrentPopulation Leaving Retake Continue heading NEXTCLASSNAME NEW CONTINUE TOTAL CLASS_SIZE CLASSES PENDING_BOOKINGS course nextclassname New Continue tot Pending_Bookings course nextclassname New Continue tot Pending_Bookings space """ mylist = [] mylist.append(("TYPE", "FORM NAME", "POP.NOW", "OUT", "RETAKE", "CONT.", "TOTAL", "FORM SIZE", "FORMS", "PENDING BOOKINGS", "NOTES") ) # list of course ids for year sql ="SELECT courses \ FROM courses_by_year \ WHERE schYr = %s" % gVar.schYr course_ids = fetch.getList(sql) sql ="SELECT level \ FROM courses_levels \ ORDER BY course_level" course_levels = fetch.getList(sql) for level in course_levels: for course_id in course_ids: sql ="SELECT id, name, school_id \ FROM courses \ WHERE level=%d AND id =%d" % (int(level), int(course_id)) res = fetch.getAllDict(sql) for row in res: mylist.append(row) #rintmylist for level in range(3,20): # show last years classes & students sql ="SELECT id, name, school_id \ FROM forms \ WHERE level=%d AND schYr =%d" % (level, gVar.schYr-1) forms = fetch.getAllDict(sql) level_totals =[0,0,0,0,0] for myForm in forms: form_id = myForm[0] now = fetch.formPopulation(form_id) #GetClassPopulation level_totals[0]+=now cont = 4 #GetRereg level_totals[1]+=cont out = 2 #GetStudentsLeaving level_totals[2]+=out redo = 1 #GetStudentsRetaking level_totals[3]+=redo subtot = cont-out+redo level_totals[4]+=subtot index = self.listCtrl.Append((myForm[1], now, cont, out, redo, subtot)) self.listCtrl.SetItemData(index, form_id) self.listCtrl.Append(('Totals', str(level_totals[0]), str(level_totals[1]), str(level_totals[2]), str(level_totals[3]), str(level_totals[4]))) # list of Kelas for this sch yr sql ="SELECT c.id, c.name \ FROM courses c \ JOIN students ON s.join_course_id = c.id) \ WHERE s.register_schYr = %d AND c.level=%d" % (gVar.schYr, level ) res2 = fetch.getAllDict(sql) for row in res2: self.listCtrl.Append(('New reg','','','')) #sql ="SELECT * FROM cSiswa WHERE TahunAjaran = %d AND Kelas =%d" % (gVar.schYr, ) return for course_id in results: sql ="SELECT id, school_id, level, name \ FROM courses \ WHERE id =%d" % int(course_id) course = fetch.getOneDict(sql) mylist.append(course) mylist.sort(key=lambda tup: tup[1]) mylist = [(tup[1], tup) for tup in mylist] school_ids = list(set(mylist)) sql ="SELECT level, name \ FROM courses \ ORDER BY level, name" results = fetch.getAllDict(sql)