Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
97 changes: 97 additions & 0 deletions client/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
import json
import requests

from .common import root

# Admin authentication
def login(id, password):
response = requests.post(url=f"{root}/admin/login/", data={'id': id, 'password': password})
dict = json.loads(response.text)
return dict, response.status_code, response.cookies

def logout(token):
response = requests.post(headers={'Authorization': 'Token ' + token}, url=f"{root}/admin/logout/")
dict = json.loads(response.text)
return dict, response.status_code

def change_password(id):
response = requests.post(url=f"{root}/admin/change_password/", data={'id': id})
dict = json.loads(response.text)
return dict, response.status_code

def reset_password(password_reset_token, new_password):
response = requests.post(url=f"{root}/admin/reset_password/", params={'token': password_reset_token}, data={'password': new_password})
dict = json.loads(response.text)
return dict, response.status_code

# Manage Students:

# Non-detail
def get_all_students(token, page=1):
response = requests.get(headers={'Authorization': 'Token ' + token}, url=f"{root}/student/?page={page}")
dict = json.loads(response.text)
return dict, response.status_code

def create_new_student(token, data, files=None):
response = requests.post(headers={'Authorization': 'Token ' + token}, url=f"{root}/student/", data=data, files=files)
dict = json.loads(response.text)
return dict, response.status_code


# Detail
def get_student_details(token, id):
response = requests.get(headers={'Authorization': 'Token ' + token}, url=f"{root}/student/{id}")
dict = json.loads(response.text)
return dict, response.status_code

def edit_student_details(token, id, data, files=None):
response = requests.patch(headers={'Authorization': 'Token ' + token}, url=f"{root}/student/{id}/", data=data, files=files)
dict = json.loads(response.text)
return dict, response.status_code

def get_student_marks_brief(token, id):
response = requests.get(headers={'Authorization': 'Token ' + token}, url=f"{root}/student/{id}/marks")
dict = json.loads(response.text)
return dict, response.status_code

def get_student_attendance_brief(token, id):
response = requests.get(headers={'Authorization': 'Token ' + token}, url=f"{root}/student/{id}/attendance")
dict = json.loads(response.text)
return dict, response.status_code

def delete_student(token, id):
response = requests.delete(headers={'Authorization': 'Token ' + token}, url=f"{root}/student/{id}/")
dict = json.loads(response.text)
return dict, response.status_code



# Manage Staff:

# Non-detail
def get_all_staff(token, page=1):
response = requests.get(headers={'Authorization': 'Token ' + token}, url=f"{root}/staff/?page={page}")
dict = json.loads(response.text)
return dict, response.status_code

def create_new_staff(token, data, files=None):
response = requests.post(headers={'Authorization': 'Token ' + token}, url=f"{root}/staff/", data=data, files=files)
dict = json.loads(response.text)
return dict, response.status_code


# Detail
def get_staff_details(token, id):
response = requests.get(headers={'Authorization': 'Token ' + token}, url=f"{root}/staff/{id}")
dict = json.loads(response.text)
return dict, response.status_code

def edit_staff_details(token, id, data, files=None):
response = requests.patch(headers={'Authorization': 'Token ' + token}, url=f"{root}/staff/{id}/", data=data, files=files)
dict = json.loads(response.text)
return dict, response.status_code

def delete_staff(token, id):
response = requests.delete(headers={'Authorization': 'Token ' + token}, url=f"{root}/staff/{id}/")
dict = json.loads(response.text)
return dict, response.status_code
33 changes: 0 additions & 33 deletions client/api/admin.py

This file was deleted.

68 changes: 68 additions & 0 deletions client/common.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import json
import requests


root = 'http://127.0.0.1:7000/api'


# Marks:

# Non-detail
def get_all_marks(token, student_id=None, subject_id=None, page=1):
response = requests.get(headers={'Authorization': 'Token ' + token}, url=f"{root}/marks/?page={page}", params={'student': student_id, 'subject': subject_id})
dict = json.loads(response.text)
return dict, response.status_code

def add_marks(token, data):
response = requests.post(headers={'Authorization': 'Token ' + token}, url=f"{root}/marks/", data=data)
dict = json.loads(response.text)
return dict, response.status_code


# Detail
def get_marks_details(token, student_id, subject_id):
response = requests.get(headers={'Authorization': 'Token ' + token}, url=f"{root}/marks/{student_id}-{subject_id}")
dict = json.loads(response.text)
return dict, response.status_code

def edit_marks_details(token, student_id, subject_id, data):
response = requests.patch(headers={'Authorization': 'Token ' + token}, url=f"{root}/marks/{student_id}-{subject_id}/", data=data)
dict = json.loads(response.text)
return dict, response.status_code

def delete_marks(token, student_id, subject_id):
response = requests.delete(headers={'Authorization': 'Token ' + token}, url=f"{root}/marks/{student_id}-{subject_id}/")
dict = json.loads(response.text)
return dict, response.status_code



