diff --git a/README.md b/README.md old mode 100755 new mode 100644 diff --git a/code.py b/code.py old mode 100755 new mode 100644 index 6b0ebf7..fa20402 --- a/code.py +++ b/code.py @@ -117,13 +117,18 @@ class Subject: return render.subject(subject_name[0]['name'], schedules, form, None) def POST(self): + cookie = web.cookies().get(COOKIE_SUBJECT) + schedules = db.query( "SELECT schedules.sched_id, schedules.description, schedules.capacity, rooms.name " + "FROM schedules " + "INNER JOIN rooms ON schedules.room_id = rooms.room_id " + + "AND schedules.subject_id = " + str(cookie) + " " + "ORDER BY schedules.sched_id ASC" ) + subject_name = db.query("SELECT name FROM subjects WHERE subject_id = " + str(cookie)) + form = self.form() if not form.validates(): @@ -136,18 +141,25 @@ class Subject: else: student = db.query( - "SELECT schedule_id FROM students WHERE id_CARD = $id AND email = $email", + "SELECT schedule_id FROM students WHERE id_CARD = $id AND email = $email AND subject_id = $subject ", vars = { 'id':str(form.d.cedula), - 'email':form.d.email.upper() + 'email':form.d.email.upper(), + 'subject': int(cookie) } ) if len(student) == 0: - return render.index(schedules, self.form, "Cedula o email no encontrados.") + scheds = _get_schedule_list() + form = self.form() + form.horario.args = scheds + return render.subject(subject_name[0]['name'], schedules, form, "Cedula o email no encontrados para esta asignatura.") else: - if student[0]["schedule_id"] != 8: - return render.index(schedules, self.form, "Estudiante con horario ya registrado.") + if student[0]["schedule_id"] != 1: + scheds = _get_schedule_list() + form = self.form() + form.horario.args = scheds + return render.subject(subject_name[0]['name'], schedules, form, "Estudiante con horario ya registrado.") else: sched = db.query( @@ -156,7 +168,10 @@ class Subject: ) if len(sched) == 0: - return render.index(schedules, self.form, "ERROR: Horario no encontrado.") + scheds = _get_schedule_list() + form = self.form() + form.horario.args = scheds + return render.subject(subject_name[0]['name'], schedules, form, "ERROR: Horario no encontrado.") else: x = 0 for s in sched: @@ -167,7 +182,10 @@ class Subject: x += 1 if cap <= 0: - return render.index(schedules, self.form, "Horario agotado.") + scheds = _get_schedule_list() + form = self.form() + form.horario.args = scheds + return render.subject(subject_name[0]['name'], schedules, form, "Horario agotado.") else: db.query( "UPDATE schedules SET capacity = $cap where sched_id = $id", @@ -196,14 +214,21 @@ class Subject: "ORDER BY schedules.sched_id ASC" ) - web.sendmail( - '', - form.d.email.lower(), - 'OECI - Laboratorio Registrado', - 'Ha registrado exitosamente el horario de laboratorio: ' + desc - ) + try: + web.sendmail( + '', + form.d.email.lower(), + 'OECI - Laboratorio Registrado', + 'Ha registrado exitosamente el horario de laboratorio: ' + desc + ) + except Exception: + pass - return render.index(schedules, self.form, "Horario registrado exitosamente.") + scheds = _get_schedule_list() + form = self.form() + form.horario.args = scheds + + return render.subject(subject_name[0]['name'], schedules, form, "Horario registrado exitosamente.") if __name__ == "__main__": web.config.smtp_server = '' diff --git a/generate_report.py b/generate_report.py index 5c9aa8c..d55e20e 100644 --- a/generate_report.py +++ b/generate_report.py @@ -13,7 +13,7 @@ SECCTION_IDS = {"C1": 1, QUERY = "SELECT students.id_card AS cedula, students.first_name AS nombre, students.last_name AS apellido, students.email AS email, sections.section AS seccion, schedules.description AS horario, rooms.name AS salon FROM students INNER JOIN schedules ON schedules.sched_id = students.schedule_id INNER JOIN rooms ON schedules.room_id = rooms.room_id INNER JOIN sections ON students.class_id = sections.section_id AND students.class_id = $sect AND students.subject_id = $subj;" def main(): - db = web.database(dbn = 'mysql', user = 'root', pw = 'Familylost9989*', db = 'labs') + db = web.database(dbn = 'mysql', user = '', pw = '', db = '') for s in SUBJECTS: for c in SECCTION_IDS.keys(): diff --git a/insert_students.py b/insert_students.py index d4fd240..82ed8a7 100644 --- a/insert_students.py +++ b/insert_students.py @@ -4,12 +4,12 @@ import pandas import web -FILES = [("/home/miky/Documentos/listado_6001_C1.xls", 3), - ("/home/miky/Documentos/listado_6001_C2.xls", 3), - ("/home/miky/Documentos/listado_6001_C3.xls", 3), - ("/home/miky/Documentos/listado_6001_C4.xls", 3), - ("/home/miky/Documentos/listado_6004_C1.xls", 2), - ("/home/miky/Documentos/listado_6004_C2.xls", 2)] +FILES = [("../listado_6001_C1.xls", 3), + ("../listado_6001_C2.xls", 3), + ("../listado_6001_C3.xls", 3), + ("../listado_6001_C4.xls", 3), + ("../listado_6004_C1.xls", 2), + ("../listado_6004_C2.xls", 2)] SHEET_NAME = "Sheet1" @@ -21,7 +21,7 @@ SECCTION_IDS = {"C1": 1, QUERY = "INSERT INTO students(id_card, first_name, last_name, email, class_id, schedule_id, subject_id) VALUES($id, $fn, $ln, $ml, $cl, 1, $sj)" def main(): - db = web.database(dbn = 'mysql', user = 'root', pw = 'Familylost9989*', db = 'labs') + db = web.database(dbn = 'mysql', user = '', pw = '', db = '') for f in FILES: xls = pandas.ExcelFile(f[0])