Esempio n. 1
0
    def settimetable(self):

        cur.execute("select max(day) from timetable")
        a = cur.fetchone()

        if a[0] == None:
            cur.execute("select * from days")
            b = cur.fetchone()

            if b == None:
                self.showmessage('Set timeslots and Days first')
                self.ttdetails = Startttdetailsex()
                self.ttdetails.show()
                QtCore.QObject.connect(self.ttdetails.done,
                                       QtCore.SIGNAL("clicked()"),
                                       self.settimetable)
                QtCore.QObject.connect(self.ttdetails.cancel,
                                       QtCore.SIGNAL("clicked()"),
                                       self.settimetable)

            else:
                cur.execute("select * from acads")
                a = cur.fetchone()
                if a == None:
                    self.showmessage('Add a subject first')

                else:
                    self.showmessage('Set the periods and save')
                    self.ttedit = Starttimetableedit()
                    self.ttedit.show()

                    QtCore.QObject.connect(self.ttedit.save,
                                           QtCore.SIGNAL("clicked()"),
                                           self.settimetable)

        else:

            self.timetable = Starttimetable()

            self.ui.maintabWidget.insertTab(3, self.timetable, 'Timetable')
            self.ttflag = 1
            cur.execute("insert into timetableflag values(1)")
            con.commit()
Esempio n. 2
0
    def settimetable(self):

        cur.execute("select max(day) from timetable")
        a = cur.fetchone()
        
        
        if a[0]==None:
            cur.execute("select * from days")
            b = cur.fetchone()

            if b==None:
                self.showmessage('Set timeslots and Days first')
                self.ttdetails = Startttdetailsex()
                self.ttdetails.show()
                QtCore.QObject.connect(self.ttdetails.done, QtCore.SIGNAL("clicked()"), self.settimetable)
                QtCore.QObject.connect(self.ttdetails.cancel, QtCore.SIGNAL("clicked()"), self.settimetable)
            
            else:
                cur.execute("select * from acads")
                a = cur.fetchone()
                if a==None:
                    self.showmessage('Add a subject first')
                    
            
                else:
                    self.showmessage('Set the periods and save')
                    self.ttedit = Starttimetableedit()
                    self.ttedit.show()
                    
                    QtCore.QObject.connect(self.ttedit.save, QtCore.SIGNAL("clicked()"), self.settimetable)
        
        else:

            self.timetable = Starttimetable()
            
            self.ui.maintabWidget.insertTab(3, self.timetable, 'Timetable')
            self.ttflag = 1
            cur.execute("insert into timetableflag values(1)")
            con.commit()
Esempio n. 3
0
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_window()
        self.ui.setupUi(self)
        

        
        self.setedit = Starttimetableedit()
        self.ttdetails = Startttdetailsex()
        
        self.ui.sem.setVisible(False)
        self.setsem()
        self.setcolrow()
        self.settimetable()
        
        
        
        QtCore.QObject.connect(self.setedit.ttdetails.done, QtCore.SIGNAL("clicked()"), self.close)
        QtCore.QObject.connect(self.ui.sem, QtCore.SIGNAL("currentIndexChanged(int)"), self.settimetable)
        QtCore.QObject.connect(self.ui.edit, QtCore.SIGNAL("clicked()"), self.setedited)

        self.ui.edit.setStyleSheet('background-color: rgb(0, 147, 203); color: rgb(255, 255, 255);')        
