lol i dont know what i am doing
This commit is contained in:
1 parent
edb0f45871
commit
d40476ebc3
114 files changed
+22008
No files matched your search
@@ -0,0 +1,796 @@
|
||||
# Generated by Django 5.1.4 on 2025-01-15 05:35
|
||||
|
||||
import django.core.validators
|
||||
import django.db.models.deletion
|
||||
from decimal import Decimal
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
("auth", "0012_alter_user_first_name_max_length"),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="AcademicYear",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("year", models.CharField(max_length=255, unique=True)),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "Academic Year",
|
||||
"verbose_name_plural": "Academic Years",
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Course",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("name", models.CharField(max_length=100)),
|
||||
(
|
||||
"level",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("basic", "Basic"),
|
||||
("primary", "Primary"),
|
||||
("secondary", "Secondary"),
|
||||
("vocational training", "Vocational Training"),
|
||||
("higher secondary", "Higher Secondary"),
|
||||
("graduation", "Graduation"),
|
||||
("post graduation", "Post Graduation"),
|
||||
],
|
||||
max_length=45,
|
||||
),
|
||||
),
|
||||
(
|
||||
"course_type",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("semester", "Semester-based"),
|
||||
("yearly", "Yearly-based"),
|
||||
],
|
||||
max_length=10,
|
||||
),
|
||||
),
|
||||
("duration", models.PositiveIntegerField()),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "Course",
|
||||
"verbose_name_plural": "Courses",
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Library",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("category", models.CharField(max_length=255)),
|
||||
("book_name", models.CharField(max_length=255)),
|
||||
("description", models.CharField(max_length=255)),
|
||||
("publication", models.CharField(max_length=255)),
|
||||
("publication_year", models.PositiveIntegerField()),
|
||||
("quantity", models.PositiveIntegerField()),
|
||||
(
|
||||
"available",
|
||||
models.CharField(choices=[("Y", "Yes"), ("N", "NO")], max_length=1),
|
||||
),
|
||||
("date_added", models.DateField(auto_now_add=True)),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "Library",
|
||||
"verbose_name_plural": "Library",
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="NewsEvent",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("title", models.CharField(max_length=255)),
|
||||
("summary", models.TextField()),
|
||||
(
|
||||
"type",
|
||||
models.CharField(
|
||||
choices=[("news", "News"), ("event", "Event")], max_length=5
|
||||
),
|
||||
),
|
||||
("created_at", models.DateTimeField(auto_now_add=True)),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "News/Event",
|
||||
"verbose_name_plural": "News/Events",
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Attendance",
|
||||
fields=[
|
||||
("id", models.AutoField(primary_key=True, serialize=False)),
|
||||
("date", models.DateField()),
|
||||
(
|
||||
"status",
|
||||
models.CharField(
|
||||
choices=[("present", "Present"), ("absent", "Absent")],
|
||||
max_length=10,
|
||||
),
|
||||
),
|
||||
(
|
||||
"session_year",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="app.academicyear",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "Attendance",
|
||||
"verbose_name_plural": "Attendance Records",
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Staff",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("active_status", models.BooleanField(default=True)),
|
||||
("first_name", models.CharField(max_length=255)),
|
||||
(
|
||||
"middle_name",
|
||||
models.CharField(blank=True, max_length=255, null=True),
|
||||
),
|
||||
("last_name", models.CharField(max_length=255)),
|
||||
("email", models.EmailField(max_length=255, unique=True)),
|
||||
(
|
||||
"phone",
|
||||
models.CharField(
|
||||
max_length=10,
|
||||
validators=[
|
||||
django.core.validators.RegexValidator("^\\+?1?\\d{9,15}$")
|
||||
],
|
||||
),
|
||||
),
|
||||
(
|
||||
"username",
|
||||
models.CharField(
|
||||
blank=True, max_length=255, null=True, unique=True
|
||||
),
|
||||
),
|
||||
("password", models.CharField(max_length=255)),
|
||||
(
|
||||
"gender",
|
||||
models.CharField(
|
||||
choices=[("M", "Male"), ("F", "Female")], max_length=1
|
||||
),
|
||||
),
|
||||
(
|
||||
"position",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("lab Assistant", "Lab Assistant"),
|
||||
("librarian", "Librarian"),
|
||||
("accountant", "Accountant"),
|
||||
("guard", "Guard"),
|
||||
("driver", "Driver"),
|
||||
("helper", "Helper"),
|
||||
("cleaner", "Cleaner"),
|
||||
],
|
||||
max_length=255,
|
||||
),
|
||||
),
|
||||
("address", models.CharField(max_length=255)),
|
||||
(
|
||||
"marital_status",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("married", "Married"),
|
||||
("widowed", "Widowed"),
|
||||
("separated", "Separated"),
|
||||
("divorced", "Divorced"),
|
||||
("single", "Single"),
|
||||
],
|
||||
max_length=10,
|
||||
),
|
||||
),
|
||||
("date_of_joining", models.DateField()),
|
||||
("group", models.ManyToManyField(blank=True, to="auth.group")),
|
||||
(
|
||||
"user",
|
||||
models.OneToOneField(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "Staff",
|
||||
"verbose_name_plural": "Staff",
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Student",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("active_status", models.BooleanField(default=True)),
|
||||
("first_name", models.CharField(max_length=255)),
|
||||
(
|
||||
"middle_name",
|
||||
models.CharField(blank=True, max_length=255, null=True),
|
||||
),
|
||||
("last_name", models.CharField(max_length=255)),
|
||||
("email", models.EmailField(max_length=255, unique=True)),
|
||||
(
|
||||
"phone",
|
||||
models.CharField(
|
||||
max_length=10,
|
||||
validators=[
|
||||
django.core.validators.RegexValidator("^\\+?1?\\d{9,15}$")
|
||||
],
|
||||
),
|
||||
),
|
||||
(
|
||||
"username",
|
||||
models.CharField(
|
||||
blank=True, max_length=255, null=True, unique=True
|
||||
),
|
||||
),
|
||||
("password", models.CharField(max_length=255)),
|
||||
("date_of_birth", models.DateField()),
|
||||
(
|
||||
"gender",
|
||||
models.CharField(
|
||||
choices=[("M", "Male"), ("F", "Female")], max_length=1
|
||||
),
|
||||
),
|
||||
("address", models.CharField(max_length=255)),
|
||||
("father_name", models.CharField(max_length=100)),
|
||||
(
|
||||
"father_phone_no",
|
||||
models.CharField(
|
||||
max_length=10,
|
||||
validators=[
|
||||
django.core.validators.RegexValidator("^\\+?1?\\d{9,15}$")
|
||||
],
|
||||
),
|
||||
),
|
||||
(
|
||||
"father_email",
|
||||
models.EmailField(blank=True, max_length=254, null=True),
|
||||
),
|
||||
(
|
||||
"father_occupation",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("agriculture", "Agriculture"),
|
||||
("banker", "Banker"),
|
||||
("business", "Business"),
|
||||
("doctor", "Doctor"),
|
||||
("farmer", "Farmer"),
|
||||
("fisherman", "Fisherman"),
|
||||
("public service", "Public Service"),
|
||||
("private service", "Private Service"),
|
||||
("shopkeeper", "Shopkeeper"),
|
||||
("driver", "Driver"),
|
||||
("worker", "Worker"),
|
||||
("N/A", "N/A"),
|
||||
],
|
||||
default="N/A",
|
||||
max_length=45,
|
||||
),
|
||||
),
|
||||
("mother_name", models.CharField(max_length=100)),
|
||||
(
|
||||
"mother_phone_no",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
max_length=10,
|
||||
null=True,
|
||||
validators=[
|
||||
django.core.validators.RegexValidator("^\\+?1?\\d{9,15}$")
|
||||
],
|
||||
),
|
||||
),
|
||||
(
|
||||
"mother_email",
|
||||
models.EmailField(blank=True, max_length=254, null=True),
|
||||
),
|
||||
(
|
||||
"mother_occupation",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("agriculture", "Agriculture"),
|
||||
("banker", "Banker"),
|
||||
("business", "Business"),
|
||||
("doctor", "Doctor"),
|
||||
("farmer", "Farmer"),
|
||||
("fisherman", "Fisherman"),
|
||||
("public service", "Public Service"),
|
||||
("private service", "Private Service"),
|
||||
("shopkeeper", "Shopkeeper"),
|
||||
("driver", "Driver"),
|
||||
("houseWife", "HouseWife"),
|
||||
("worker", "Worker"),
|
||||
("N/A", "N/A"),
|
||||
],
|
||||
default="N/A",
|
||||
max_length=45,
|
||||
),
|
||||
),
|
||||
("guardian_name", models.CharField(max_length=100)),
|
||||
(
|
||||
"guardian_phone_no",
|
||||
models.CharField(
|
||||
max_length=10,
|
||||
validators=[
|
||||
django.core.validators.RegexValidator("^\\+?1?\\d{9,15}$")
|
||||
],
|
||||
),
|
||||
),
|
||||
(
|
||||
"guardian_email",
|
||||
models.EmailField(blank=True, max_length=254, null=True),
|
||||
),
|
||||
(
|
||||
"relationship_with_student",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("father", "Father"),
|
||||
("mother", "Mother"),
|
||||
("brother", "Brother"),
|
||||
("sister", "Sister"),
|
||||
("uncle", "Uncle"),
|
||||
("aunt", "Aunt"),
|
||||
("grandfather", "Grandfather"),
|
||||
],
|
||||
max_length=45,
|
||||
),
|
||||
),
|
||||
(
|
||||
"academic_year",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="app.academicyear",
|
||||
),
|
||||
),
|
||||
(
|
||||
"course",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="app.course"
|
||||
),
|
||||
),
|
||||
("group", models.ManyToManyField(blank=True, to="auth.group")),
|
||||
(
|
||||
"user",
|
||||
models.OneToOneField(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "Student",
|
||||
"verbose_name_plural": "Students",
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Marksheet",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"period_number",
|
||||
models.PositiveIntegerField(
|
||||
help_text="Select the semester/year number within the course duration."
|
||||
),
|
||||
),
|
||||
(
|
||||
"total_marks",
|
||||
models.PositiveIntegerField(
|
||||
blank=True,
|
||||
default=Decimal("0.00"),
|
||||
null=True,
|
||||
validators=[django.core.validators.MinValueValidator(0)],
|
||||
),
|
||||
),
|
||||
(
|
||||
"obtained_marks",
|
||||
models.PositiveIntegerField(
|
||||
default=Decimal("0.00"),
|
||||
validators=[django.core.validators.MinValueValidator(0)],
|
||||
),
|
||||
),
|
||||
(
|
||||
"grade",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
choices=[
|
||||
("A+", "A+"),
|
||||
("A", "A"),
|
||||
("B+", "B+"),
|
||||
("B", "B"),
|
||||
("C+", "C+"),
|
||||
("C", "C"),
|
||||
("D", "D"),
|
||||
("E", "E"),
|
||||
],
|
||||
max_length=2,
|
||||
null=True,
|
||||
),
|
||||
),
|
||||
(
|
||||
"course",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="marksheets",
|
||||
to="app.course",
|
||||
),
|
||||
),
|
||||
(
|
||||
"student",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="marksheets",
|
||||
to="app.student",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "Marksheet",
|
||||
"verbose_name_plural": "Marksheets",
|
||||
"unique_together": {("student", "course", "period_number")},
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Certificate",
|
||||
fields=[
|
||||
("id", models.AutoField(primary_key=True, serialize=False)),
|
||||
("finished_year", models.CharField(max_length=5)),
|
||||
("issued_by", models.CharField(max_length=255)),
|
||||
("checked_by", models.CharField(max_length=255)),
|
||||
("principle", models.CharField(max_length=255)),
|
||||
("date", models.DateField()),
|
||||
(
|
||||
"student",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="certificate",
|
||||
to="app.student",
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="AttendanceReport",
|
||||
fields=[
|
||||
("id", models.AutoField(primary_key=True, serialize=False)),
|
||||
("status", models.BooleanField(default=False)),
|
||||
("created_at", models.DateTimeField(auto_now_add=True)),
|
||||
("updated_at", models.DateTimeField(auto_now_add=True)),
|
||||
(
|
||||
"attendance_id",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="app.attendance"
|
||||
),
|
||||
),
|
||||
(
|
||||
"student_id",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="app.student"
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="attendance",
|
||||
name="student",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="app.student"
|
||||
),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Subject",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("name", models.CharField(max_length=255)),
|
||||
("semester_or_year_number", models.PositiveIntegerField()),
|
||||
(
|
||||
"course",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="subjects",
|
||||
to="app.course",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "Subject",
|
||||
"verbose_name_plural": "Subjects",
|
||||
"ordering": ["course", "semester_or_year_number", "name"],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Result",
|
||||
fields=[
|
||||
("id", models.AutoField(primary_key=True, serialize=False)),
|
||||
(
|
||||
"practical_marks",
|
||||
models.DecimalField(
|
||||
decimal_places=2, default=Decimal("0.00"), max_digits=5
|
||||
),
|
||||
),
|
||||
(
|
||||
"exam_marks",
|
||||
models.DecimalField(
|
||||
decimal_places=2, default=Decimal("0.00"), max_digits=5
|
||||
),
|
||||
),
|
||||
(
|
||||
"total_marks",
|
||||
models.DecimalField(
|
||||
decimal_places=2,
|
||||
default=Decimal("0.00"),
|
||||
editable=False,
|
||||
max_digits=5,
|
||||
),
|
||||
),
|
||||
(
|
||||
"student",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="app.student"
|
||||
),
|
||||
),
|
||||
(
|
||||
"subject",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="app.subject"
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "Result",
|
||||
"verbose_name_plural": "Results",
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="attendance",
|
||||
name="subject",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="app.subject"
|
||||
),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Teacher",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("active_status", models.BooleanField(default=True)),
|
||||
("first_name", models.CharField(max_length=255)),
|
||||
(
|
||||
"middle_name",
|
||||
models.CharField(blank=True, max_length=255, null=True),
|
||||
),
|
||||
("last_name", models.CharField(max_length=255)),
|
||||
("email", models.EmailField(max_length=255, unique=True)),
|
||||
(
|
||||
"phone",
|
||||
models.CharField(
|
||||
max_length=10,
|
||||
validators=[
|
||||
django.core.validators.RegexValidator("^\\+?1?\\d{9,15}$")
|
||||
],
|
||||
),
|
||||
),
|
||||
(
|
||||
"username",
|
||||
models.CharField(
|
||||
blank=True, max_length=255, null=True, unique=True
|
||||
),
|
||||
),
|
||||
("password", models.CharField(max_length=255)),
|
||||
("address", models.CharField(max_length=255)),
|
||||
(
|
||||
"gender",
|
||||
models.CharField(
|
||||
choices=[("M", "Male"), ("F", "Female")], max_length=1
|
||||
),
|
||||
),
|
||||
(
|
||||
"qualification",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("BA", "BA"),
|
||||
("BBS", "BBS"),
|
||||
("BE", "BE"),
|
||||
("BEd", "BEd"),
|
||||
("BSc", "BSc"),
|
||||
("MA", "MA"),
|
||||
("MSc", "MSc"),
|
||||
("MBS", "MBS"),
|
||||
("ME", "ME"),
|
||||
("PhD", "PhD"),
|
||||
("Others", "Others"),
|
||||
],
|
||||
max_length=45,
|
||||
),
|
||||
),
|
||||
("specialization", models.CharField(max_length=255)),
|
||||
(
|
||||
"marital_status",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("married", "Married"),
|
||||
("widowed", "Widowed"),
|
||||
("separated", "Separated"),
|
||||
("divorced", "Divorced"),
|
||||
("single", "Single"),
|
||||
],
|
||||
max_length=10,
|
||||
),
|
||||
),
|
||||
("date_of_joining", models.DateField()),
|
||||
("group", models.ManyToManyField(blank=True, to="auth.group")),
|
||||
(
|
||||
"user",
|
||||
models.OneToOneField(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "Teacher",
|
||||
"verbose_name_plural": "Teachers",
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="subject",
|
||||
name="teacher",
|
||||
field=models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="subjects",
|
||||
to="app.teacher",
|
||||
),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="SubjectMark",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"obtained_practical_marks",
|
||||
models.DecimalField(
|
||||
decimal_places=2, default=Decimal("0.00"), max_digits=5
|
||||
),
|
||||
),
|
||||
(
|
||||
"total_practical_marks",
|
||||
models.DecimalField(
|
||||
decimal_places=2, default=Decimal("20.00"), max_digits=5
|
||||
),
|
||||
),
|
||||
(
|
||||
"obtained_theory_marks",
|
||||
models.DecimalField(
|
||||
decimal_places=2, default=Decimal("0.00"), max_digits=5
|
||||
),
|
||||
),
|
||||
(
|
||||
"total_theory_marks",
|
||||
models.DecimalField(
|
||||
decimal_places=2, default=Decimal("80.00"), max_digits=5
|
||||
),
|
||||
),
|
||||
(
|
||||
"total_marks",
|
||||
models.DecimalField(
|
||||
decimal_places=2, default=Decimal("0.00"), max_digits=5
|
||||
),
|
||||
),
|
||||
(
|
||||
"marksheet",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="subject_marks",
|
||||
to="app.marksheet",
|
||||
),
|
||||
),
|
||||
(
|
||||
"subject",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="subject_marks",
|
||||
to="app.subject",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"unique_together": {("marksheet", "subject")},
|
||||
},
|
||||
),
|
||||
]
|
||||
Reference in new issue
Block a user