Merge branch 'development' of github.com:Rushilwiz/SkoolOS into development

This commit is contained in:
Nathaniel Kenschaft 2020-06-14 14:28:57 -04:00
commit 78d6e9eab1
8 changed files with 37 additions and 18 deletions

3
.gitignore vendored
View File

@ -246,6 +246,9 @@ Control.ca-bundle
Control.system-ca-bundle
GitHub.sublime-settings
#SkoolOS
*.profile
# Visual Studio Code #
.vscode/*
!.vscode/settings.json

1
CLI/.profile Normal file
View File

@ -0,0 +1 @@
{'id': 1000417, 'ion_username': '2023rumareti', 'sex': 'Male', 'title': None, 'display_name': 'Rushil Umaretiya', 'full_name': 'Rushil Umaretiya', 'short_name': 'Rushil', 'first_name': 'Rushil', 'middle_name': 'Haresh', 'last_name': 'Umaretiya', 'nickname': None, 'tj_email': '2023rumareti@tjhsst.edu', 'emails': ['rushilwiz@gmail.com', 'r@crucialnet.org'], 'grade': {'number': 9, 'name': 'freshman'}, 'graduation_year': 2023, 'user_type': 'student', 'phones': ['Mobile Phone: 7034570803'], 'websites': ['http://crucialnet.org'], 'counselor': {'id': 115, 'url': 'https://ion.tjhsst.edu/api/profile/115', 'user_type': 'counselor', 'username': 'kchamblin', 'full_name': 'Kerry Hamblin', 'first_name': 'Kerry', 'last_name': 'Hamblin'}, 'address': None, 'picture': 'https://ion.tjhsst.edu/api/profile/1000417/picture', 'is_eighth_admin': False, 'is_announcements_admin': False, 'is_teacher': False, 'is_student': True, 'absences': 1}

View File

@ -14,7 +14,7 @@
</head>
<body>
<div class="d-flex align-items-center justify-content-center" style="height: 100vh">
<a href="https://ion.tjhsst.edu/oauth/authorize/?response_type=code&client_id=QeZPBSKqdvWFfBv1VYTSv9iFGz5T9pVJtNUjbEr6&redirect_uri=http%3A%2F%2Flocalhost%3A8000%2F&scope=read&state=YXN4dnhwLXE7gx6Xq0vwPdvr3z0YSn" title="Ion" class="border border-dark p-3 btn btn-lg mx-auto" style="box-shadow: 5px 10px;">
<img src="https://ion.tjhsst.edu/static/img/favicon.png">
Sign in with Ion
</a>

View File

@ -17,7 +17,7 @@ import argparse
client_id = r'QeZPBSKqdvWFfBv1VYTSv9iFGz5T9pVJtNUjbEr6'
client_secret = r'0Wl3hAIGY9SvYOqTOLUiLNYa4OlCgZYdno9ZbcgCT7RGQ8x2f1l2HzZHsQ7ijC74A0mrOhhCVeZugqAmOADHIv5fHxaa7GqFNtQr11HX9ySTw3DscKsphCVi5P71mlGY'
redirect_uri = 'http://localhost:8000/'
redirect_uri = 'http://localhost:8000/callback/'
token_url = 'https://ion.tjhsst.edu/oauth/token/'
scope = ["read"]
@ -49,10 +49,7 @@ def authenticate():
#Linux: chromdriver-linux
#Macos: chromdriver-mac
#Windows: chromdriver.exe
path = os.path.join(cdir, "chromedriver-mac")
print(path)
browser = webdriver.Chrome(path)
#browser = webdriver.Safari()
web_dir = os.path.join(os.path.dirname(__file__), 'oauth')
os.chdir(web_dir)
@ -72,11 +69,11 @@ def authenticate():
browser.get("localhost:8000/")
while "http://localhost:8000/?code" not in browser.current_url:
while "http://localhost:8000/callback/?code" not in browser.current_url:
time.sleep(0.25)
url = browser.current_url
gets = url_decode(url.replace("http://localhost:8000/?", ""))
gets = url_decode(url.replace("http://localhost:8000/callback/?", ""))
code = gets.get("code")
if state == gets.get("state"):
state = gets.get("state")

View File

@ -1,3 +1,16 @@
from django.contrib import admin
from .models import (
DefFiles,
Assignment,
Classes,
Teacher,
Student
)
# Register your models here.
admin.site.register(Teacher)
admin.site.register(Student)
admin.site.register(DefFiles)
admin.site.register(Assignment)
admin.site.register(Classes)

View File

@ -1,4 +1,5 @@
from django.db import models
from django.contrib.auth.models import User
class DefFiles(models.Model):
name=models.CharField(max_length=100)
@ -21,7 +22,7 @@ class Assignment(models.Model):
return '%s' % (self.name)
class Classes(models.Model):
owner = models.ForeignKey('auth.User', related_name='classes', on_delete=models.CASCADE)
user = models.OneToOneField(User, on_delete=models.CASCADE)
name = models.CharField(primary_key=True, max_length=100)
repo=models.URLField(default="", blank=True)
@ -50,14 +51,8 @@ class Teacher(models.Model):
email=models.CharField(max_length=100, default="", blank=True)
class Student(models.Model):
owner = models.ForeignKey('auth.User', related_name='students', on_delete=models.CASCADE)
created = models.DateTimeField(auto_now_add=True)
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
user = models.OneToOneField(User, on_delete=models.CASCADE)
student_id = models.IntegerField()
ion_user=models.CharField(primary_key=True, max_length=100)
email=models.CharField(max_length=100, default="", blank=True)
grade = models.IntegerField()
git=models.CharField(max_length=100)
repo=models.URLField(default="", blank=True)

8
Website/api/signals.py Normal file
View File

@ -0,0 +1,8 @@
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver
from .models import Student, Teacher
@receiver(post_save, sender=User)
def save_profile(sender, instance, **kwargs):
instance.profile.save()

View File

@ -7,6 +7,8 @@ from requests_oauthlib import OAuth2Session
from django.contrib import messages
from .models import Token
from api.models import Student, Teacher
from .forms import UserCreationForm
from django.contrib.auth import authenticate
@ -125,5 +127,5 @@ def create_account (request):
@login_required
def logout(request):
auth_logout(request)
messages.success(request, "You've been logged out! Have a good rest of your day!")
messages.success(request, "You've been logged out!")
return redirect(request, "/login/")