Esempio n. 4
0
class Startmain(QtGui.QMainWindow):

    
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_window2()
        self.ui.setupUi(self)
        self.setWindowTitle('acadmin - Academic Management Tool')

        icon = QtGui.QIcon()
        b = QtGui.QPixmap("./pics/logo.png")
        icon.addPixmap(b)

        self.setWindowIcon(icon)

        
        self.setFixedWidth(931)
        self.setFixedHeight(668)
        
        b = QtGui.QPixmap("./pics/hide.png")
        self.ui.hide.setPixmap(QtGui.QPixmap(b))
        
        self.subtabWidget = QtGui.QTabWidget()
        
        self.dummybutton2 = QtGui.QToolButton()

        self.setdate()
        self.setsem()
        self.setallwidgets()
        self.setsub()
        self.setmaintabwidget()
        self.checkdb()
        
        self.setpics()
        self.settoolbar()

        self.setstickynote()

        self.editsub = Starteditsub()

        QtCore.QObject.connect(self.ui.maintabWidget, QtCore.SIGNAL("currentChanged(int)"), self.timetabletab)     
        QtCore.QObject.connect(self.editsub.ui.change, QtCore.SIGNAL("clicked()"), self.setsub)        
        QtCore.QObject.connect(self.ui.cgcalc, QtCore.SIGNAL("clicked()"), self.showcg)
        QtCore.QObject.connect(self.ui.calendar, QtCore.SIGNAL("clicked()"), self.showcalendar)
        QtCore.QObject.connect(self.ui.home, QtCore.SIGNAL("clicked()"), self.showhome)
        QtCore.QObject.connect(self.ui.timetable, QtCore.SIGNAL("clicked()"), self.showtimetable)
        QtCore.QObject.connect(self.ui.editsem, QtCore.SIGNAL("clicked()"), self.showeditsem)
        QtCore.QObject.connect(self.ui.defsem, QtCore.SIGNAL("clicked()"), self.defaultsem)
        QtCore.QObject.connect(self.ui.about, QtCore.SIGNAL("clicked()"), self.showabout)
        QtCore.QObject.connect(self.ui.help, QtCore.SIGNAL("clicked()"), self.showhelp)
        
        self.clickflag = 0
        self.clickflag2 = 0
        self.ttflag = 0
        self.cgflag = 0
        
    def showhelp(self):
        self.help = Starthelp()
        self.help.show()
    def checkdb(self):
        cur.execute("select * from acads")
        a = cur.fetchone()
        
        if a==None:
	    self.ui.maintabWidget.setCurrentIndex(1)
            message = QtGui.QMessageBox(self)
            message.setText('Welcome to "acadmin". Start by adding a subject.')
            message.setWindowTitle('Acadmin alert')
            message.setIcon(QtGui.QMessageBox.Information)
            message.exec_()
	    
	
    def showabout(self):
        self.showabt = Startabout()
        self.showabt.show()
        
    def showcalendar(self):
        self.ui.maintabWidget.setCurrentIndex(2)

    def showhome(self):
        self.ui.maintabWidget.setCurrentIndex(0)

    def showeditsem(self):
        self.ui.maintabWidget.setCurrentIndex(1)

    def showtimetable(self):
        self.ui.maintabWidget.setCurrentIndex(3)
        if self.clickflag!=1:
            self.clickflag = 1
            self.ui.timetable.click()
                
    def showcg(self):
        self.ui.maintabWidget.setCurrentIndex(4)
        if self.clickflag2!=1:
            self.clickflag2 = 1
            self.ui.cgcalc.click()
        
    
    
    def defaultsem(self):
        cur.execute("select * from acads")
        a = cur.fetchone()
        
        if a==None:
            self.showmessage('Add a subject first')
	    self.ui.editsem.click()
        else:
            self.setdefaultsem = Startdefaultsem()
            self.setdefaultsem.show()
            QtCore.QObject.connect(self.setdefaultsem.ui.okay, QtCore.SIGNAL("clicked()"), self.setdefsemandclose)
           
    def setdefsemandclose(self):
        self.setsem()
        self.close()

    def timetabletab(self):
        a = self.ui.maintabWidget.currentIndex()

        b = self.ttflag
        c = self.cgflag        
                
        if a==3:        
            if b==0:
                self.settimetable()
            
            if self.ui.maintabWidget.count()>5:
                self.ui.maintabWidget.removeTab(4)
        
        if a==4:
            if c==0:
                self.cgcalc()
                
            if self.ui.maintabWidget.count()>5:
                self.ui.maintabWidget.removeTab(5)
        
    def setallwidgets(self):
        if self.ui.sem.text()=='':
            sem = None
        else :
            sem = int(self.ui.sem.text())

        self.editsem = Starteditsem()        
        self.calendar = Startcalendar(sem)        

    def setmaintabwidget(self):
        self.notrequired = QtGui.QWidget()
        self.notrequired2 = QtGui.QWidget()
        self.ui.maintabWidget.clear()
        self.ui.maintabWidget.insertTab(0, self.subtabWidget, 'Home')
        self.ui.maintabWidget.insertTab(1, self.editsem, 'Add/Delete Subjects')
        self.editsemsignals()
        self.ui.maintabWidget.insertTab(2, self.calendar, 'Calendar')
        self.calendarsignals()
        self.ui.maintabWidget.insertTab(3, self.notrequired, 'Timetable')
        self.ui.maintabWidget.insertTab(4, self.notrequired2, 'Grades')
        
    def cgcalc(self):
        
        cur.execute("select * from grades")
        a = cur.fetchone()

        
        if a==None:
            self.showmessage('Set default grading system first')

            self.gradingsystem = Startgrade()
            self.gradingsystem.show()
            QtCore.QObject.connect(self.gradingsystem.ui.done, QtCore.SIGNAL("clicked()"), self.cgcalc)
            
        else:
            cur.execute("select * from acads")
            a = cur.fetchone()
            
            if a==None:
                self.showmessage('Add a subject first')
            else:

                self.cgcalc2 = Startcgcalc()
                self.ui.maintabWidget.insertTab(4, self.cgcalc2, 'Grades')
                self.cgflag = 1
                cur.execute("insert into cgflag values(1)")
                con.commit()
        
    def settimetable(self):

        cur.execute("select max(day) from timetable")
        a = cur.fetchone()
        
        
        if a[0]==None:
            cur.execute("select * from days")
            b = cur.fetchone()

            if b==None:
                self.showmessage('Set timeslots and Days first')
                self.ttdetails = Startttdetailsex()
                self.ttdetails.show()
                QtCore.QObject.connect(self.ttdetails.done, QtCore.SIGNAL("clicked()"), self.settimetable)
                QtCore.QObject.connect(self.ttdetails.cancel, QtCore.SIGNAL("clicked()"), self.settimetable)
            
            else:
                cur.execute("select * from acads")
                a = cur.fetchone()
                if a==None:
                    self.showmessage('Add a subject first')
                    
            
                else:
                    self.showmessage('Set the periods and save')
                    self.ttedit = Starttimetableedit()
                    self.ttedit.show()
                    
                    QtCore.QObject.connect(self.ttedit.save, QtCore.SIGNAL("clicked()"), self.settimetable)
        
        else:

            self.timetable = Starttimetable()
            
            self.ui.maintabWidget.insertTab(3, self.timetable, 'Timetable')
            self.ttflag = 1
            cur.execute("insert into timetableflag values(1)")
            con.commit()
                        
    def calendarsignals(self):

        QtCore.QObject.connect(self.calendar.savebunk, QtCore.SIGNAL("clicked()"), self.setsub)
        QtCore.QObject.connect(self.calendar.t.ui.add, QtCore.SIGNAL("clicked()"), self.setstickynote)
        QtCore.QObject.connect(self.calendar.dummybutton, QtCore.SIGNAL("clicked()"), self.setstickynote)
        
    def editsemsignals(self):

        QtCore.QObject.connect(self.editsem.ui.add, QtCore.SIGNAL("clicked()"), self.setsub2)
        QtCore.QObject.connect(self.editsem.ui.delete_2, QtCore.SIGNAL("clicked()"), self.setsub2)

    def setsub(self):
   
        self.subtabWidget.clear()
        self.startframe = []

        if self.ui.sem.text()!='':
            c = (int(self.ui.sem.text()),)
            cur.execute("select * from acads where semester = ?", c)
        
            i=0
            k = 0
        
            subcode = []
            subname = []
            credits = []
            bunksleft = []
            classes = []
            attendance = []
        
            for row in cur:
                subcode.append(row[1])
                subname.append(row[2])
                credits.append(row[3])
                bunksleft.append(row[5]-row[6])
                classes.append(row[7])
                attendance.append(row[8])
                k = k+1
        
            for i in range(0, k):
                self.startframe.append(Startframe(str(subcode[i]), classes[i], attendance[i]))
                a = self.subtabWidget.insertTab(i, self.startframe[i], subcode[i])
                self.startframe[i].subjectname.setText(subname[i])
                self.startframe[i].credits.setText(str(credits[i]))
                self.startframe[i].subjectcode.setText(str(subcode[i]))
                self.startframe[i].bunksleft.setText(str(bunksleft[i]))
                QtCore.QObject.connect(self.startframe[i].editsubject.ui.change, QtCore.SIGNAL("clicked()"), self.setsub3)
                QtCore.QObject.connect(self.startframe[i].addref.ui.add, QtCore.SIGNAL("clicked()"), self.setsub3)
                QtCore.QObject.connect(self.startframe[i].deleteref.ui.deletebutton, QtCore.SIGNAL("clicked()"), self.setsub3)
                i = i+1
        

        self.ui.maintabWidget.removeTab(0)
        self.ui.maintabWidget.insertTab(0, self.subtabWidget, 'Home')

    def setsub3(self):
        self.setsub()
        self.ui.home.click()

    def setsub2(self):
        
        flag = 0
        
        cur.execute("select * from acads")
        
        for row in cur:
        	flag = flag+1
        
        self.setsem()
        self.setsub()
        self.calendar.setbunkclasses()
        self.calendar.setbunkticks()
        self.ui.home.click()
        
        if flag==1:
        	self.ui.defsem.click()
        
    
    def setsem(self):
        cur.execute("select * from defsem")
        a = cur.fetchone()
        
        if a!=None:
            self.ui.sem.setText(str(a[0]))



    def showmessage(self, a):
        message = QtGui.QMessageBox(self)
        message.setText(a)
        message.setWindowTitle('Acadmin alert')
        message.setIcon(QtGui.QMessageBox.Warning)
        message.exec_()

    def setdate(self):

        self.date = datetime.datetime.now()
        self.month = [None, 'Jan.', 'Feb.', 'March', 'April', 'May', 'June', 'July', 'Aug.', 'Sept.', 'Oct.', 'Nov.', 'Dec.', ]
        
        self.ui.day.setText("<span style=\" font-size:48pt; font-weight:600; color:#ffff00;\">"+ str(self.date.day) + "</span>")
        self.ui.monthyear.setText("<span style=\" font-size:12pt; font-weight:600; color:#ffff00;\">"+ self.month[self.date.month] + "  " + str(self.date.year) + "</span>")
        self.ui.day.setAlignment(Qt.AlignHCenter)
        self.ui.monthyear.setAlignment(Qt.AlignHCenter)

    def setstickynote(self):
        
        stickylist=QtGui.QWidget()
        stickylist.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
        stickylistgrid = QtGui.QGridLayout()

        stickylistgrid.addWidget(QtGui.QLabel("        "), 0, 0)        
        stickylistgrid.addWidget(QtGui.QLabel("<b>.  Today's Tasks :</b>"), 1, 0)
        
        todaytask = []
        i=0
        t = (self.date.day, self.date.month, self.date.year, )
        cur.execute("select * from reminder where day = ? and month = ? and year = ?", t)
        a = cur.fetchone()
        
        
        if a==None:
            stickylistgrid.addWidget(QtGui.QLabel("<i>.    No assignments</i>"), 2, 0)

        else:

            cur.execute("select * from reminder where day = ? and month = ? and year = ?", t)
            for row in cur:
                todaytask.append(QtGui.QLabel('   ' + str(i+1)+'. '+str(row[0])+' - '+str(row[1])))
                stickylistgrid.addWidget(todaytask[i], i+2, 0)
                i = i+1


        stickylistgrid.addWidget(QtGui.QLabel("<b>.  Tomorrow's Tasks :</b>"), i+3, 0)

        today = QtCore.QDate(self.date.year, self.date.month, self.date.day)
        tomorrow = today.addDays(1)
        
        tommtask = []
        j = i+3
        t = (tomorrow.day(), tomorrow.month(), tomorrow.year(), )
        cur.execute("select * from reminder where day = ? and month = ? and year = ?", t)
        a = cur.fetchone()
        if a==None:
       
            stickylistgrid.addWidget(QtGui.QLabel("<i>.    No assignments</i>"), j+1, 0)
       
        else:
       
            cur.execute("select * from reminder where day = ? and month = ? and year = ?", t)
            q=0
            for row in cur:
                tommtask.append(QtGui.QLabel('   '+str(q+1)+'. '+str(row[0])+' - '+str(row[1])))
                stickylistgrid.addWidget(tommtask[q], j+1, 0)
                q = q+1
                j = j+1

        stickylistgrid.addWidget(QtGui.QLabel("        "), j+2, 0)        
        stickylist.setLayout(stickylistgrid)
        self.ui.stickynote.setWidget(stickylist)

    def setpics(self):
                
        self.ui.home.setIcon(QtGui.QIcon('./pics/home.png'))
        self.ui.calendar.setIcon(QtGui.QIcon('./pics/calendar.png'))
        self.ui.timetable.setIcon(QtGui.QIcon('./pics/timetable.png'))
        self.ui.cgcalc.setIcon(QtGui.QIcon('./pics/grades.png'))
        self.ui.editsem.setIcon(QtGui.QIcon('./pics/editsem.png'))
        self.ui.about.setIcon(QtGui.QIcon('./pics/about.png'))
        self.ui.defsem.setIcon(QtGui.QIcon('./pics/default.png'))
        self.ui.help.setIcon(QtGui.QIcon('./pics/help.png'))
        
        palette = QtGui.QPalette()
        palette.setBrush(self.backgroundRole(), QBrush(QImage("./pics/sticky note.png")))


        palette3 = QtGui.QPalette()
        palette3.setBrush(self.backgroundRole(), QBrush(QImage("./pics/calender.png")))

        palette2 = QtGui.QPalette()
        palette2.setBrush(self.backgroundRole(), QBrush(QImage("./pics/background2.jpg")))

        self.setPalette(palette2)
        self.ui.stickynote.setPalette(palette)
        
        
        
        self.ui.calender.setPalette(palette3)


    def settoolbar(self):
        self.ui.toolBar.addWidget(self.ui.home)
        self.ui.toolBar.addSeparator()
        self.ui.toolBar.addWidget(self.ui.calendar)
        self.ui.toolBar.addSeparator()
        self.ui.toolBar.addWidget(self.ui.timetable)
        self.ui.toolBar.addSeparator()
        self.ui.toolBar.addWidget(self.ui.cgcalc)
        self.ui.toolBar.addSeparator()
        self.ui.toolBar.addWidget(self.ui.editsem)
        self.ui.toolBar.addSeparator()
        
        aha = QtGui.QWidget()
        aha.setFixedWidth(40)
        aha.setFixedHeight(30)
        

        self.ui.toolBar.addWidget(aha)
        
        self.ui.toolBar.addWidget(self.ui.defsem)
        self.ui.toolBar.addSeparator()

        aha2 = QtGui.QWidget()
        aha.setFixedWidth(40)
        aha.setFixedHeight(30)


        self.ui.toolBar.addWidget(aha2)
        
        self.ui.toolBar.addSeparator()
        self.ui.toolBar.addWidget(self.ui.about)
        self.ui.toolBar.addSeparator()
        self.ui.toolBar.addWidget(self.ui.help)
        self.ui.toolBar.addSeparator()        
 


        self.ui.home.setToolTip('Home')
        self.ui.calendar.setToolTip('Calendar')
        self.ui.timetable.setToolTip('Timetable')
        self.ui.cgcalc.setToolTip('Grades')
        self.ui.editsem.setToolTip('Add / Delete Subjects')
        self.ui.about.setToolTip('About')
        self.ui.defsem.setToolTip('Set Default Semester')
        self.ui.help.setToolTip('Help')
