teacher update

This commit is contained in:
Raffu Khondaker 2020-06-15 22:08:23 -04:00
parent ecaa0faf39
commit 6079019a9a
3 changed files with 26 additions and 68 deletions

View File

@ -84,6 +84,7 @@ class Teacher:
self.git=data['git'] self.git=data['git']
self.username=data['ion_user'] self.username=data['ion_user']
self.url= "http://127.0.0.1:8000/api/teachers/" + self.username + "/" self.url= "http://127.0.0.1:8000/api/teachers/" + self.username + "/"
self.id = data['user']
#classes in id form (Example: 4,5) #classes in id form (Example: 4,5)
#array #array
@ -168,23 +169,10 @@ class Teacher:
#add to instance #add to instance
#upate self.classes #upate self.classes
self.classes.append(data) self.classes.append(data)
patchDB(data, self.url) data = {
if(len(self.sclass)==0): 'classes':self.classes
self.sclass = data['name']
else:
self.sclass = self.sclass + "," + str(data['name'])
#update teacher instance in db, classes field
teacher={
'git':self.git,
'ion_user':self.username,
'url':self.url,
'classes':self.sclass,
} }
putDB(teacher, self.url) patchDB(data, self.url)
return teacher
#make a new class from scratch #make a new class from scratch
#subject: string, assignments: list #subject: string, assignments: list
@ -220,8 +208,7 @@ class Teacher:
# f.close() # f.close()
# os.chdir(cdir) # os.chdir(cdir)
data = self.addClass(path) self.addClass(path)
return data
def deleteClass(self, path): def deleteClass(self, path):
if(os.path.exists(path) == False): if(os.path.exists(path) == False):
@ -236,22 +223,12 @@ class Teacher:
print("DELETE: " + self.classes[i]['name']) print("DELETE: " + self.classes[i]['name'])
for i in range(len(self.classes)): for i in range(len(self.classes)):
c = self.classes[i] c = self.classes[i]
if(c['name'] == cname): if(c == cname):
del self.classes[i] del self.classes[i]
s="" # data={
#recreate sclass field, using ids # 'classes':self.classes,
for c in self.classes: # }
s = s + str(c['name']) + "," # print(patchDB(data, self.url))
print(s)
s = s[:-1]
print(s)
data={
'git':self.git,
'ion_user':self.username,
'url':self.url,
'classes':s,
}
print(putDB(data, self.url))
delDB("http://127.0.0.1:8000/api/classes/" + cname + "/") delDB("http://127.0.0.1:8000/api/classes/" + cname + "/")
break break
@ -275,10 +252,10 @@ class Teacher:
print(sname + " does not exist.") print(sname + " does not exist.")
return False return False
course = getDB("http://127.0.0.1:8000/api/classes/" + cname) course = getDB("http://127.0.0.1:8000/api/classes/" + cname)
if(sname in course['unconfirmed']): if(sname in str(course['unconfirmed'])):
print (sname + " already requested.") print (sname + " already requested.")
return True return True
if(sname in course['confirmed']): if(sname in str(course['confirmed'])):
print (sname + " alredy enrolled.") print (sname + " alredy enrolled.")
return False return False
@ -292,32 +269,19 @@ class Teacher:
print(sname + " does not exist.") print(sname + " does not exist.")
return False return False
print(student['added_to']) print(student['added_to'])
s={ data={
'git':student["git"],
'ion_user':student["ion_user"],
'added_to':student['added_to'], 'added_to':student['added_to'],
'classes':student["classes"],
'grade':student["grade"],
'completed':student["completed"],
'repo':student["repo"]
} }
student = putDB(s, student['url']) student = patchDB(data, "http://localhost:8000/api/students/" + student['ion_user'] + "/")
if(course['unconfirmed']==""): if(course['unconfirmed']==[]):
course['unconfirmed']=student['ion_user'] course['unconfirmed']=student['ion_user']
else: else:
course['unconfirmed']=course['unconfirmed']+ "," + student['ion_user'] course['unconfirmed']=course['unconfirmed'].append(student['ion_user'])
cinfo = { cinfo = {
"name": course['name'],
"repo": "",
"path": self.username + "/" + course['name'],
"teacher": self.username,
"assignments": course['assignments'],
"default_file": "",
"confirmed": course["confirmed"],
"unconfirmed": course['unconfirmed'] "unconfirmed": course['unconfirmed']
} }
print(putDB(cinfo, course['url'])) print(patchDB(cinfo, "http://localhost:8000/api/classes/" + course['name'] + "/"))
return True return True
#Student should have confirmed on their endd, but class had not been updated yet #Student should have confirmed on their endd, but class had not been updated yet
@ -379,16 +343,10 @@ class Teacher:
course['unconfirmed']= course['unconfirmed'].replace(student['ion_user']+",", "") course['unconfirmed']= course['unconfirmed'].replace(student['ion_user']+",", "")
cinfo = { cinfo = {
"name": course['name'],
"repo": "",
"path": course['path'],
"teacher": self.username,
"assignments": course['assignments'],
"default_file": "",
"confirmed": course["confirmed"], "confirmed": course["confirmed"],
"unconfirmed": course['unconfirmed'] "unconfirmed": course['unconfirmed']
} }
print(putDB(cinfo, course['url'])) print(patchDB(cinfo, "http://localhost:8000/api/classes/" + course['name'] + "/"))
return True return True
#goes through list of studennts, tries to add, then request, return unconfirmed students #goes through list of studennts, tries to add, then request, return unconfirmed students
@ -434,7 +392,7 @@ class Teacher:
return False return False
course = getDB("http://127.0.0.1:8000/api/classes/" + course) course = getDB("http://127.0.0.1:8000/api/classes/" + course)
if(aname in course['assignments']): if(aname in str(course['assignments'])):
print("Assignment name already taken.") print("Assignment name already taken.")
return False return False
@ -448,7 +406,7 @@ class Teacher:
slist = os.listdir(os.getcwd() + "/" + self.username + "/Students/" + course['name']) slist = os.listdir(os.getcwd() + "/" + self.username + "/Students/" + course['name'])
cdir = os.getcwd() cdir = os.getcwd()
for st in slist: for st in slist:
if st in course['confirmed']: if st in str(course['confirmed']):
spath = os.path.join(os.getcwd() + "/" + self.username + "/Students/" + course['name'], st) spath = os.path.join(os.getcwd() + "/" + self.username + "/Students/" + course['name'], st)
if(os.path.exists(spath + "/" + aname) == False): if(os.path.exists(spath + "/" + aname) == False):
os.mkdir(spath + "/" + aname) os.mkdir(spath + "/" + aname)
@ -476,9 +434,9 @@ class Teacher:
} }
postDB(ass, 'http://127.0.0.1:8000/api/assignments/') postDB(ass, 'http://127.0.0.1:8000/api/assignments/')
if(course['assignments'] == ""): if(course['assignments'] == ""):
course['assignments'] = aname course['assignments'] = ass
else: else:
course['assignments'] = course['assignments'] + "," + aname course['assignments'] = course['assignments'].append(ass)
cinfo = { cinfo = {
"name": course['name'], "name": course['name'],

View File

@ -25,9 +25,9 @@ class AssignmentSerializer(serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = Assignment model = Assignment
# fields = ['url','name', 'due_date', 'path' , "Class","teacher",'owner'] # fields = ['url','name', 'due_date', 'path' , "Class","teacher",'owner']
fields = ['name', 'due_date', 'path' , "Class","teacher",'owner'] fields = ['name', 'due_date', 'path' ,"teacher",'owner']
class ClassSerializer(serializers.HyperlinkedModelSerializer): class ClassSerializer(serializers.ModelSerializer):
# assignments = AssignmentSerializer(many=True, read_only=True,allow_null=True) # assignments = AssignmentSerializer(many=True, read_only=True,allow_null=True)
# default_file=DefFilesSerializer(many=True, read_only=True,allow_null=True) # default_file=DefFilesSerializer(many=True, read_only=True,allow_null=True)
#owner = serializers.ReadOnlyField(source='owner.username') #owner = serializers.ReadOnlyField(source='owner.username')
@ -36,7 +36,7 @@ class ClassSerializer(serializers.HyperlinkedModelSerializer):
# fields = ['url','name', 'repo','path', "teacher",'assignments',"default_file", 'confirmed', 'unconfirmed','owner'] # fields = ['url','name', 'repo','path', "teacher",'assignments',"default_file", 'confirmed', 'unconfirmed','owner']
fields = ['name', 'repo','path','assignments',"teacher","default_file", 'confirmed', 'unconfirmed','owner'] fields = ['name', 'repo','path','assignments',"teacher","default_file", 'confirmed', 'unconfirmed','owner']
class StudentSerializer(serializers.HyperlinkedModelSerializer): class StudentSerializer(serializers.ModelSerializer):
# Class = ClassSerializer(many=True, read_only=True,allow_null=True) # Class = ClassSerializer(many=True, read_only=True,allow_null=True)
class Meta: class Meta:
model = Student model = Student

View File

@ -87,7 +87,7 @@ data = requests.get(url = "http://localhost:8000/api/classes/Math5", auth=('raff
r = requests.post(url = "http://localhost:8000/api/classes/", data={'name':'English11', 'teacher':'eharris1', 'owner':2}, auth=('raffukhondaker','hackgroup1')) r = requests.post(url = "http://localhost:8000/api/classes/", data={'name':'English11', 'teacher':'eharris1', 'owner':2}, auth=('raffukhondaker','hackgroup1'))
print("POST:" + str(r.status_code)) print("POST:" + str(r.json()))
# print(r.json()) # print(r.json())
# print(c.name) # print(c.name)
# c = { # c = {