Ommodulering
This commit is contained in:
parent
14fa195810
commit
ded36a2aa3
|
@ -62,7 +62,8 @@ class AssignmentDlg(QDialog):
|
||||||
deliveredLabel = QLabel(self.trUtf8("De&livered"))
|
deliveredLabel = QLabel(self.trUtf8("De&livered"))
|
||||||
|
|
||||||
dateEdit = QLineEdit()
|
dateEdit = QLineEdit()
|
||||||
courseEdit = QLineEdit()
|
courseEdit = QComboBox()
|
||||||
|
courseEdit.addItems(MainWindow.getCoursesString())
|
||||||
descriptionEdit = QLineEdit()
|
descriptionEdit = QLineEdit()
|
||||||
availableEdit = QCheckBox()
|
availableEdit = QCheckBox()
|
||||||
begunEdit = QCheckBox()
|
begunEdit = QCheckBox()
|
||||||
|
|
BIN
assignment.pyc
BIN
assignment.pyc
Binary file not shown.
43
course.py
43
course.py
|
@ -53,3 +53,46 @@ class AddCourseDlg(CourseDlg):
|
||||||
|
|
||||||
self.setWindowTitle(self.trUtf8("Add new course"))
|
self.setWindowTitle(self.trUtf8("Add new course"))
|
||||||
|
|
||||||
|
def accept(self):
|
||||||
|
courseCode = unicode(self.codeEdit.text())
|
||||||
|
courseTitle = unicode(self.titleEdit.text())
|
||||||
|
courseShort = unicode(self.shortEdit.text())
|
||||||
|
course = CourseModel(courseCode, courseTitle, courseShort)
|
||||||
|
|
||||||
|
|
||||||
|
class CourseModel():
|
||||||
|
|
||||||
|
code = ""
|
||||||
|
title = ""
|
||||||
|
short = ""
|
||||||
|
full = ""
|
||||||
|
|
||||||
|
def __init__(self, code, title, short):
|
||||||
|
self.code = code
|
||||||
|
self.title = title
|
||||||
|
self.short = short
|
||||||
|
setFull(code, title)
|
||||||
|
|
||||||
|
def setCode(self, code):
|
||||||
|
self.code = code
|
||||||
|
|
||||||
|
def getCode(self):
|
||||||
|
return self.code
|
||||||
|
|
||||||
|
def setTitle(self, title):
|
||||||
|
self.title = title
|
||||||
|
|
||||||
|
def getTitle(self):
|
||||||
|
return self.title
|
||||||
|
|
||||||
|
def setShort(self, short):
|
||||||
|
self.short = short
|
||||||
|
|
||||||
|
def getShort(self):
|
||||||
|
return self.short
|
||||||
|
|
||||||
|
def setFull(self, code, title):
|
||||||
|
self.full = code + ' ' + title
|
||||||
|
|
||||||
|
def getFull(self):
|
||||||
|
return self.full
|
||||||
|
|
BIN
course.pyc
BIN
course.pyc
Binary file not shown.
254
db.py
254
db.py
|
@ -16,137 +16,153 @@ from calendar import *
|
||||||
from book import *
|
from book import *
|
||||||
from course import *
|
from course import *
|
||||||
|
|
||||||
def initDB():
|
class DB:
|
||||||
conn = sqlite.connect('egon.db')
|
|
||||||
curs = conn.cursor()
|
|
||||||
return curs, conn
|
|
||||||
|
|
||||||
def initNewDB():
|
|
||||||
cursor, conn = initDB()
|
|
||||||
initAssignmentDB(cursor)
|
|
||||||
initReadingDB(cursor)
|
|
||||||
initScheduleDB(cursor)
|
|
||||||
initBookDB(cursor)
|
|
||||||
initCourseDB(cursor)
|
|
||||||
exitDB(conn)
|
|
||||||
|
|
||||||
def initAssignmentDB(cursor):
|
|
||||||
cursor.execute('''
|
|
||||||
CREATE TABLE Assignment (
|
|
||||||
aid INTEGER PRIMARY KEY,
|
|
||||||
date TEXT,
|
|
||||||
description TEXT,
|
|
||||||
available BOOLEAN,
|
|
||||||
begun BOOLEAN,
|
|
||||||
finished BOOLEAN,
|
|
||||||
delivered BOOLEAN
|
|
||||||
)
|
|
||||||
''')
|
|
||||||
|
|
||||||
def initReadingDB(cursor):
|
def initDB():
|
||||||
cursor.execute('''
|
conn = sqlite.connect('egon.db')
|
||||||
CREATE TABLE Reading (
|
curs = conn.cursor()
|
||||||
rid INTEGER PRIMARY KEY,
|
return curs, conn
|
||||||
week TEXT,
|
|
||||||
chapter TEXT,
|
def initNewDB():
|
||||||
pages TEXT
|
cursor, conn = initDB()
|
||||||
)
|
initAssignmentDB(cursor)
|
||||||
''')
|
initReadingDB(cursor)
|
||||||
|
initScheduleDB(cursor)
|
||||||
|
initBookDB(cursor)
|
||||||
|
initCourseDB(cursor)
|
||||||
|
exitDB(conn)
|
||||||
|
|
||||||
|
def initAssignmentDB(cursor):
|
||||||
|
cursor.execute('''
|
||||||
|
CREATE TABLE Assignment (
|
||||||
|
aid INTEGER PRIMARY KEY,
|
||||||
|
date TEXT,
|
||||||
|
description TEXT,
|
||||||
|
available BOOLEAN,
|
||||||
|
begun BOOLEAN,
|
||||||
|
finished BOOLEAN,
|
||||||
|
delivered BOOLEAN
|
||||||
|
)
|
||||||
|
''')
|
||||||
|
|
||||||
def initScheduleDB(cursor):
|
def initReadingDB(cursor):
|
||||||
cursor.execute('''
|
cursor.execute('''
|
||||||
CREATE TABLE Lesson (
|
CREATE TABLE Reading (
|
||||||
lid INTEGER PRIMARY KEY,
|
rid INTEGER PRIMARY KEY,
|
||||||
day TEXT,
|
week TEXT,
|
||||||
fromtime TEXT,
|
chapter TEXT,
|
||||||
totime TEXT,
|
pages TEXT
|
||||||
type TEXT,
|
)
|
||||||
room TEXT
|
''')
|
||||||
)
|
|
||||||
''')
|
|
||||||
|
|
||||||
def initBookDB(cursor):
|
def initScheduleDB(cursor):
|
||||||
cursor.execute('''
|
cursor.execute('''
|
||||||
CREATE TABLE Book (
|
CREATE TABLE Lesson (
|
||||||
isbn TEXT PRIMARY KEY,
|
lid INTEGER PRIMARY KEY,
|
||||||
title TEXT,
|
day TEXT,
|
||||||
author TEXT,
|
fromtime TEXT,
|
||||||
edition INTEGER
|
totime TEXT,
|
||||||
)
|
type TEXT,
|
||||||
''')
|
room TEXT
|
||||||
|
)
|
||||||
|
''')
|
||||||
|
|
||||||
def initCourseDB(cursor):
|
def initBookDB(cursor):
|
||||||
cursor.execute('''
|
cursor.execute('''
|
||||||
CREATE TABLE Course (
|
CREATE TABLE Book (
|
||||||
code TEXT PRIMARY KEY,
|
isbn TEXT PRIMARY KEY,
|
||||||
title TEXT,
|
title TEXT,
|
||||||
short TEXT
|
author TEXT,
|
||||||
)
|
edition INTEGER
|
||||||
''')
|
)
|
||||||
|
''')
|
||||||
def initAssignmentInCourse(cursor):
|
|
||||||
cursor.execute('''
|
|
||||||
CREATE TABLE assignmentInCourse (
|
|
||||||
assignment INTEGER,
|
|
||||||
course INTEGER
|
|
||||||
)
|
|
||||||
''')
|
|
||||||
|
|
||||||
def initReadingInCourse(cursor):
|
|
||||||
cursor.execute('''
|
|
||||||
CREATE TABLE readingInCourse (
|
|
||||||
reading INTEGER,
|
|
||||||
course INTEGER
|
|
||||||
)
|
|
||||||
''')
|
|
||||||
|
|
||||||
def initLessonInCourse(cursor):
|
|
||||||
cursor.execute('''
|
|
||||||
CREATE TABLE lessonInCourse (
|
|
||||||
lesson INTEGER,
|
|
||||||
course INTEGER
|
|
||||||
)
|
|
||||||
''')
|
|
||||||
|
|
||||||
def initCourseUsesBook(cursor):
|
def initCourseDB(cursor):
|
||||||
cursor.execute('''
|
cursor.execute('''
|
||||||
CREATE TABLE courseUsesBook (
|
CREATE TABLE Course (
|
||||||
course INTEGER,
|
code TEXT PRIMARY KEY,
|
||||||
book TEXT
|
title TEXT,
|
||||||
)
|
short TEXT
|
||||||
''')
|
)
|
||||||
|
''')
|
||||||
|
|
||||||
def addNewBook(isbn, title, author, edition, course):
|
def initAssignmentInCourse(cursor):
|
||||||
cursor, conn = initDB()
|
cursor.execute('''
|
||||||
|
CREATE TABLE assignmentInCourse (
|
||||||
|
assignment INTEGER,
|
||||||
|
course INTEGER
|
||||||
|
)
|
||||||
|
''')
|
||||||
|
|
||||||
bookQuery = '''
|
def initReadingInCourse(cursor):
|
||||||
INSERT INTO Book
|
cursor.execute('''
|
||||||
VALUES (%s, %s, %s, %i)
|
CREATE TABLE readingInCourse (
|
||||||
''' % (isbn, title, author, edition)
|
reading INTEGER,
|
||||||
courseUsesBookQuery = '''
|
course INTEGER
|
||||||
INSERT INTO courseUsesBook
|
)
|
||||||
VALUES (%i, %s)
|
''')
|
||||||
''' % (course, isbn)
|
|
||||||
|
|
||||||
cursor.execute(bookQuery)
|
def initLessonInCourse(cursor):
|
||||||
cursor.execute(courseUsesBookQuery)
|
cursor.execute('''
|
||||||
|
CREATE TABLE lessonInCourse (
|
||||||
|
lesson INTEGER,
|
||||||
|
course INTEGER
|
||||||
|
)
|
||||||
|
''')
|
||||||
|
|
||||||
|
def initCourseUsesBook(cursor):
|
||||||
|
cursor.execute('''
|
||||||
|
CREATE TABLE courseUsesBook (
|
||||||
|
course INTEGER,
|
||||||
|
book TEXT
|
||||||
|
)
|
||||||
|
''')
|
||||||
|
|
||||||
exitDB(conn)
|
def addNewBook(isbn, title, author, edition, course):
|
||||||
|
cursor, conn = initDB()
|
||||||
|
|
||||||
|
bookQuery = '''
|
||||||
|
INSERT INTO Book
|
||||||
|
VALUES (%s, %s, %s, %i)
|
||||||
|
''' % (isbn, title, author, edition)
|
||||||
|
courseUsesBookQuery = '''
|
||||||
|
INSERT INTO courseUsesBook
|
||||||
|
VALUES (%i, %s)
|
||||||
|
''' % (course, isbn)
|
||||||
|
|
||||||
|
cursor.execute(bookQuery)
|
||||||
|
cursor.execute(courseUsesBookQuery)
|
||||||
|
|
||||||
|
exitDB(conn)
|
||||||
|
|
||||||
def addNewCourse(code, title, short):
|
def addNewCourse(code, title, short):
|
||||||
cursor, conn = initDB()
|
cursor, conn = initDB()
|
||||||
|
|
||||||
courseQuery = '''
|
courseQuery = '''
|
||||||
INSERT INTO Course
|
INSERT INTO Course
|
||||||
VALUES (%s, %s, %s)
|
VALUES (%s, %s, %s)
|
||||||
''' % (code, title, short)
|
''' % (code, title, short)
|
||||||
|
|
||||||
cursor.execute(courseQuery)
|
cursor.execute(courseQuery)
|
||||||
|
|
||||||
exitDB(conn)
|
exitDB(conn)
|
||||||
|
|
||||||
def exitDB(conn):
|
def getCourses():
|
||||||
conn.commit()
|
cursor, conn = initDB()
|
||||||
conn.close()
|
|
||||||
|
courseQuery = '''
|
||||||
|
SELECT *
|
||||||
|
FROM Course
|
||||||
|
'''
|
||||||
|
|
||||||
|
cursor.execute(courseQuery)
|
||||||
|
|
||||||
|
courses = []
|
||||||
|
for row in cursor.fetchall():
|
||||||
|
courses.append(CourseModel(row[0], row[1], row[2]))
|
||||||
|
|
||||||
|
def exitDB(conn):
|
||||||
|
conn.commit()
|
||||||
|
conn.close()
|
||||||
|
|
||||||
initNewDB()
|
initNewDB()
|
||||||
|
|
39
main.py
39
main.py
|
@ -15,17 +15,26 @@ from schedule import *
|
||||||
from calendar import *
|
from calendar import *
|
||||||
from book import *
|
from book import *
|
||||||
from course import *
|
from course import *
|
||||||
|
from db import *
|
||||||
|
|
||||||
__version__ = "0.0.1"
|
__version__ = "0.0.1"
|
||||||
|
|
||||||
class MainWindow(QMainWindow):
|
class MainWindow(QMainWindow):
|
||||||
|
|
||||||
|
courses = []
|
||||||
|
coursesString = []
|
||||||
|
books = []
|
||||||
|
booksString = []
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
super(MainWindow, self).__init__(parent)
|
super(MainWindow, self).__init__(parent)
|
||||||
|
|
||||||
# The program name
|
# The program name
|
||||||
self.title = "Egon"
|
self.title = "Egon"
|
||||||
|
|
||||||
|
# The database
|
||||||
|
self.db = DB()
|
||||||
|
|
||||||
# The tabs
|
# The tabs
|
||||||
assignment = AssignmentTab()
|
assignment = AssignmentTab()
|
||||||
reading = ReadingTab()
|
reading = ReadingTab()
|
||||||
|
@ -106,6 +115,9 @@ class MainWindow(QMainWindow):
|
||||||
editToolbar.setObjectName("EditToolBar")
|
editToolbar.setObjectName("EditToolBar")
|
||||||
self.addActions(editToolbar, (editAddCourse, editAddBook, None, editShowCalendar))
|
self.addActions(editToolbar, (editAddCourse, editAddBook, None, editShowCalendar))
|
||||||
|
|
||||||
|
self.courses = self.db.getCourses()
|
||||||
|
makeCoursesString()
|
||||||
|
|
||||||
def addCourse(self):##, code, title, short):
|
def addCourse(self):##, code, title, short):
|
||||||
self.acdlg = AddCourseDlg()
|
self.acdlg = AddCourseDlg()
|
||||||
self.acdlg.show()
|
self.acdlg.show()
|
||||||
|
@ -149,9 +161,9 @@ class MainWindow(QMainWindow):
|
||||||
|
|
||||||
def helpAbout(self):
|
def helpAbout(self):
|
||||||
QMessageBox.about(self, "About %s" % self.title, u"""<b>%s</b> v %s
|
QMessageBox.about(self, "About %s" % self.title, u"""<b>%s</b> v %s
|
||||||
<p>Copyright © 2008 Tiril Anette Langfeldt Rødland. All rights reserved.
|
<p>Copyright © 2008 Tiril Anette Langfeldt Rødland. All rights reserved.
|
||||||
<p>This application is mainly for use by students, and can be used to keep track of assignments, planned readings and the schedule.
|
<p>This application is mainly for use by students, and can be used to keep track of assignments, planned readings and the schedule.
|
||||||
<p>Python %s - Qt %s - PyQt %s on %s""" % (self.title, __version__, platform.python_version(), QT_VERSION_STR, PYQT_VERSION_STR, platform.system()))
|
<p>Python %s - Qt %s - PyQt %s on %s""" % (self.title, __version__, platform.python_version(), QT_VERSION_STR, PYQT_VERSION_STR, platform.system()))
|
||||||
|
|
||||||
def addActions(self, target, actions):
|
def addActions(self, target, actions):
|
||||||
for action in actions:
|
for action in actions:
|
||||||
|
@ -206,8 +218,25 @@ class MainWindow(QMainWindow):
|
||||||
def refreshTable(self):
|
def refreshTable(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def addNewCourse(self, course):
|
||||||
|
self.courses.append(course)
|
||||||
|
db.addNewCourse(course.getCode(), course.getTitle(), course.getShort())
|
||||||
|
self.addNewCourseString(course)
|
||||||
|
|
||||||
class Model():
|
def getCourses(self):
|
||||||
|
return self.courses
|
||||||
|
|
||||||
|
def addNewCourseString(self, course):
|
||||||
|
self.coursesString.append(course.getFull())
|
||||||
|
|
||||||
|
def makeCoursesString(self, courses):
|
||||||
|
for c in courses:
|
||||||
|
addNewCourseString(course)
|
||||||
|
|
||||||
|
def getCoursesString(self):
|
||||||
|
return self.coursesString
|
||||||
|
|
||||||
|
class Model:
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
self.assignmentModel = AssignmentModel()
|
self.assignmentModel = AssignmentModel()
|
||||||
|
|
Reference in New Issue