Files
Student-Management-System-I…/app/migrations/0001_initial.py
T
2025-03-26 00:17:10 +05:45

266 lines
14 KiB
Python

# Generated by Django 5.1.7 on 2025-03-25 17:13
import django.contrib.auth.models
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
('auth', '0012_alter_user_first_name_max_length'),
]
operations = [
migrations.CreateModel(
name='Batch',
fields=[
('id', models.BigAutoField(primary_key=True, serialize=False)),
('name', models.CharField(max_length=255)),
('start_date', models.DateField(blank=True, null=True)),
('end_date', models.DateField(blank=True, null=True)),
],
options={
'verbose_name': 'Batch',
'verbose_name_plural': 'Batches',
},
),
migrations.CreateModel(
name='Course',
fields=[
('id', models.BigAutoField(primary_key=True, serialize=False)),
('name', models.CharField(max_length=500)),
('duration', models.IntegerField(blank=True, default=1, null=True)),
('duration_type', models.CharField(blank=True, choices=[('Year', 'Yearl Based'), ('Semester', 'Semester Based')], max_length=255, null=True)),
],
options={
'verbose_name': 'Course',
'verbose_name_plural': 'Courses',
},
),
migrations.CreateModel(
name='FCMDevice',
fields=[
('id', models.BigAutoField(primary_key=True, serialize=False)),
('token', models.TextField(unique=True)),
],
),
migrations.CreateModel(
name='Institute',
fields=[
('id', models.BigAutoField(primary_key=True, serialize=False)),
('name', models.CharField(max_length=255)),
('phone', models.CharField(blank=True, max_length=255, null=True)),
('email', models.CharField(blank=True, max_length=255, null=True)),
('address', models.CharField(blank=True, max_length=255, null=True)),
('pan_no', models.CharField(blank=True, max_length=255, null=True)),
('reg_no', models.CharField(blank=True, max_length=255, null=True)),
('logo', models.ImageField(blank=True, null=True, upload_to='image')),
('description', models.TextField(blank=True, null=True)),
],
options={
'verbose_name': 'Institute',
'verbose_name_plural': 'Institutes',
},
),
migrations.CreateModel(
name='Notice',
fields=[
('id', models.BigAutoField(primary_key=True, serialize=False)),
('title', models.CharField(max_length=255)),
('image', models.ImageField(blank=True, null=True, upload_to='notice')),
('message', models.TextField(blank=True, null=True)),
('created_at', models.DateTimeField(auto_now_add=True)),
],
options={
'verbose_name': 'Notice',
'verbose_name_plural': 'Notices',
},
),
migrations.CreateModel(
name='Staff',
fields=[
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
('is_active', models.BooleanField(default=True)),
('is_superuser', models.BooleanField(default=False)),
('id', models.BigAutoField(primary_key=True, serialize=False)),
('name', models.CharField(max_length=255)),
('phone', models.CharField(blank=True, max_length=255, null=True, unique=True)),
('designation', models.CharField(blank=True, max_length=255, null=True)),
('gender', models.CharField(blank=True, choices=[('Male', 'Male'), ('Female', 'Female'), ('Other', 'Other')], max_length=255, null=True)),
('birth_date', models.DateField(blank=True, null=True)),
('email', models.CharField(blank=True, max_length=255, null=True)),
('temporary_address', models.CharField(blank=True, max_length=255, null=True)),
('permanent_address', models.CharField(blank=True, max_length=255, null=True)),
('marital_status', models.CharField(blank=True, choices=[('Married', 'Married'), ('Unmarried', 'Unmarried'), ('Divorced', 'Divorced')], max_length=255, null=True)),
('joining_date', models.DateField(blank=True, null=True)),
('password', models.CharField(editable=False, max_length=128, null=True)),
('groups', models.ManyToManyField(blank=True, help_text='The groups this staff belongs to.', related_name='staffs', to='auth.group', verbose_name='groups')),
('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this staff.', related_name='staff_set', related_query_name='staff', to='auth.permission', verbose_name='user permissions')),
],
options={
'verbose_name': 'Staff',
'verbose_name_plural': 'Staffs',
},
managers=[
('objects', django.contrib.auth.models.UserManager()),
],
),
migrations.CreateModel(
name='Routine',
fields=[
('id', models.BigAutoField(primary_key=True, serialize=False)),
('name', models.CharField(blank=True, max_length=255, null=True)),
('start_time', models.TimeField(blank=True, null=True)),
('end_time', models.TimeField(blank=True, null=True)),
('teacher', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='routines', to='app.staff')),
],
options={
'verbose_name': 'Routine',
'verbose_name_plural': 'Routines',
},
),
migrations.CreateModel(
name='Attendance',
fields=[
('id', models.BigAutoField(primary_key=True, serialize=False)),
('date', models.DateField()),
('teacher_attend', models.BooleanField(default=True)),
('class_status', models.BooleanField(default=True)),
('routine', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='attendances', to='app.routine')),
('teacher', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='attendances', to='app.staff')),
],
options={
'verbose_name': 'Attendance',
'verbose_name_plural': 'Attendances',
},
),
migrations.CreateModel(
name='Staff_leave',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('date', models.DateField()),
('message', models.TextField()),
('status', models.IntegerField(choices=[(0, 'Pending'), (1, 'Approved'), (2, 'Rejected')], default=0)),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('staff', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='app.staff')),
],
options={
'verbose_name': 'Staff Leave',
'verbose_name_plural': 'Staff Leaves',
'ordering': ['-created_at'],
},
),
migrations.CreateModel(
name='Student',
fields=[
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
('id', models.BigAutoField(primary_key=True, serialize=False)),
('name', models.CharField(max_length=255)),
('status', models.CharField(blank=True, choices=[('Active', 'Active'), ('Leave', 'Leave'), ('Completed', 'Completed')], max_length=255, null=True)),
('gender', models.CharField(blank=True, choices=[('Male', 'Male'), ('Female', 'Female'), ('Other', 'Other')], max_length=255, null=True)),
('birth_date', models.DateField(blank=True, null=True)),
('email', models.CharField(blank=True, max_length=255, null=True)),
('phone', models.CharField(blank=True, max_length=255, null=True, unique=True)),
('temporary_address', models.CharField(blank=True, max_length=500, null=True)),
('permanent_address', models.CharField(blank=True, max_length=500, null=True)),
('parent_name', models.CharField(blank=True, max_length=255, null=True)),
('parent_phone', models.CharField(blank=True, max_length=255, null=True)),
('joining_date', models.DateField(blank=True, null=True)),
('password', models.CharField(editable=False, max_length=128, null=True)),
('courses', models.ManyToManyField(blank=True, related_name='students', to='app.course')),
('groups', models.ManyToManyField(blank=True, help_text='The groups this student belongs to.', related_name='students', to='auth.group', verbose_name='groups')),
('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this student.', related_name='student_set', related_query_name='student', to='auth.permission', verbose_name='user permissions')),
],
options={
'verbose_name': 'Student',
'verbose_name_plural': 'Students',
},
managers=[
('objects', django.contrib.auth.models.UserManager()),
],
),
migrations.CreateModel(
name='AttendanceRecord',
fields=[
('id', models.BigAutoField(primary_key=True, serialize=False)),
('student_attend', models.BooleanField(default=False)),
('attendance', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='records', to='app.attendance')),
('student', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='attendance_records', to='app.student')),
],
),
migrations.CreateModel(
name='Student_Leave',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('date', models.DateField()),
('message', models.TextField()),
('status', models.IntegerField(choices=[(0, 'Pending'), (1, 'Approved'), (2, 'Rejected')], default=0)),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='app.student')),
],
options={
'verbose_name': 'Student Leave',
'verbose_name_plural': 'Student Leaves',
'ordering': ['-created_at'],
},
),
migrations.CreateModel(
name='StudentRoutine',
fields=[
('id', models.BigAutoField(primary_key=True, serialize=False)),
('course', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.course')),
('routine', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='students', to='app.routine')),
('student', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='routines', to='app.student')),
],
),
migrations.CreateModel(
name='Subject',
fields=[
('id', models.AutoField(primary_key=True, serialize=False)),
('name', models.CharField(max_length=255)),
('semester_or_year', models.PositiveIntegerField()),
('course', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='app.course')),
],
),
migrations.CreateModel(
name='StudentFeedback',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('rating', models.IntegerField(choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)])),
('feedback_text', models.TextField()),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='feedbacks', to='app.student')),
('teacher', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='app.staff')),
('subject', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='app.subject')),
],
options={
'verbose_name': 'Student Feedback',
'verbose_name_plural': 'Student Feedbacks',
'unique_together': {('student', 'subject', 'teacher')},
},
),
migrations.CreateModel(
name='TeacherFeedback',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('feedback_text', models.TextField()),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('subject', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='app.subject')),
('teacher', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='feedbacks', to='app.staff')),
],
options={
'verbose_name': 'Teacher Feedback',
'verbose_name_plural': 'Teacher Feedbacks',
'unique_together': {('teacher', 'subject')},
},
),
]