Rename app to

This commit is contained in:
papi 2024-01-04 23:00:48 +03:00
parent a2c969e3e4
commit e9e1ae2970
40 changed files with 481 additions and 191 deletions

View File

@ -7,7 +7,7 @@ from django.views.generic import CreateView, ListView
from django.db.models import Q
from django.utils.decorators import method_decorator
from django.contrib.auth.forms import PasswordChangeForm
from app.models import Session, Semester
from core.models import Session, Semester
from course.models import Course
from result.models import TakenCourse
from .decorators import admin_required

View File

@ -1,5 +0,0 @@
from django.apps import AppConfig
class AppConfig(AppConfig):
name = "app"

View File

@ -1,45 +0,0 @@
# Generated by Django 2.2.3 on 2020-07-29 15:25
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='NewsAndEvents',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=200, null=True)),
('summary', models.TextField(blank=True, max_length=200, null=True)),
('posted_as', models.CharField(choices=[('News', 'News'), ('Event', 'Event')], max_length=10)),
('updated_date', models.DateTimeField(auto_now=True, null=True)),
('upload_time', models.DateTimeField(auto_now_add=True, null=True)),
],
),
migrations.CreateModel(
name='Session',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('session', models.CharField(max_length=200, unique=True)),
('is_current_session', models.BooleanField(blank=True, default=False, null=True)),
('next_session_begins', models.DateField(blank=True, null=True)),
],
),
migrations.CreateModel(
name='Semester',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('semester', models.CharField(blank=True, choices=[('First', 'First'), ('Second', 'Second'), ('Third', 'Third')], max_length=10)),
('is_current_semester', models.BooleanField(blank=True, default=False, null=True)),
('next_semester_begins', models.DateField(blank=True, null=True)),
('session', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.Session')),
],
),
]

View File

@ -1,18 +0,0 @@
# Generated by Django 2.2.3 on 2020-07-30 04:46
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='semester',
name='semester',
field=models.CharField(blank=True, choices=[('First', 'First'), ('Second', 'Second'), ('Third', 'Third')], max_length=10, unique=True),
),
]

View File

@ -1,18 +0,0 @@
# Generated by Django 2.2.3 on 2020-07-30 04:56
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0002_auto_20200730_0746'),
]
operations = [
migrations.AlterField(
model_name='semester',
name='semester',
field=models.CharField(blank=True, choices=[('First', 'First'), ('Second', 'Second'), ('Third', 'Third')], max_length=10),
),
]

View File

@ -1,28 +0,0 @@
# 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

@ -53,7 +53,7 @@ THIRD_PARTY_APPS = [
# Custom apps
PROJECT_APPS = [
"app.apps.AppConfig",
"core.apps.CoreConfig",
"accounts.apps.AccountsConfig",
"course.apps.CourseConfig",
"result.apps.ResultConfig",

View File

@ -11,7 +11,7 @@ urlpatterns = [
path(
"jet/dashboard/", include("jet.dashboard.urls", "jet-dashboard")
), # Django JET dashboard URLS
path("", include("app.urls")),
path("", include("core.urls")),
path("accounts/", include("accounts.urls")),
path("programs/", include("course.urls")),
path("result/", include("result.urls")),

5
core/apps.py Normal file
View File

@ -0,0 +1,5 @@
from django.apps import AppConfig
class CoreConfig(AppConfig):
name = "core"

View File

@ -0,0 +1,97 @@
# Generated by Django 2.2.3 on 2020-07-29 15:25
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = []
operations = [
migrations.CreateModel(
name="NewsAndEvents",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("title", models.CharField(max_length=200, null=True)),
("summary", models.TextField(blank=True, max_length=200, null=True)),
(
"posted_as",
models.CharField(
choices=[("News", "News"), ("Event", "Event")], max_length=10
),
),
("updated_date", models.DateTimeField(auto_now=True, null=True)),
("upload_time", models.DateTimeField(auto_now_add=True, null=True)),
],
),
migrations.CreateModel(
name="Session",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("session", models.CharField(max_length=200, unique=True)),
(
"is_current_session",
models.BooleanField(blank=True, default=False, null=True),
),
("next_session_begins", models.DateField(blank=True, null=True)),
],
),
migrations.CreateModel(
name="Semester",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"semester",
models.CharField(
blank=True,
choices=[
("First", "First"),
("Second", "Second"),
("Third", "Third"),
],
max_length=10,
),
),
(
"is_current_semester",
models.BooleanField(blank=True, default=False, null=True),
),
("next_semester_begins", models.DateField(blank=True, null=True)),
(
"session",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
to="core.Session",
),
),
],
),
]