Esempio n. 5
0
    def __init__(self, parent=None, flags = 1):
        QtGui.QWidget.__init__(self, parent)
        
        self.ttdetails = Startttdetailsex()
        
        icon = QtGui.QIcon()
        b = QtGui.QPixmap("./pics/logo.png")
        icon.addPixmap(b)
        self.setWindowIcon(icon)
        cur.execute("select * from days")
        a = cur.fetchone()

        palette2 = QtGui.QPalette()
        palette2.setBrush(self.backgroundRole(), QBrush(QImage("./pics/genback.png")))

        self.setPalette(palette2)

        self.setStyleSheet('color: rgb(85, 0, 0);')
        
        self.period = []
        self.timeslotslabel = []
        self.dayslabel = [QtGui.QLabel('     '), QtGui.QLabel('Monday'), QtGui.QLabel('Tuesday'), QtGui.QLabel('Wednesday'), QtGui.QLabel('Thursday'), QtGui.QLabel('Friday'), QtGui.QLabel('Saturday'), QtGui.QLabel('Sunday'), ]
        
        self.semcombobox = QtGui.QComboBox()
    
        self.setsem()
        mainvbox = QtGui.QVBoxLayout()
        self.mainhbox = QtGui.QHBoxLayout()
        self.setWindowTitle('Edit timetable')        
        self.dayslabelbox = QtGui.QVBoxLayout()
    
        self.loop4()
    
        self.mainhbox.addLayout(self.dayslabelbox)
            
        sembox = QtGui.QHBoxLayout()
        self.timebox = []
           
        self.semlabel = QtGui.QLabel("Semester   :")
        self.semlabel.setVisible(False)   
            
        self.semcombobox.setFixedSize(40, 30)
        self.semcombobox.setVisible(False)
        self.genlabel1 = QtGui.QLabel(" You must click save after making the changes")

        self.save = QtGui.QToolButton()
        self.save.setText('Save')
        
        self.editslot = QtGui.QToolButton()
        self.editslot.setText('Edit slots and days')
        
        
        sembox.addWidget(self.semlabel)
        sembox.addWidget(self.semcombobox)
        sembox.addWidget(self.genlabel1)
        sembox.addWidget(self.editslot)
        sembox.addWidget(self.save)
      
        
        self.loop3()
                
        self.loop1()
   
        self.settimetable()        
        
        mainvbox.addLayout(sembox)
   
        mainvbox.addLayout(self.mainhbox)
        
        self.setLayout(mainvbox)

        QtCore.QObject.connect(self.semcombobox, QtCore.SIGNAL("currentIndexChanged(int)"), self.loop2)
        QtCore.QObject.connect(self.save, QtCore.SIGNAL("clicked()"), self.saved)
        QtCore.QObject.connect(self.editslot, QtCore.SIGNAL("clicked()"), self.editsloted)
        
        self.save.setStyleSheet('background-color: rgb(0, 147, 203); color: rgb(255, 255, 255);')
        self.editslot.setStyleSheet('background-color: rgb(0, 147, 203); color: rgb(255, 255, 255);')
