-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlectureOperations.py
More file actions
74 lines (62 loc) · 3.39 KB
/
lectureOperations.py
File metadata and controls
74 lines (62 loc) · 3.39 KB
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
from __main__ import app
from flask import request,render_template,Response,flash,redirect
from DatabaseClient import allowed_file,STUDENTS_PHOTOS_DIR
import datetime
import os
from AppClasses import Student
import DatabaseClient
import utilities
@app.route('/editLecture/<int:lectureId>',methods=['GET','POST'])
@app.route('/addLecture',methods=['GET','POST'])
def editLecture(lectureId=None):
databaseClient = DatabaseClient.DatabaseClient()
invalidEditOperation = Response('Invalid edit operation')
if request.method == 'GET':
selectionCriteria = {'lectureId':lectureId}
years = databaseClient.getCollegeYears()
majors = databaseClient.getMajors()
days = databaseClient.getDays()
lecture = databaseClient.loadDocument(DatabaseClient.LECTURES_COL,DatabaseClient.LECTURE_TAG,selectionCriteria)
if lecture is None:
if lectureId is not None:
return invalidEditOperation
if lectureId is None:
operation = 'Add'
else:
operation = 'Edit'
return render_template('lectureOperations.html',majors=majors,years=years,days=days,lecture=lecture,operation=operation,len=len,str=str)
if request.method == 'POST':
lectureName = request.form.get('lectureName')
lectureTeacher = request.form.get('lectureTeacher')
lectureMajor = request.form.get('lectureMajor')
lectureYear = request.form.get('lectureYear')
lectureDay = request.form.get('lectureDay')
lectureTime = request.form.get('lectureTime')
lectureLength = request.form.get('lectureLength')
lectureStart = utilities.changeTimeFormat(lectureTime)
lectureEnd=lectureStart+(int(float(lectureLength)*3600))
selectionCriteria = {'lectureId':lectureId}
if lectureId is not None:
if databaseClient.loadDocument(DatabaseClient.LECTURES_COL,DatabaseClient.LECTURE_TAG,selectionCriteria):
databaseClient.deleteDocument(DatabaseClient.LECTURES_COL,DatabaseClient.LECTURE_TAG,selectionCriteria)
flash('Lecture was edited successfully','success')
else:
return invalidEditOperation
else:
lectureId = databaseClient.getNextSequenceNumber('lectureId')
flash('Lecture was added successfully','success')
lectureDict = dict(lectureName=lectureName , lectureTeacher=lectureTeacher ,lectureMajor=lectureMajor,
lectureYear=lectureYear,lectureDay=lectureDay,lectureTime=lectureTime,lectureLength=lectureLength,
lectureStart=lectureStart,lectureEnd=lectureEnd,lectureId=lectureId)
databaseClient.saveDocument(DatabaseClient.LECTURES_COL,DatabaseClient.LECTURE_TAG,lectureDict)
return redirect('/lecturesList/0')
@app.route('/deleteLecture/<int:lectureId>')
def deleteLecture(lectureId):
databaseClient = DatabaseClient.DatabaseClient()
#we query the database to find a student with the ID if it exists we delete it and the associated folder
selectionCriteria = {'lectureId' : lectureId}
if databaseClient.loadDocument(DatabaseClient.LECTURES_COL,DatabaseClient.LECTURE_TAG,selectionCriteria):
databaseClient.deleteDocument(DatabaseClient.LECTURES_COL,DatabaseClient.LECTURE_TAG,selectionCriteria)
return redirect('/lecturesList/0')
else:
return(Response('Invalid delete operation'))