# Attendance:

# Non-detail
def get_all_atendance(token, student_id=None, subject_id=None, page=1):
response = requests.get(headers={'Authorization': 'Token ' + token}, url=f"{root}/atendance/?page={page}", params={'student': student_id, 'subject': subject_id})
dict = json.loads(response.text)
return dict, response.status_code

def add_atendance(token, data):
response = requests.post(headers={'Authorization': 'Token ' + token}, url=f"{root}/atendance/", data=data)
dict = json.loads(response.text)
return dict, response.status_code


# Detail
def get_atendance_details(token, student_id, subject_id):
response = requests.get(headers={'Authorization': 'Token ' + token}, url=f"{root}/atendance/{student_id}-{subject_id}")
dict = json.loads(response.text)
return dict, response.status_code

def edit_atendance_details(token, student_id, subject_id, data):
response = requests.patch(headers={'Authorization': 'Token ' + token}, url=f"{root}/atendance/{student_id}-{subject_id}/", data=data)
dict = json.loads(response.text)
return dict, response.status_code

def delete_atendance(token, student_id, subject_id):
response = requests.delete(headers={'Authorization': 'Token ' + token}, url=f"{root}/atendance/{student_id}-{subject_id}/")
dict = json.loads(response.text)
return dict, response.status_code
26 changes: 26 additions & 0 deletions client/staff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import json
import requests

from common import root


# Staff authentication
def login(id, password):
response = requests.post(url=f"{root}/staff/login/", data={'id': id, 'password': password})
dict = json.loads(response.text)
return dict, response.status_code, response.cookies

def logout(token):
response = requests.post(headers={'Authorization': 'Token ' + token}, url=f"{root}/staff/logout/")
dict = json.loads(response.text)
return dict, response.status_code

def change_password(id):
response = requests.post(url=f"{root}/staff/change_password/", data={'id': id})
dict = json.loads(response.text)
return dict, response.status_code

def reset_password(password_reset_token, new_password):
response = requests.post(url=f"{root}/staff/reset_password/", params={'token': password_reset_token}, data={'password': new_password})
dict = json.loads(response.text)
return dict, response.status_code
26 changes: 26 additions & 0 deletions client/students.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import json
import requests

from common import root


# Student authentication
def login(id, password):
response = requests.post(url=f"{root}/student/login/", data={'id': id, 'password': password})
dict = json.loads(response.text)
return dict, response.status_code, response.cookies

def logout(token):
response = requests.post(headers={'Authorization': 'Token ' + token}, url=f"{root}/student/logout/")
dict = json.loads(response.text)
return dict, response.status_code

def change_password(id):
response = requests.post(url=f"{root}/student/change_password/", data={'id': id})
dict = json.loads(response.text)
return dict, response.status_code

def reset_password(password_reset_token, new_password):
response = requests.post(url=f"{root}/student/reset_password/", params={'token': password_reset_token}, data={'password': new_password})
dict = json.loads(response.text)
return dict, response.status_code
13 changes: 0 additions & 13 deletions client/templates/home/home.html

This file was deleted.

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Empty file.
Empty file.
Empty file.
11 changes: 11 additions & 0 deletions website/admin/templates/admin/forgot_password.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<h1>Admin Forgot Password Page</h1>

{% for msg in messages %}
{{ msg }}<br><br>
{% endfor %}

<form action="{% url 'admin_forgot_password' %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.id }}<br>
<input type="submit" value="Send password reset email">
</form>
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ <h1>Admin Login</h1>
{{ form.id }}<br>
{{ form.password }}<br>
<input type="submit" value="Login">
</form>
</form>
<a href="{% url 'admin_forgot_password' %}">Forgot password?</a>
12 changes: 12 additions & 0 deletions website/admin/templates/admin/reset_password.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<h1>Admin Reset Password Page</h1>

{% for msg in messages %}
{{ msg }}<br><br>
{% endfor %}

<form action="{% url 'admin_reset_password' %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
Enter your new password: <br>
{{ form.password }}<br>
<input type="submit" value="Reset Password">
</form>
File renamed without changes.
2 changes: 2 additions & 0 deletions client/admin/urls.py → website/admin/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
path('login', admin_views.login, name='admin_login'),
path('logout', admin_views.logout, name='admin_logout'),
path('logout/success', admin_views.logout_success, name='admin_logout_success'),
path('forgot-password', admin_views.forgot_password, name='admin_forgot_password'),
path('reset-password', admin_views.reset_password, name='admin_reset_password'),
path('students', admin_views.students, name='admin_students'),
path('students/dashboard', admin_views.student_dashboard, name='admin_students_dashboard'),
path('students/detail/<id>', admin_views.student_details, name='admin_students_details'),
Expand Down
Loading