tirilane
/
egon
Archived
1
0
Fork 0

Ommodulering

This commit is contained in:
Tiril Anette Langfeldt Rødland 2008-06-05 11:30:13 +00:00
parent 14fa195810
commit ded36a2aa3
8 changed files with 214 additions and 125 deletions

View File

@ -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()

Binary file not shown.

View File

@ -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

Binary file not shown.

254
db.py
View File

@ -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()

BIN
db.pyc

Binary file not shown.

39
main.py
View File

@ -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 &copy; 2008 Tiril Anette Langfeldt Rødland. All rights reserved. <p>Copyright &copy; 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()

BIN
main.pyc

Binary file not shown.