Esempio n. 6
0
class Starttimetableedit(QtGui.QWidget):

    def __init__(self, parent=None, flags = 1):
        QtGui.QWidget.__init__(self, parent)
        
        self.ttdetails = Startttdetailsex()
        
        icon = QtGui.QIcon()
        b = QtGui.QPixmap("./pics/logo.png")
        icon.addPixmap(b)
        self.setWindowIcon(icon)
        cur.execute("select * from days")
        a = cur.fetchone()

        palette2 = QtGui.QPalette()
        palette2.setBrush(self.backgroundRole(), QBrush(QImage("./pics/genback.png")))

        self.setPalette(palette2)

        self.setStyleSheet('color: rgb(85, 0, 0);')
        
        self.period = []
        self.timeslotslabel = []
        self.dayslabel = [QtGui.QLabel('     '), QtGui.QLabel('Monday'), QtGui.QLabel('Tuesday'), QtGui.QLabel('Wednesday'), QtGui.QLabel('Thursday'), QtGui.QLabel('Friday'), QtGui.QLabel('Saturday'), QtGui.QLabel('Sunday'), ]
        
        self.semcombobox = QtGui.QComboBox()
    
        self.setsem()
        mainvbox = QtGui.QVBoxLayout()
        self.mainhbox = QtGui.QHBoxLayout()
        self.setWindowTitle('Edit timetable')        
        self.dayslabelbox = QtGui.QVBoxLayout()
    
        self.loop4()
    
        self.mainhbox.addLayout(self.dayslabelbox)
            
        sembox = QtGui.QHBoxLayout()
        self.timebox = []
           
        self.semlabel = QtGui.QLabel("Semester   :")
        self.semlabel.setVisible(False)   
            
        self.semcombobox.setFixedSize(40, 30)
        self.semcombobox.setVisible(False)
        self.genlabel1 = QtGui.QLabel(" You must click save after making the changes")

        self.save = QtGui.QToolButton()
        self.save.setText('Save')
        
        self.editslot = QtGui.QToolButton()
        self.editslot.setText('Edit slots and days')
        
        
        sembox.addWidget(self.semlabel)
        sembox.addWidget(self.semcombobox)
        sembox.addWidget(self.genlabel1)
        sembox.addWidget(self.editslot)
        sembox.addWidget(self.save)
      
        
        self.loop3()
                
        self.loop1()
   
        self.settimetable()        
        
        mainvbox.addLayout(sembox)
   
        mainvbox.addLayout(self.mainhbox)
        
        self.setLayout(mainvbox)

        QtCore.QObject.connect(self.semcombobox, QtCore.SIGNAL("currentIndexChanged(int)"), self.loop2)
        QtCore.QObject.connect(self.save, QtCore.SIGNAL("clicked()"), self.saved)
        QtCore.QObject.connect(self.editslot, QtCore.SIGNAL("clicked()"), self.editsloted)
        
        self.save.setStyleSheet('background-color: rgb(0, 147, 203); color: rgb(255, 255, 255);')
        self.editslot.setStyleSheet('background-color: rgb(0, 147, 203); color: rgb(255, 255, 255);')

        
    def editsloted(self):
        
        self.ttdetails.show()
        QtCore.QObject.connect(self.ttdetails.done, QtCore.SIGNAL("clicked()"), self.close)
        
    
    def loop4(self):
        cur.execute("select * from days")
        a = cur.fetchone()
        d = 0
        if a[0]==0:
            d = 6
        if a[0]==1:
            d = 7
        if a[0]==2:
            d = 8
        
        i = 0;
        
        while(i<d):
            self.dayslabel[i].setFixedSize(90, 30)
            self.dayslabelbox.addWidget(self.dayslabel[i])
            i = i+1
        
    def loop3(self):
        cur.execute("select * from timeslots")

        i = 0
        for row in cur:
            self.timeslotslabel.append(QtGui.QLabel('          '+row[0]+'          '))
            self.timeslotslabel[i].setFixedSize(90, 30)
            self.timebox.append(QtGui.QVBoxLayout())
            self.timebox[i].addWidget(self.timeslotslabel[i])
            i = i+1
        
    def loop2(self):
        
        a = self.countdays()
        
        m = 0
        
        cur.execute("select * from timeslots")
        
        for row in cur:
            m = m+1
        
        
        k = 0;
        i = 0;
        
        while k<m:
            i = 0
            while(i<a):
                self.setsub(k, i)
                i = i+1
            k = k+1
        
        self.settimetable()
        
        
        
    def loop1(self):
        
        a = self.countdays()
        
        k = 0
        m = 0
        
        cur.execute("select * from timeslots")
        
        for row in cur:
            m = m+1
        
        while k<m:
            
            self.period.append([])
            i = 0
            while i<a:
            
                self.period[k].append(QtGui.QComboBox())
                self.period[k][i].setFixedSize(90, 30)
                self.setsub(k, i)
                i = i+1
            k = k+1
            
        cur.execute("select * from timeslots")
 
        k = 0
        i = 0
        
        for row in cur:
            i = 0
            while (i<a):
                self.timebox[k].addWidget(self.period[k][i])
                i = i+1
            k = k+1
            
        cur.execute("select * from timeslots")
        
        k = 0;
        
        for row in cur:
            self.mainhbox.addLayout(self.timebox[k])
            k = k+1
    
    def setsub(self, k, i):
        
        self.period[k][i].clear()
        c = (int(self.semcombobox.currentText()), )
        
        cur.execute("select subjectcode from acads where semester = ?", c)
        a = cur.fetchall()
        b = ['', ]
        
        for sublist in a:
            b.append(str(sublist[0]))
        
        self.period[k][i].addItems(b)
            
    def setsem(self):
        
        cur.execute("select distinct semester from acads")
        a = cur.fetchall()
        
        b = []
        
        for sublist in a:
            b.append(str(sublist[0]))
            
        self.semcombobox.clear()
        self.semcombobox.addItems(b)

        cur.execute("select * from defsem")
        a = cur.fetchone()

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

        
    def countdays(self):
        
        cur.execute("select * from days")
        a = cur.fetchone()
        
        if a[0]==0:
            return 5
        if a[0]==1:
            return 6
        return 7
        
    def saved(self):
        
        t = (int(self.semcombobox.currentText()), )
        
        cur.execute("delete from timetable where semester = ?", t)
        con.commit()
        
        
        a = self.countdays()
        
        k = 0
        m = 0
        
        cur.execute("select * from timeslots")
        
        for row in cur:
            m = m+1
        
        while k<m:
            i = 0
            while i<a:
                t = (i, k, str(self.period[k][i].currentText()), int(self.semcombobox.currentText()), )
                cur.execute("insert into timetable values(?, ?, ?, ?)", t)
                con.commit()
                i = i+1
            k = k+1
        
        
        self.close()

    def settimetable(self):
        
        a = (int(self.semcombobox.currentText()), )
        
        cur.execute("select * from timetable where semester = ?", a)
        
        for row in cur:
            
            k = int(row[1])
            i = int(row[0])
            idx = self.period[k][i].findText(str(row[2]))
            self.period[k][i].setCurrentIndex(idx)
