initial commit

This commit is contained in:
2024-05-25 19:18:26 +03:00
commit 26e912c03a
12 changed files with 351 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
class ObjectPool:
def __init__(self, selector, constructor):
self.selector = selector
self.constructor = constructor
self.pool = []
def load_from_db(self, cur):
cur.execute(f"SELECT * FROM {self.selector};")
self.pool = [self.constructor().init_from_data(i) for i in cur]
return self

43
server/cgi/db/question.py Normal file
View File

@@ -0,0 +1,43 @@
from object_pool import ObjectPool
class Question:
def init(self, sID, title, max_time, test_id):
self.id = sID
self.title = title
self.max_time = max_time
self.test_id = test_id
return self
def init_from_data(self, data):
return self.init(*data)
def get_id(self):
return self.id
def get_title(self):
return self.title
def get_max_time(self):
return self.max_time
def get_test_id(self):
return self.test_id
'''
class QuestionPool:
def __init__(self):
self.pool = []
def load_from_db(self, cur):
db.execute("SELECT * FROM response_option;")
self.pool = [ResponseOption().init_from_data(i) for i in cur]
return self
'''
class QuestionPool:
def __init__(self):
self.object_pool = ObjectPool("question", Question)
if db:
self.object_pool.load_from_db(db)

32
server/cgi/db/response.py Normal file
View File

@@ -0,0 +1,32 @@
from object_pool import ObjectPool
class Response:
def init(self, rID, optionID, pupilID, delay):
self.id = rID
self.optionID = optionID
self.pupilID = pupilID
self.delay = delay
return self
def init_from_data(self, data):
return self.init(*data)
def get_id(self):
return self.id
def get_option_id(self):
return self.optionID
def get_pupil_id(self):
return self.pupilID
def get_delay(self):
return delay
class ResponsePool:
def __init__(self, db = None):
self.object_pool = ObjectPool("response", Response)
if db:
self.object_pool.load_from_db(db)

View File

@@ -0,0 +1,43 @@
from object_pool import ObjectPool
class ResponseOption:
def init(self, sID, label, questionID, correctness):
self.id = sID
self.label = label
self.questionID = questionID
self.correctness = correctness
return self
def init_from_data(self, data):
return self.init(*data)
def get_id(self):
return self.id
def get_label(self):
return self.label
def get_question_id(self):
return self.questionID
def get_correctness(self):
return correctness
class ResponceOptionPool:
def __init__(self):
self.object_pool = ObjectPool("response_option", ResponseOption)
if db:
self.object_pool.load_from_db(db)
'''
class ResponceOptionPool:
def __init__(self):
self.pool = []
def load_from_db(self, cur):
db.execute("SELECT * FROM response_option;")
self.pool = [ResponseOption().init_from_data(i) for i in cur]
return self
'''

27
server/cgi/db/test.py Normal file
View File

@@ -0,0 +1,27 @@
from db.object_pool import ObjectPool
class Test:
def init(self, sID, name):
self.id = sID
self.name = name
return self
def init_from_data(self, data):
return self.init(*data)
def get_id(self):
return self.id
def get_name(self):
return self.name
def render_short(self):
return f'<div class="test-short"><a class="header-link">#{self.sID} {self.name}</a></div>'
class TestPool:
def __init__(self, db):
self.object_pool = ObjectPool("test", Test)
if db:
self.object_pool.load_from_db(db)