Migrate to django==4.1.6

Project migrated to latest django version==4.1.6
This commit is contained in:
Adil Mohammed 2023-02-01 16:26:50 +03:00
parent 4161b8b87d
commit 78cbd76047
20 changed files with 387 additions and 158 deletions

View File

@ -12,11 +12,13 @@ https://docs.djangoproject.com/en/2.2/ref/settings/
import os
import posixpath
import environ
env = environ.Env()
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/
@ -103,9 +105,6 @@ ASGI_APPLICATION = "SMS.asgi.application"
# Database
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases
# -----------------------------
# Uncomment this if you want to use sqlite db
# DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
@ -113,18 +112,22 @@ ASGI_APPLICATION = "SMS.asgi.application"
# }
# }
# postgresql db configuration
# -----------------------------
# Some model fields may not work on sqlite db, so configure your postgresql
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '[db_name]',
'USER': '[username]',
'PASSWORD': '[password]',
'HOST': 'localhost',
'POST': '',
'NAME': env('DB_NAME'),
'USER': env('DB_USER'),
'PASSWORD': env('DB_PASSWORD'),
'HOST': env('DB_HOST'),
'PORT': env('DB_PORT'),
}
}
# https://docs.djangoproject.com/en/stable/ref/settings/#std:setting-DEFAULT_AUTO_FIELD
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
# Password validation
# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators

View File

@ -1,5 +1,4 @@
from django.contrib import admin
from django.conf.urls import url
from django.urls import path, include
from django.conf.urls import handler404, handler500, handler400
from django.conf import settings
@ -7,18 +6,18 @@ from django.conf.urls.static import static
urlpatterns = [
url(r'^', include('app.urls')),
url(r'^accounts/', include('accounts.urls')),
url(r'^programs/', include('course.urls')),
url(r'^result/', include('result.urls')),
url(r'^search/', include('search.urls')),
url(r'^quiz/', include('quiz.urls')),
path('', include('app.urls')),
path('accounts/', include('accounts.urls')),
path('programs/', include('course.urls')),
path('result/', include('result.urls')),
path('search/', include('search.urls')),
path('quiz/', include('quiz.urls')),
url(r'^payments/', include('payments.urls')),
path('payments/', include('payments.urls')),
url('accounts/api/', include('accounts.api.urls', namespace='accounts-api')),
path('accounts/api/', include('accounts.api.urls', namespace='accounts-api')),
url(r'^admin/', admin.site.urls),
path('admin/', admin.site.urls),
]
if settings.DEBUG:

View File