View File

@ -0,0 +1,22 @@
# Generated by Django 2.2.3 on 2020-07-30 04:46
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("core", "0001_initial"),
]
operations = [
migrations.AlterField(
model_name="semester",
name="semester",
field=models.CharField(
blank=True,
choices=[("First", "First"), ("Second", "Second"), ("Third", "Third")],
max_length=10,
unique=True,
),
),
]

View File

@ -0,0 +1,21 @@
# Generated by Django 2.2.3 on 2020-07-30 04:56
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("core", "0002_auto_20200730_0746"),
]
operations = [
migrations.AlterField(
model_name="semester",
name="semester",
field=models.CharField(
blank=True,
choices=[("First", "First"), ("Second", "Second"), ("Third", "Third")],
max_length=10,
),
),
]

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 = [
("core", "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

@ -18,7 +18,7 @@ def home_view(request):
"title": "News & Events",
"items": items,
}
return render(request, "app/index.html", context)
return render(request, "core/index.html", context)
@login_required
@ -37,7 +37,7 @@ def post_add(request):
form = NewsAndEventsForm()
return render(
request,
"app/post_add.html",
"core/post_add.html",
{
"title": "Add Post",
"form": form,
@ -63,7 +63,7 @@ def edit_post(request, pk):
form = NewsAndEventsForm(instance=instance)
return render(
request,
"app/post_add.html",
"core/post_add.html",
{
"title": "Edit Post",
"form": form,
@ -89,7 +89,7 @@ def delete_post(request, pk):
def session_list_view(request):
"""Show list of all sessions"""
sessions = Session.objects.all().order_by("-is_current_session", "-session")
return render(request, "app/session_list.html", {"sessions": sessions})
return render(request, "core/session_list.html", {"sessions": sessions})
@login_required
@ -121,7 +121,7 @@ def session_add_view(request):
else:
form = SessionForm()
return render(request, "app/session_update.html", {"form": form})
return render(request, "core/session_update.html", {"form": form})
@login_required
@ -153,7 +153,7 @@ def session_update_view(request, pk):
else:
form = SessionForm(instance=session)
return render(request, "app/session_update.html", {"form": form})
return render(request, "core/session_update.html", {"form": form})
@login_required
@ -182,7 +182,7 @@ def semester_list_view(request):
semesters = Semester.objects.all().order_by("-is_current_semester", "-semester")
return render(
request,
"app/semester_list.html",
"core/semester_list.html",
{
"semesters": semesters,
},
@ -244,7 +244,7 @@ def semester_add_view(request):
return redirect("semester_list")
else:
form = SemesterForm()
return render(request, "app/semester_update.html", {"form": form})
return render(request, "core/semester_update.html", {"form": form})
@login_required
@ -278,7 +278,7 @@ def semester_update_view(request, pk):
else:
form = SemesterForm(instance=semester)
return render(request, "app/semester_update.html", {"form": form})
return render(request, "core/semester_update.html", {"form": form})
@login_required
@ -297,4 +297,4 @@ def semester_delete_view(request, pk):
@login_required
@admin_required
def dashboard_view(request):
return render(request, "app/dashboard.html")
return render(request, "core/dashboard.html")

View File

@ -7,61 +7,177 @@ import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('app', '0001_initial'),
("core", "0001_initial"),
]
operations = [
migrations.CreateModel(
name='Course',
name="Course",
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('slug', models.SlugField(blank=True, unique=True)),
('title', models.CharField(max_length=200, null=True)),
('code', models.CharField(max_length=200, null=True, unique=True)),
('credit', models.IntegerField(default=0, null=True)),
('summary', models.TextField(blank=True, max_length=200, null=True)),
('level', models.CharField(choices=[('Level course', 'Level course'), ('Bachloar', 'Bachloar'), ('Master', 'Master')], max_length=25, null=True)),
('year', models.IntegerField(choices=[(1, '1'), (2, '2'), (3, '3'), (4, '4'), (4, '5'), (4, '6')], default=0)),
('semester', models.CharField(choices=[('First', 'First'), ('Second', 'Second'), ('Third', 'Third')], max_length=200)),
('is_elective', models.BooleanField(blank=True, default=False, null=True)),
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("slug", models.SlugField(blank=True, unique=True)),
("title", models.CharField(max_length=200, null=True)),
("code", models.CharField(max_length=200, null=True, unique=True)),
("credit", models.IntegerField(default=0, null=True)),
("summary", models.TextField(blank=True, max_length=200, null=True)),
(
"level",
models.CharField(
choices=[
("Level course", "Level course"),
("Bachloar", "Bachloar"),
("Master", "Master"),
],
max_length=25,
null=True,
),
),
(
"year",
models.IntegerField(
choices=[
(1, "1"),
(2, "2"),
(3, "3"),
(4, "4"),
(4, "5"),
(4, "6"),
],
default=0,
),
),
(
"semester",
models.CharField(
choices=[
("First", "First"),
("Second", "Second"),
("Third", "Third"),
],
max_length=200,
),
),
(
"is_elective",
models.BooleanField(blank=True, default=False, null=True),
),
],
),
migrations.CreateModel(
name='Program',
name="Program",
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=150, unique=True)),
('summary', models.TextField(blank=True, null=True)),
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("title", models.CharField(max_length=150, unique=True)),
("summary", models.TextField(blank=True, null=True)),
],
),
migrations.CreateModel(
name='Upload',
name="Upload",
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=100)),
('file', models.FileField(upload_to='course_files/', validators=[django.core.validators.FileExtensionValidator(['pdf', 'docx', 'doc', 'xls', 'xlsx', 'ppt', 'pptx', 'zip', 'rar', '7zip'])])),
('updated_date', models.DateTimeField(auto_now=True, null=True)),
('upload_time', models.DateTimeField(auto_now_add=True, null=True)),
('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='course.Course')),
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("title", models.CharField(max_length=100)),
(
"file",
models.FileField(
upload_to="course_files/",
validators=[
django.core.validators.FileExtensionValidator(
[
"pdf",
"docx",
"doc",
"xls",
"xlsx",
"ppt",
"pptx",
"zip",
"rar",
"7zip",
]
)
],
),
),
("updated_date", models.DateTimeField(auto_now=True, null=True)),
("upload_time", models.DateTimeField(auto_now_add=True, null=True)),
(
"course",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE, to="course.Course"
),
),
],
),
migrations.CreateModel(
name='CourseAllocation',
name="CourseAllocation",
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('courses', models.ManyToManyField(related_name='allocated_course', to='course.Course')),
('lecturer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='allocated_lecturer', to=settings.AUTH_USER_MODEL)),
('session', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.Session')),
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"courses",
models.ManyToManyField(
related_name="allocated_course", to="course.Course"
),
),
(
"lecturer",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="allocated_lecturer",
to=settings.AUTH_USER_MODEL,
),
),
(
"session",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
to="core.Session",
),
),
],
),
migrations.AddField(
model_name='course',
name='program',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='course.Program'),
model_name="course",
name="program",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE, to="course.Program"
),
),
]

