Example #1
0
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_window()
        self.ui.setupUi(self)
        self.editgrades = Startgrade()
        

        self.setsem()
        self.ui.sem.setVisible(False)
        self.sub = (self.ui.sub1, self.ui.sub2, self.ui.sub3, self.ui.sub4, self.ui.sub5, self.ui.sub6, self.ui.sub7, self.ui.sub8, self.ui.sub9, self.ui.sub10, )
        
        self.credit = (self.ui.credit1, self.ui.credit2, self.ui.credit3, self.ui.credit4, self.ui.credit5, self.ui.credit6, self.ui.credit7, self.ui.credit8, self.ui.credit9, self.ui.credit10, )

        self.grade = (self.ui.grade1, self.ui.grade2, self.ui.grade3, self.ui.grade4, self.ui.grade5, self.ui.grade6, self.ui.grade7, self.ui.grade8, self.ui.grade9, self.ui.grade10, ) 
        
        self.gradeinvisible()
        self.clear()
        self.setgrade1()
        self.setsub()

        self.setnumeqdict()
        self.setgrade2()
        
        for i in range(0, 10):
            self.grade[i].setStyleSheet('selection-background-color: rgb(85, 85, 255); selection-color: rgb(255, 255, 255)')            
        
        QtCore.QObject.connect(self.ui.sem, QtCore.SIGNAL("currentIndexChanged(int)"), self.setsub)
        QtCore.QObject.connect(self.ui.cgpa_button, QtCore.SIGNAL("clicked()"), self.calc_cgpa)
        QtCore.QObject.connect(self.ui.gpa_button, QtCore.SIGNAL("clicked()"), self.calc_gpa)
        QtCore.QObject.connect(self.ui.editgrades, QtCore.SIGNAL("clicked()"), self.editgradesed)
        QtCore.QObject.connect(self.ui.save, QtCore.SIGNAL("clicked()"), self.saved)

        self.ui.cgpa_button.setStyleSheet('background-color: rgb(0, 147, 203); color: rgb(255, 255, 255);')
        self.ui.gpa_button.setStyleSheet('background-color: rgb(0, 147, 203); color: rgb(255, 255, 255);')
        self.ui.editgrades.setStyleSheet('background-color: rgb(0, 147, 203); color: rgb(255, 255, 255);')        
        self.ui.save.setStyleSheet('background-color: rgb(0, 147, 203); color: rgb(255, 255, 255);')        
Example #2
0
class Startcgcalc(QtGui.QMainWindow):

    sub = ()
    credit = ()
    grade = ()
    numeqdict = {}
    
    # Setting the semester.
    
    def setsem(self):
        cur.execute("select distinct semester from acads")
        a = cur.fetchall()
        
        b = []
        
        for sublist in a:
            b.append(str(sublist[0]))
            
        self.ui.sem.clear()
        self.ui.sem.addItems(b)
        cur.execute("select * from defsem")
        a = cur.fetchone()


        if a!=None:
            self.ui.sem.setCurrentIndex(self.ui.sem.findText(str(a[0])))

    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_window()
        self.ui.setupUi(self)
        self.editgrades = Startgrade()
        

        self.setsem()
        self.ui.sem.setVisible(False)
        self.sub = (self.ui.sub1, self.ui.sub2, self.ui.sub3, self.ui.sub4, self.ui.sub5, self.ui.sub6, self.ui.sub7, self.ui.sub8, self.ui.sub9, self.ui.sub10, )
        
        self.credit = (self.ui.credit1, self.ui.credit2, self.ui.credit3, self.ui.credit4, self.ui.credit5, self.ui.credit6, self.ui.credit7, self.ui.credit8, self.ui.credit9, self.ui.credit10, )

        self.grade = (self.ui.grade1, self.ui.grade2, self.ui.grade3, self.ui.grade4, self.ui.grade5, self.ui.grade6, self.ui.grade7, self.ui.grade8, self.ui.grade9, self.ui.grade10, ) 
        
        self.gradeinvisible()
        self.clear()
        self.setgrade1()
        self.setsub()

        self.setnumeqdict()
        self.setgrade2()
        
        for i in range(0, 10):
            self.grade[i].setStyleSheet('selection-background-color: rgb(85, 85, 255); selection-color: rgb(255, 255, 255)')            
        
        QtCore.QObject.connect(self.ui.sem, QtCore.SIGNAL("currentIndexChanged(int)"), self.setsub)
        QtCore.QObject.connect(self.ui.cgpa_button, QtCore.SIGNAL("clicked()"), self.calc_cgpa)
        QtCore.QObject.connect(self.ui.gpa_button, QtCore.SIGNAL("clicked()"), self.calc_gpa)
        QtCore.QObject.connect(self.ui.editgrades, QtCore.SIGNAL("clicked()"), self.editgradesed)
        QtCore.QObject.connect(self.ui.save, QtCore.SIGNAL("clicked()"), self.saved)

        self.ui.cgpa_button.setStyleSheet('background-color: rgb(0, 147, 203); color: rgb(255, 255, 255);')
        self.ui.gpa_button.setStyleSheet('background-color: rgb(0, 147, 203); color: rgb(255, 255, 255);')
        self.ui.editgrades.setStyleSheet('background-color: rgb(0, 147, 203); color: rgb(255, 255, 255);')        
        self.ui.save.setStyleSheet('background-color: rgb(0, 147, 203); color: rgb(255, 255, 255);')        
                
	
	# Calculating the sum of credits.
	
    def creditsum(self, a):
        t = (a, )
        cur.execute("select * from acads where semester = ? and grade<>'null'", t)
        
        creditsum = 0
        
        for row in cur:
            creditsum = creditsum + row[3]
        
        return creditsum

    # Checking conditions prior to opening the cgpa frame.
    
    def calc_cgpa(self):

        cur.execute("select distinct semester from acads")
        
        flag = 0
        
        for row in cur:
            if self.creditsum(int(row[0]))==0:
                flag = 1
                break;

        if flag==0:
	    self.ui.cgpa_button.setText("Please wait")