@ -0,0 +1,33 @@
# Generated by Django 4.1.6 on 2023-02-01 12:30
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('accounts', '0012_auto_20230112_2238'),
]
operations = [
migrations.AlterField(
model_name='departmenthead',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='parent',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='student',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='user',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
]

View File

@ -1,4 +1,3 @@
from django.conf.urls import url
from django.urls import path, include
from django.contrib.auth.views import (
PasswordResetView, PasswordResetDoneView, PasswordResetConfirmView,
@ -18,55 +17,55 @@ from .forms import EmailValidationOnForgotPassword
urlpatterns = [
path('', include('django.contrib.auth.urls')),
url(r'^admin_panel/$', admin_panel, name='admin_panel'),
path('admin_panel/', admin_panel, name='admin_panel'),
url(r'^profile/$', profile, name='profile'),
url(r'^profile/(?P<id>\d+)/detail/$', profile_single, name='profile_single'),
url(r'^setting/$', profile_update, name='edit_profile'),
url(r'^change_password/$', change_password, name='change_password'),
path('profile/', profile, name='profile'),
path('profile/<int:id>/detail/', profile_single, name='profile_single'),
path('setting/', profile_update, name='edit_profile'),
path('change_password/', change_password, name='change_password'),
url(r'^lecturers/$', LecturerListView.as_view(), name='lecturer_list'),
url(r'^lecturer/add/$', staff_add_view, name='add_lecturer'),
url(r'^staff/(?P<pk>\d+)/edit/$', edit_staff, name='staff_edit'),
url(r'^lecturers/(?P<pk>\d+)/delete/$', delete_staff, name='lecturer_delete'),
path('lecturers/', LecturerListView.as_view(), name='lecturer_list'),
path('lecturer/add/', staff_add_view, name='add_lecturer'),
path('staff/<int:pk>/edit/', edit_staff, name='staff_edit'),
path('lecturers/<int:pk>/delete/', delete_staff, name='lecturer_delete'),
url(r'^students/$', StudentListView.as_view(), name='student_list'),
url(r'^student/add/$', student_add_view, name='add_student'),
url(r'^student/(?P<pk>\d+)/edit/$', edit_student, name='student_edit'),
url(r'^students/(?P<pk>\d+)/delete/$', delete_student, name='student_delete'),
path('students/', StudentListView.as_view(), name='student_list'),
path('student/add/', student_add_view, name='add_student'),
path('student/<int:pk>/edit/', edit_student, name='student_edit'),
path('students/<int:pk>/delete/', delete_student, name='student_delete'),
url(r'^parents/add/$', ParentAdd.as_view(), name='add_parent'),
path('parents/add/', ParentAdd.as_view(), name='add_parent'),
url(r'^ajax/validate-username/$', validate_username, name='validate_username'),
path('ajax/validate-username/', validate_username, name='validate_username'),
url(r'^register/$', register, name='register'),
path('register/', register, name='register'),
# url(r'^add-student/$', StudentAddView.as_view(), name='add_student'),
# path('add-student/', StudentAddView.as_view(), name='add_student'),
# url(r'^programs/course/delete/(?P<pk>\d+)/$', course_delete, name='delete_course'),
# path('programs/course/delete/<int:pk>/', course_delete, name='delete_course'),
# Setting urls
# url(r'^profile/(?P<pk>\d+)/edit/$', profileUpdateView, name='edit_profile'),
# url(r'^profile/(?P<pk>\d+)/change-password/$', changePasswordView, name='change_password'),
# path('profile/<int:pk>/edit/', profileUpdateView, name='edit_profile'),
# path('profile/<int:pk>/change-password/', changePasswordView, name='change_password'),
# ################################################################
# url(r'^login/$', LoginView.as_view(), name='login'),
# url(r'^logout/$', LogoutView.as_view(), name='logout', kwargs={'next_page': '/'}),
# path('login/', LoginView.as_view(), name='login'),
# path('logout/', LogoutView.as_view(), name='logout', kwargs={'next_page': '/'}),
# url(r'^password-reset/$', PasswordResetView.as_view(
# path('password-reset/', PasswordResetView.as_view(
# form_class=EmailValidationOnForgotPassword,
# template_name='registration/password_reset.html'
# ),
# name='password_reset'),
# url(r'^password-reset/done/$', PasswordResetDoneView.as_view(
# path('password-reset/done/', PasswordResetDoneView.as_view(
# template_name='registration/password_reset_done.html'
# ),
# name='password_reset_done'),
# url(r'^password-reset-confirm/<uidb64>/<token>/$', PasswordResetConfirmView.as_view(
# path('password-reset-confirm/<uidb64>/<token>/', PasswordResetConfirmView.as_view(
# template_name='registration/password_reset_confirm.html'
# ),
# name='password_reset_confirm'),
# url(r'^password-reset-complete/$', PasswordResetCompleteView.as_view(
# path('password-reset-complete/', PasswordResetCompleteView.as_view(
# template_name='registration/password_reset_complete.html'
# ),
# name='password_reset_complete')

View File

@ -0,0 +1,28 @@
# Generated by Django 4.1.6 on 2023-02-01 12:30
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0003_auto_20200730_0756'),
]
operations = [
migrations.AlterField(
model_name='newsandevents',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='semester',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='session',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
]

View File

@ -1,4 +1,3 @@
from django.conf.urls import url
from django.urls import path
from .views import (
@ -11,20 +10,20 @@ from .views import (
urlpatterns = [
# Accounts url
url(r'^$', home_view, name='home'),
url(r'^add_item/$', post_add, name='add_item'),
url(r'^item/(?P<pk>\d+)/edit/$', edit_post, name='edit_post'),
url(r'^item/(?P<pk>\d+)/delete/$', delete_post, name='delete_post'),
path('', home_view, name='home'),
path('add_item/', post_add, name='add_item'),
path('item/<int:pk>/edit/', edit_post, name='edit_post'),
path('item/<int:pk>/delete/', delete_post, name='delete_post'),
url(r'^session/$', session_list_view, name="session_list"),
url(r'^session/add/$', session_add_view, name="add_session"),
url(r'^session/(?P<pk>\d+)/edit/$', session_update_view, name="edit_session"),
url(r'^session/(?P<pk>\d+)/delete/$', session_delete_view, name="delete_session"),
path('session/', session_list_view, name="session_list"),
path('session/add/', session_add_view, name="add_session"),
path('session/<int:pk>/edit/', session_update_view, name="edit_session"),
path('session/<int:pk>/delete/', session_delete_view, name="delete_session"),
url(r'^semester/$', semester_list_view, name="semester_list"),
url(r'^semester/add/$', semester_add_view, name="add_semester"),
url(r'^semester/(?P<pk>\d+)/edit/$', semester_update_view, name="edit_semester"),
url(r'^semester/(?P<pk>\d+)/delete/$', semester_delete_view, name="delete_semester"),
path('semester/', semester_list_view, name="semester_list"),
path('semester/add/', semester_add_view, name="add_semester"),
path('semester/<int:pk>/edit/', semester_update_view, name="edit_semester"),
path('semester/<int:pk>/delete/', semester_delete_view, name="delete_semester"),
url(r'^dashboard/$', dashboard_view, name="dashboard"),
path('dashboard/', dashboard_view, name="dashboard"),
]

View File

@ -0,0 +1,38 @@
# Generated by Django 4.1.6 on 2023-02-01 12:30
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('course', '0004_auto_20200822_2238'),
]
operations = [
migrations.AlterField(
model_name='course',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='courseallocation',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='program',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='upload',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='uploadvideo',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
]

View File

@ -1,53 +1,41 @@
from django.conf.urls import url
from django.urls import path
from django.contrib.auth.views import (
PasswordResetView, PasswordResetDoneView, PasswordResetConfirmView,
PasswordResetCompleteView, LoginView, LogoutView
)
# from .views import (
# program_view, program_detail, program_add, program_edit, program_delete,
# course_single, course_add, course_edit, course_delete,
# CourseAllocationFormView, course_allocation_view, edit_allocated_course, deallocate_course,
# handle_file_upload, handle_file_edit, handle_file_delete,
# course_registration, course_drop, user_course_list
# )
from .views import *
urlpatterns = [
# Program urls
url(r'^$', program_view, name='programs'),
url(r'^(?P<pk>\d+)/detail/$', program_detail, name='program_detail'),
url(r'^add/$', program_add, name='add_program'),
url(r'^(?P<pk>\d+)/edit/$', program_edit, name='edit_program'),
url(r'^(?P<pk>\d+)/delete/$', program_delete, name='program_delete'),
path('', program_view, name='programs'),
path('<int:pk>/detail/', program_detail, name='program_detail'),
path('add/', program_add, name='add_program'),
path('<int:pk>/edit/', program_edit, name='edit_program'),
path('<int:pk>/delete/', program_delete, name='program_delete'),
# Course urls
url(r'^course/(?P<slug>[\w-]+)/detail/$', course_single, name='course_detail'),
url(r'^(?P<pk>\d+)/course/add/$', course_add, name='course_add'),
url(r'^course/(?P<slug>[\w-]+)/edit/$', course_edit, name='edit_course'),
url(r'^course/delete/(?P<slug>[\w-]+)/$', course_delete, name='delete_course'),
path('course/<slug>/detail/', course_single, name='course_detail'),
path('<int:pk>/course/add/', course_add, name='course_add'),
path('course/<slug>/edit/', course_edit, name='edit_course'),
path('course/delete/<slug>/', course_delete, name='delete_course'),
# CourseAllocation urls
url(r'^course/assign/$', CourseAllocationFormView.as_view(), name='course_allocation'),
url(r'^course/allocated/$', course_allocation_view, name='course_allocation_view'),
url(r'^allocated_course/(?P<pk>\d+)/edit/$', edit_allocated_course, name='edit_allocated_course'),
url(r'^course/(?P<pk>\d+)/deallocate/$', deallocate_course, name='course_deallocate'),
path('course/assign/', CourseAllocationFormView.as_view(), name='course_allocation'),
path('course/allocated/', course_allocation_view, name='course_allocation_view'),
path('allocated_course/<int:pk>/edit/', edit_allocated_course, name='edit_allocated_course'),
path('course/<int:pk>/deallocate/', deallocate_course, name='course_deallocate'),
# File uploads urls
url(r'^course/(?P<slug>[\w-]+)/documentations/upload/$', handle_file_upload, name='upload_file_view'),
url(r'^course/(?P<slug>[\w-]+)/documentations/(?P<file_id>\d+)/edit/$', handle_file_edit, name='upload_file_edit'),
url(r'^course/(?P<slug>[\w-]+)/documentations/(?P<file_id>\d+)/delete/$', handle_file_delete, name='upload_file_delete'),
path('course/<slug>/documentations/upload/', handle_file_upload, name='upload_file_view'),
path('course/<slug>/documentations/<int:file_id>/edit/', handle_file_edit, name='upload_file_edit'),
path('course/<slug>/documentations/<int:file_id>/delete/', handle_file_delete, name='upload_file_delete'),
# Video uploads urls
url(r'^course/(?P<slug>[\w-]+)/video_tutorials/upload/$', handle_video_upload, name='upload_video'),
url(r'^course/(?P<slug>[\w-]+)/video_tutorials/(?P<video_slug>[\w-]+)/detail/$', handle_video_single, name='video_single'),
url(r'^course/(?P<slug>[\w-]+)/video_tutorials/(?P<video_slug>[\w-]+)/edit/$', handle_video_edit, name='upload_video_edit'),
url(r'^course/(?P<slug>[\w-]+)/video_tutorials/(?P<video_slug>[\w-]+)/delete/$', handle_video_delete, name='upload_video_delete'),
path('course/<slug>/video_tutorials/upload/', handle_video_upload, name='upload_video'),
path('course/<slug>/video_tutorials/<video_slug>/detail/', handle_video_single, name='video_single'),
path('course/<slug>/video_tutorials/<video_slug>/edit/', handle_video_edit, name='upload_video_edit'),
path('course/<slug>/video_tutorials/<video_slug>/delete/', handle_video_delete, name='upload_video_delete'),
# course registration
url(r'^course/registration/$', course_registration, name='course_registration'),
url(r'^course/drop/$', course_drop, name='course_drop'),
path('course/registration/', course_registration, name='course_registration'),
path('course/drop/', course_drop, name='course_drop'),
url(r'^my_courses/$', user_course_list, name="user_course_list"),
path('my_courses/', user_course_list, name="user_course_list"),
]

View File

@ -0,0 +1,23 @@
# Generated by Django 4.1.6 on 2023-02-01 12:30
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('coursemanagement', '0002_coursesetting'),
]
operations = [
migrations.AlterField(
model_name='courseoffer',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='coursesetting',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
]

View File

@ -2,7 +2,7 @@
"""Django's command-line utility for administrative tasks."""
import os
import sys
import environ
def main():
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'SMS.settings')
@ -18,4 +18,6 @@ def main():
if __name__ == '__main__':
# OS environment variables take precedence over variables from .env
environ.Env.read_env()
main()

View File

@ -0,0 +1,18 @@
# Generated by Django 4.1.6 on 2023-02-01 12:30
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('payments', '0003_delete_testclass'),
]
operations = [
migrations.AlterField(
model_name='invoice',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
]

View File

@ -1,7 +1,7 @@
from django import forms
from django.contrib import admin
from django.contrib.admin.widgets import FilteredSelectMultiple
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from .models import Quiz, Progress, Question, MCQuestion, Choice, Essay_Question, Sitting

View File

@ -1,7 +1,7 @@
from django import forms
from django.forms.widgets import RadioSelect, Textarea
from django.contrib.admin.widgets import FilteredSelectMultiple
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from django.db import transaction
from django.forms.models import inlineformset_factory

View File

@ -0,0 +1,38 @@
# Generated by Django 4.1.6 on 2023-02-01 12:30
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('quiz', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='choice',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='progress',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='question',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='quiz',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='sitting',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
]

View File

@ -5,7 +5,7 @@ from django.db import models
from django.urls import reverse
from django.core.exceptions import ValidationError, ImproperlyConfigured
from django.core.validators import (MaxValueValidator, validate_comma_separated_integer_list,)
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from django.utils.timezone import now
from django.conf import settings
from django.db.models.signals import pre_save

View File

@ -1,23 +1,22 @@
from django.conf.urls import url
from django.urls import path
from .views import *
urlpatterns = [
url(r'^(?P<slug>[\w-]+)/quizzes/$', quiz_list, name='quiz_index'),
path('<slug>/quizzes/', quiz_list, name='quiz_index'),
url(r'^progress/$', view=QuizUserProgressView.as_view(), name='quiz_progress'),
path('progress/', view=QuizUserProgressView.as_view(), name='quiz_progress'),
# url(r'^marking/(?P<pk>[\d.]+)/$', view=QuizMarkingList.as_view(), name='quiz_marking'),
url(r'^marking_list/$', view=QuizMarkingList.as_view(), name='quiz_marking'),
# path('marking/<int:pk>/', view=QuizMarkingList.as_view(), name='quiz_marking'),
path('marking_list/', view=QuizMarkingList.as_view(), name='quiz_marking'),
url(r'^marking/(?P<pk>[\d.]+)/$', view=QuizMarkingDetail.as_view(), name='quiz_marking_detail'),
path('marking/<int:pk>/', view=QuizMarkingDetail.as_view(), name='quiz_marking_detail'),
url(r'^(?P<pk>[\d.]+)/(?P<slug>[\w-]+)/take/$', view=QuizTake.as_view(), name='quiz_take'),
path('<int:pk>/<slug>/take/', view=QuizTake.as_view(), name='quiz_take'),
url(r'^(?P<slug>[\w-]+)/quiz_add/$', QuizCreateView.as_view(), name='quiz_create'),
url(r'^(?P<slug>[\w-]+)/(?P<pk>[\d.]+)/add/$', QuizUpdateView.as_view(), name='quiz_update'),
url(r'^(?P<slug>[\w-]+)/(?P<pk>[\d.]+)/delete/$', quiz_delete, name='quiz_delete'),
url(r'^mc-question/add/(?P<slug>[\w-]+)/(?P<quiz_id>[\d.]+)/$', MCQuestionCreate.as_view(), name='mc_create'),
# url(r'^mc-question/add/(?P<pk>[\d.]+)/(?P<quiz_pk>[\d.]+)/$', MCQuestionCreate.as_view(), name='mc_create'),
path('<slug>/quiz_add/', QuizCreateView.as_view(), name='quiz_create'),
path('<slug>/<int:pk>/add/', QuizUpdateView.as_view(), name='quiz_update'),
path('<slug>/<int:pk>/delete/', quiz_delete, name='quiz_delete'),
path('mc-question/add/<slug>/<int:quiz_id>/', MCQuestionCreate.as_view(), name='mc_create'),
# path('mc-question/add/<int:pk>/<quiz_pk>/', MCQuestionCreate.as_view(), name='mc_create'),
]

View File

@ -1,40 +1,82 @@
asgiref==3.3.1
attrs==21.2.0
autobahn==21.3.1
Automat==20.2.0
certifi==2020.12.5
cffi==1.14.5
channels==3.0.3
chardet==4.0.0
alabaster==0.7.13
arrow==1.2.3
asgiref==3.6.0
attrs==22.2.0
autobahn==23.1.1
Automat==22.10.0
Babel==2.11.0
binaryornot==0.4.4
black==22.10.0
certifi==2022.12.7
cffi==1.15.1
channels==4.0.0
chardet==5.1.0
charset-normalizer==2.1.1
click==8.1.3
colorama==0.4.6
constantly==15.1.0
cryptography==3.4.7
daphne==3.0.2
Deprecated==1.2.12
Django==3.1.3
django-cleanup==5.1.0
django-crispy-forms==1.9.2
django-model-utils==4.1.1
djangorestframework==3.12.4
gopay==1.2.5
cookiecutter==2.1.1
cryptography==39.0.0
daphne==4.0.0
Deprecated==1.2.13
Django==4.1.6
django-cleanup==6.0.0
django-crispy-forms==1.14.0
django-environ==0.9.0
django-model-utils==4.3.1
djangorestframework==3.14.0
docutils==0.19
ghp-import==2.1.0
gopay==1.3.0
hyperlink==21.0.0
idna==2.10
incremental==21.3.0
Pillow==8.1.2
psycopg2==2.8.6
idna==3.4
imagesize==1.4.1
incremental==22.10.0
Jinja2==3.1.2
jinja2-time==0.2.0
Markdown==3.3.7
MarkupSafe==2.1.1
mergedeep==1.3.4
mkdocs==1.4.2
mypy-extensions==0.4.3
packaging==21.3
pathspec==0.10.2
Pillow==9.4.0
platformdirs==2.5.4
psycopg2==2.9.5
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycparser==2.20
pyOpenSSL==20.0.1
pytz==2021.1
reportlab==3.5.56
requests==2.25.1
pycparser==2.21
Pygments==2.14.0
pyOpenSSL==23.0.0
pyparsing==3.0.9
python-dateutil==2.8.2
python-slugify==7.0.0
pytz==2022.7.1
PyYAML==6.0
pyyaml_env_tag==0.1
reportlab==3.6.12
requests==2.28.1
service-identity==21.1.0
six==1.16.0
sqlparse==0.4.1
stripe==2.56.0
Twisted==21.2.0
twisted-iocpsupport==1.0.1
txaio==21.2.1
urllib3==1.26.4
wrapt==1.12.1
zope.interface==5.4.0
snowballstemmer==2.2.0
Sphinx==6.1.3
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp==2.0.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml==1.1.5
sphinxcontrib.applehelp==1.0.3
sqlparse==0.4.3
stripe==5.0.0
text-unidecode==1.3
tomli==2.0.1
Twisted==22.10.0
twisted-iocpsupport==1.0.2
txaio==23.1.1
typing_extensions==4.4.0
tzdata==2022.7
urllib3==1.26.13
watchdog==2.1.9
wrapt==1.14.1
zope.interface==5.5.2

View File

@ -0,0 +1,23 @@
# Generated by Django 4.1.6 on 2023-02-01 12:30
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('result', '0004_auto_20200825_1248'),
]
operations = [
migrations.AlterField(
model_name='result',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='takencourse',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
]

View File

@ -1,4 +1,3 @@
from django.conf.urls import url
from django.urls import path
from .views import (
add_score, add_score_for, grade_result, assessment_result,
@ -7,12 +6,12 @@ from .views import (
urlpatterns = [
url(r'^manage-score/$', add_score, name='add_score'),
url(r'^manage-score/(?P<id>\d+)/$', add_score_for, name='add_score_for'),
path('manage-score/', add_score, name='add_score'),
path('manage-score/<int:id>/', add_score_for, name='add_score_for'),
url(r'^grade/$', grade_result, name="grade_results"),
url(r'^assessment/$', assessment_result, name="ass_results"),
path('grade/', grade_result, name="grade_results"),
path('assessment/', assessment_result, name="ass_results"),
url(r'^result/print/(?P<id>\d+)/$', result_sheet_pdf_view, name='result_sheet_pdf_view'),
url(r'^registration/form/$', course_registration_form, name='course_registration_form'),
path('result/print/<int:id>/', result_sheet_pdf_view, name='result_sheet_pdf_view'),
path('registration/form/', course_registration_form, name='course_registration_form'),
]

View File

@ -1,8 +1,6 @@
from django.conf.urls import url
from django.urls import path
from .views import SearchView
urlpatterns = [
url(r'^$', SearchView.as_view(), name='query'),
path('', SearchView.as_view(), name='query'),
]