Esempio n. 7
0
    def __init__(self, parent=None, flags=1):
        QtGui.QWidget.__init__(self, parent)

        self.ttdetails = Startttdetailsex()

        icon = QtGui.QIcon()
        b = QtGui.QPixmap("./pics/logo.png")
        icon.addPixmap(b)
        self.setWindowIcon(icon)
        cur.execute("select * from days")
        a = cur.fetchone()

        palette2 = QtGui.QPalette()
        palette2.setBrush(self.backgroundRole(),
                          QBrush(QImage("./pics/genback.png")))

        self.setPalette(palette2)

        self.setStyleSheet('color: rgb(85, 0, 0);')

        self.period = []
        self.timeslotslabel = []
        self.dayslabel = [
            QtGui.QLabel('     '),
            QtGui.QLabel('Monday'),
            QtGui.QLabel('Tuesday'),
            QtGui.QLabel('Wednesday'),
            QtGui.QLabel('Thursday'),
            QtGui.QLabel('Friday'),
            QtGui.QLabel('Saturday'),
            QtGui.QLabel('Sunday'),
        ]

        self.semcombobox = QtGui.QComboBox()

        self.setsem()
        mainvbox = QtGui.QVBoxLayout()
        self.mainhbox = QtGui.QHBoxLayout()
        self.setWindowTitle('Edit timetable')
        self.dayslabelbox = QtGui.QVBoxLayout()

        self.loop4()

        self.mainhbox.addLayout(self.dayslabelbox)

        sembox = QtGui.QHBoxLayout()
        self.timebox = []

        self.semlabel = QtGui.QLabel("Semester   :")
        self.semlabel.setVisible(False)

        self.semcombobox.setFixedSize(40, 30)
        self.semcombobox.setVisible(False)
        self.genlabel1 = QtGui.QLabel(
            " You must click save after making the changes")

        self.save = QtGui.QToolButton()
        self.save.setText('Save')

        self.editslot = QtGui.QToolButton()
        self.editslot.setText('Edit slots and days')

        sembox.addWidget(self.semlabel)
        sembox.addWidget(self.semcombobox)
        sembox.addWidget(self.genlabel1)
        sembox.addWidget(self.editslot)
        sembox.addWidget(self.save)

        self.loop3()

        self.loop1()

        self.settimetable()

        mainvbox.addLayout(sembox)

        mainvbox.addLayout(self.mainhbox)

        self.setLayout(mainvbox)

        QtCore.QObject.connect(self.semcombobox,
                               QtCore.SIGNAL("currentIndexChanged(int)"),
                               self.loop2)
        QtCore.QObject.connect(self.save, QtCore.SIGNAL("clicked()"),
                               self.saved)
        QtCore.QObject.connect(self.editslot, QtCore.SIGNAL("clicked()"),
                               self.editsloted)

        self.save.setStyleSheet(
            'background-color: rgb(0, 147, 203); color: rgb(255, 255, 255);')
        self.editslot.setStyleSheet(
            'background-color: rgb(0, 147, 203); color: rgb(255, 255, 255);')
