mirror of
https://github.com/Rushilwiz/SkoolOS.git
synced 2025-04-16 02:10:19 -04:00
teacher field
This commit is contained in:
parent
51b5b21d40
commit
aaa750e415
|
@ -1 +0,0 @@
|
||||||
{"username": "2022rkhondak", "grade": 10, "is_student": true, "password": "hackgroup1"}
|
|
|
@ -9,7 +9,18 @@ import time
|
||||||
import pyperclip
|
import pyperclip
|
||||||
from distutils.dir_util import copy_tree
|
from distutils.dir_util import copy_tree
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from django.conf import settings
|
||||||
|
import django
|
||||||
|
|
||||||
|
from Website.config.settings import DATABASES, INSTALLED_APPS
|
||||||
|
INSTALLED_APPS.remove('users.apps.UsersConfig')
|
||||||
|
INSTALLED_APPS.remove('api')
|
||||||
|
INSTALLED_APPS.remove('skoolos.apps.SkoolosConfig')
|
||||||
|
INSTALLED_APPS.append('Website.api')
|
||||||
|
settings.configure(DATABASES=DATABASES, INSTALLED_APPS=INSTALLED_APPS)
|
||||||
|
django.setup()
|
||||||
|
|
||||||
|
from Website.api.models import *
|
||||||
#git clone student directory ==> <student-id>/classes/assignments
|
#git clone student directory ==> <student-id>/classes/assignments
|
||||||
|
|
||||||
#get teacher info from api
|
#get teacher info from api
|
||||||
|
@ -33,6 +44,10 @@ def getDB(url):
|
||||||
r = requests.get(url = url, auth=('raffukhondaker','hackgroup1'))
|
r = requests.get(url = url, auth=('raffukhondaker','hackgroup1'))
|
||||||
print("GET:" + str(r.status_code))
|
print("GET:" + str(r.status_code))
|
||||||
return(r.json())
|
return(r.json())
|
||||||
|
def patchDB(data, url):
|
||||||
|
r = requests.patch(url = url, data=data, auth=('raffukhondaker','hackgroup1'))
|
||||||
|
print("PATH:" + str(r.status_code))
|
||||||
|
return(r.json())
|
||||||
|
|
||||||
def postDB(data, url):
|
def postDB(data, url):
|
||||||
r = requests.post(url = url, data=data, auth=('raffukhondaker','hackgroup1'))
|
r = requests.post(url = url, data=data, auth=('raffukhondaker','hackgroup1'))
|
||||||
|
@ -69,25 +84,10 @@ 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.email = data['email']
|
|
||||||
#classes in id form (Example: 4,5)
|
#classes in id form (Example: 4,5)
|
||||||
|
|
||||||
cid=data['classes'].split(",")
|
#array
|
||||||
try:
|
self.classes=data['classes']
|
||||||
cid.remove('')
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
try:
|
|
||||||
cid.remove("")
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
classes=[]
|
|
||||||
for c in cid:
|
|
||||||
url = "http://127.0.0.1:8000/api/classes/" + str(c) + "/"
|
|
||||||
classes.append(getDB(url))
|
|
||||||
|
|
||||||
self.classes = classes
|
|
||||||
self.sclass=str(data['classes'])
|
|
||||||
if(os.path.isdir(self.username + "/Students")):
|
if(os.path.isdir(self.username + "/Students")):
|
||||||
print("Synced to " + self.username)
|
print("Synced to " + self.username)
|
||||||
else:
|
else:
|
||||||
|
@ -168,6 +168,7 @@ 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)
|
||||||
if(len(self.sclass)==0):
|
if(len(self.sclass)==0):
|
||||||
self.sclass = data['name']
|
self.sclass = data['name']
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -20,12 +20,27 @@ class Student(models.Model):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{self.user.username}'s Profile"
|
return f"{self.user.username}'s Profile"
|
||||||
|
|
||||||
|
class Assignment(models.Model):
|
||||||
|
owner = models.ForeignKey('auth.User', related_name='assignments', on_delete=models.CASCADE)
|
||||||
|
|
||||||
|
name=models.CharField(max_length=100, primary_key=True)
|
||||||
|
due_date=models.DateTimeField()
|
||||||
|
# files = models.ManyToManyField(DefFiles)
|
||||||
|
files=models.CharField(max_length=100, default="", blank=True)
|
||||||
|
path=models.CharField(max_length=100)
|
||||||
|
classes=models.CharField(max_length=100)
|
||||||
|
teacher=models.CharField(max_length=100)
|
||||||
|
def __str__(self):
|
||||||
|
return '%s' % (self.name)
|
||||||
|
|
||||||
class Class(models.Model):
|
class Class(models.Model):
|
||||||
|
owner = models.ForeignKey('auth.User', related_name='classes', on_delete=models.CASCADE)
|
||||||
|
teacher = models.CharField(max_length=100)
|
||||||
name = models.CharField(primary_key=True, max_length=100)
|
name = models.CharField(primary_key=True, max_length=100)
|
||||||
description = models.CharField(default="Class Description", max_length=500)
|
description = models.CharField(default="Class Description", max_length=500)
|
||||||
repo=models.URLField(default="", blank=True)
|
repo=models.URLField(default="", blank=True)
|
||||||
path=models.CharField(max_length=100, default="")
|
path=models.CharField(max_length=100, default="")
|
||||||
assignments=models.TextField(default="", blank=True)
|
assignments=models.ManyToManyField(Assignment, blank=True)
|
||||||
default_file=models.CharField(max_length=100, default="", blank=True)
|
default_file=models.CharField(max_length=100, default="", blank=True)
|
||||||
confirmed=models.ManyToManyField(Student, blank=True, related_name='confirmed')
|
confirmed=models.ManyToManyField(Student, blank=True, related_name='confirmed')
|
||||||
unconfirmed=models.ManyToManyField(Student, blank=True, related_name='unconfirmed')
|
unconfirmed=models.ManyToManyField(Student, blank=True, related_name='unconfirmed')
|
||||||
|
@ -61,22 +76,6 @@ class Teacher(models.Model):
|
||||||
# completed=models.TextField(default="", blank=True)
|
# completed=models.TextField(default="", blank=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Assignment(models.Model):
|
|
||||||
owner = models.ForeignKey('auth.User', related_name='assignments', on_delete=models.CASCADE)
|
|
||||||
|
|
||||||
name=models.CharField(max_length=100, primary_key=True)
|
|
||||||
due_date=models.DateTimeField()
|
|
||||||
# files = models.ManyToManyField(DefFiles)
|
|
||||||
files=models.CharField(max_length=100, default="", blank=True)
|
|
||||||
path=models.CharField(max_length=100)
|
|
||||||
classes=models.CharField(max_length=100)
|
|
||||||
teacher=models.CharField(max_length=100)
|
|
||||||
def __str__(self):
|
|
||||||
return '%s' % (self.name)
|
|
||||||
|
|
||||||
|
|
||||||
class DefFiles(models.Model):
|
class DefFiles(models.Model):
|
||||||
name=models.CharField(max_length=100)
|
name=models.CharField(max_length=100)
|
||||||
path=models.CharField(max_length=100)
|
path=models.CharField(max_length=100)
|
||||||
|
|
|
@ -34,7 +34,7 @@ class ClassSerializer(serializers.HyperlinkedModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Class
|
model = Class
|
||||||
# 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',"default_file", 'confirmed', 'unconfirmed']
|
fields = ['name', 'repo','path','assignments',"teacher","default_file", 'confirmed', 'unconfirmed','owner']
|
||||||
|
|
||||||
class StudentSerializer(serializers.HyperlinkedModelSerializer):
|
class StudentSerializer(serializers.HyperlinkedModelSerializer):
|
||||||
# Class = ClassSerializer(many=True, read_only=True,allow_null=True)
|
# Class = ClassSerializer(many=True, read_only=True,allow_null=True)
|
||||||
|
@ -44,7 +44,7 @@ class StudentSerializer(serializers.HyperlinkedModelSerializer):
|
||||||
fields = ['url','grade', 'ion_user','git','user','classes','added_to','completed', 'repo']
|
fields = ['url','grade', 'ion_user','git','user','classes','added_to','completed', 'repo']
|
||||||
|
|
||||||
class TeacherSerializer(serializers.ModelSerializer):
|
class TeacherSerializer(serializers.ModelSerializer):
|
||||||
# Class = ClassSerializer(many=True, read_only=True,allow_null=True)
|
#classes = ClassSerializer(many=True, read_only=True,allow_null=True)
|
||||||
#owner = serializers.ReadOnlyField(source='owner.username')
|
#owner = serializers.ReadOnlyField(source='owner.username')
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Teacher
|
model = Teacher
|
||||||
|
|
|
@ -24,8 +24,6 @@ class StudentViewSet(viewsets.ModelViewSet):
|
||||||
queryset = Student.objects.all()
|
queryset = Student.objects.all()
|
||||||
serializer_class = StudentSerializer
|
serializer_class = StudentSerializer
|
||||||
permission_Class = [permissions.IsAuthenticated, IsOwnerOrReadOnly]
|
permission_Class = [permissions.IsAuthenticated, IsOwnerOrReadOnly]
|
||||||
g, created = Group.objects.get_or_create(name='teachers')
|
|
||||||
|
|
||||||
|
|
||||||
def perform_create(self, serializer):
|
def perform_create(self, serializer):
|
||||||
serializer.save(user=self.request.user)
|
serializer.save(user=self.request.user)
|
||||||
|
|
|
@ -40,7 +40,7 @@ def main():
|
||||||
URL = "http://127.0.0.1:8000/api/"
|
URL = "http://127.0.0.1:8000/api/"
|
||||||
r = requests.get(url = URL)
|
r = requests.get(url = URL)
|
||||||
except:
|
except:
|
||||||
print("Stop any processes running on http://127.0.0.1:8000/ before continuing")
|
print("Run Django server on http://127.0.0.1:8000/ before continuing")
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
input("Welcome to SkoolOS. Press any key to create an account")
|
input("Welcome to SkoolOS. Press any key to create an account")
|
||||||
|
|
17
snew.py
17
snew.py
|
@ -84,16 +84,17 @@ class Students:
|
||||||
|
|
||||||
# c = Class.objects.get(name='Math5')
|
# c = Class.objects.get(name='Math5')
|
||||||
data = requests.get(url = "http://localhost:8000/api/classes/Math5", auth=('raffukhondaker','hackgroup1')).json()
|
data = requests.get(url = "http://localhost:8000/api/classes/Math5", auth=('raffukhondaker','hackgroup1')).json()
|
||||||
c = Class(
|
|
||||||
name="data['name']"
|
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.status_code))
|
||||||
# print(r.json())
|
# print(r.json())
|
||||||
c = {
|
# print(c.name)
|
||||||
'classes':"http://localhost:8000/api/classes/Math5/"
|
# c = {
|
||||||
}
|
# 'classes':c
|
||||||
|
# }
|
||||||
# print(c)
|
# print(c)
|
||||||
r = requests.patch(url = "http://localhost:8000/api/teachers/2/", data=c, auth=('raffukhondaker','hackgroup1'))
|
r = requests.patch(url = "http://localhost:8000/api/teachers/eharris1/", data={'classes':['English11']}, auth=('raffukhondaker','hackgroup1'))
|
||||||
print(r.json())
|
print(r.json())
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user