213 lines
13 KiB
Python
213 lines
13 KiB
Python
# Generated by Django 5.1.4 on 2025-01-07 17:39
|
|
|
|
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 Traning', 'Vocational Traning'), ('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)),
|
|
('author', 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='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)),
|
|
('address', models.CharField(max_length=255)),
|
|
('date_of_birth', models.DateField()),
|
|
('gender', models.CharField(choices=[('M', 'Male'), ('F', 'Female')], max_length=1)),
|
|
('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='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',
|
|
},
|
|
),
|
|
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.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)),
|
|
('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': 'Attendance',
|
|
'verbose_name_plural': 'Attendance Records',
|
|
},
|
|
),
|
|
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'),
|
|
),
|
|
]
|