View File

@ -8,7 +8,6 @@ from django.db.models import Q
# project import
from .utils import *
YEARS = (
(1, "1"),
(2, "2"),
@ -101,7 +100,7 @@ class Course(models.Model):
@property
def is_current_semester(self):
from app.models import Semester
from core.models import Semester
current_semester = Semester.objects.get(is_current_semester=True)
@ -127,7 +126,7 @@ class CourseAllocation(models.Model):
)
courses = models.ManyToManyField(Course, related_name="allocated_course")
session = models.ForeignKey(
"app.Session", on_delete=models.CASCADE, blank=True, null=True
"core.Session", on_delete=models.CASCADE, blank=True, null=True
)
def __str__(self):

View File

@ -9,7 +9,7 @@ from django.utils.decorators import method_decorator
from django.views.generic import ListView
from accounts.models import User, Student
from app.models import Session, Semester
from core.models import Session, Semester
from result.models import TakenCourse
from accounts.decorators import lecturer_required, student_required
from .forms import (

View File

@ -5,43 +5,154 @@ import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
('accounts', '0001_initial'),
('course', '0001_initial'),
('app', '0001_initial'),
("accounts", "0001_initial"),
("course", "0001_initial"),
("core", "0001_initial"),
]
operations = [
migrations.CreateModel(
name='TakenCourse',
name="TakenCourse",
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('assignment', models.DecimalField(decimal_places=2, default=0.0, max_digits=5)),
('mid_exam', models.DecimalField(decimal_places=2, default=0.0, max_digits=5)),
('quiz', models.DecimalField(decimal_places=2, default=0.0, max_digits=5)),
('attendance', models.DecimalField(decimal_places=2, default=0.0, max_digits=5)),
('final_exam', models.DecimalField(decimal_places=2, default=0.0, max_digits=5)),
('total', models.DecimalField(decimal_places=2, default=0.0, max_digits=5)),
('grade', models.CharField(blank=True, choices=[('A+', 'A+'), ('A', 'A'), ('A-', 'A-'), ('B+', 'B+'), ('B', 'B'), ('B-', 'B-'), ('C+', 'C+'), ('C', 'C'), ('C-', 'C-'), ('D', 'D'), ('F', 'F'), ('NG', 'NG')], max_length=1)),
('point', models.DecimalField(decimal_places=2, default=0.0, max_digits=5)),
('comment', models.CharField(blank=True, choices=[('PASS', 'PASS'), ('FAIL', 'FAIL')], max_length=200)),
('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='taken_courses', to='course.Course')),
('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='accounts.Student')),
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"assignment",
models.DecimalField(decimal_places=2, default=0.0, max_digits=5),
),
(
"mid_exam",
models.DecimalField(decimal_places=2, default=0.0, max_digits=5),
),
(
"quiz",
models.DecimalField(decimal_places=2, default=0.0, max_digits=5),
),
(
"attendance",
models.DecimalField(decimal_places=2, default=0.0, max_digits=5),
),
(
"final_exam",
models.DecimalField(decimal_places=2, default=0.0, max_digits=5),
),
(
"total",
models.DecimalField(decimal_places=2, default=0.0, max_digits=5),
),
(
"grade",
models.CharField(
blank=True,
choices=[
("A+", "A+"),
("A", "A"),
("A-", "A-"),
("B+", "B+"),
("B", "B"),
("B-", "B-"),
("C+", "C+"),
("C", "C"),
("C-", "C-"),
("D", "D"),
("F", "F"),
("NG", "NG"),
],
max_length=1,
),
),
(
"point",
models.DecimalField(decimal_places=2, default=0.0, max_digits=5),
),
(
"comment",
models.CharField(
blank=True,
choices=[("PASS", "PASS"), ("FAIL", "FAIL")],
max_length=200,
),
),
(
"course",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="taken_courses",
to="course.Course",
),
),
(
"student",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="accounts.Student",
),
),
],
),
migrations.CreateModel(
name='Result',
name="Result",
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('gpa', models.FloatField(null=True)),
('cgpa', models.FloatField(null=True)),
('semester', models.CharField(choices=[('First', 'First'), ('Second', 'Second'), ('Third', 'Third')], max_length=100)),
('level', models.CharField(choices=[('Level course', 'Level course'), ('Bachloar', 'Bachloar'), ('Master', 'Master')], max_length=25, null=True)),
('session', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.Session')),
('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='accounts.Student')),
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("gpa", models.FloatField(null=True)),
("cgpa", models.FloatField(null=True)),
(
"semester",
models.CharField(
choices=[
("First", "First"),
("Second", "Second"),
("Third", "Third"),
],
max_length=100,
),
),
(
"level",
models.CharField(
choices=[
("Level course", "Level course"),
("Bachloar", "Bachloar"),
("Master", "Master"),
],
max_length=25,
null=True,
),
),
(
"session",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
to="core.Session",
),
),
(
"student",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="accounts.Student",
),
),
],
),
]

View File

@ -2,7 +2,7 @@ from django.db import models
from django.urls import reverse
from accounts.models import Student
from app.models import Semester
from core.models import Semester
from course.models import Course
YEARS = (

View File

@ -22,7 +22,7 @@ from reportlab.lib.units import inch
from reportlab.lib import colors
from accounts.models import Student
from app.models import Session, Semester
from core.models import Session, Semester
from course.models import Course
from accounts.decorators import lecturer_required, student_required
from .models import TakenCourse, Result, FIRST, SECOND

View File

@ -1,6 +1,6 @@
from itertools import chain
from django.views.generic import ListView
from app.models import NewsAndEvents
from core.models import NewsAndEvents
from course.models import Program, Course
from quiz.models import Quiz