#            os.system("python './graph.py'")
            self.cgpa = Startcgpa2()
            self.cgpa.show()
    
        else :
            self.showmessage("One of the semester's credit sum is 0 ")

	# Storing the grades into database.

    def saved(self):
        if self.ui.sem.currentText()!='':
            
            c = (int(self.ui.sem.currentText()),)
            
            cur.execute("select count(subjectcode) from acads where semester = ?", c)
            a = cur.fetchone()
            con.commit()
            i=0
            while(i<a[0]):
                if self.grade[i].currentIndex()!=0:
                    t= (str(self.grade[i].currentText()), str(self.sub[i].text()), int(self.ui.sem.currentText()), )
                    cur.execute("update acads set grade = ? where subjectcode = ? and semester = ?", t)
                    con.commit()
            
                    
                else :
                    t= (None, str(self.sub[i].text()), int(self.ui.sem.currentText()), )
                    cur.execute("update acads set grade = ? where subjectcode = ? and semester = ?", t)
                    con.commit()
                i = i+1
	    os.system("python './graph.py'")
        
    # Calculating the gpa.
    
    def calc_gpa(self):
        
            gpat = 0
            creditsum = 0
            c = (int(self.ui.sem.currentText()),)
            cur.execute("select count(subjectcode) from acads where semester = ?", c)
            a = cur.fetchone()

            i = 0;
            while(i<a[0]):
                if self.grade[i].currentIndex()!=0:
                    gpat = gpat + int(self.credit[i].text())*self.numeqdict[str(self.grade[i].currentText())]
                    creditsum = creditsum + int(self.credit[i].text())
                i = i+1
            
            self.ui.crthsem.setText(str(creditsum))
            
            if creditsum!=0:
                
                gpa = float(gpat)/creditsum
                gp = "%.2f" % (gpa) 
                self.ui.gpa.setText(str(gp))
            
            else:
                self.showmessage('Credit sum is 0')

	# Error message
                        
    def showmessage(self, a):
        message = QtGui.QMessageBox(self)
        message.setText(a)
        message.setWindowTitle('acadmin Error')
        message.setIcon(QtGui.QMessageBox.Critical)
        message.exec_()

	# Making the UI of grades only visible if subject is there.

    def gradeinvisible(self):
        i = 0
        
        while(i<10):
            self.grade[i].setVisible(False)
            i= i+1
    
    # Filling in the subjects of the selected semester
    
    def setsub(self):
            
        if self.ui.sem.currentText()!='':
            c = (int(self.ui.sem.currentText()),)
            
            cur.execute("select * from acads where semester = ?", c)
        
            i=0
            while(i<10):
                self.sub[i].clear()
                self.credit[i].clear()
                self.grade[i].setVisible(False)
                i = i+1
            self.ui.crthsem.clear()
            self.ui.gpa.clear()
            i=0
            for row in cur:
                self.sub[i].setText(row[1])
                self.credit[i].setText(str(row[3]))
                self.grade[i].setVisible(True)
                
                if row[4]!=None:
                    a = self.grade[i].findText(row[4],Qt.MatchExactly)
                    self.grade[i].setCurrentIndex(a)
                else:
                    self.grade[i].setCurrentIndex(0)

                i = i+1;
    
    # Clearing the frame for other semester
    
    def clear(self):
        i=0
        while(i<10):
            self.sub[i].clear()
            self.credit[i].clear()
            self.grade[i].clear()
            i = i+1
        
    
    # Setting the grades for respective subjects.
    
    def setgrade1(self):
        cur.execute("select grade from grades")
        
        a = cur.fetchall()
        
        b = ['']
        
        for sublist in a:
            b.append(str(sublist[0]))
        
        i = 0
        while (i<10):
            self.grade[i].addItems(b)
            i = i+1
        
    # Getting the numeric equivalent of the grades.
    
    def setnumeqdict(self):
        cur.execute("select * from grades")
        for row in cur:
            self.numeqdict[row[0]] = row[1]
            
    # For opening the frame to change the grades and their decimal equivalents.
    
    def editgradesed(self):
        self.editgrades.show()
    
    # Setting the grades.
    
    def setgrade2(self):
        if self.ui.sem.currentText()!='':
            c = (int(self.ui.sem.currentText()),)
            
            cur.execute("select * from acads where semester = ?", c)