def button_click(self, a): # shost is a QString object arr = {} arr['schno'] = self.schnoData.text() arr['surname'] = self.surnameData.text() arr['firstname'] = self.firstnameData.text() arr['othername'] = self.middlenameData.text() arr['soo'] = self.sooData.text() arr['lga'] = self.lgaData.text() arr['addr'] = self.addrData.toPlainText() dob = self.dobData.date() arr['dob'] = dob.toPyDate() admit = self.admitData.date() arr['admit'] = admit.toPyDate() arr['active'] = 0 if self.r1.isChecked(): arr['gender'] = 0 else: arr['gender'] = 1 self.a = a g = Db() if ((arr['surname']) and (arr['firstname']) and (arr['schno'])): h = g.insert('students', arr) self.contFill(h)
def button_click(self, b): # shost is a QString object b.close() sid = self.sid mid = self.mid s2 = self.le2.text() s1 = self.le.itemData(self.le.currentIndex()) g = Db() try: if (int(s2) > 0): y = {'name': s1, 'abbrv': s2} z = {'id': mid} g.update('datas', y, z) else: pass except: pass try: self.lunchForm() except: pass try: self.close() except: pass
def button_click(self, a, b): # shost is a QString object b.close() self.a = a s1 = self.le.text() g = Db() try: if(len(s1) > 0): y = { 'name':s1, 'sessionID':self.a, 'start_date':s2, 'end_date':s3, 'active':0} z = g.insert('terms', y) if z and z > 0: g.createClass(z) g.createFee(z) g.createResult(z) else: pass except: pass try: self.lunchForm(self.a) except: pass try: self.close() except: pass
def subjectAverage(self, session, student, ca, subject): #get student class db = 'student_class' + str(session) cn = Db() cl = cn.selectn(db, '', 1, {'studentID': student}) scla = cl['classID'] scl = StudentTable(session, student, [], scla) #get all alass mates studentsIDs = scl.classStudents() student_id = [] for dx in studentsIDs: student_id.append(dx[0]) dat = self.allSubjects(session, student_id, subject, ca) df = pd.DataFrame.from_dict(dat) ret = {} for x in subject: dy = df.loc[df['subjectID'] == x] me = dy['score'].mean() co = dy['score'].count() dx = dy.set_index('studentID') dx = dx.sort_values('score', ascending=False) dx = dx.reset_index() dx = dx.index[dx['studentID'] == int(student)] dx = dx.values.tolist() ran = dx[0] + 1 arr = [round(me, 2), co, ran] ret[x] = arr return ret
def button_edit(self): row = self.getSelected() currentDate = QDate() if row: self.editrow = row g = Db() if self.sessionMain: data = g.selectn('session', '', 1, {'id': row}) data_name = str(data['name']) self.groupBox2.setTitle('Edit') self.sessionID = False else: data = g.selectn('terms', '', 1, {'id': row}) data_sess = g.selectn('session', '', 1, {'id': data['sessionID']}) data_name = str(data['name']) self.sessionID = data['sessionID'] self.groupBox2.setTitle('Edit ' + str(data_sess['name'])) try: self.le1.setText(data_name) except: self.le1.setText('') try: self.fromData.setDate(data['start_date']) except: self.fromData.setDate(currentDate.currentDate()) try: self.toData.setDate(data['end_date']) except: self.toData.setDate(currentDate.currentDate()) self.pb.hide() self.pb4.show()
def button_click(self): tex = ' Please wait processing, do not cancel or close..' self.feesPop.setText(tex) _term = self.term _class = self.cla _students = self.students _amount = self.feesAmount.text() _fee = self.hol[self.feesCombo.currentIndex()] for j in _class: data = {} data['pubID'] = 'fee' data['subID'] = _term data['abbrv'] = _fee data['name'] = j cn = Db() feeStudent = self.feeStudents(_term, _students, _fee, _amount) check = cn.selectn('datas', '', 1, data) if (check and check['id'] == 0): pass else: data['description'] = _amount cn.insert('datas', data) ins = feeStudent tex = ' TOTAL of ' + str(ins) + ' inserted' self.feesPop.setText(tex)
def button_add(self): s1 = self.le1.text() _datef = self.fromData.date().toPyDate() _datef = time.mktime(_datef.timetuple()) _datee = self.toData.date().toPyDate() _datee = time.mktime(_datee.timetuple()) g = Db() if self.sessionID and self.sessionID > 0: try: if (len(s1) > 0): y = { 'name': s1.lower(), 'start_date': _datef, 'sessionID': self.sessionID, 'end_date': _datee, 'active': 0 } z = g.insert('terms', y) if z and z > 0: g.createClass(z) g.createSubject(z) g.createFee(z) g.createPay(z) g.createResult(z) g.createAffective(z) g.createPsychomoto(z) self.makeTree() self.button_reset() self.par.menuSession() self.par.dropdownSession() else: pass except: pass else: try: if (len(s1) > 0): y = { 'name': s1.lower(), 'start_date': _datef, 'end_date': _datee, 'active': 0 } z = g.insert('session', y) if z and z > 0: g.createExpenses(z) g.createStores(z) g.createAwards(z) g.createConducts(z) g.createMails(z) g.createMedicals(z) self.makeTree() self.button_reset() self.par.menuSession() self.par.dropdownSession() else: pass except: pass
def setActive(self): g = Db() for i in self.hold_data: if self.hold_data[i].checkState(0) == Qt.Checked: g.update('datas', {'active': 0}, {'id': i}) else: g.update('datas', {'active': 1}, {'id': i})
def getSelection(self): self.le1.clear() currentDate = QDate() self.fromData.setDate(currentDate.currentDate()) self.toData.setDate(currentDate.currentDate()) self.sessionMain = False if self.hold_data_add['addnew'].isSelected(): self.groupBox2.setTitle('Add New') self.groupBox2.show() self.sessionMain = True self.sessionID = False else: self.sessionMain = False r = None for i in self.hold_data_add_item: if self.hold_data_add_item[i].isSelected(): r = i if r: g = Db() v = g.selectn('session', '', 1, {'id': r}) vname = str(v['name']).upper() + ' Session' self.groupBox2.setTitle('ADD ' + str(vname) + ' Term') self.sessionID = r self.groupBox2.show() else: self.groupBox2.setTitle('Add') self.sessionID = False self.groupBox2.hide()
def studentAverageUnit(self, session, student, ca, subject): #get student class db = 'student_class' + str(session) cn = Db() cl = cn.selectn(db, '', 1, {'studentID': student}) scla = cl['classID'] ar = [] ar.append(scla) scl = StudentTable(session, [None], [None], ar) #get all alass mates studentsIDs = scl.classUnitStudent() student_id = [] for dx in studentsIDs: student_id.append(dx[0]) dat = self.allStudents(session, student_id, subject, ca) dy = pd.DataFrame.from_dict(dat) me = dy['score'].mean() co = dy['score'].count() dx = dy.set_index('studentID') dx = dx.sort_values('score', ascending=False) dx = dx.reset_index() dx = dx.index[dx['studentID'] == int(student)] dx = dx.values.tolist() ran = dx[0] + 1 arr = [round(me, 2), co, ran] return arr
def button_click(self, b): # shost is a QString object b.close() sid = self.sid s2 = self.le2.text() s1 = self.le.itemData(self.le.currentIndex()) g = Db() try: if (int(s2) > 0): y = { 'name': s1, 'subID': sid, 'pubID': 'ca', 'abbrv': s2, 'active': 0 } h = g.insert('datas', y) else: pass except: pass try: self.lunchForm() except: pass try: self.close() except: pass
def button_click(self): g = Db() g.createDatas() g.createStudent() g.createSession() g.createTerm() for z in self.sessions: g.createExpenses(z) g.createStores(z) g.createAwards(z) g.createConducts(z) g.createMails(z) g.createMedicals(z) arr = g.selectn('terms', '', '', {'id':z}) for t1 in arr: t = t1['id'] g.createClass(t) g.createSubject(t) g.createFee(t) g.createPay(t) g.createResult(t) g.createAffective(t) g.createPsychomoto(t) for c in self.list_data: try: g.replacePandas(c) except: pass off = OfflineDialog() off.clearFolder()
def button_click(self, a, b): # shost is a QString object b.close() self.a = a s1 = self.le.text() s2 = self.le2.text() g = Db() try: if (len(s1) > 0 and len(s2) > 0): y = { 'name': s1, 'abbrv': s2, 'pubID': 16, 'subID': self.a, 'description': 0l, 'active': 0 } g.insert('datas', y) else: pass except: pass try: self.lunchForm(self.a) except: pass try: self.close() except: pass
def button_click(self, a): # shost is a QString object a.close() s1 = self.le.text() s2 = self.le2.text() g = Db() try: if (len(s1) > 0) and (len(s2) > 0): y = { 'name': s1.lower(), 'abbrv': s2.lower(), 'pubID': 15, 'active': 0 } g.insert('datas', y) else: pass except: pass try: self.lunchForm() except: pass try: self.close() except: pass
def editRow(self, a): _session = self.session g = Db() db = 'school_expenses' + str(_session) data = g.selectn(db, '', 1, {'id': a}) if len(data) > 0: self.editID = int(data['id']) if float(data['amount']) < 0: amt = float(data['amount']) * -1 self.amountData.setText(str(amt)) self.r1.setChecked(True) else: amt = float(data['amount']) self.amountData.setText(str(amt)) self.r2.setChecked(True) self.descriptionData.clear() self.descriptionData.insertPlainText(str(data['description'])) self.tellerData.setText(str(data['teller'])) acID = self.hold_account.keys()[self.hold_account.values().index( data['accountID'])] self.accountData.setCurrentIndex(acID) exID = self.hold_expenses.keys()[self.hold_expenses.values().index( data['expenseID'])] self.expenseData.setCurrentIndex(exID)
def button_click(self): _session = self.session _amount = self.amountData.text() _teller = self.tellerData.text() _date = self.dateData.date().toPyDate() _date = time.mktime(_date.timetuple()) _description = self.descriptionData.toPlainText() _account = self.hold_account[self.accountData.currentIndex()] _expense = self.hold_expenses[self.expenseData.currentIndex()] if self.r1.isChecked(): _amount = float(_amount) else: _amount = float(_amount) * -1 arr = {} if _amount and not (_amount == 0) and int(_expense) > 0 and int(_account) > 0: arr['amount'] = _amount arr['datepaid'] = _date arr['description'] = _description arr['accountID'] = _account arr['expenseID'] = _expense arr['teller'] = _teller db = 'school_expenses' + str(_session) g = Db() ins = g.insert(db, arr) if int(ins) > 0: self.button_reset()
def button_add(self): s1 = self.le1.text() s2 = self.le2.text() g = Db() try: if (len(s1) > 0) and (len(s2) > 0): if self.sessionMain == 0: y = { 'name': s1.lower(), 'abbrv': s2.lower(), 'pubID': self.titleID, 'active': 0 } else: y = { 'name': s1.lower(), 'abbrv': s2.lower(), 'subID': self.sessionMain, 'pubID': self.titleIDx, 'active': 0 } g.insert('datas', y) self.makeTree() self.button_reset() if self.titleID == 1: #if class was changed only relod class menu on main window self.par.menuStudent() self.par.dropdownStudent() else: pass except: pass
def feeStudentsUpdate(self, session, students, fee, amount, sid): db = 'student_fee' + str(session) cn = Db() ed = [] ed1 = [] for s in students: datas = {} datas['studentID'] = s datas['feeID'] = fee #datas['active'] = sid data = {} data['studentID'] = s data['feeID'] = fee data['amount'] = amount data['active'] = sid e = cn.update(db, data, datas) if e == 1: ed1.append(e) else: e = cn.insert(db, data) ed.append(e) return [len(ed), len(ed1)]
def reloadBorrowed(self): self.getQuantity() _store = self.hold_store[self.storeData.currentIndex()] _session = self.session g = Db() db = 'school_stores' + str(_session) data = g.selectn(db, '', '', {'itemID': _store, 'state': 4}) fig = 0 self.borrowedData.clear() self.hold_borrowed = {} i = 0 for a in data: ret = g.selectStoreReturned(db, a['id']) if ret: retu = ret['qty'] else: retu = 0 fig = float(a['quantity']) - float(retu) damz = float(a['datepaid']) if float(fig) > 0: self.hold_borrowed[i] = a['id'] damt = datetime.utcfromtimestamp(damz).strftime('%d-%m-%Y') tex = str(damt) + " " + str( a['person']).upper() + " (" + str(fig).upper() + ")" self.borrowedData.addItem(tex) i += 1
def button_click(self, a): # shost is a QString object a.close() s1 = self.le.text() s2 = self.le2.date().toPyDate() s3 = self.le3.date().toPyDate() g = Db() try: if (len(s1) > 0): y = {'name': s1, 'start_date': s2, 'end_date': s3, 'active': 0} z = g.insert('session', y) if z and z > 0: g.createExpenses(z) g.createStores(z) g.createAwards(z) g.createConducts(z) g.createMails(z) g.createMedicals(z) else: pass except: pass try: self.button_close() except: pass try: self.close() except: pass
def button_delete(self): item = self.mySelectTable() _session = self.session g = Db() db = 'school_stores' + str(_session) for j in item: g.delete(db, {'id': j}) self.reloadTable(1)
def getStudentAssessments(session, student=[], subject=[], ca=[]): _session = session _student = student _subject = subject _ca = ca g = Db() data = g.selectStudentsCaRep(_session, _student, _subject, _ca) return data
def pullClass(self, a): self.a = a cn = Db() students = cn.select('datas', '', '', {'subID': self.a}) arr = {} for j in students: arr[j[0]] = j[2] return arr
def removeSubject(self, a, b): session = self.session db = 'student_subject' + str(session) g = Db() for i in a: for j in b: f = g.selectn(db, '', 1, {'studentID': i, 'subjectID': j}) if f and f['id'] > 0: g.delete(db, {'id': f['id']})
def button_click1(self, a): # shost is a QString object s1 = self.le.text() s2 = self.le2.text() self.a = a g = Db() if (len(s1) > 0): y = {'name': s1, 'subID': self.a, 'abbrv': s2} return g.insert('datas', y)
def getData(self, a=[]): self.a = a nm = {} g = Db() for re in self.a: si = g.selectn('datas', '', 1, {'id':re}) nm[re] = si['name'] return nm
def __init__(self, sid, title, header, body, footer, formarts, columns, parent=None): super(TableProfile, self).__init__(parent) #page setup self.setGeometry(100, 100, 700, 700) self.textStyle = "background-color: white; color:black; border: 3px ridge #ccc" self.minW = 670 self.maxW = 700 self.sid = sid self.header = header self.body = body self.footer = footer self.formarts = formarts self.title = title self.columns = [x + 1 for x in columns] self.hold = self.columns cn = Db() self.myterms = cn.getTermClass(self.sid) menu = self.menuUi() self.h1_box = QVBoxLayout() self.bioText = QTextEdit(self) self.bioText.setMinimumWidth(self.minW) self.bioText.setMinimumHeight(self.maxW) self.bioText.setMaximumHeight(self.maxW) btext = self.buildBio() self.bioText.insertHtml(btext) self.bioText.setStyleSheet(self.textStyle) self.h1_box.addWidget(self.bioText) self.h1_box.setSizeConstraint(QLayout.SetFixedSize) self.doc1 = self.bioText scrollArea = QScrollArea(self) scrollArea.setWidgetResizable(True) scrollArea.setFixedHeight(700) scrollArea.setFixedWidth(700) bioProfileWidget = QWidget() bioProfileWidget.setLayout(self.h1_box) #Main layout Hbox = QVBoxLayout() Hbox.addWidget(menu) Hbox.addStretch() Hbox.addWidget(bioProfileWidget) Hbox.setContentsMargins(0, 0, 0, 0) #Create central widget, add layout and set central_widget = QWidget(scrollArea) scrollArea.setWidget(central_widget) central_widget.setContentsMargins(0, 0, 0, 0) central_widget.setGeometry(0, 0, 650, 700) central_widget.setStyleSheet("background-color: #ccc; color:#000") central_widget.setLayout(Hbox) self.setWindowTitle(title) self.show()
def button_template(self, b): template = self.lTemplate.text() template =template.lower() if(len(template) > 0): g = Db() Ch = g.selectn('datas', '', 1, {'abbrv':template, 'pubID': 'temp'}) if Ch and Ch['id'] > 0: self.rTemplate.setText('Failed: Name already exist.') else: set_arr = [] ass_arr = [] gra_arr = [] cla_arr = [] for i in self.set_arr: if self.set_arr[i].checkState(0) == Qt.Checked: set_arr.append(i) for i in self.ass_arr: if self.ass_arr[i].checkState(0) == Qt.Checked: ass_arr.append(i) for i in self.gra_arr: if self.gra_arr[i].checkState(0) == Qt.Checked: gra_arr.append(i) for i in self.cla_arr: if self.cla_arr[i].checkState(0) == Qt.Checked: cla_arr.append(i) title = self.titleData.text() themeColor = self.le5.text() themeFont = self.le6.text() cla_store = self.cla_arr cla_store = ','.join(str(x) for x in cla_store) set_arr = '::'.join(str(x) for x in set_arr) gra_arr = '::'.join(str(x) for x in gra_arr) ass_arr = '::'.join(str(x) for x in ass_arr) save1 = title.upper()+':::'+ themeColor+':::'+ themeFont+':::'+ass_arr+':::'+ gra_arr+':::'+set_arr try: if(len(title) > 0): y = { 'name':cla_store, 'subID':self.term, 'pubID':'temp', 'abbrv':template, 'description': save1, 'active':0} h = g.insert('datas', y) self.button_click() else: pass except: pass else: self.rTemplate.setText('Please give the template a name')
def pullStoreData(self, a=None): st_date = self.fromData.date().toPyDate() en_date = self.toData.date().toPyDate() st_date = time.mktime(st_date.timetuple()) en_date = time.mktime(en_date.timetuple()) db = 'school_stores' + str(self.session) cn = Db() arr = cn.selectStoreDate(db, st_date, en_date, a) return arr
def pullExpensesData(self): st_date = self.fromData.date().toPyDate() en_date = self.toData.date().toPyDate() st_date = time.mktime(st_date.timetuple()) en_date = time.mktime(en_date.timetuple()) db = 'school_expenses' + str(self.session) cn = Db() arr = cn.selectExpenseDate(db, st_date, en_date) return arr