-
Notifications
You must be signed in to change notification settings - Fork 1
/
attendb.py
98 lines (84 loc) · 3.37 KB
/
attendb.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/usr/bin/python
import sqlite3
import os
class AttendDB():
def __init__(self):
"""Interaction with the sqlite database."""
home = os.path.expanduser("~")
path = os.path.join(home,"My Dropbox")
if not os.path.isdir(path):
path = os.path.join(home, "Dropbox")
self.db_name = os.path.join(path, 'Capo', 'Attendance', \
'Attendance.db')
self.class_table = 'academy'
def open_connection(self):
"""Create a connection and a cursor to the given database."""
self.conn = sqlite3.connect(self.db_name)
self.c = self.conn.cursor()
def add_student(self, apelido="", fn="", ln=""):
"""Add new student to table."""
self.open_connection()
self.c.execute("INSERT INTO students (apelido, fn, ln) " + \
"VALUES ('" + str(apelido) + "', '" + str(fn) + \
"', '" + str(ln) +"')")
self.conn.commit()
self.close_connection()
def remove_student(self, apelido="", fn="", ln=""):
"""Remove student from table."""
self.open_connection()
self.c.execute(\
"DELETE FROM students WHERE apelido=? AND fn=? AND ln=?",\
(apelido, fn, ln))
self.conn.commit()
self.close_connection()
def update_student(self, sid, apelido, fn, ln):
"""Update given student."""
self.open_connection()
self.c.execute("UPDATE students " + \
"SET apelido='" + apelido + "', " + \
"fn='" + fn + "', " + \
"ln='" + ln + "' " + \
"WHERE Sid=" + sid)
self.conn.commit()
self.close_connection()
def get_attendance_for_date(self, curr_date):
"""Get the students that attended class on a given date from today."""
self.open_connection()
students = []
self.c.execute("SELECT students.* FROM academy JOIN students " +\
"ON academy.Sid=students.Sid " + \
"WHERE academy.classDate='"+str(curr_date)+"'")
for row in self.c:
students.append(row)
self.close_connection()
return students
def get_students(self):
"""Get all of the students."""
self.open_connection()
students = []
self.c.execute("SELECT * FROM students")
for row in self.c:
students.append(row)
self.close_connection()
return students
def student_attend(self, sid, curr_date):
"""Add students attendance to table."""
self.open_connection()
self.c.execute("INSERT INTO academy (Sid, classDate) VALUES (" + \
str(sid)+", '"+str(curr_date)+"')")
self.conn.commit()
self.close_connection()
def student_deattend(self, sid, curr_date):
"""Rmove student attendance from table."""
self.open_connection()
self.c.execute("DELETE FROM academy WHERE Sid='" + str(sid) + "' " + \
"AND classDate='" + str(curr_date) + "'")
self.conn.commit()
self.close_connection()
def close_connection(self):
"""Close the connection."""
self.c.close()
self.conn.close()
if __name__ == '__main__':
# TODO - Testing
pass