Esempio n. 8
0
class Starttimetableedit(QtGui.QWidget):
    def __init__(self, parent=None, flags=1):
        QtGui.QWidget.__init__(self, parent)

        self.ttdetails = Startttdetailsex()

        icon = QtGui.QIcon()
        b = QtGui.QPixmap("./pics/logo.png")
        icon.addPixmap(b)
        self.setWindowIcon(icon)
        cur.execute("select * from days")
        a = cur.fetchone()

        palette2 = QtGui.QPalette()
        palette2.setBrush(self.backgroundRole(),
                          QBrush(QImage("./pics/genback.png")))

        self.setPalette(palette2)

        self.setStyleSheet('color: rgb(85, 0, 0);')

        self.period = []
        self.timeslotslabel = []
        self.dayslabel = [
            QtGui.QLabel('     '),
            QtGui.QLabel('Monday'),
            QtGui.QLabel('Tuesday'),
            QtGui.QLabel('Wednesday'),
            QtGui.QLabel('Thursday'),
            QtGui.QLabel('Friday'),
            QtGui.QLabel('Saturday'),
            QtGui.QLabel('Sunday'),
        ]

        self.semcombobox = QtGui.QComboBox()

        self.setsem()
        mainvbox = QtGui.QVBoxLayout()
        self.mainhbox = QtGui.QHBoxLayout()
        self.setWindowTitle('Edit timetable')
        self.dayslabelbox = QtGui.QVBoxLayout()

        self.loop4()

        self.mainhbox.addLayout(self.dayslabelbox)

        sembox = QtGui.QHBoxLayout()
        self.timebox = []

        self.semlabel = QtGui.QLabel("Semester   :")
        self.semlabel.setVisible(False)

        self.semcombobox.setFixedSize(40, 30)
        self.semcombobox.setVisible(False)
        self.genlabel1 = QtGui.QLabel(
            " You must click save after making the changes")

        self.save = QtGui.QToolButton()
        self.save.setText('Save')

        self.editslot = QtGui.QToolButton()
        self.editslot.setText('Edit slots and days')

        sembox.addWidget(self.semlabel)
        sembox.addWidget(self.semcombobox)
        sembox.addWidget(self.genlabel1)
        sembox.addWidget(self.editslot)
        sembox.addWidget(self.save)

        self.loop3()

        self.loop1()

        self.settimetable()

        mainvbox.addLayout(sembox)

        mainvbox.addLayout(self.mainhbox)

        self.setLayout(mainvbox)

        QtCore.QObject.connect(self.semcombobox,
                               QtCore.SIGNAL("currentIndexChanged(int)"),
                               self.loop2)
        QtCore.QObject.connect(self.save, QtCore.SIGNAL("clicked()"),
                               self.saved)
        QtCore.QObject.connect(self.editslot, QtCore.SIGNAL("clicked()"),
                               self.editsloted)

        self.save.setStyleSheet(
            'background-color: rgb(0, 147, 203); color: rgb(255, 255, 255);')
        self.editslot.setStyleSheet(
            'background-color: rgb(0, 147, 203); color: rgb(255, 255, 255);')

    def editsloted(self):

        self.ttdetails.show()
        QtCore.QObject.connect(self.ttdetails.done, QtCore.SIGNAL("clicked()"),
                               self.close)

    def loop4(self):
        cur.execute("select * from days")
        a = cur.fetchone()
        d = 0
        if a[0] == 0:
            d = 6
        if a[0] == 1:
            d = 7
        if a[0] == 2:
            d = 8

        i = 0

        while (i < d):
            self.dayslabel[i].setFixedSize(90, 30)
            self.dayslabelbox.addWidget(self.dayslabel[i])
            i = i + 1

    def loop3(self):
        cur.execute("select * from timeslots")

        i = 0
        for row in cur:
            self.timeslotslabel.append(
                QtGui.QLabel('          ' + row[0] + '          '))
            self.timeslotslabel[i].setFixedSize(90, 30)
            self.timebox.append(QtGui.QVBoxLayout())
            self.timebox[i].addWidget(self.timeslotslabel[i])
            i = i + 1

    def loop2(self):

        a = self.countdays()

        m = 0

        cur.execute("select * from timeslots")

        for row in cur:
            m = m + 1

        k = 0
        i = 0

        while k < m:
            i = 0
            while (i < a):
                self.setsub(k, i)
                i = i + 1
            k = k + 1

        self.settimetable()

    def loop1(self):

        a = self.countdays()

        k = 0
        m = 0

        cur.execute("select * from timeslots")

        for row in cur:
            m = m + 1

        while k < m:

            self.period.append([])
            i = 0
            while i < a:

                self.period[k].append(QtGui.QComboBox())
                self.period[k][i].setFixedSize(90, 30)
                self.setsub(k, i)
                i = i + 1
            k = k + 1

        cur.execute("select * from timeslots")

        k = 0
        i = 0

        for row in cur:
            i = 0
            while (i < a):
                self.timebox[k].addWidget(self.period[k][i])
                i = i + 1
            k = k + 1

        cur.execute("select * from timeslots")

        k = 0

        for row in cur:
            self.mainhbox.addLayout(self.timebox[k])
            k = k + 1

    def setsub(self, k, i):

        self.period[k][i].clear()
        c = (int(self.semcombobox.currentText()), )

        cur.execute("select subjectcode from acads where semester = ?", c)
        a = cur.fetchall()
        b = [
            '',
        ]

        for sublist in a:
            b.append(str(sublist[0]))

        self.period[k][i].addItems(b)

    def setsem(self):

        cur.execute("select distinct semester from acads")
        a = cur.fetchall()

        b = []

        for sublist in a:
            b.append(str(sublist[0]))

        self.semcombobox.clear()
        self.semcombobox.addItems(b)

        cur.execute("select * from defsem")
        a = cur.fetchone()

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

    def countdays(self):

        cur.execute("select * from days")
        a = cur.fetchone()

        if a[0] == 0:
            return 5
        if a[0] == 1:
            return 6
        return 7

    def saved(self):

        t = (int(self.semcombobox.currentText()), )

        cur.execute("delete from timetable where semester = ?", t)
        con.commit()

        a = self.countdays()

        k = 0
        m = 0

        cur.execute("select * from timeslots")

        for row in cur:
            m = m + 1

        while k < m:
            i = 0
            while i < a:
                t = (
                    i,
                    k,
                    str(self.period[k][i].currentText()),
                    int(self.semcombobox.currentText()),
                )
                cur.execute("insert into timetable values(?, ?, ?, ?)", t)
                con.commit()
                i = i + 1
            k = k + 1

        self.close()

    def settimetable(self):

        a = (int(self.semcombobox.currentText()), )

        cur.execute("select * from timetable where semester = ?", a)

        for row in cur:

            k = int(row[1])
            i = int(row[0])
            idx = self.period[k][i].findText(str(row[2]))
            self.period[k][i].setCurrentIndex(idx)
Esempio n. 9
0
class Startmain(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_window2()
        self.ui.setupUi(self)
        self.setWindowTitle('acadmin - Academic Management Tool')

        icon = QtGui.QIcon()
        b = QtGui.QPixmap("./pics/logo.png")
        icon.addPixmap(b)

        self.setWindowIcon(icon)

        self.setFixedWidth(931)
        self.setFixedHeight(668)

        b = QtGui.QPixmap("./pics/hide.png")
        self.ui.hide.setPixmap(QtGui.QPixmap(b))

        self.subtabWidget = QtGui.QTabWidget()

        self.dummybutton2 = QtGui.QToolButton()

        self.setdate()
        self.setsem()
        self.setallwidgets()
        self.setsub()
        self.setmaintabwidget()
        self.checkdb()

        self.setpics()
        self.settoolbar()

        self.setstickynote()

        self.editsub = Starteditsub()

        QtCore.QObject.connect(self.ui.maintabWidget,
                               QtCore.SIGNAL("currentChanged(int)"),
                               self.timetabletab)
        QtCore.QObject.connect(self.editsub.ui.change,
                               QtCore.SIGNAL("clicked()"), self.setsub)
        QtCore.QObject.connect(self.ui.cgcalc, QtCore.SIGNAL("clicked()"),
                               self.showcg)
        QtCore.QObject.connect(self.ui.calendar, QtCore.SIGNAL("clicked()"),
                               self.showcalendar)
        QtCore.QObject.connect(self.ui.home, QtCore.SIGNAL("clicked()"),
                               self.showhome)
        QtCore.QObject.connect(self.ui.timetable, QtCore.SIGNAL("clicked()"),
                               self.showtimetable)
        QtCore.QObject.connect(self.ui.editsem, QtCore.SIGNAL("clicked()"),
                               self.showeditsem)
        QtCore.QObject.connect(self.ui.defsem, QtCore.SIGNAL("clicked()"),
                               self.defaultsem)
        QtCore.QObject.connect(self.ui.about, QtCore.SIGNAL("clicked()"),
                               self.showabout)
        QtCore.QObject.connect(self.ui.help, QtCore.SIGNAL("clicked()"),
                               self.showhelp)

        self.clickflag = 0
        self.clickflag2 = 0
        self.ttflag = 0
        self.cgflag = 0

    def showhelp(self):
        self.help = Starthelp()
        self.help.show()

    def checkdb(self):
        cur.execute("select * from acads")
        a = cur.fetchone()

        if a == None:
            self.ui.maintabWidget.setCurrentIndex(1)
            message = QtGui.QMessageBox(self)
            message.setText('Welcome to "acadmin". Start by adding a subject.')
            message.setWindowTitle('Acadmin alert')
            message.setIcon(QtGui.QMessageBox.Information)
            message.exec_()

    def showabout(self):
        self.showabt = Startabout()
        self.showabt.show()

    def showcalendar(self):
        self.ui.maintabWidget.setCurrentIndex(2)

    def showhome(self):
        self.ui.maintabWidget.setCurrentIndex(0)

    def showeditsem(self):
        self.ui.maintabWidget.setCurrentIndex(1)

    def showtimetable(self):
        self.ui.maintabWidget.setCurrentIndex(3)
        if self.clickflag != 1:
            self.clickflag = 1
            self.ui.timetable.click()

    def showcg(self):
        self.ui.maintabWidget.setCurrentIndex(4)
        if self.clickflag2 != 1:
            self.clickflag2 = 1
            self.ui.cgcalc.click()

    def defaultsem(self):
        cur.execute("select * from acads")
        a = cur.fetchone()

        if a == None:
            self.showmessage('Add a subject first')
            self.ui.editsem.click()
        else:
            self.setdefaultsem = Startdefaultsem()
            self.setdefaultsem.show()
            QtCore.QObject.connect(self.setdefaultsem.ui.okay,
                                   QtCore.SIGNAL("clicked()"),
                                   self.setdefsemandclose)

    def setdefsemandclose(self):
        self.setsem()
        self.close()

    def timetabletab(self):
        a = self.ui.maintabWidget.currentIndex()

        b = self.ttflag
        c = self.cgflag

        if a == 3:
            if b == 0:
                self.settimetable()

            if self.ui.maintabWidget.count() > 5:
                self.ui.maintabWidget.removeTab(4)

        if a == 4:
            if c == 0:
                self.cgcalc()

            if self.ui.maintabWidget.count() > 5:
                self.ui.maintabWidget.removeTab(5)

    def setallwidgets(self):
        if self.ui.sem.text() == '':
            sem = None
        else:
            sem = int(self.ui.sem.text())

        self.editsem = Starteditsem()
        self.calendar = Startcalendar(sem)

    def setmaintabwidget(self):
        self.notrequired = QtGui.QWidget()
        self.notrequired2 = QtGui.QWidget()
        self.ui.maintabWidget.clear()
        self.ui.maintabWidget.insertTab(0, self.subtabWidget, 'Home')
        self.ui.maintabWidget.insertTab(1, self.editsem, 'Add/Delete Subjects')
        self.editsemsignals()
        self.ui.maintabWidget.insertTab(2, self.calendar, 'Calendar')
        self.calendarsignals()
        self.ui.maintabWidget.insertTab(3, self.notrequired, 'Timetable')
        self.ui.maintabWidget.insertTab(4, self.notrequired2, 'Grades')

    def cgcalc(self):

        cur.execute("select * from grades")
        a = cur.fetchone()

        if a == None:
            self.showmessage('Set default grading system first')

            self.gradingsystem = Startgrade()
            self.gradingsystem.show()
            QtCore.QObject.connect(self.gradingsystem.ui.done,
                                   QtCore.SIGNAL("clicked()"), self.cgcalc)

        else:
            cur.execute("select * from acads")
            a = cur.fetchone()

            if a == None:
                self.showmessage('Add a subject first')
            else:

                self.cgcalc2 = Startcgcalc()
                self.ui.maintabWidget.insertTab(4, self.cgcalc2, 'Grades')
                self.cgflag = 1
                cur.execute("insert into cgflag values(1)")
                con.commit()

    def settimetable(self):

        cur.execute("select max(day) from timetable")
        a = cur.fetchone()

        if a[0] == None:
            cur.execute("select * from days")
            b = cur.fetchone()

            if b == None:
                self.showmessage('Set timeslots and Days first')
                self.ttdetails = Startttdetailsex()
                self.ttdetails.show()
                QtCore.QObject.connect(self.ttdetails.done,
                                       QtCore.SIGNAL("clicked()"),
                                       self.settimetable)
                QtCore.QObject.connect(self.ttdetails.cancel,
                                       QtCore.SIGNAL("clicked()"),
                                       self.settimetable)

            else:
                cur.execute("select * from acads")
                a = cur.fetchone()
                if a == None:
                    self.showmessage('Add a subject first')

                else:
                    self.showmessage('Set the periods and save')
                    self.ttedit = Starttimetableedit()
                    self.ttedit.show()

                    QtCore.QObject.connect(self.ttedit.save,
                                           QtCore.SIGNAL("clicked()"),
                                           self.settimetable)

        else:

            self.timetable = Starttimetable()

            self.ui.maintabWidget.insertTab(3, self.timetable, 'Timetable')
            self.ttflag = 1
            cur.execute("insert into timetableflag values(1)")
            con.commit()

    def calendarsignals(self):

        QtCore.QObject.connect(self.calendar.savebunk,
                               QtCore.SIGNAL("clicked()"), self.setsub)
        QtCore.QObject.connect(self.calendar.t.ui.add,
                               QtCore.SIGNAL("clicked()"), self.setstickynote)
        QtCore.QObject.connect(self.calendar.dummybutton,
                               QtCore.SIGNAL("clicked()"), self.setstickynote)

    def editsemsignals(self):

        QtCore.QObject.connect(self.editsem.ui.add, QtCore.SIGNAL("clicked()"),
                               self.setsub2)
        QtCore.QObject.connect(self.editsem.ui.delete_2,
                               QtCore.SIGNAL("clicked()"), self.setsub2)

    def setsub(self):

        self.subtabWidget.clear()
        self.startframe = []

        if self.ui.sem.text() != '':
            c = (int(self.ui.sem.text()), )
            cur.execute("select * from acads where semester = ?", c)

            i = 0
            k = 0

            subcode = []
            subname = []
            credits = []
            bunksleft = []
            classes = []
            attendance = []

            for row in cur:
                subcode.append(row[1])
                subname.append(row[2])
                credits.append(row[3])
                bunksleft.append(row[5] - row[6])
                classes.append(row[7])
                attendance.append(row[8])
                k = k + 1

            for i in range(0, k):
                self.startframe.append(
                    Startframe(str(subcode[i]), classes[i], attendance[i]))
                a = self.subtabWidget.insertTab(i, self.startframe[i],
                                                subcode[i])
                self.startframe[i].subjectname.setText(subname[i])
                self.startframe[i].credits.setText(str(credits[i]))
                self.startframe[i].subjectcode.setText(str(subcode[i]))
                self.startframe[i].bunksleft.setText(str(bunksleft[i]))
                QtCore.QObject.connect(
                    self.startframe[i].editsubject.ui.change,
                    QtCore.SIGNAL("clicked()"), self.setsub3)
                QtCore.QObject.connect(self.startframe[i].addref.ui.add,
                                       QtCore.SIGNAL("clicked()"),
                                       self.setsub3)
                QtCore.QObject.connect(
                    self.startframe[i].deleteref.ui.deletebutton,
                    QtCore.SIGNAL("clicked()"), self.setsub3)
                i = i + 1

        self.ui.maintabWidget.removeTab(0)
        self.ui.maintabWidget.insertTab(0, self.subtabWidget, 'Home')

    def setsub3(self):
        self.setsub()
        self.ui.home.click()

    def setsub2(self):

        flag = 0

        cur.execute("select * from acads")

        for row in cur:
            flag = flag + 1

        self.setsem()
        self.setsub()
        self.calendar.setbunkclasses()
        self.calendar.setbunkticks()
        self.ui.home.click()

        if flag == 1:
            self.ui.defsem.click()

    def setsem(self):
        cur.execute("select * from defsem")
        a = cur.fetchone()

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

    def showmessage(self, a):
        message = QtGui.QMessageBox(self)
        message.setText(a)
        message.setWindowTitle('Acadmin alert')
        message.setIcon(QtGui.QMessageBox.Warning)
        message.exec_()

    def setdate(self):

        self.date = datetime.datetime.now()
        self.month = [
            None,
            'Jan.',
            'Feb.',
            'March',
            'April',
            'May',
            'June',
            'July',
            'Aug.',
            'Sept.',
            'Oct.',
            'Nov.',
            'Dec.',
        ]

        self.ui.day.setText(
            "<span style=\" font-size:48pt; font-weight:600; color:#ffff00;\">"
            + str(self.date.day) + "</span>")
        self.ui.monthyear.setText(
            "<span style=\" font-size:12pt; font-weight:600; color:#ffff00;\">"
            + self.month[self.date.month] + "  " + str(self.date.year) +
            "</span>")
        self.ui.day.setAlignment(Qt.AlignHCenter)
        self.ui.monthyear.setAlignment(Qt.AlignHCenter)

    def setstickynote(self):

        stickylist = QtGui.QWidget()
        stickylist.setSizePolicy(QtGui.QSizePolicy.Expanding,
                                 QtGui.QSizePolicy.Expanding)
        stickylistgrid = QtGui.QGridLayout()

        stickylistgrid.addWidget(QtGui.QLabel("        "), 0, 0)
        stickylistgrid.addWidget(QtGui.QLabel("<b>.  Today's Tasks :</b>"), 1,
                                 0)

        todaytask = []
        i = 0
        t = (
            self.date.day,
            self.date.month,
            self.date.year,
        )
        cur.execute(
            "select * from reminder where day = ? and month = ? and year = ?",
            t)
        a = cur.fetchone()

        if a == None:
            stickylistgrid.addWidget(
                QtGui.QLabel("<i>.    No assignments</i>"), 2, 0)

        else:

            cur.execute(
                "select * from reminder where day = ? and month = ? and year = ?",
                t)
            for row in cur:
                todaytask.append(
                    QtGui.QLabel('   ' + str(i + 1) + '. ' + str(row[0]) +
                                 ' - ' + str(row[1])))
                stickylistgrid.addWidget(todaytask[i], i + 2, 0)
                i = i + 1

        stickylistgrid.addWidget(QtGui.QLabel("<b>.  Tomorrow's Tasks :</b>"),
                                 i + 3, 0)

        today = QtCore.QDate(self.date.year, self.date.month, self.date.day)
        tomorrow = today.addDays(1)

        tommtask = []
        j = i + 3
        t = (
            tomorrow.day(),
            tomorrow.month(),
            tomorrow.year(),
        )
        cur.execute(
            "select * from reminder where day = ? and month = ? and year = ?",
            t)
        a = cur.fetchone()
        if a == None:

            stickylistgrid.addWidget(
                QtGui.QLabel("<i>.    No assignments</i>"), j + 1, 0)

        else:

            cur.execute(
                "select * from reminder where day = ? and month = ? and year = ?",
                t)
            q = 0
            for row in cur:
                tommtask.append(
                    QtGui.QLabel('   ' + str(q + 1) + '. ' + str(row[0]) +
                                 ' - ' + str(row[1])))
                stickylistgrid.addWidget(tommtask[q], j + 1, 0)
                q = q + 1
                j = j + 1

        stickylistgrid.addWidget(QtGui.QLabel("        "), j + 2, 0)
        stickylist.setLayout(stickylistgrid)
        self.ui.stickynote.setWidget(stickylist)

    def setpics(self):

        self.ui.home.setIcon(QtGui.QIcon('./pics/home.png'))
        self.ui.calendar.setIcon(QtGui.QIcon('./pics/calendar.png'))
        self.ui.timetable.setIcon(QtGui.QIcon('./pics/timetable.png'))
        self.ui.cgcalc.setIcon(QtGui.QIcon('./pics/grades.png'))
        self.ui.editsem.setIcon(QtGui.QIcon('./pics/editsem.png'))
        self.ui.about.setIcon(QtGui.QIcon('./pics/about.png'))
        self.ui.defsem.setIcon(QtGui.QIcon('./pics/default.png'))
        self.ui.help.setIcon(QtGui.QIcon('./pics/help.png'))

        palette = QtGui.QPalette()
        palette.setBrush(self.backgroundRole(),
                         QBrush(QImage("./pics/sticky note.png")))

        palette3 = QtGui.QPalette()
        palette3.setBrush(self.backgroundRole(),
                          QBrush(QImage("./pics/calender.png")))

        palette2 = QtGui.QPalette()
        palette2.setBrush(self.backgroundRole(),
                          QBrush(QImage("./pics/background2.jpg")))

        self.setPalette(palette2)
        self.ui.stickynote.setPalette(palette)

        self.ui.calender.setPalette(palette3)

    def settoolbar(self):
        self.ui.toolBar.addWidget(self.ui.home)
        self.ui.toolBar.addSeparator()
        self.ui.toolBar.addWidget(self.ui.calendar)
        self.ui.toolBar.addSeparator()
        self.ui.toolBar.addWidget(self.ui.timetable)
        self.ui.toolBar.addSeparator()
        self.ui.toolBar.addWidget(self.ui.cgcalc)
        self.ui.toolBar.addSeparator()
        self.ui.toolBar.addWidget(self.ui.editsem)
        self.ui.toolBar.addSeparator()

        aha = QtGui.QWidget()
        aha.setFixedWidth(40)
        aha.setFixedHeight(30)

        self.ui.toolBar.addWidget(aha)

        self.ui.toolBar.addWidget(self.ui.defsem)
        self.ui.toolBar.addSeparator()

        aha2 = QtGui.QWidget()
        aha.setFixedWidth(40)
        aha.setFixedHeight(30)

        self.ui.toolBar.addWidget(aha2)

        self.ui.toolBar.addSeparator()
        self.ui.toolBar.addWidget(self.ui.about)
        self.ui.toolBar.addSeparator()
        self.ui.toolBar.addWidget(self.ui.help)
        self.ui.toolBar.addSeparator()

        self.ui.home.setToolTip('Home')
        self.ui.calendar.setToolTip('Calendar')
        self.ui.timetable.setToolTip('Timetable')
        self.ui.cgcalc.setToolTip('Grades')
        self.ui.editsem.setToolTip('Add / Delete Subjects')
        self.ui.about.setToolTip('About')
        self.ui.defsem.setToolTip('Set Default Semester')
        self.ui.help.setToolTip('Help')