diff --git a/.gitignore b/.gitignore index 57e694f61..e71bdfc6f 100644 --- a/.gitignore +++ b/.gitignore @@ -77,7 +77,7 @@ package-lock.json docker-entrypoint.sh -FusionIIIT/applications/eis/migrations/ +# FusionIIIT/applications/eis/migrations/ postgres_data @@ -85,5 +85,5 @@ postgres_data !media/Administrator/academic_procedures/sample_courses_allotment.xls !media/Administrator/academic_procedures/sample_student_profile.xlsx -migrations/ +# migrations/ diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 7a472128d..000000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -# Default ignored files -/workspace.xml -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/.idea/Fusion.iml b/.idea/Fusion.iml deleted file mode 100644 index ddddb4a18..000000000 --- a/.idea/Fusion.iml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml deleted file mode 100644 index ed7a67375..000000000 --- a/.idea/dataSources.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - postgresql - true - true - $PROJECT_DIR$/FusionIIIT/Fusion/settings.py - org.postgresql.Driver - jdbc:postgresql://172.27.16.216:5432/fusionlab - - - \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml deleted file mode 100644 index 06948ac7e..000000000 --- a/.idea/inspectionProfiles/Project_Default.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml deleted file mode 100644 index 105ce2da2..000000000 --- a/.idea/inspectionProfiles/profiles_settings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Django_Lib.xml b/.idea/libraries/Django_Lib.xml deleted file mode 100644 index 6525c3e0b..000000000 --- a/.idea/libraries/Django_Lib.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 542dc8dc3..000000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index ec7b6656c..000000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/runConfigurations/Local_Server.xml b/.idea/runConfigurations/Local_Server.xml deleted file mode 100644 index c4017d4a7..000000000 --- a/.idea/runConfigurations/Local_Server.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7f4..000000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/FusionIIIT/applications/academic_information/migrations/0001_initial.py b/FusionIIIT/applications/academic_information/migrations/0001_initial.py new file mode 100644 index 000000000..f75d3119c --- /dev/null +++ b/FusionIIIT/applications/academic_information/migrations/0001_initial.py @@ -0,0 +1,182 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('programme_curriculum', '0001_initial'), + ('globals', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Calendar', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('from_date', models.DateField()), + ('to_date', models.DateField()), + ('description', models.CharField(max_length=40)), + ], + options={ + 'db_table': 'Calendar', + }, + ), + migrations.CreateModel( + name='Course', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('course_name', models.CharField(max_length=600)), + ('course_details', models.TextField(max_length=500)), + ], + options={ + 'db_table': 'Course', + }, + ), + migrations.CreateModel( + name='Curriculum', + fields=[ + ('curriculum_id', models.AutoField(primary_key=True, serialize=False)), + ('course_code', models.CharField(max_length=20)), + ('credits', models.IntegerField()), + ('course_type', models.CharField(choices=[('Professional Core', 'Professional Core'), ('Professional Elective', 'Professional Elective'), ('Professional Lab', 'Professional Lab'), ('Engineering Science', 'Engineering Science'), ('Natural Science', 'Natural Science'), ('Humanities', 'Humanities'), ('Design', 'Design'), ('Manufacturing', 'Manufacturing'), ('Management Science', 'Management Science')], max_length=25)), + ('programme', models.CharField(choices=[('B.Tech', 'B.Tech'), ('B.Des', 'B.Des'), ('M.Tech', 'M.Tech'), ('M.Des', 'M.Des'), ('PhD', 'PhD')], max_length=10)), + ('branch', models.CharField(choices=[('CSE', 'CSE'), ('ECE', 'ECE'), ('ME', 'ME'), ('DESIGN', 'DESIGN'), ('Common', 'Common')], default='Common', max_length=10)), + ('batch', models.IntegerField()), + ('sem', models.IntegerField()), + ('optional', models.BooleanField(default=False)), + ('floated', models.BooleanField(default=False)), + ('course_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.course')), + ], + options={ + 'db_table': 'Curriculum', + 'unique_together': {('course_code', 'batch', 'programme')}, + }, + ), + migrations.CreateModel( + name='Curriculum_Instructor', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('chief_inst', models.BooleanField(default=False)), + ('curriculum_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.curriculum')), + ('instructor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + options={ + 'db_table': 'Curriculum_Instructor', + 'unique_together': {('curriculum_id', 'instructor_id')}, + }, + ), + migrations.CreateModel( + name='Exam_timetable', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('upload_date', models.DateField(auto_now_add=True)), + ('exam_time_table', models.FileField(upload_to='Administrator/academic_information/')), + ('batch', models.IntegerField(default='2016')), + ('programme', models.CharField(choices=[('B.Tech', 'B.Tech'), ('B.Des', 'B.Des'), ('M.Tech', 'M.Tech'), ('M.Des', 'M.Des'), ('PhD', 'PhD')], max_length=10)), + ], + options={ + 'db_table': 'Exam_Timetable', + }, + ), + migrations.CreateModel( + name='Holiday', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('holiday_date', models.DateField()), + ('holiday_name', models.CharField(max_length=40)), + ('holiday_type', models.CharField(choices=[('restricted', 'restricted'), ('closed', 'closed'), ('vacation', 'vacation')], default='restricted', max_length=30)), + ], + options={ + 'db_table': 'Holiday', + }, + ), + migrations.CreateModel( + name='Meeting', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('venue', models.CharField(max_length=50)), + ('date', models.DateField()), + ('time', models.CharField(max_length=20)), + ('agenda', models.TextField()), + ('minutes_file', models.CharField(max_length=40)), + ], + options={ + 'db_table': 'Meeting', + }, + ), + migrations.CreateModel( + name='Student', + fields=[ + ('id', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='globals.extrainfo')), + ('programme', models.CharField(choices=[('B.Tech', 'B.Tech'), ('B.Des', 'B.Des'), ('M.Tech', 'M.Tech'), ('M.Des', 'M.Des'), ('PhD', 'PhD')], max_length=10)), + ('batch', models.IntegerField(default=2016)), + ('cpi', models.FloatField(default=0)), + ('category', models.CharField(choices=[('GEN', 'General'), ('SC', 'Scheduled Castes'), ('ST', 'Scheduled Tribes'), ('OBC', 'Other Backward Classes')], max_length=10)), + ('father_name', models.CharField(default='', max_length=40)), + ('mother_name', models.CharField(default='', max_length=40)), + ('hall_no', models.IntegerField(default=0)), + ('room_no', models.CharField(blank=True, max_length=10, null=True)), + ('specialization', models.CharField(choices=[('Power and Control', 'Power and Control'), ('Microwave and Communication Engineering', 'Microwave and Communication Engineering'), ('Micro-nano Electronics', 'Micro-nano Electronics'), ('CAD/CAM', 'CAD/CAM'), ('Design', 'Design'), ('Manufacturing', 'Manufacturing'), ('CSE', 'CSE'), ('Mechatronics', 'Mechatronics'), ('MDes', 'MDes'), ('None', 'None')], default='', max_length=40, null=True)), + ('curr_semester_no', models.IntegerField(default=1)), + ('batch_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.batch')), + ], + ), + migrations.CreateModel( + name='Timetable', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('upload_date', models.DateTimeField(auto_now_add=True)), + ('time_table', models.FileField(upload_to='Administrator/academic_information/')), + ('batch', models.IntegerField(default='2016')), + ('programme', models.CharField(choices=[('B.Tech', 'B.Tech'), ('B.Des', 'B.Des'), ('M.Tech', 'M.Tech'), ('M.Des', 'M.Des'), ('PhD', 'PhD')], max_length=10)), + ('branch', models.CharField(choices=[('CSE', 'CSE'), ('ECE', 'ECE'), ('ME', 'ME'), ('DESIGN', 'DESIGN'), ('Common', 'Common')], default='Common', max_length=10)), + ], + options={ + 'db_table': 'Timetable', + }, + ), + migrations.CreateModel( + name='Student_attendance', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date', models.DateField()), + ('present', models.BooleanField(default=False)), + ('instructor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.curriculum_instructor')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'Student_attendance', + }, + ), + migrations.CreateModel( + name='Grades', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('grade', models.CharField(max_length=4)), + ('verify', models.BooleanField(default=False)), + ('curriculum_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.curriculum')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'Grades', + }, + ), + migrations.CreateModel( + name='Spi', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sem', models.IntegerField()), + ('spi', models.FloatField(default=0)), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'Spi', + 'unique_together': {('student_id', 'sem')}, + }, + ), + ] diff --git a/FusionIIIT/applications/academic_information/migrations/0002_auto_20240421_1716.py b/FusionIIIT/applications/academic_information/migrations/0002_auto_20240421_1716.py new file mode 100644 index 000000000..80f027e54 --- /dev/null +++ b/FusionIIIT/applications/academic_information/migrations/0002_auto_20240421_1716.py @@ -0,0 +1,23 @@ +# Generated by Django 3.1.5 on 2024-04-21 17:16 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('academic_information', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='student', + name='father_name', + field=models.CharField(blank=True, default='', max_length=40, null=True), + ), + migrations.AlterField( + model_name='student', + name='mother_name', + field=models.CharField(blank=True, default='', max_length=40, null=True), + ), + ] diff --git a/FusionIIIT/applications/academic_information/migrations/__init__.py b/FusionIIIT/applications/academic_information/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/academic_information/models.py b/FusionIIIT/applications/academic_information/models.py index 60f658983..94f67df4a 100755 --- a/FusionIIIT/applications/academic_information/models.py +++ b/FusionIIIT/applications/academic_information/models.py @@ -93,8 +93,8 @@ class Student(models.Model): batch_id = models.ForeignKey(Batch, null=True, blank=True, on_delete=models.CASCADE) cpi = models.FloatField(default=0) category = models.CharField(max_length=10, choices=Constants.CATEGORY, null=False) - father_name = models.CharField(max_length=40, default='') - mother_name = models.CharField(max_length=40, default='') + father_name = models.CharField(max_length=40, default='',null=True, blank=True) + mother_name = models.CharField(max_length=40, default='',null=True, blank=True) hall_no = models.IntegerField(default=0) room_no = models.CharField(max_length=10, blank=True, null=True) specialization = models.CharField(max_length=40,choices=Constants.MTechSpecialization, null=True, default='') diff --git a/FusionIIIT/applications/academic_procedures/migrations/0001_initial.py b/FusionIIIT/applications/academic_procedures/migrations/0001_initial.py new file mode 100644 index 000000000..b873390df --- /dev/null +++ b/FusionIIIT/applications/academic_procedures/migrations/0001_initial.py @@ -0,0 +1,405 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +import datetime +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('academic_information', '0001_initial'), + ('programme_curriculum', '0001_initial'), + ('globals', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Assistantship_status', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('student_status', models.BooleanField()), + ('hod_status', models.BooleanField()), + ('account_status', models.BooleanField()), + ], + ), + migrations.CreateModel( + name='MinimumCredits', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('semester', models.IntegerField()), + ('credits', models.IntegerField()), + ], + ), + migrations.CreateModel( + name='ThesisTopicProcess', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('research_area', models.CharField(max_length=50)), + ('thesis_topic', models.CharField(max_length=1000)), + ('submission_by_student', models.BooleanField(default=False)), + ('pending_supervisor', models.BooleanField(default=True)), + ('approval_supervisor', models.BooleanField(default=False)), + ('forwarded_to_hod', models.BooleanField(default=False)), + ('pending_hod', models.BooleanField(default=True)), + ('approval_by_hod', models.BooleanField(default=False)), + ('date', models.DateField(default=datetime.datetime.now)), + ('co_supervisor_id', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='thesistopicprocess_co_supervisor', to='globals.faculty')), + ('curr_id', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='academic_information.curriculum')), + ('member1', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='thesistopicprocess_member1', to='globals.faculty')), + ('member2', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='thesistopicprocess_member2', to='globals.faculty')), + ('member3', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='thesistopicprocess_member3', to='globals.faculty')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ('supervisor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='thesistopicprocess_supervisor', to='globals.faculty')), + ], + options={ + 'db_table': 'ThesisTopicProcess', + }, + ), + migrations.CreateModel( + name='Thesis', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('topic', models.CharField(max_length=1000)), + ('reg_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ('supervisor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.faculty')), + ], + options={ + 'db_table': 'Thesis', + }, + ), + migrations.CreateModel( + name='TeachingCreditRegistration', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('req_pending', models.BooleanField(default=True)), + ('course_completion', models.BooleanField(default=False)), + ('approved_course', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='teachingcreditregistration_approved_course', to='academic_information.curriculum')), + ('curr_1', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='teachingcreditregistration_curr1', to='academic_information.curriculum')), + ('curr_2', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='teachingcreditregistration_curr2', to='academic_information.curriculum')), + ('curr_3', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='teachingcreditregistration_curr3', to='academic_information.curriculum')), + ('curr_4', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='teachingcreditregistration_curr4', to='academic_information.curriculum')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ('supervisor_id', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='teachingcreditregistration_supervisor_id', to='globals.faculty')), + ], + options={ + 'db_table': 'TeachingCreditRegistration', + }, + ), + migrations.CreateModel( + name='StudentRegistrationChecks', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pre_registration_flag', models.BooleanField(default=False)), + ('final_registration_flag', models.BooleanField(default=False)), + ('semester_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.semester')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'StudentRegistrationChecks', + }, + ), + migrations.CreateModel( + name='StudentRegistrationCheck', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pre_registration_flag', models.BooleanField(default=False)), + ('final_registration_flag', models.BooleanField(default=False)), + ('semester', models.IntegerField(default=1)), + ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'StudentRegistrationCheck', + }, + ), + migrations.CreateModel( + name='SemesterMarks', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('q1', models.FloatField(default=None)), + ('mid_term', models.FloatField(default=None)), + ('q2', models.FloatField(default=None)), + ('end_term', models.FloatField(default=None)), + ('other', models.FloatField(default=None)), + ('grade', models.CharField(choices=[('O', 'O'), ('A+', 'A+'), ('A', 'A'), ('B+', 'B+'), ('B', 'B'), ('C+', 'C+'), ('C', 'C'), ('D+', 'D+'), ('D', 'D'), ('F', 'F'), ('S', 'S'), ('X', 'X')], max_length=5, null=True)), + ('curr_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.course')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'SemesterMarks', + }, + ), + migrations.CreateModel( + name='PhDProgressExamination', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('theme', models.CharField(max_length=50)), + ('seminar_date_time', models.DateTimeField()), + ('place', models.CharField(max_length=30)), + ('work_done', models.TextField()), + ('specific_contri_curr_semester', models.TextField()), + ('future_plan', models.TextField()), + ('details', models.FileField(upload_to='academic_procedure/Uploaded_document/PhdProgressDetails/')), + ('papers_published', models.IntegerField()), + ('presented_papers', models.IntegerField()), + ('papers_submitted', models.IntegerField()), + ('quality_of_work', models.CharField(choices=[('Excellent', 'Excellent'), ('Good', 'Good'), ('Satisfactory', 'Satisfactory'), ('Unsatisfactory', 'Unsatisfactory')], max_length=20)), + ('quantity_of_work', models.CharField(choices=[('Enough', 'Enough'), ('Just Sufficient', 'Just Sufficient'), ('Insufficient', 'Insufficient')], max_length=15)), + ('Overall_grade', models.CharField(choices=[('A+', 'A+'), ('A', 'A'), ('B+', 'B+'), ('B', 'B'), ('C+', 'C+'), ('C', 'C'), ('D+', 'D'), ('D', 'D'), ('F', 'F')], max_length=2)), + ('completion_period', models.IntegerField(null=True)), + ('panel_report', models.TextField(null=True)), + ('continuation_enhancement_assistantship', models.CharField(choices=[('yes', 'yes'), ('no', 'no'), ('not applicable', 'not applicable')], max_length=20, null=True)), + ('enhancement_assistantship', models.CharField(choices=[('yes', 'yes'), ('no', 'no'), ('not applicable', 'not applicable')], max_length=15, null=True)), + ('annual_progress_seminar', models.CharField(choices=[('Give again', 'Give again'), ('Not Applicable', 'Not Applicable'), ('Approved', 'Approved')], max_length=20, null=True)), + ('commments', models.TextField(null=True)), + ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='MTechGraduateSeminarReport', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('theme_of_work', models.TextField()), + ('date', models.DateField()), + ('place', models.CharField(max_length=30)), + ('time', models.TimeField()), + ('work_done_till_previous_sem', models.TextField()), + ('specific_contri_in_cur_sem', models.TextField()), + ('future_plan', models.TextField()), + ('brief_report', models.FileField(upload_to='academic_procedure/Uploaded_document/GraduateSeminarReport/')), + ('publication_submitted', models.IntegerField()), + ('publication_accepted', models.IntegerField()), + ('paper_presented', models.IntegerField()), + ('papers_under_review', models.IntegerField()), + ('quality_of_work', models.CharField(choices=[('Excellent', 'Excellent'), ('Good', 'Good'), ('Satisfactory', 'Satisfactory'), ('Unsatisfactory', 'Unsatisfactory')], max_length=20)), + ('quantity_of_work', models.CharField(choices=[('Enough', 'Enough'), ('Just Sufficient', 'Just Sufficient'), ('Insufficient', 'Insufficient')], max_length=15)), + ('Overall_grade', models.CharField(choices=[('A+', 'A+'), ('A', 'A'), ('B+', 'B+'), ('B', 'B'), ('C+', 'C+'), ('C', 'C'), ('D+', 'D'), ('D', 'D'), ('F', 'F')], max_length=2)), + ('panel_report', models.CharField(choices=[('Give again', 'Give again'), ('Not Applicable', 'Not Applicable'), ('Approved', 'Approved')], max_length=15)), + ('suggestion', models.TextField(null=True)), + ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='MessDue', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('month', models.CharField(choices=[('Jan', 'January'), ('Feb', 'Febuary'), ('Mar', 'March'), ('Apr', 'April'), ('May', 'May'), ('Jun', 'June'), ('Jul', 'July'), ('Aug', 'August'), ('Sep', 'September'), ('Oct', 'October'), ('Nov', 'November'), ('Dec', 'December')], max_length=10)), + ('year', models.IntegerField(choices=[(2023, 2023), (2022, 2022)])), + ('description', models.CharField(choices=[('Stu_paid', 'Paid'), ('Stu_due', 'Due')], max_length=15)), + ('amount', models.IntegerField()), + ('remaining_amount', models.IntegerField()), + ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='MarkSubmissionCheck', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('verified', models.BooleanField(default=False)), + ('submitted', models.BooleanField(default=False)), + ('announced', models.BooleanField(default=False)), + ('curr_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.course')), + ], + options={ + 'db_table': 'MarkSubmissionCheck', + }, + ), + migrations.CreateModel( + name='InitialRegistrations', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('timestamp', models.DateTimeField(default=django.utils.timezone.now)), + ('priority', models.IntegerField(blank=True, null=True)), + ('course_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.course')), + ('course_slot_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='programme_curriculum.courseslot')), + ('semester_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.semester')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'InitialRegistrations', + }, + ), + migrations.CreateModel( + name='InitialRegistration', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('timestamp', models.DateTimeField(default=django.utils.timezone.now)), + ('priority', models.IntegerField(blank=True, null=True)), + ('course_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.course')), + ('course_slot_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='programme_curriculum.courseslot')), + ('semester_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.semester')), + ('student_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'InitialRegistration', + }, + ), + migrations.CreateModel( + name='FinalRegistrations', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('semester', models.IntegerField()), + ('batch', models.IntegerField(default=2023)), + ('verified', models.BooleanField(default=False)), + ('curr_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.curriculum')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'FinalRegistrations', + }, + ), + migrations.CreateModel( + name='FinalRegistration', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('verified', models.BooleanField(default=False)), + ('course_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.course')), + ('course_slot_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='programme_curriculum.courseslot')), + ('semester_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.semester')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'FinalRegistration', + }, + ), + migrations.CreateModel( + name='FeePayments', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('mode', models.CharField(choices=[('Axis Easypay', 'Axis Easypay'), ('Subpaisa', 'Subpaisa'), ('NEFT', 'NEFT'), ('RTGS', 'RTGS'), ('Bank Challan', 'Bank Challan'), ('Edu Loan', 'Edu Loan')], max_length=20)), + ('transaction_id', models.CharField(max_length=40)), + ('fee_receipt', models.FileField(null=True, upload_to='fee_receipt/')), + ('deposit_date', models.DateField(default=datetime.date.today)), + ('utr_number', models.CharField(max_length=40, null=True)), + ('fee_paid', models.IntegerField(default=0)), + ('reason', models.CharField(max_length=20, null=True)), + ('actual_fee', models.IntegerField(default=0)), + ('semester_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.semester')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'FeePayments', + }, + ), + migrations.CreateModel( + name='FeePayment', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('semester', models.IntegerField(default=1)), + ('batch', models.IntegerField(default=2016)), + ('mode', models.CharField(choices=[('Axis Easypay', 'Axis Easypay'), ('Subpaisa', 'Subpaisa'), ('NEFT', 'NEFT'), ('RTGS', 'RTGS'), ('Bank Challan', 'Bank Challan'), ('Edu Loan', 'Edu Loan')], max_length=20)), + ('transaction_id', models.CharField(max_length=40)), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Dues', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('mess_due', models.IntegerField()), + ('hostel_due', models.IntegerField()), + ('library_due', models.IntegerField()), + ('placement_cell_due', models.IntegerField()), + ('academic_due', models.IntegerField()), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'Dues', + }, + ), + migrations.CreateModel( + name='CoursesMtech', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('specialization', models.CharField(choices=[('Power and Control', 'Power and Control'), ('Microwave and Communication Engineering', 'Microwave and Communication Engineering'), ('Micro-nano Electronics', 'Micro-nano Electronics'), ('CAD/CAM', 'CAD/CAM'), ('Design', 'Design'), ('Manufacturing', 'Manufacturing'), ('CSE', 'CSE'), ('Mechatronics', 'Mechatronics'), ('MDes', 'MDes'), ('all', 'all')], max_length=40)), + ('c_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.course')), + ], + ), + migrations.CreateModel( + name='CourseRequested', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('course_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.course')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'CourseRequested', + }, + ), + migrations.CreateModel( + name='course_registration', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('working_year', models.IntegerField(blank=True, choices=[(2023, 2023), (2022, 2022)], null=True)), + ('course_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.course')), + ('course_slot_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='programme_curriculum.courseslot')), + ('semester_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.semester')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'course_registration', + }, + ), + migrations.CreateModel( + name='BranchChange', + fields=[ + ('c_id', models.AutoField(primary_key=True, serialize=False)), + ('applied_date', models.DateField(default=datetime.datetime.now)), + ('branches', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.departmentinfo')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Bonafide', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('student_name', models.CharField(max_length=50)), + ('purpose', models.CharField(max_length=100)), + ('academic_year', models.CharField(max_length=15)), + ('enrolled_course', models.CharField(max_length=10)), + ('complaint_date', models.DateTimeField(default=django.utils.timezone.now)), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'Bonafide', + }, + ), + migrations.CreateModel( + name='AssistantshipClaim', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date', models.DateTimeField(auto_now_add=True)), + ('month', models.CharField(choices=[('Jan', 'January'), ('Feb', 'Febuary'), ('Mar', 'March'), ('Apr', 'April'), ('May', 'May'), ('Jun', 'June'), ('Jul', 'July'), ('Aug', 'August'), ('Sep', 'September'), ('Oct', 'October'), ('Nov', 'November'), ('Dec', 'December')], max_length=10)), + ('year', models.IntegerField(choices=[(2023, 2023), (2022, 2022)])), + ('bank_account', models.CharField(max_length=11)), + ('applicability', models.CharField(choices=[('GATE', 'GATE'), ('NET', 'NET'), ('CEED', 'CEED')], max_length=5)), + ('ta_supervisor_remark', models.BooleanField(default=False)), + ('thesis_supervisor_remark', models.BooleanField(default=False)), + ('hod_approval', models.BooleanField(default=False)), + ('acad_approval', models.BooleanField(default=False)), + ('account_approval', models.BooleanField(default=False)), + ('stipend', models.IntegerField(default=0)), + ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ('ta_supervisor', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='TA_SUPERVISOR', to='globals.faculty')), + ('thesis_supervisor', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='THESIS_SUPERVISOR', to='globals.faculty')), + ], + ), + migrations.CreateModel( + name='Register', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('year', models.IntegerField(default=2023)), + ('semester', models.IntegerField()), + ('curr_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.curriculum')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'Register', + 'unique_together': {('curr_id', 'student_id')}, + }, + ), + ] diff --git a/FusionIIIT/applications/academic_procedures/migrations/0002_auto_20240421_1716.py b/FusionIIIT/applications/academic_procedures/migrations/0002_auto_20240421_1716.py new file mode 100644 index 000000000..c045bf951 --- /dev/null +++ b/FusionIIIT/applications/academic_procedures/migrations/0002_auto_20240421_1716.py @@ -0,0 +1,51 @@ +# Generated by Django 3.1.5 on 2024-04-21 17:16 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('academic_information', '0002_auto_20240421_1716'), + ('programme_curriculum', '0002_auto_20240421_1716'), + ('academic_procedures', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='assistantshipclaim', + name='year', + field=models.IntegerField(choices=[(2024, 2024), (2023, 2023)]), + ), + migrations.AlterField( + model_name='course_registration', + name='working_year', + field=models.IntegerField(blank=True, choices=[(2024, 2024), (2023, 2023)], null=True), + ), + migrations.AlterField( + model_name='finalregistrations', + name='batch', + field=models.IntegerField(default=2024), + ), + migrations.AlterField( + model_name='messdue', + name='year', + field=models.IntegerField(choices=[(2024, 2024), (2023, 2023)]), + ), + migrations.AlterField( + model_name='register', + name='year', + field=models.IntegerField(default=2024), + ), + migrations.CreateModel( + name='backlog_course', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('is_summer_course', models.BooleanField(default=False)), + ('course_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.course')), + ('semester_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.semester')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + ] diff --git a/FusionIIIT/applications/academic_procedures/migrations/__init__.py b/FusionIIIT/applications/academic_procedures/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/central_mess/migrations/0001_initial.py b/FusionIIIT/applications/central_mess/migrations/0001_initial.py new file mode 100644 index 000000000..2a5bce41c --- /dev/null +++ b/FusionIIIT/applications/central_mess/migrations/0001_initial.py @@ -0,0 +1,186 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +import applications.central_mess.models +import datetime +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('academic_information', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Menu', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('mess_option', models.CharField(choices=[('mess1', 'Veg_mess'), ('mess2', 'Non_veg_mess')], default='mess2', max_length=20)), + ('meal_time', models.CharField(choices=[('MB', 'Monday Breakfast'), ('ML', 'Monday Lunch'), ('MD', 'Monday Dinner'), ('TB', 'Tuesday Breakfast'), ('TL', 'Tuesday Lunch'), ('TD', 'Tuesday Dinner'), ('WB', 'Wednesday Breakfast'), ('WL', 'Wednesday Lunch'), ('WD', 'Wednesday Dinner'), ('THB', 'Thursday Breakfast'), ('THL', 'Thursday Lunch'), ('THD', 'Thursday Dinner'), ('FB', 'Friday Breakfast'), ('FL', 'Friday Lunch'), ('FD', 'Friday Dinner'), ('SB', 'Saturday Breakfast'), ('SL', 'Saturday Lunch'), ('SD', 'Saturday Dinner'), ('SUB', 'Sunday Breakfast'), ('SUL', 'Sunday Lunch'), ('SUD', 'Sunday Dinner')], max_length=20)), + ('dish', models.CharField(max_length=200)), + ], + ), + migrations.CreateModel( + name='Mess_meeting', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('meet_date', models.DateField()), + ('agenda', models.TextField()), + ('venue', models.TextField()), + ('meeting_time', models.CharField(choices=[('10', '10 a.m.'), ('11', '11 a.m.'), ('12', '12 p.m.'), ('13', '1 p.m.'), ('14', '2 p.m.'), ('15', '3 p.m.'), ('16', '4 p.m.'), ('17', '5 p.m.'), ('18', '6 p.m.'), ('19', '7 p.m.'), ('20', '8 p.m.'), ('21', '9 p.m.')], max_length=20)), + ], + ), + migrations.CreateModel( + name='Mess_reg', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sem', models.IntegerField(default='1')), + ('start_reg', models.DateField(default=datetime.date.today)), + ('end_reg', models.DateField(default=datetime.date.today)), + ], + ), + migrations.CreateModel( + name='MessBillBase', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('bill_amount', models.PositiveIntegerField(default=0)), + ('timestamp', models.DateTimeField(auto_now_add=True)), + ], + ), + migrations.CreateModel( + name='Nonveg_menu', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('dish', models.CharField(max_length=20)), + ('price', models.IntegerField()), + ('order_interval', models.CharField(choices=[('Breakfast', 'Breakfast'), ('Lunch', 'Lunch'), ('Dinner', 'Dinner')], default='Breakfast', max_length=20)), + ], + ), + migrations.CreateModel( + name='Vacation_food', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('start_date', models.DateField(default=datetime.date.today)), + ('end_date', models.DateField(default=datetime.date.today)), + ('purpose', models.TextField()), + ('status', models.CharField(choices=[('0', 'rejected'), ('1', 'pending'), ('2', 'accepted')], default='1', max_length=20)), + ('app_date', models.DateField(default=datetime.date.today)), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Special_request', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('start_date', models.DateField(default=datetime.date.today)), + ('end_date', models.DateField(default=datetime.date.today)), + ('request', models.TextField()), + ('status', models.CharField(choices=[('0', 'rejected'), ('1', 'pending'), ('2', 'accepted')], default='1', max_length=20)), + ('item1', models.CharField(max_length=50)), + ('item2', models.CharField(max_length=50)), + ('app_date', models.DateField(default=datetime.date.today)), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Rebate', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('start_date', models.DateField(default=datetime.date.today)), + ('end_date', models.DateField(default=datetime.date.today)), + ('purpose', models.TextField()), + ('status', models.CharField(choices=[('0', 'rejected'), ('1', 'pending'), ('2', 'accepted')], default='1', max_length=20)), + ('app_date', models.DateField(default=datetime.date.today)), + ('leave_type', models.CharField(choices=[('casual', 'Casual'), ('vacation', 'Vacation')], default='casual', max_length=20)), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Nonveg_data', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('order_date', models.DateField(default=datetime.date.today)), + ('order_interval', models.CharField(choices=[('Breakfast', 'Breakfast'), ('Lunch', 'Lunch'), ('Dinner', 'Dinner')], default='Breakfast', max_length=20)), + ('app_date', models.DateField(default=datetime.date.today)), + ('dish', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='central_mess.nonveg_menu')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Mess_minutes', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('mess_minutes', models.FileField(upload_to='central_mess/')), + ('meeting_date', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='central_mess.mess_meeting')), + ], + ), + migrations.CreateModel( + name='Menu_change_request', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('reason', models.TextField()), + ('request', models.CharField(max_length=100)), + ('status', models.CharField(choices=[('0', 'rejected'), ('1', 'pending'), ('2', 'accepted')], default='1', max_length=20)), + ('app_date', models.DateField(default=datetime.date.today)), + ('dish', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='central_mess.menu')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Feedback', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('mess', models.CharField(choices=[('mess1', 'Veg_mess'), ('mess2', 'Non_veg_mess')], default='mess1', max_length=10)), + ('mess_rating', models.PositiveSmallIntegerField(default='5')), + ('fdate', models.DateField(default=datetime.date.today)), + ('description', models.TextField()), + ('feedback_type', models.CharField(choices=[('maintenance', 'Maintenance'), ('food', 'Food'), ('cleanliness', 'Cleanliness & Hygiene'), ('others', 'Others')], max_length=20)), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Payments', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sem', models.IntegerField()), + ('year', models.IntegerField(default=applications.central_mess.models.current_year)), + ('amount_paid', models.IntegerField(default=0)), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'unique_together': {('student_id', 'sem', 'year')}, + }, + ), + migrations.CreateModel( + name='Monthly_bill', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('month', models.CharField(default=applications.central_mess.models.current_month, max_length=20)), + ('year', models.IntegerField(default=applications.central_mess.models.current_year)), + ('amount', models.IntegerField(default=0)), + ('rebate_count', models.IntegerField(default=0)), + ('rebate_amount', models.IntegerField(default=0)), + ('nonveg_total_bill', models.IntegerField(default=0)), + ('total_bill', models.IntegerField(default=0)), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'unique_together': {('student_id', 'month', 'year')}, + }, + ), + migrations.CreateModel( + name='Messinfo', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('mess_option', models.CharField(choices=[('mess1', 'Veg_mess'), ('mess2', 'Non_veg_mess')], default='mess2', max_length=20)), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'unique_together': {('student_id', 'mess_option')}, + }, + ), + ] diff --git a/FusionIIIT/applications/central_mess/migrations/0002_auto_20240421_1716.py b/FusionIIIT/applications/central_mess/migrations/0002_auto_20240421_1716.py new file mode 100644 index 000000000..63a6054b4 --- /dev/null +++ b/FusionIIIT/applications/central_mess/migrations/0002_auto_20240421_1716.py @@ -0,0 +1,145 @@ +# Generated by Django 3.1.5 on 2024-04-21 17:16 + +import applications.central_mess.models +import datetime +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('academic_information', '0002_auto_20240421_1716'), + ('central_mess', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Deregistration_Request', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('status', models.CharField(default='pending', max_length=10)), + ('deregistration_remark', models.CharField(default='NA', max_length=50)), + ('end_date', models.DateField(default=None, null=True)), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Reg_main', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('program', models.CharField(max_length=10)), + ('current_mess_status', models.CharField(default='Deregistered', max_length=20)), + ('balance', models.IntegerField(default=0)), + ('mess_option', models.CharField(default='mess2', max_length=20)), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Reg_records', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('start_date', models.DateField(default=datetime.date.today)), + ('end_date', models.DateField(default=None, null=True)), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Registration_Request', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('Txn_no', models.CharField(max_length=20)), + ('img', models.ImageField(default=None, upload_to='images/')), + ('amount', models.IntegerField(default=0)), + ('status', models.CharField(default='pending', max_length=10)), + ('registration_remark', models.CharField(default='NA', max_length=50)), + ('start_date', models.DateField(default=None, null=True)), + ('payment_date', models.DateField(default=None, null=True)), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Semdates', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('start_date', models.DateField(default=datetime.date.today)), + ('end_date', models.DateField(default=datetime.date.today)), + ], + options={ + 'unique_together': {('start_date', 'end_date')}, + }, + ), + migrations.RenameField( + model_name='payments', + old_name='year', + new_name='payment_year', + ), + migrations.RemoveField( + model_name='monthly_bill', + name='nonveg_total_bill', + ), + migrations.AddField( + model_name='feedback', + name='feedback_remark', + field=models.CharField(default='NA', max_length=50), + ), + migrations.AddField( + model_name='monthly_bill', + name='paid', + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name='payments', + name='payment_date', + field=models.DateField(default=datetime.date(2024, 4, 21)), + ), + migrations.AddField( + model_name='payments', + name='payment_month', + field=models.CharField(default=applications.central_mess.models.current_month, max_length=20), + ), + migrations.AddField( + model_name='rebate', + name='rebate_remark', + field=models.CharField(default='NA', max_length=50), + ), + migrations.AlterField( + model_name='feedback', + name='mess', + field=models.CharField(choices=[('mess1', 'Mess1'), ('mess2', 'Mess2')], default='mess1', max_length=10), + ), + migrations.AlterField( + model_name='menu', + name='mess_option', + field=models.CharField(choices=[('mess1', 'Mess1'), ('mess2', 'Mess2')], default='mess2', max_length=20), + ), + migrations.AlterField( + model_name='messinfo', + name='mess_option', + field=models.CharField(choices=[('mess1', 'Mess1'), ('mess2', 'Mess2')], default='mess2', max_length=20), + ), + migrations.AlterField( + model_name='special_request', + name='item1', + field=models.CharField(choices=[('dal_chawal', 'Dal Chawal'), ('khicdi', 'Khicdi'), ('tomato_soup', 'Tomato Soup')], default='dal_chawal', max_length=50), + ), + migrations.AlterField( + model_name='special_request', + name='item2', + field=models.CharField(choices=[('breakfast', 'Breakfast'), ('lunch', 'Lunch'), ('dinner', 'Dinner')], default='breakfast', max_length=50), + ), + migrations.AlterUniqueTogether( + name='payments', + unique_together={('student_id', 'payment_date')}, + ), + migrations.DeleteModel( + name='Nonveg_data', + ), + migrations.DeleteModel( + name='Nonveg_menu', + ), + migrations.RemoveField( + model_name='payments', + name='sem', + ), + ] diff --git a/FusionIIIT/applications/central_mess/migrations/__init__.py b/FusionIIIT/applications/central_mess/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/complaint_system/migrations/0001_initial.py b/FusionIIIT/applications/complaint_system/migrations/0001_initial.py new file mode 100644 index 000000000..db74dd14d --- /dev/null +++ b/FusionIIIT/applications/complaint_system/migrations/0001_initial.py @@ -0,0 +1,67 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('globals', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Caretaker', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('area', models.CharField(choices=[('hall-1', 'hall-1'), ('hall-3', 'hall-3'), ('hall-4', 'hall-4'), ('CC1', 'CC1'), ('CC2', 'CC2'), ('core_lab', 'core_lab'), ('LHTC', 'LHTC'), ('NR2', 'NR2'), ('Rewa_Residency', 'Rewa_Residency'), ('Maa Saraswati Hostel', 'Maa Saraswati Hostel'), ('Nagarjun Hostel', 'Nagarjun Hostel'), ('Panini Hostel', 'Panini Hostel')], default='hall-3', max_length=20)), + ('rating', models.IntegerField(default=0)), + ('myfeedback', models.CharField(default='this is my feedback', max_length=400)), + ('staff_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='Workers', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=50)), + ('age', models.CharField(max_length=10)), + ('phone', models.BigIntegerField(blank=True)), + ('worker_type', models.CharField(choices=[('Electricity', 'Electricity'), ('carpenter', 'carpenter'), ('plumber', 'plumber'), ('garbage', 'garbage'), ('dustbin', 'dustbin'), ('internet', 'internet'), ('other', 'other')], default='internet', max_length=20)), + ('caretaker_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='complaint_system.caretaker')), + ], + ), + migrations.CreateModel( + name='Supervisor', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('area', models.CharField(choices=[('hall-1', 'hall-1'), ('hall-3', 'hall-3'), ('hall-4', 'hall-4'), ('CC1', 'CC1'), ('CC2', 'CC2'), ('core_lab', 'core_lab'), ('LHTC', 'LHTC'), ('NR2', 'NR2'), ('Rewa_Residency', 'Rewa_Residency'), ('Maa Saraswati Hostel', 'Maa Saraswati Hostel'), ('Nagarjun Hostel', 'Nagarjun Hostel'), ('Panini Hostel', 'Panini Hostel')], max_length=20)), + ('sup_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='StudentComplain', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('complaint_date', models.DateTimeField(default=django.utils.timezone.now)), + ('complaint_finish', models.DateField(blank=True, null=True)), + ('complaint_type', models.CharField(choices=[('Electricity', 'Electricity'), ('carpenter', 'carpenter'), ('plumber', 'plumber'), ('garbage', 'garbage'), ('dustbin', 'dustbin'), ('internet', 'internet'), ('other', 'other')], default='internet', max_length=20)), + ('location', models.CharField(choices=[('hall-1', 'hall-1'), ('hall-3', 'hall-3'), ('hall-4', 'hall-4'), ('CC1', 'CC1'), ('CC2', 'CC2'), ('core_lab', 'core_lab'), ('LHTC', 'LHTC'), ('NR2', 'NR2'), ('Rewa_Residency', 'Rewa_Residency'), ('Maa Saraswati Hostel', 'Maa Saraswati Hostel'), ('Nagarjun Hostel', 'Nagarjun Hostel'), ('Panini Hostel', 'Panini Hostel')], max_length=20)), + ('specific_location', models.CharField(blank=True, max_length=50)), + ('details', models.CharField(max_length=100)), + ('status', models.IntegerField(default='0')), + ('remarks', models.CharField(default='Pending', max_length=300)), + ('flag', models.IntegerField(default='0')), + ('reason', models.CharField(blank=True, default='None', max_length=100)), + ('feedback', models.CharField(blank=True, max_length=500)), + ('upload_complaint', models.FileField(blank=True, upload_to='')), + ('comment', models.CharField(default='None', max_length=100)), + ('complainer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ('worker_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='complaint_system.workers')), + ], + ), + ] diff --git a/FusionIIIT/applications/complaint_system/migrations/0002_auto_20240421_1716.py b/FusionIIIT/applications/complaint_system/migrations/0002_auto_20240421_1716.py new file mode 100644 index 000000000..015388577 --- /dev/null +++ b/FusionIIIT/applications/complaint_system/migrations/0002_auto_20240421_1716.py @@ -0,0 +1,51 @@ +# Generated by Django 3.1.5 on 2024-04-21 17:16 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('globals', '0001_initial'), + ('complaint_system', '0001_initial'), + ] + + operations = [ + migrations.RemoveField( + model_name='supervisor', + name='area', + ), + migrations.RemoveField( + model_name='workers', + name='caretaker_id', + ), + migrations.AddField( + model_name='supervisor', + name='type', + field=models.CharField(choices=[('Electricity', 'Electricity'), ('carpenter', 'carpenter'), ('plumber', 'plumber'), ('garbage', 'garbage'), ('dustbin', 'dustbin'), ('internet', 'internet'), ('other', 'other')], default='Electricity', max_length=30), + ), + migrations.AlterField( + model_name='caretaker', + name='area', + field=models.CharField(choices=[('hall-1', 'hall-1'), ('hall-3', 'hall-3'), ('hall-4', 'hall-4'), ('library', 'CC1'), ('computer center', 'CC2'), ('core_lab', 'core_lab'), ('LHTC', 'LHTC'), ('NR2', 'NR2'), ('NR3', 'NR3'), ('Admin building', 'Admin building'), ('Rewa_Residency', 'Rewa_Residency'), ('Maa Saraswati Hostel', 'Maa Saraswati Hostel'), ('Nagarjun Hostel', 'Nagarjun Hostel'), ('Panini Hostel', 'Panini Hostel')], default='hall-3', max_length=20), + ), + migrations.AlterField( + model_name='studentcomplain', + name='location', + field=models.CharField(choices=[('hall-1', 'hall-1'), ('hall-3', 'hall-3'), ('hall-4', 'hall-4'), ('library', 'CC1'), ('computer center', 'CC2'), ('core_lab', 'core_lab'), ('LHTC', 'LHTC'), ('NR2', 'NR2'), ('NR3', 'NR3'), ('Admin building', 'Admin building'), ('Rewa_Residency', 'Rewa_Residency'), ('Maa Saraswati Hostel', 'Maa Saraswati Hostel'), ('Nagarjun Hostel', 'Nagarjun Hostel'), ('Panini Hostel', 'Panini Hostel')], max_length=20), + ), + migrations.CreateModel( + name='SectionIncharge', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('work_type', models.CharField(choices=[('Electricity', 'Electricity'), ('carpenter', 'carpenter'), ('plumber', 'plumber'), ('garbage', 'garbage'), ('dustbin', 'dustbin'), ('internet', 'internet'), ('other', 'other')], default='Electricity', max_length=20)), + ('staff_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.AddField( + model_name='workers', + name='secincharge_id', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='complaint_system.sectionincharge'), + ), + ] diff --git a/FusionIIIT/applications/complaint_system/migrations/__init__.py b/FusionIIIT/applications/complaint_system/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/counselling_cell/migrations/0001_initial.py b/FusionIIIT/applications/counselling_cell/migrations/0001_initial.py new file mode 100644 index 000000000..b87618488 --- /dev/null +++ b/FusionIIIT/applications/counselling_cell/migrations/0001_initial.py @@ -0,0 +1,111 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +import datetime +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('academic_information', '0001_initial'), + ('globals', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='CounsellingIssueCategory', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('category_id', models.CharField(max_length=40, unique=True)), + ('category', models.CharField(max_length=40)), + ], + ), + migrations.CreateModel( + name='CounsellingMeeting', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('meeting_date', models.DateField(default=datetime.date.today)), + ('meeting_time', models.CharField(choices=[('10', '10 a.m.'), ('11', '11 a.m.'), ('12', '12 p.m.'), ('13', '1 p.m.'), ('14', '2 p.m.'), ('15', '3 p.m.'), ('16', '4 p.m.'), ('17', '5 p.m.'), ('18', '6 p.m.'), ('19', '7 p.m.'), ('20', '8 p.m.'), ('21', '9 p.m.')], max_length=20)), + ('agenda', models.TextField()), + ('venue', models.CharField(max_length=20)), + ('student_invities', models.TextField(default=None, max_length=500)), + ('meeting_host', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='FacultyCounsellingTeam', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('faculty_position', models.CharField(choices=[('head_counsellor', 'Head Counsellor'), ('faculty_counsellor', 'Faculty Counsellor')], max_length=50)), + ('faculty', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.faculty')), + ], + options={ + 'unique_together': {('faculty', 'faculty_position')}, + }, + ), + migrations.CreateModel( + name='StudentCounsellingTeam', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('student_position', models.CharField(choices=[('student_guide', 'Student Guide'), ('student_coordinator', 'Student Coordinator')], max_length=50)), + ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'unique_together': {('student_id', 'student_position')}, + }, + ), + migrations.CreateModel( + name='StudentMeetingRequest', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('requested_time', models.DateTimeField()), + ('description', models.TextField(max_length=1000)), + ('requested_meeting_status', models.CharField(choices=[('status_accepted', 'Accepted'), ('status_pending', 'Pending')], default='status_pending', max_length=20)), + ('recipient_reply', models.TextField(max_length=1000)), + ('requested_faculty_invitee', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='counselling_cell.facultycounsellingteam')), + ('requested_student_invitee', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='counselling_cell.studentcounsellingteam')), + ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='StudentCounsellingInfo', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('student', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ('student_guide', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='counselling_cell.studentcounsellingteam')), + ], + ), + migrations.CreateModel( + name='CounsellingMinutes', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('counselling_minutes', models.FileField(upload_to='counselling_cell/')), + ('counselling_meeting', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='counselling_cell.counsellingmeeting')), + ], + ), + migrations.CreateModel( + name='CounsellingIssue', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('issue_raised_date', models.DateTimeField(default=datetime.datetime.now)), + ('issue', models.TextField(max_length=500)), + ('issue_status', models.CharField(choices=[('status_unresolved', 'Unresolved'), ('status_resolved', 'Resolved'), ('status_inprogress', 'InProgress')], default='status_unresolved', max_length=20)), + ('response_remark', models.TextField(max_length=500, null=True)), + ('issue_category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='counselling_cell.counsellingissuecategory')), + ('resolved_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='CounsellingFAQ', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('counselling_question', models.TextField(max_length=1000)), + ('counselling_answer', models.TextField(max_length=5000)), + ('counselling_category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='counselling_cell.counsellingissuecategory')), + ], + ), + ] diff --git a/FusionIIIT/applications/counselling_cell/migrations/__init__.py b/FusionIIIT/applications/counselling_cell/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/department/migrations/0001_initial.py b/FusionIIIT/applications/department/migrations/0001_initial.py new file mode 100644 index 000000000..fc8a34834 --- /dev/null +++ b/FusionIIIT/applications/department/migrations/0001_initial.py @@ -0,0 +1,44 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +import datetime +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('globals', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='SpecialRequest', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('request_date', models.DateTimeField(default=datetime.date.today)), + ('brief', models.CharField(default='--', max_length=20)), + ('request_details', models.CharField(max_length=200)), + ('upload_request', models.FileField(blank=True, upload_to='')), + ('status', models.CharField(default='Pending', max_length=50)), + ('remarks', models.CharField(default='--', max_length=300)), + ('request_receiver', models.CharField(default='--', max_length=30)), + ('request_maker', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='Announcements', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('ann_date', models.DateTimeField(default='04-04-2021')), + ('message', models.CharField(max_length=200)), + ('batch', models.CharField(default='Year-1', max_length=40)), + ('department', models.CharField(default='ALL', max_length=40)), + ('programme', models.CharField(max_length=10)), + ('upload_announcement', models.FileField(default=' ', null=True, upload_to='department/upload_announcement')), + ('maker_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + ] diff --git a/FusionIIIT/applications/department/migrations/__init__.py b/FusionIIIT/applications/department/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/eis/migrations/0001_initial.py b/FusionIIIT/applications/eis/migrations/0001_initial.py new file mode 100644 index 000000000..2fd2e65d3 --- /dev/null +++ b/FusionIIIT/applications/eis/migrations/0001_initial.py @@ -0,0 +1,280 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +import datetime +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('auth', '0012_alter_user_first_name_max_length'), + ] + + operations = [ + migrations.CreateModel( + name='faculty_about', + fields=[ + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='auth.user')), + ('about', models.TextField(max_length=1000)), + ('doj', models.DateField(default=datetime.datetime.now)), + ('education', models.TextField(max_length=500)), + ('interest', models.TextField(max_length=500)), + ('contact', models.CharField(blank=True, max_length=10, null=True)), + ('github', models.CharField(blank=True, max_length=100, null=True)), + ('linkedin', models.CharField(blank=True, max_length=100, null=True)), + ], + ), + migrations.CreateModel( + name='emp_visits', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pf_no', models.CharField(max_length=20)), + ('v_type', models.IntegerField(default=1)), + ('country', models.CharField(default=' ', max_length=500)), + ('place', models.CharField(default=' ', max_length=500)), + ('purpose', models.CharField(default=' ', max_length=500)), + ('v_date', models.DateField(blank=True, null=True)), + ('start_date', models.DateField(blank=True, null=True)), + ('end_date', models.DateField(blank=True, null=True)), + ('entry_date', models.DateField(blank=True, default=datetime.datetime.now, null=True)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='emp_techtransfer', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pf_no', models.IntegerField()), + ('details', models.CharField(default=' ', max_length=500)), + ('date_entry', models.DateField(blank=True, default=datetime.datetime.now, null=True)), + ('start_date', models.DateField(blank=True, null=True)), + ('end_date', models.DateField(blank=True, null=True)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='emp_session_chair', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pf_no', models.IntegerField()), + ('name', models.CharField(default=' ', max_length=500)), + ('event', models.TextField(default=' ', max_length=2500)), + ('s_year', models.IntegerField(blank=True, choices=[(1995, 1995), (1996, 1996), (1997, 1997), (1998, 1998), (1999, 1999), (2000, 2000), (2001, 2001), (2002, 2002), (2003, 2003), (2004, 2004), (2005, 2005), (2006, 2006), (2007, 2007), (2008, 2008), (2009, 2009), (2010, 2010), (2011, 2011), (2012, 2012), (2013, 2013), (2014, 2014), (2015, 2015), (2016, 2016), (2017, 2017)], null=True, verbose_name='year')), + ('a_month', models.IntegerField(blank=True, choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12)], default=1, null=True, verbose_name='Month')), + ('start_date', models.DateField(blank=True, null=True)), + ('end_date', models.DateField(blank=True, null=True)), + ('date_entry', models.DateField(blank=True, default=datetime.datetime.now, null=True)), + ('remarks', models.CharField(default=' ', max_length=1000)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='emp_research_projects', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pf_no', models.IntegerField()), + ('ptype', models.CharField(default='Research', max_length=100)), + ('pi', models.CharField(default=' ', max_length=1000)), + ('co_pi', models.CharField(default=' ', max_length=1500)), + ('title', models.TextField(default=' ', max_length=5000)), + ('funding_agency', models.CharField(default=' ', max_length=250, null=True)), + ('financial_outlay', models.CharField(default=' ', max_length=150, null=True)), + ('status', models.CharField(choices=[('Awarded', 'Awarded'), ('Submitted', 'Submitted'), ('Ongoing', 'Ongoing'), ('Completed', 'Completed')], max_length=10)), + ('start_date', models.DateField(blank=True, null=True)), + ('finish_date', models.DateField(blank=True, null=True)), + ('date_submission', models.DateField(blank=True, null=True)), + ('date_entry', models.DateField(blank=True, default=datetime.datetime.now, null=True)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='emp_research_papers', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pf_no', models.IntegerField()), + ('rtype', models.CharField(choices=[('Journal', 'Journal'), ('Conference', 'Conference')], default='Conference', max_length=500)), + ('authors', models.CharField(blank=True, max_length=2500, null=True)), + ('co_authors', models.CharField(blank=True, max_length=2500, null=True)), + ('title_paper', models.CharField(blank=True, max_length=2500, null=True)), + ('name', models.CharField(blank=True, max_length=2500, null=True)), + ('paper', models.CharField(blank=True, max_length=1000, null=True)), + ('venue', models.CharField(blank=True, max_length=2500, null=True)), + ('volume_no', models.CharField(blank=True, max_length=500, null=True)), + ('page_no', models.CharField(blank=True, max_length=500, null=True)), + ('is_sci', models.CharField(blank=True, choices=[('SCI', 'SCI'), ('SCIE', 'SCIE')], max_length=6, null=True)), + ('isbn_no', models.CharField(blank=True, max_length=250, null=True)), + ('doi', models.CharField(blank=True, max_length=1000, null=True)), + ('start_date', models.DateField(blank=True, null=True)), + ('end_date', models.DateField(blank=True, null=True)), + ('date_acceptance', models.DateField(blank=True, null=True)), + ('date_publication', models.DateField(blank=True, null=True)), + ('year', models.CharField(blank=True, choices=[(1995, 1995), (1996, 1996), (1997, 1997), (1998, 1998), (1999, 1999), (2000, 2000), (2001, 2001), (2002, 2002), (2003, 2003), (2004, 2004), (2005, 2005), (2006, 2006), (2007, 2007), (2008, 2008), (2009, 2009), (2010, 2010), (2011, 2011), (2012, 2012), (2013, 2013), (2014, 2014), (2015, 2015), (2016, 2016), (2017, 2017), (2018, 2018), (2019, 2019), (2020, 2020), (2021, 2021), (2022, 2022), (2023, 2023)], max_length=10, null=True)), + ('a_month', models.CharField(blank=True, choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12)], default=1, max_length=500, null=True)), + ('doc_id', models.CharField(blank=True, max_length=50, null=True)), + ('doc_description', models.CharField(blank=True, max_length=1000, null=True)), + ('date_entry', models.DateField(blank=True, default=datetime.datetime.now, null=True)), + ('status', models.CharField(blank=True, choices=[('Published', 'Published'), ('Accepted', 'Accepted'), ('Communicated', 'Communicated')], max_length=15, null=True)), + ('date_submission', models.DateTimeField(blank=True, null=True)), + ('reference_number', models.CharField(blank=True, max_length=100, null=True)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='emp_published_books', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pf_no', models.IntegerField()), + ('p_type', models.CharField(choices=[('Book', 'Book'), ('Monograph', 'Monograph'), ('Book Chapter', 'Book Chapter'), ('Handbook', 'Handbook'), ('Technical Report', 'Technical Report')], max_length=16)), + ('title', models.CharField(default=' ', max_length=2500)), + ('publisher', models.CharField(default=' ', max_length=2500)), + ('pyear', models.IntegerField(blank=True, choices=[(1995, 1995), (1996, 1996), (1997, 1997), (1998, 1998), (1999, 1999), (2000, 2000), (2001, 2001), (2002, 2002), (2003, 2003), (2004, 2004), (2005, 2005), (2006, 2006), (2007, 2007), (2008, 2008), (2009, 2009), (2010, 2010), (2011, 2011), (2012, 2012), (2013, 2013), (2014, 2014), (2015, 2015), (2016, 2016), (2017, 2017), (2018, 2018), (2019, 2019), (2020, 2020), (2021, 2021), (2022, 2022), (2023, 2023)], null=True, verbose_name='year')), + ('authors', models.CharField(default=' ', max_length=250)), + ('date_entry', models.DateField(blank=True, default=datetime.datetime.now, null=True)), + ('publication_date', models.DateField(blank=True, null=True)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='emp_patents', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pf_no', models.IntegerField()), + ('p_no', models.CharField(max_length=150)), + ('title', models.CharField(max_length=1500)), + ('earnings', models.IntegerField(default=0)), + ('status', models.CharField(choices=[('Filed', 'Filed'), ('Granted', 'Granted'), ('Published', 'Published'), ('Owned', 'Owned')], max_length=15)), + ('p_year', models.IntegerField(blank=True, choices=[(1995, 1995), (1996, 1996), (1997, 1997), (1998, 1998), (1999, 1999), (2000, 2000), (2001, 2001), (2002, 2002), (2003, 2003), (2004, 2004), (2005, 2005), (2006, 2006), (2007, 2007), (2008, 2008), (2009, 2009), (2010, 2010), (2011, 2011), (2012, 2012), (2013, 2013), (2014, 2014), (2015, 2015), (2016, 2016), (2017, 2017), (2018, 2018), (2019, 2019), (2020, 2020), (2021, 2021), (2022, 2022), (2023, 2023)], null=True, verbose_name='year')), + ('a_month', models.IntegerField(blank=True, choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12)], default=1, null=True, verbose_name='Month')), + ('date_entry', models.DateField(blank=True, default=datetime.datetime.now, null=True)), + ('start_date', models.DateField(blank=True, null=True)), + ('end_date', models.DateField(blank=True, null=True)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='emp_mtechphd_thesis', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pf_no', models.IntegerField()), + ('degree_type', models.IntegerField(default=1)), + ('title', models.CharField(max_length=250)), + ('supervisors', models.CharField(max_length=250)), + ('co_supervisors', models.CharField(blank=True, max_length=250, null=True)), + ('rollno', models.CharField(max_length=200)), + ('s_name', models.CharField(max_length=5000)), + ('s_year', models.IntegerField(blank=True, choices=[(1995, 1995), (1996, 1996), (1997, 1997), (1998, 1998), (1999, 1999), (2000, 2000), (2001, 2001), (2002, 2002), (2003, 2003), (2004, 2004), (2005, 2005), (2006, 2006), (2007, 2007), (2008, 2008), (2009, 2009), (2010, 2010), (2011, 2011), (2012, 2012), (2013, 2013), (2014, 2014), (2015, 2015), (2016, 2016), (2017, 2017), (2018, 2018), (2019, 2019), (2020, 2020), (2021, 2021), (2022, 2022), (2023, 2023)], null=True, verbose_name='year')), + ('a_month', models.IntegerField(blank=True, choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12)], default=1, null=True, verbose_name='Month')), + ('date_entry', models.DateField(blank=True, default=datetime.datetime.now, null=True)), + ('start_date', models.DateField(blank=True, null=True)), + ('end_date', models.DateField(blank=True, null=True)), + ('semester', models.IntegerField(blank=True, default=1, null=True)), + ('status', models.CharField(blank=True, choices=[('Awarded', 'Awarded'), ('Submitted', 'Submitted'), ('Ongoing', 'Ongoing'), ('Completed', 'Completed')], max_length=10, null=True)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='emp_keynote_address', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pf_no', models.IntegerField()), + ('type', models.CharField(choices=[('Keynote', 'Keynote'), ('Plenary Address', 'Plenary Address')], default='Keynote', max_length=140)), + ('title', models.CharField(max_length=1000)), + ('name', models.CharField(max_length=1000)), + ('venue', models.CharField(max_length=1000)), + ('page_no', models.CharField(max_length=100)), + ('isbn_no', models.CharField(max_length=200)), + ('k_year', models.IntegerField(blank=True, choices=[(1995, 1995), (1996, 1996), (1997, 1997), (1998, 1998), (1999, 1999), (2000, 2000), (2001, 2001), (2002, 2002), (2003, 2003), (2004, 2004), (2005, 2005), (2006, 2006), (2007, 2007), (2008, 2008), (2009, 2009), (2010, 2010), (2011, 2011), (2012, 2012), (2013, 2013), (2014, 2014), (2015, 2015), (2016, 2016), (2017, 2017), (2018, 2018), (2019, 2019), (2020, 2020), (2021, 2021), (2022, 2022), (2023, 2023)], null=True, verbose_name='year')), + ('a_month', models.IntegerField(blank=True, choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12)], default=1, null=True, verbose_name='Month')), + ('start_date', models.DateField(blank=True, null=True)), + ('end_date', models.DateField(blank=True, null=True)), + ('date_entry', models.DateField(blank=True, default=datetime.datetime.now, null=True)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='emp_expert_lectures', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pf_no', models.IntegerField()), + ('l_type', models.CharField(choices=[('Expert Lecture', 'Expert Lecture'), ('Invited Talk', 'Invited Talk')], default='Expert Lecture', max_length=14)), + ('title', models.CharField(max_length=1000)), + ('place', models.CharField(max_length=1000)), + ('l_date', models.DateField(blank=True, null=True)), + ('l_year', models.IntegerField(blank=True, choices=[(1995, 1995), (1996, 1996), (1997, 1997), (1998, 1998), (1999, 1999), (2000, 2000), (2001, 2001), (2002, 2002), (2003, 2003), (2004, 2004), (2005, 2005), (2006, 2006), (2007, 2007), (2008, 2008), (2009, 2009), (2010, 2010), (2011, 2011), (2012, 2012), (2013, 2013), (2014, 2014), (2015, 2015), (2016, 2016), (2017, 2017), (2018, 2018), (2019, 2019), (2020, 2020), (2021, 2021), (2022, 2022), (2023, 2023)], null=True, verbose_name='year')), + ('a_month', models.IntegerField(blank=True, choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12)], default=1, null=True, verbose_name='Month')), + ('date_entry', models.DateField(blank=True, default=datetime.datetime.now, null=True)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='emp_event_organized', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pf_no', models.IntegerField()), + ('type', models.CharField(choices=[('Training Program', 'Training Program'), ('Seminar', 'Seminar'), ('Short Term Program', 'Short Term Program'), ('Workshop', 'Workshop'), ('Any Other', 'Any Other')], max_length=180)), + ('name', models.CharField(max_length=1000)), + ('sponsoring_agency', models.CharField(max_length=150)), + ('venue', models.CharField(max_length=100)), + ('role', models.CharField(choices=[('Convener', 'Convener'), ('Coordinator', 'Coordinator'), ('Co-Convener', 'Co-Convener')], max_length=11)), + ('start_date', models.DateField(blank=True, null=True)), + ('end_date', models.DateField(blank=True, null=True)), + ('date_entry', models.DateField(blank=True, default=datetime.datetime.now, null=True)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='emp_consultancy_projects', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pf_no', models.IntegerField()), + ('consultants', models.CharField(max_length=150)), + ('title', models.CharField(max_length=1000)), + ('client', models.CharField(max_length=1000)), + ('financial_outlay', models.IntegerField()), + ('start_date', models.DateField(blank=True, null=True)), + ('end_date', models.DateField(blank=True, null=True)), + ('duration', models.CharField(blank=True, max_length=500, null=True)), + ('date_entry', models.DateField(blank=True, default=datetime.datetime.now, null=True)), + ('status', models.CharField(blank=True, choices=[('Completed', 'Completed'), ('Submitted', 'Submitted'), ('Ongoing', 'Ongoing')], default='Ongoing', max_length=10, null=True)), + ('remarks', models.CharField(blank=True, max_length=1000, null=True)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='emp_confrence_organised', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pf_no', models.IntegerField()), + ('name', models.CharField(max_length=500)), + ('venue', models.CharField(max_length=500)), + ('k_year', models.IntegerField(blank=True, choices=[(1995, 1995), (1996, 1996), (1997, 1997), (1998, 1998), (1999, 1999), (2000, 2000), (2001, 2001), (2002, 2002), (2003, 2003), (2004, 2004), (2005, 2005), (2006, 2006), (2007, 2007), (2008, 2008), (2009, 2009), (2010, 2010), (2011, 2011), (2012, 2012), (2013, 2013), (2014, 2014), (2015, 2015), (2016, 2016), (2017, 2017), (2018, 2018), (2019, 2019), (2020, 2020), (2021, 2021), (2022, 2022), (2023, 2023)], null=True, verbose_name='year')), + ('a_month', models.IntegerField(blank=True, choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12)], default=1, null=True, verbose_name='Month')), + ('start_date', models.DateField(blank=True, null=True)), + ('end_date', models.DateField(blank=True, null=True)), + ('date_entry', models.DateField(blank=True, default=datetime.datetime.now, null=True)), + ('role1', models.CharField(blank=True, choices=[('Advisary Committee', 'Advisary Committee'), ('Program Committee', 'Program Committee'), ('Organised', 'Organised'), ('Conference Chair', 'Conference Chair'), ('Any Other', 'Any Other')], default='Any Other', max_length=200, null=True)), + ('role2', models.CharField(blank=True, max_length=200, null=True)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='emp_achievement', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pf_no', models.IntegerField()), + ('a_type', models.CharField(choices=[('Award', 'Award'), ('Honour', 'Honour'), ('Prize', 'Prize'), ('Other', 'Other')], default='Other', max_length=180)), + ('details', models.TextField(default=' ', max_length=1550)), + ('a_day', models.IntegerField(blank=True, choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17), (18, 18), (19, 19), (20, 20), (21, 21), (22, 22), (23, 23), (24, 24), (25, 25), (26, 26), (27, 27), (28, 28), (29, 29), (30, 30), (31, 31)], null=True, verbose_name='Day')), + ('a_month', models.IntegerField(blank=True, choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12)], null=True, verbose_name='Month')), + ('a_year', models.IntegerField(blank=True, choices=[(1995, 1995), (1996, 1996), (1997, 1997), (1998, 1998), (1999, 1999), (2000, 2000), (2001, 2001), (2002, 2002), (2003, 2003), (2004, 2004), (2005, 2005), (2006, 2006), (2007, 2007), (2008, 2008), (2009, 2009), (2010, 2010), (2011, 2011), (2012, 2012), (2013, 2013), (2014, 2014), (2015, 2015), (2016, 2016), (2017, 2017), (2018, 2018), (2019, 2019), (2020, 2020), (2021, 2021), (2022, 2022), (2023, 2023)], null=True, verbose_name='year')), + ('date_entry', models.DateField(default=datetime.datetime.now)), + ('achievment_date', models.DateField(blank=True, null=True)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/FusionIIIT/applications/eis/migrations/0002_auto_20240421_1716.py b/FusionIIIT/applications/eis/migrations/0002_auto_20240421_1716.py new file mode 100644 index 000000000..e04fcce9f --- /dev/null +++ b/FusionIIIT/applications/eis/migrations/0002_auto_20240421_1716.py @@ -0,0 +1,118 @@ +# Generated by Django 3.1.5 on 2024-04-21 17:16 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('eis', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='emp_achievement', + name='a_year', + field=models.IntegerField(blank=True, choices=[(1995, 1995), (1996, 1996), (1997, 1997), (1998, 1998), (1999, 1999), (2000, 2000), (2001, 2001), (2002, 2002), (2003, 2003), (2004, 2004), (2005, 2005), (2006, 2006), (2007, 2007), (2008, 2008), (2009, 2009), (2010, 2010), (2011, 2011), (2012, 2012), (2013, 2013), (2014, 2014), (2015, 2015), (2016, 2016), (2017, 2017), (2018, 2018), (2019, 2019), (2020, 2020), (2021, 2021), (2022, 2022), (2023, 2023), (2024, 2024)], null=True, verbose_name='year'), + ), + migrations.AlterField( + model_name='emp_achievement', + name='pf_no', + field=models.CharField(max_length=20), + ), + migrations.AlterField( + model_name='emp_confrence_organised', + name='k_year', + field=models.IntegerField(blank=True, choices=[(1995, 1995), (1996, 1996), (1997, 1997), (1998, 1998), (1999, 1999), (2000, 2000), (2001, 2001), (2002, 2002), (2003, 2003), (2004, 2004), (2005, 2005), (2006, 2006), (2007, 2007), (2008, 2008), (2009, 2009), (2010, 2010), (2011, 2011), (2012, 2012), (2013, 2013), (2014, 2014), (2015, 2015), (2016, 2016), (2017, 2017), (2018, 2018), (2019, 2019), (2020, 2020), (2021, 2021), (2022, 2022), (2023, 2023), (2024, 2024)], null=True, verbose_name='year'), + ), + migrations.AlterField( + model_name='emp_confrence_organised', + name='pf_no', + field=models.CharField(max_length=20), + ), + migrations.AlterField( + model_name='emp_consultancy_projects', + name='pf_no', + field=models.CharField(max_length=20), + ), + migrations.AlterField( + model_name='emp_event_organized', + name='pf_no', + field=models.CharField(max_length=20), + ), + migrations.AlterField( + model_name='emp_expert_lectures', + name='l_year', + field=models.IntegerField(blank=True, choices=[(1995, 1995), (1996, 1996), (1997, 1997), (1998, 1998), (1999, 1999), (2000, 2000), (2001, 2001), (2002, 2002), (2003, 2003), (2004, 2004), (2005, 2005), (2006, 2006), (2007, 2007), (2008, 2008), (2009, 2009), (2010, 2010), (2011, 2011), (2012, 2012), (2013, 2013), (2014, 2014), (2015, 2015), (2016, 2016), (2017, 2017), (2018, 2018), (2019, 2019), (2020, 2020), (2021, 2021), (2022, 2022), (2023, 2023), (2024, 2024)], null=True, verbose_name='year'), + ), + migrations.AlterField( + model_name='emp_expert_lectures', + name='pf_no', + field=models.CharField(max_length=20), + ), + migrations.AlterField( + model_name='emp_keynote_address', + name='k_year', + field=models.IntegerField(blank=True, choices=[(1995, 1995), (1996, 1996), (1997, 1997), (1998, 1998), (1999, 1999), (2000, 2000), (2001, 2001), (2002, 2002), (2003, 2003), (2004, 2004), (2005, 2005), (2006, 2006), (2007, 2007), (2008, 2008), (2009, 2009), (2010, 2010), (2011, 2011), (2012, 2012), (2013, 2013), (2014, 2014), (2015, 2015), (2016, 2016), (2017, 2017), (2018, 2018), (2019, 2019), (2020, 2020), (2021, 2021), (2022, 2022), (2023, 2023), (2024, 2024)], null=True, verbose_name='year'), + ), + migrations.AlterField( + model_name='emp_keynote_address', + name='pf_no', + field=models.CharField(max_length=20), + ), + migrations.AlterField( + model_name='emp_mtechphd_thesis', + name='pf_no', + field=models.CharField(max_length=20), + ), + migrations.AlterField( + model_name='emp_mtechphd_thesis', + name='s_year', + field=models.IntegerField(blank=True, choices=[(1995, 1995), (1996, 1996), (1997, 1997), (1998, 1998), (1999, 1999), (2000, 2000), (2001, 2001), (2002, 2002), (2003, 2003), (2004, 2004), (2005, 2005), (2006, 2006), (2007, 2007), (2008, 2008), (2009, 2009), (2010, 2010), (2011, 2011), (2012, 2012), (2013, 2013), (2014, 2014), (2015, 2015), (2016, 2016), (2017, 2017), (2018, 2018), (2019, 2019), (2020, 2020), (2021, 2021), (2022, 2022), (2023, 2023), (2024, 2024)], null=True, verbose_name='year'), + ), + migrations.AlterField( + model_name='emp_patents', + name='p_year', + field=models.IntegerField(blank=True, choices=[(1995, 1995), (1996, 1996), (1997, 1997), (1998, 1998), (1999, 1999), (2000, 2000), (2001, 2001), (2002, 2002), (2003, 2003), (2004, 2004), (2005, 2005), (2006, 2006), (2007, 2007), (2008, 2008), (2009, 2009), (2010, 2010), (2011, 2011), (2012, 2012), (2013, 2013), (2014, 2014), (2015, 2015), (2016, 2016), (2017, 2017), (2018, 2018), (2019, 2019), (2020, 2020), (2021, 2021), (2022, 2022), (2023, 2023), (2024, 2024)], null=True, verbose_name='year'), + ), + migrations.AlterField( + model_name='emp_patents', + name='pf_no', + field=models.CharField(max_length=20), + ), + migrations.AlterField( + model_name='emp_published_books', + name='pf_no', + field=models.CharField(max_length=20), + ), + migrations.AlterField( + model_name='emp_published_books', + name='pyear', + field=models.IntegerField(blank=True, choices=[(1995, 1995), (1996, 1996), (1997, 1997), (1998, 1998), (1999, 1999), (2000, 2000), (2001, 2001), (2002, 2002), (2003, 2003), (2004, 2004), (2005, 2005), (2006, 2006), (2007, 2007), (2008, 2008), (2009, 2009), (2010, 2010), (2011, 2011), (2012, 2012), (2013, 2013), (2014, 2014), (2015, 2015), (2016, 2016), (2017, 2017), (2018, 2018), (2019, 2019), (2020, 2020), (2021, 2021), (2022, 2022), (2023, 2023), (2024, 2024)], null=True, verbose_name='year'), + ), + migrations.AlterField( + model_name='emp_research_papers', + name='pf_no', + field=models.CharField(max_length=20), + ), + migrations.AlterField( + model_name='emp_research_papers', + name='year', + field=models.CharField(blank=True, choices=[(1995, 1995), (1996, 1996), (1997, 1997), (1998, 1998), (1999, 1999), (2000, 2000), (2001, 2001), (2002, 2002), (2003, 2003), (2004, 2004), (2005, 2005), (2006, 2006), (2007, 2007), (2008, 2008), (2009, 2009), (2010, 2010), (2011, 2011), (2012, 2012), (2013, 2013), (2014, 2014), (2015, 2015), (2016, 2016), (2017, 2017), (2018, 2018), (2019, 2019), (2020, 2020), (2021, 2021), (2022, 2022), (2023, 2023), (2024, 2024)], max_length=10, null=True), + ), + migrations.AlterField( + model_name='emp_research_projects', + name='pf_no', + field=models.CharField(max_length=20), + ), + migrations.AlterField( + model_name='emp_session_chair', + name='pf_no', + field=models.CharField(max_length=20), + ), + migrations.AlterField( + model_name='emp_techtransfer', + name='pf_no', + field=models.CharField(max_length=20), + ), + ] diff --git a/FusionIIIT/applications/eis/migrations/__init__.py b/FusionIIIT/applications/eis/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/eis/models.py b/FusionIIIT/applications/eis/models.py index e55712ab9..b43ae974e 100644 --- a/FusionIIIT/applications/eis/models.py +++ b/FusionIIIT/applications/eis/models.py @@ -26,7 +26,7 @@ def get_absolute_url(self): class emp_techtransfer(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True,null=True) - pf_no = models.IntegerField() + pf_no = models.CharField(max_length=20) details = models.CharField(max_length=500, default=" ") date_entry = models.DateField(null=True, blank=True, default=datetime.datetime.now) start_date = models.DateField(null=True,blank=True) @@ -35,7 +35,7 @@ class emp_techtransfer(models.Model): class emp_session_chair(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True,null=True) - pf_no = models.IntegerField() + pf_no = models.CharField(max_length=20) name = models.CharField(max_length=500, default=" ") event = models.TextField(max_length=2500, default=" ") YEAR_CHOICES = [] @@ -57,7 +57,7 @@ def __str__(self): class emp_research_projects(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True,null=True) - pf_no = models.IntegerField() + pf_no = models.CharField(max_length=20) ptype = models.CharField(max_length=100, default="Research") pi = models.CharField(max_length=1000, default=" ") co_pi = models.CharField(max_length=1500, default=" ") @@ -82,7 +82,7 @@ def __str__(self): class emp_research_papers(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True,null=True) - pf_no = models.IntegerField() + pf_no = models.CharField(max_length=20) R_TYPE_CHOICES = ( ('Journal', 'Journal'), ('Conference', 'Conference'), @@ -133,7 +133,7 @@ def __str__(self): class emp_published_books(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True,null=True) - pf_no = models.IntegerField() + pf_no = models.CharField(max_length=20) PTYPE_TYPE_CHOICES = ( ('Book', 'Book'), ('Monograph', 'Monograph'), @@ -158,7 +158,7 @@ def __str__(self): class emp_patents(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True,null=True) - pf_no = models.IntegerField() + pf_no = models.CharField(max_length=20) p_no = models.CharField(max_length=150) title = models.CharField(max_length=1500) earnings = models.IntegerField(default=0) @@ -186,7 +186,7 @@ def __str__(self): class emp_mtechphd_thesis(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True,null=True) - pf_no = models.IntegerField() + pf_no = models.CharField(max_length=20) degree_type = models.IntegerField(default=1) title = models.CharField(max_length=250) supervisors = models.CharField(max_length=250) @@ -219,7 +219,7 @@ def __str__(self): class emp_keynote_address(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True,null=True) - pf_no = models.IntegerField() + pf_no = models.CharField(max_length=20) KEYNOTE_TYPE_CHOICES = ( ('Keynote', 'Keynote'), ('Plenary Address', 'Plenary Address'), @@ -248,7 +248,7 @@ def __str__(self): class emp_expert_lectures(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True,null=True) - pf_no = models.IntegerField() + pf_no = models.CharField(max_length=20) LECTURE_TYPE_CHOICES = ( ('Expert Lecture', 'Expert Lecture'), ('Invited Talk', 'Invited Talk'), @@ -273,7 +273,7 @@ def __str__(self): class emp_event_organized(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True,null=True) - pf_no = models.IntegerField() + pf_no = models.CharField(max_length=20) TYPE_CHOICES = ( ('Training Program', 'Training Program'), ('Seminar', 'Seminar'), @@ -301,7 +301,7 @@ def __str__(self): class emp_consultancy_projects(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True,null=True) - pf_no = models.IntegerField() + pf_no = models.CharField(max_length=20) consultants = models.CharField(max_length=150) title = models.CharField(max_length=1000) client = models.CharField(max_length=1000) @@ -323,7 +323,7 @@ def __str__(self): class emp_confrence_organised(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True,null=True) - pf_no = models.IntegerField() + pf_no = models.CharField(max_length=20) name = models.CharField(max_length=500) venue = models.CharField(max_length=500) YEAR_CHOICES = [] @@ -353,7 +353,7 @@ def __str__(self): class emp_achievement(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True,null=True) - pf_no = models.IntegerField() + pf_no = models.CharField(max_length=20) A_TYPE_CHOICES = ( ('Award', 'Award'), ('Honour', 'Honour'), diff --git a/FusionIIIT/applications/establishment/migrations/0001_initial.py b/FusionIIIT/applications/establishment/migrations/0001_initial.py new file mode 100644 index 000000000..e1449d3b3 --- /dev/null +++ b/FusionIIIT/applications/establishment/migrations/0001_initial.py @@ -0,0 +1,284 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('globals', '0001_initial'), + ('auth', '0012_alter_user_first_name_max_length'), + ] + + operations = [ + migrations.CreateModel( + name='Appraisal', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('discipline', models.CharField(max_length=30, null=True)), + ('knowledge_field', models.CharField(max_length=30, null=True)), + ('research_interest', models.CharField(max_length=60, null=True)), + ('status', models.CharField(choices=[('pending', 'Pending'), ('accepted', 'Accepted'), ('rejected', 'Rejected'), ('forwarded', 'Forwarded'), ('auto rejected', 'Auto Rejected'), ('outstanding', 'Outstanding'), ('excellant', 'Excellent'), ('very good', 'Very Good'), ('good', 'Good'), ('poor', 'Poor')], default='pending', max_length=20)), + ('timestamp', models.DateTimeField(auto_now=True, null=True)), + ('other_research_element', models.CharField(blank=True, default='', max_length=200, null=True)), + ('publications', models.CharField(blank=True, default='', max_length=200, null=True)), + ('conferences_meeting_attended', models.CharField(blank=True, default='', max_length=200, null=True)), + ('conferences_meeting_organized', models.CharField(blank=True, default='', max_length=200, null=True)), + ('admin_assign', models.CharField(blank=True, default='', max_length=200, null=True)), + ('sevice_to_ins', models.CharField(blank=True, default='', max_length=200, null=True)), + ('extra_info', models.CharField(blank=True, default='', max_length=200, null=True)), + ('faculty_comments', models.CharField(blank=True, default='', max_length=200, null=True)), + ('start_date', models.DateField(blank=True, null=True)), + ('end_date', models.DateField(blank=True, null=True)), + ('applicant', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='all_appraisals', to=settings.AUTH_USER_MODEL)), + ('designation', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='desig', to='globals.designation')), + ], + ), + migrations.CreateModel( + name='Cpda_application', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('status', models.CharField(choices=[('requested', 'Requested'), ('approved', 'Approved'), ('rejected', 'Rejected'), ('adjustments_pending', 'Adjustments Pending'), ('finished', 'Finished')], max_length=20, null=True)), + ('pf_number', models.CharField(default='1', max_length=50, null=True)), + ('purpose', models.CharField(blank=True, default='', max_length=500)), + ('requested_advance', models.IntegerField(blank=True)), + ('request_timestamp', models.DateTimeField(auto_now=True, null=True)), + ('adjustment_amount', models.IntegerField(blank=True, default='0', null=True)), + ('bills_attached', models.IntegerField(blank=True, default='-1', null=True)), + ('total_bills_amount', models.IntegerField(blank=True, default='0', null=True)), + ('ppa_register_page_no', models.IntegerField(blank=True, default='-1', null=True)), + ('adjustment_timestamp', models.DateTimeField(auto_now=True, null=True)), + ('applicant', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + options={ + 'db_table': 'Cpda Application', + }, + ), + migrations.CreateModel( + name='CpdaBalance', + fields=[ + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='auth.user')), + ('cpda_balance', models.PositiveIntegerField(default=300000)), + ], + ), + migrations.CreateModel( + name='Ltc_application', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('status', models.CharField(choices=[('requested', 'Requested'), ('approved', 'Approved'), ('rejected', 'Rejected')], max_length=20, null=True)), + ('pf_number', models.CharField(default='', max_length=50)), + ('basic_pay', models.IntegerField(blank=True)), + ('leave_start', models.DateField(null=True)), + ('leave_end', models.DateField()), + ('family_departure_date', models.DateField()), + ('leave_nature', models.CharField(default='', max_length=50)), + ('purpose', models.CharField(blank=True, default='', max_length=500)), + ('is_hometown_or_elsewhere', models.CharField(choices=[('hometown', 'Home Town'), ('elsewhere', 'Elsewhere')], max_length=50)), + ('phone_number', models.CharField(default='', max_length=13)), + ('address_during_leave', models.CharField(blank=True, default='', max_length=500)), + ('travel_mode', models.CharField(choices=[('rail', 'Rail'), ('road', 'Road')], max_length=50)), + ('ltc_availed', models.CharField(blank=True, default='', max_length=100)), + ('ltc_to_avail', models.CharField(blank=True, default='', max_length=200)), + ('dependents', models.CharField(blank=True, default='', max_length=500)), + ('requested_advance', models.IntegerField(blank=True)), + ('request_timestamp', models.DateTimeField(auto_now=True, null=True)), + ('review_timestamp', models.DateTimeField(auto_now=True, null=True)), + ('applicant', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + options={ + 'db_table': 'Ltc Application', + }, + ), + migrations.CreateModel( + name='Ltc_eligible_user', + fields=[ + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='auth.user')), + ('date_of_joining', models.DateField(default='2005-04-01')), + ('current_block_size', models.IntegerField(default=4)), + ('total_ltc_allowed', models.IntegerField(default=2)), + ('hometown_ltc_allowed', models.IntegerField(default=2)), + ('elsewhere_ltc_allowed', models.IntegerField(default=1)), + ('hometown_ltc_availed', models.IntegerField(default=0)), + ('elsewhere_ltc_availed', models.IntegerField(default=0)), + ], + ), + migrations.CreateModel( + name='ThesisResearchSupervision', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('stud_name', models.CharField(max_length=30)), + ('thesis_title', models.CharField(blank=True, max_length=30, null=True)), + ('year', models.IntegerField(blank=True, null=True)), + ('semester', models.IntegerField()), + ('status', models.CharField(max_length=30)), + ('appraisal', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='applicants_supervised_stud', to='establishment.appraisal')), + ('co_supervisors', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='all_supervisors', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='SponsoredProjects', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('project_title', models.CharField(max_length=30)), + ('sponsoring_agency', models.CharField(max_length=30)), + ('funding', models.IntegerField()), + ('duration', models.IntegerField()), + ('status', models.CharField(max_length=30)), + ('remarks', models.CharField(max_length=30)), + ('appraisal', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='applicant_sponsored_projects', to='establishment.appraisal')), + ('co_investigators', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='all_co_investigators', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='NewCoursesOffered', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('course_name', models.CharField(max_length=30)), + ('course_num', models.IntegerField(blank=True, null=True)), + ('ug_or_pg', models.CharField(blank=True, max_length=2, null=True)), + ('tutorial_hrs_wk', models.FloatField(blank=True, null=True)), + ('year', models.IntegerField(blank=True, null=True)), + ('semester', models.IntegerField()), + ('appraisal', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='applicants_offered_new_courses', to='establishment.appraisal')), + ], + ), + migrations.CreateModel( + name='NewCourseMaterial', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('course_name', models.CharField(max_length=30)), + ('course_num', models.IntegerField(blank=True, null=True)), + ('ug_or_pg', models.CharField(blank=True, max_length=2, null=True)), + ('activity_type', models.CharField(blank=True, max_length=10, null=True)), + ('availiability', models.CharField(blank=True, max_length=10, null=True)), + ('appraisal', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='applicant_new_courses_material', to='establishment.appraisal')), + ], + ), + migrations.CreateModel( + name='Ltc_to_avail', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=30)), + ('age', models.IntegerField(blank=True, null=True)), + ('ltc', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ltcToAvail', to='establishment.ltc_application')), + ], + ), + migrations.CreateModel( + name='Ltc_availed', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=30)), + ('age', models.IntegerField(blank=True, null=True)), + ('ltc', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ltcAvailed', to='establishment.ltc_application')), + ], + ), + migrations.CreateModel( + name='Establishment_variables', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('est_admin', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Dependent', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=30)), + ('age', models.IntegerField(blank=True, null=True)), + ('depend', models.CharField(max_length=30)), + ('ltc', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='Dependent', to='establishment.ltc_application')), + ], + ), + migrations.CreateModel( + name='Cpda_bill', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('bill', models.FileField(blank=True, upload_to='')), + ('application', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='establishment.cpda_application')), + ], + options={ + 'db_table': 'Cpda Bills', + }, + ), + migrations.CreateModel( + name='CoursesInstructed', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('semester', models.IntegerField(blank=True, null=True)), + ('course_name', models.CharField(max_length=30)), + ('course_num', models.IntegerField(blank=True, null=True)), + ('lecture_hrs_wk', models.FloatField(blank=True, null=True)), + ('tutorial_hrs_wk', models.FloatField(blank=True, null=True)), + ('lab_hrs_wk', models.FloatField(blank=True, null=True)), + ('reg_students', models.IntegerField(blank=True, null=True)), + ('co_instructor', models.CharField(blank=True, max_length=250, null=True)), + ('appraisal', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='applicant_courses', to='establishment.appraisal')), + ], + ), + migrations.CreateModel( + name='AppraisalRequest', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('remark_hod', models.CharField(blank=True, max_length=50, null=True)), + ('remark_director', models.CharField(blank=True, max_length=50, null=True)), + ('status_hod', models.CharField(choices=[('pending', 'Pending'), ('accepted', 'Accepted'), ('rejected', 'Rejected'), ('forwarded', 'Forwarded'), ('auto rejected', 'Auto Rejected'), ('outstanding', 'Outstanding'), ('excellant', 'Excellent'), ('very good', 'Very Good'), ('good', 'Good'), ('poor', 'Poor')], default='pending', max_length=20)), + ('status_director', models.CharField(choices=[('pending', 'Pending'), ('accepted', 'Accepted'), ('rejected', 'Rejected'), ('forwarded', 'Forwarded'), ('auto rejected', 'Auto Rejected'), ('outstanding', 'Outstanding'), ('excellant', 'Excellent'), ('very good', 'Very Good'), ('good', 'Good'), ('poor', 'Poor')], default='pending', max_length=20)), + ('permission', models.CharField(blank=True, choices=[('intermediary', 'Intermediary Staff'), ('sanc_auth', 'Appraisal Sanctioning Authority'), ('sanc_off', 'Appraisal Sanctioning Officer')], default='sanc_auth', max_length=20, null=True)), + ('request_timestamp', models.DateTimeField(auto_now=True, null=True)), + ('appraisal', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='appraisal_tracking', to='establishment.appraisal')), + ('director', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='director', to=settings.AUTH_USER_MODEL)), + ('hod', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='hod', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='AppraisalAdministrators', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('authority', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='sanc_authority_of_ap', to='globals.designation')), + ('officer', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='sanc_officer_of_ap', to='globals.designation')), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='apprasial_admins', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Ltc_tracking', + fields=[ + ('application', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, related_name='tracking_info', serialize=False, to='establishment.ltc_application')), + ('designations', models.CharField(blank=True, max_length=350, null=True)), + ('remarks', models.CharField(blank=True, max_length=350, null=True)), + ('review_status', models.CharField(choices=[('to_assign', 'To Assign'), ('under_review', 'Under Review'), ('reviewed', 'Reviewed')], max_length=20, null=True)), + ('admin_remarks', models.CharField(blank=True, max_length=200, null=True)), + ('reviewer_design', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='globals.designation')), + ('reviewer_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + options={ + 'db_table': 'Ltc Tracking', + }, + ), + migrations.CreateModel( + name='Cpda_tracking', + fields=[ + ('application', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, related_name='tracking_info', serialize=False, to='establishment.cpda_application')), + ('current_reviewer_id', models.IntegerField(blank=True, default=1)), + ('remarks', models.CharField(blank=True, max_length=250, null=True)), + ('remarks_rev1', models.CharField(blank=True, max_length=250, null=True)), + ('remarks_rev2', models.CharField(blank=True, max_length=250, null=True)), + ('remarks_rev3', models.CharField(blank=True, max_length=250, null=True)), + ('review_status', models.CharField(choices=[('to_assign', 'To Assign'), ('under_review', 'Under Review'), ('reviewed', 'Reviewed')], max_length=20, null=True)), + ('bill', models.FileField(blank=True, null=True, upload_to='')), + ('reviewer_design', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='desig1', to='globals.designation')), + ('reviewer_design2', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='desig2', to='globals.designation')), + ('reviewer_design3', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='desig3', to='globals.designation')), + ('reviewer_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='reviewer1', to=settings.AUTH_USER_MODEL)), + ('reviewer_id2', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='reviewer2', to=settings.AUTH_USER_MODEL)), + ('reviewer_id3', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='reviewer3', to=settings.AUTH_USER_MODEL)), + ], + options={ + 'db_table': 'Cpda Tracking', + }, + ), + ] diff --git a/FusionIIIT/applications/establishment/migrations/__init__.py b/FusionIIIT/applications/establishment/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/estate_module/migrations/0001_initial.py b/FusionIIIT/applications/estate_module/migrations/0001_initial.py new file mode 100644 index 000000000..478a93b83 --- /dev/null +++ b/FusionIIIT/applications/estate_module/migrations/0001_initial.py @@ -0,0 +1,126 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Building', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ('dateIssued', models.DateField()), + ('dateConstructionStarted', models.DateField(blank=True, null=True)), + ('dateConstructionCompleted', models.DateField(blank=True, null=True)), + ('dateOperational', models.DateField(blank=True, null=True)), + ('status', models.CharField(choices=[('OS', 'On Schedule'), ('DL', 'Delayed')], default='OS', max_length=2)), + ('area', models.IntegerField(blank=True, null=True)), + ('constructionCostEstimated', models.IntegerField(blank=True, null=True)), + ('constructionCostActual', models.IntegerField(blank=True, null=True)), + ('numRooms', models.IntegerField(blank=True, null=True)), + ('numWashrooms', models.IntegerField(blank=True, null=True)), + ('remarks', models.TextField(blank=True, null=True)), + ('verified', models.BooleanField(default=False)), + ], + options={ + 'ordering': ['-id'], + }, + ), + migrations.CreateModel( + name='InventoryType', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ('rate', models.IntegerField()), + ('manufacturer', models.CharField(blank=True, max_length=100, null=True)), + ('model', models.CharField(blank=True, max_length=100, null=True)), + ('remarks', models.TextField(blank=True, null=True)), + ], + ), + migrations.CreateModel( + name='Work', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ('workType', models.CharField(choices=[('CW', 'Construction'), ('MW', 'Maintenance')], default='MW', max_length=2)), + ('contractorName', models.CharField(max_length=100)), + ('status', models.CharField(choices=[('OS', 'On Schedule'), ('DL', 'Delayed')], default='OS', max_length=2)), + ('dateIssued', models.DateField()), + ('dateStarted', models.DateField(blank=True, null=True)), + ('dateCompleted', models.DateField(blank=True, null=True)), + ('costEstimated', models.IntegerField(blank=True, null=True)), + ('costActual', models.IntegerField(blank=True, null=True)), + ('remarks', models.TextField(blank=True, null=True)), + ('verified', models.BooleanField(default=False)), + ('building', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='estate_module.building')), + ], + options={ + 'ordering': ['-id'], + }, + ), + migrations.CreateModel( + name='SubWork', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ('dateIssued', models.DateField()), + ('dateStarted', models.DateField(blank=True, null=True)), + ('dateCompleted', models.DateField(blank=True, null=True)), + ('costEstimated', models.IntegerField(blank=True, null=True)), + ('costActual', models.IntegerField(blank=True, null=True)), + ('remarks', models.TextField(blank=True, null=True)), + ('work', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='estate_module.work')), + ], + options={ + 'ordering': ['-id'], + }, + ), + migrations.CreateModel( + name='InventoryNonConsumable', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('quantity', models.IntegerField()), + ('dateOrdered', models.DateField()), + ('dateReceived', models.DateField(blank=True, null=True)), + ('remarks', models.TextField(blank=True, null=True)), + ('serial_no', models.CharField(max_length=20)), + ('dateLastVerified', models.DateField()), + ('building', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='estate_module.building')), + ('inventoryType', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='estate_module.inventorytype')), + ('issued_to', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)), + ('work', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='estate_module.work')), + ], + options={ + 'ordering': ['-id'], + 'abstract': False, + }, + ), + migrations.CreateModel( + name='InventoryConsumable', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('quantity', models.IntegerField()), + ('dateOrdered', models.DateField()), + ('dateReceived', models.DateField(blank=True, null=True)), + ('remarks', models.TextField(blank=True, null=True)), + ('presentQuantity', models.IntegerField()), + ('building', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='estate_module.building')), + ('inventoryType', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='estate_module.inventorytype')), + ('work', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='estate_module.work')), + ], + options={ + 'ordering': ['-id'], + 'abstract': False, + }, + ), + ] diff --git a/FusionIIIT/applications/estate_module/migrations/__init__.py b/FusionIIIT/applications/estate_module/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/feeds/migrations/0001_initial.py b/FusionIIIT/applications/feeds/migrations/0001_initial.py new file mode 100644 index 000000000..30ae94c92 --- /dev/null +++ b/FusionIIIT/applications/feeds/migrations/0001_initial.py @@ -0,0 +1,148 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='AllTags', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('tag', models.CharField(choices=[('CSE', 'CSE'), ('ECE', 'ECE'), ('Mechanical', 'Mechanical'), ('Technical-Clubs', 'Technical Clubs'), ('Cultural-Clubs', 'Cultural Clubs'), ('Sports-Clubs', 'Sports Clubs'), ('Business-and-Career', 'Business and Career'), ('Entertainment', 'Entertainment'), ('IIITDMJ-Campus', 'IIITDMJ Campus'), ('Jabalpur-city', 'Jabalpur city'), ('IIITDMJ-Rules-and-Regulations', 'IIITDMJ rules and regulations'), ('Academics', 'Academics'), ('IIITDMJ', 'IIITDMJ'), ('Life-Relationship-and-Self', 'Life Relationship and Self'), ('Technology-and-Education', 'Technology and Education'), ('Programmes', 'Programmes'), ('Others', 'Others'), ('Design', 'Design')], default='CSE', max_length=100)), + ('subtag', models.CharField(choices=[('Web-Development', 'Web Development'), ('Competitive-Programming', 'Competitive Programming'), ('Programming-Languages', 'Programming-Languages'), ('Data-Science', 'Data-Science'), ('Ethical-Hacking-and-Cyber-Security', 'Ethical hacking and cyber security'), ('Cryptography-and-Network-Security', 'cryptography and network security'), ('Software-Engineering', 'Software-Engineering'), ('Algorithm', 'Algorithm'), ('Mobile-Development', 'Mobile-Development'), ('Game-Development', 'Game-Development'), ('Artificial-Intelligence', 'Artificial Intelligence'), ('Electronics-Circuit-Design', 'Electronics Circuit Design'), ('Wireless-Communication', 'Wireless Communication'), ('Embedded-System', 'Embedded Systems'), ('VLSI', 'VLSI'), ('Control-System', 'Control Systems'), ('Robotics-and-others', 'Robotics and Others'), ('Microcontrollers', 'Microcontrollers'), ('IOT', 'IOT'), ('Robotics', 'Robotics'), ('Thermodynamics', 'Thermodynamics'), ('Nanatechnology', 'Nanatechnology'), ('Manufacturing', 'Manufacturing'), ('Programming-and-Webix-Club', 'Programming and Webix Club'), ('Electronics-Club', 'Electronics Club'), ('Business-and-Management-Club', 'Business and Management Club'), ('Robotics-Club', 'Robotics Club'), ('CAD-Club', 'CAD Club'), ('Astronomy-and-Physics-Society', 'ASTRONOMY AND PHYSICS SOCIETY'), ('Aakriti-The-Film-Making-and-Photography-Club', 'AAKRITI-THE FILM MAKING AND PHOTOGRAPHY CLUB'), ('AUTOMOTIVE-AND-FABRICATION-CLUB', 'AUTOMOTIVE AND FABRICATION CLUB'), ('RACING-CLUB', 'RACING CLUB'), ('SAAZ-MUSIC-CLUB', 'SAAZ-MUSIC CLUB'), ('SAMVAAD-THE-LITERATURE-AND-QUIZZING-SOCIETY', 'SAMVAAD-THE LITERATURE AND QUIZZING SOCIETY'), ('ABHIVYAKTI-ARTS-CLUB', 'ABHIVYAKTI-ARTS CLUB'), ('JAZBAAT-THE-DRAMATICS-SOCIETY', 'JAZBAAT-THE DRAMATICS SOCIETY'), ('AAVARTAN-DANCE-CLUB', 'AAVARTAN-DANCE CLUB'), ('BADMINTON-CLUB', 'BADMINTON CLUB'), ('LAWN-TENNIS-&-BASKETBALL-CLUB', 'LAWN TENNIS&BASKETBALL CLUB'), ('TABLE-TENNIS', 'TABLE TENNIS'), ('CHESS-&-CARROM-CLUB', 'CHESS & CARROM CLUB'), ('CRICKET-CLUB', 'CRICKET CLUB'), ('FOOTBALL-CLUB', 'FOOTBALL CLUB'), ('VOLLEYBALL-CLUB', 'VOLLEYBALL CLUB'), ('ATHLETICS-CLUB', 'ATHLETICS CLUB'), ('Business-Models-and-Strategies', 'Business Models and strategies'), ('Startups-and-Stratup-Strategies', 'Startups and Stratup Strategies'), ('Entrepreneurship', 'Entrepreneurship'), ('Finance', 'Finance'), ('Marketing', 'Marketing'), ('Stock-Market', 'Stock market'), ('Career-Advice', 'Career Advice'), ('Job-Interviews', 'Job Interviews'), ('Journalism', 'Journalism'), ('Entertainment', 'Entertainment'), ('Hollywood-and-Movies', 'Hollywood and Movies'), ('Music', 'Music'), ('Fashion-and-Style', 'Fashion and Style'), ('IIITDMJ-Campus', 'IIITDMJ-Campus'), ('Jabalpur-City', 'Jabalpur City'), ('IIITDMJ-rules-and-Regulations', 'IIITDMJ rules and regulations'), ('Academic-Office-Stuffs', 'Academic office stuffs'), ('Academic-Courses', 'Academic courses'), ('Central-Mess', 'Central Mess'), ('Alumni', 'Alumni'), ('Hostels', 'Hostels'), ('PHC', 'PHC'), ('Activities', 'Activities'), ('Counselling', 'Counselling'), ('Achievments', 'Achievments'), ('Library', 'Library'), ('Faculty', 'Faculty'), ('Staff', 'Staff'), ('College-Fest', 'College Fest'), ('Workshops', 'Workshops'), ('Campus-Recruitments', 'Campus Recruitments'), ('Jagrati', 'Jagrati'), ('Self-Improvement', 'Self Improvement'), ('Friendship', 'Friendship'), ('Experiences', 'Experiences'), ('Dating-and-Relationships', 'Dating and Relationships'), ('Interpersonal-Interactions', 'Interpersonal Interactions'), ('Life-and-Social-Advice', 'Life and Social Advice'), ('Philosophy', 'Philosophy'), ('Technology-Trends', 'Technology Trends'), ('TED', 'TED'), ('Higher-Education', 'Higher Education'), ('Science-and-Universe', 'Science and Universe'), ('Social-Media', 'Social-Media'), ('Toron', 'Toron'), ('Jobs-and-Internships', 'Jobs and Internships'), ('Btech', 'Btech'), ('Mtech', 'Mtech'), ('Bdes', 'Bdes'), ('Mdes', 'Mdes'), ('Phd', 'Phd'), ('Mechatronics', 'Mechatronics'), ('others', 'others')], default='Web-Development', max_length=100, unique=True)), + ], + ), + migrations.CreateModel( + name='AskaQuestion', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('can_delete', models.BooleanField(default=False)), + ('can_update', models.BooleanField(default=False)), + ('subject', models.CharField(max_length=100)), + ('description', models.CharField(blank=True, default='', max_length=500, null=True)), + ('file', models.FileField(blank=True, null=True, upload_to='feeds/files')), + ('uploaded_at', models.DateTimeField(default=django.utils.timezone.now)), + ('is_liked', models.BooleanField(default=False)), + ('is_requested', models.BooleanField(default=False)), + ('request', models.IntegerField(default=0)), + ('anonymous_ask', models.BooleanField(default=False)), + ('dislikes', models.ManyToManyField(blank=True, default=1, related_name='dislikes', to=settings.AUTH_USER_MODEL)), + ('likes', models.ManyToManyField(blank=True, default=1, related_name='likes', to=settings.AUTH_USER_MODEL)), + ('requests', models.ManyToManyField(blank=True, default=1, related_name='requests', to=settings.AUTH_USER_MODEL)), + ('select_tag', models.ManyToManyField(to='feeds.AllTags')), + ('user', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Comments', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('comment_text', models.CharField(max_length=5000)), + ('commented_at', models.DateTimeField(default=django.utils.timezone.now)), + ('is_liked', models.BooleanField(default=False)), + ('likes_comment', models.ManyToManyField(blank=True, default=1, related_name='likes_comment', to=settings.AUTH_USER_MODEL)), + ('question', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='feeds.askaquestion')), + ('user', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Roles', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('role', models.CharField(max_length=100)), + ('active', models.BooleanField(default=True)), + ('user', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='report', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('report_msg', models.CharField(default='', max_length=1000)), + ('question', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='feeds.askaquestion')), + ('user', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Reply', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('msg', models.CharField(max_length=1000)), + ('content', models.CharField(default='', max_length=5000)), + ('replied_at', models.DateTimeField(default=django.utils.timezone.now)), + ('comment', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='feeds.comments')), + ('replies', models.ManyToManyField(blank=True, default=1, related_name='replies', to=settings.AUTH_USER_MODEL)), + ('user', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='QuestionAccessControl', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('canVote', models.BooleanField()), + ('canAnswer', models.BooleanField()), + ('canComment', models.BooleanField()), + ('created_at', models.DateTimeField(default=django.utils.timezone.now)), + ('posted_by', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='feeds.roles')), + ('question', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='question_list', to='feeds.askaquestion')), + ], + ), + migrations.CreateModel( + name='Profile', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('bio', models.CharField(blank=True, max_length=250)), + ('profile_picture', models.ImageField(blank=True, null=True, upload_to='feeds/profile_pictures')), + ('profile_view', models.IntegerField(default=0)), + ('user', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='AnsweraQuestion', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('content', models.TextField(max_length=1000)), + ('uploaded_at', models.DateTimeField(default=django.utils.timezone.now)), + ('is_liked', models.BooleanField(default=False)), + ('answers', models.ManyToManyField(blank=True, default=1, related_name='answers', to=settings.AUTH_USER_MODEL)), + ('dislikes', models.ManyToManyField(blank=True, default=1, related_name='answer_dislikes', to=settings.AUTH_USER_MODEL)), + ('likes', models.ManyToManyField(blank=True, default=1, related_name='answer_likes', to=settings.AUTH_USER_MODEL)), + ('question', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='feeds.askaquestion')), + ('user', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='tags', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('my_tag', models.CharField(choices=[('CSE', 'CSE'), ('ECE', 'ECE'), ('Mechanical', 'Mechanical'), ('Technical-Clubs', 'Technical Clubs'), ('Cultural-Clubs', 'Cultural Clubs'), ('Sports-Clubs', 'Sports Clubs'), ('Business-and-Career', 'Business and Career'), ('Entertainment', 'Entertainment'), ('IIITDMJ-Campus', 'IIITDMJ Campus'), ('Jabalpur-city', 'Jabalpur city'), ('IIITDMJ-Rules-and-Regulations', 'IIITDMJ rules and regulations'), ('Academics', 'Academics'), ('IIITDMJ', 'IIITDMJ'), ('Life-Relationship-and-Self', 'Life Relationship and Self'), ('Technology-and-Education', 'Technology and Education'), ('Programmes', 'Programmes'), ('Others', 'Others'), ('Design', 'Design')], default=1, max_length=100)), + ('my_subtag', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='feeds.alltags')), + ('user', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + options={ + 'unique_together': {('user', 'my_subtag')}, + }, + ), + migrations.CreateModel( + name='hidden', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('question', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='feeds.askaquestion')), + ('user', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + options={ + 'unique_together': {('user', 'question')}, + }, + ), + ] diff --git a/FusionIIIT/applications/feeds/migrations/__init__.py b/FusionIIIT/applications/feeds/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/filetracking/migrations/0001_initial.py b/FusionIIIT/applications/filetracking/migrations/0001_initial.py new file mode 100644 index 000000000..6924ae1ff --- /dev/null +++ b/FusionIIIT/applications/filetracking/migrations/0001_initial.py @@ -0,0 +1,53 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('globals', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='File', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('subject', models.CharField(blank=True, max_length=100, null=True)), + ('description', models.CharField(blank=True, max_length=400, null=True)), + ('upload_date', models.DateTimeField(auto_now_add=True)), + ('upload_file', models.FileField(blank=True, upload_to='')), + ('is_read', models.BooleanField(default=False)), + ('designation', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='upload_designation', to='globals.designation')), + ('uploader', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='uploaded_files', to='globals.extrainfo')), + ], + options={ + 'db_table': 'File', + }, + ), + migrations.CreateModel( + name='Tracking', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('receive_date', models.DateTimeField(auto_now_add=True)), + ('forward_date', models.DateTimeField(auto_now_add=True)), + ('remarks', models.CharField(blank=True, max_length=250, null=True)), + ('upload_file', models.FileField(blank=True, upload_to='')), + ('is_read', models.BooleanField(default=False)), + ('current_design', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='globals.holdsdesignation')), + ('current_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ('file_id', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='filetracking.file')), + ('receive_design', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='rec_design', to='globals.designation')), + ('receiver_id', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='receiver_id', to=settings.AUTH_USER_MODEL)), + ], + options={ + 'db_table': 'Tracking', + }, + ), + ] diff --git a/FusionIIIT/applications/filetracking/migrations/0002_auto_20240421_1716.py b/FusionIIIT/applications/filetracking/migrations/0002_auto_20240421_1716.py new file mode 100644 index 000000000..04fb1da63 --- /dev/null +++ b/FusionIIIT/applications/filetracking/migrations/0002_auto_20240421_1716.py @@ -0,0 +1,33 @@ +# Generated by Django 3.1.5 on 2024-04-21 17:16 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('filetracking', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='file', + name='file_extra_JSON', + field=models.JSONField(null=True), + ), + migrations.AddField( + model_name='file', + name='src_module', + field=models.CharField(default='filetracking', max_length=100), + ), + migrations.AddField( + model_name='file', + name='src_object_id', + field=models.CharField(max_length=100, null=True), + ), + migrations.AddField( + model_name='tracking', + name='tracking_extra_JSON', + field=models.JSONField(null=True), + ), + ] diff --git a/FusionIIIT/applications/filetracking/migrations/__init__.py b/FusionIIIT/applications/filetracking/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/finance_accounts/migrations/0001_initial.py b/FusionIIIT/applications/finance_accounts/migrations/0001_initial.py new file mode 100644 index 000000000..4dfa8fed7 --- /dev/null +++ b/FusionIIIT/applications/finance_accounts/migrations/0001_initial.py @@ -0,0 +1,100 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Bank', + fields=[ + ('bank_id', models.AutoField(primary_key=True, serialize=False)), + ('Account_no', models.IntegerField(default=0, unique=True)), + ('Bank_Name', models.CharField(max_length=50)), + ('IFSC_Code', models.CharField(max_length=20, unique=True)), + ('Branch_Name', models.CharField(max_length=80)), + ], + ), + migrations.CreateModel( + name='Company', + fields=[ + ('company_id', models.AutoField(primary_key=True, serialize=False)), + ('Company_Name', models.CharField(max_length=20, unique=True)), + ('Start_Date', models.DateField()), + ('End_Date', models.DateField(blank=True, null=True)), + ('Description', models.CharField(max_length=200)), + ('Status', models.CharField(max_length=200)), + ], + ), + migrations.CreateModel( + name='Payments', + fields=[ + ('payment_id', models.AutoField(primary_key=True, serialize=False)), + ('TransactionId', models.IntegerField(default=0, unique=True)), + ('ToWhom', models.CharField(max_length=80)), + ('FromWhom', models.CharField(max_length=80)), + ('Purpose', models.CharField(max_length=20)), + ('Date', models.DateField()), + ], + ), + migrations.CreateModel( + name='Paymentscheme', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('month', models.CharField(max_length=70, null=True)), + ('year', models.IntegerField(null=True)), + ('pf', models.IntegerField(null=True)), + ('name', models.CharField(max_length=70)), + ('designation', models.CharField(max_length=50)), + ('pay', models.IntegerField()), + ('gr_pay', models.IntegerField()), + ('da', models.IntegerField()), + ('ta', models.IntegerField()), + ('hra', models.IntegerField()), + ('fpa', models.IntegerField()), + ('special_allow', models.IntegerField()), + ('nps', models.IntegerField()), + ('gpf', models.IntegerField()), + ('income_tax', models.IntegerField()), + ('p_tax', models.IntegerField()), + ('gslis', models.IntegerField()), + ('gis', models.IntegerField()), + ('license_fee', models.IntegerField()), + ('electricity_charges', models.IntegerField()), + ('others', models.IntegerField()), + ('gr_reduction', models.IntegerField(default=0)), + ('net_payment', models.IntegerField(default=0)), + ('senior_verify', models.BooleanField(default=False)), + ('ass_registrar_verify', models.BooleanField(default=False)), + ('ass_registrar_aud_verify', models.BooleanField(default=False)), + ('registrar_director_verify', models.BooleanField(default=False)), + ('runpayroll', models.BooleanField(default=False)), + ('view', models.BooleanField(default=True)), + ], + ), + migrations.CreateModel( + name='Receipts', + fields=[ + ('receipt_id', models.AutoField(primary_key=True, serialize=False)), + ('TransactionId', models.IntegerField(default=0, unique=True)), + ('ToWhom', models.CharField(max_length=80)), + ('FromWhom', models.CharField(max_length=80)), + ('Purpose', models.CharField(max_length=20)), + ('Date', models.DateField()), + ], + ), + migrations.AddConstraint( + model_name='paymentscheme', + constraint=models.UniqueConstraint(fields=('month', 'year', 'pf'), name='Unique Contraint 1'), + ), + migrations.AddConstraint( + model_name='bank', + constraint=models.UniqueConstraint(fields=('Bank_Name', 'Branch_Name'), name='Unique Contraint 2'), + ), + ] diff --git a/FusionIIIT/applications/finance_accounts/migrations/__init__.py b/FusionIIIT/applications/finance_accounts/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/globals/api/urls.py b/FusionIIIT/applications/globals/api/urls.py index 46ebd1ea0..9f4e6c2b5 100644 --- a/FusionIIIT/applications/globals/api/urls.py +++ b/FusionIIIT/applications/globals/api/urls.py @@ -7,7 +7,6 @@ url(r'^auth/login/', views.login, name='login-api'), url(r'^auth/logout/', views.logout, name='logout-api'), # generic profile endpoint - #code of corresponding view is modifiedtemporary because of mismatched designations url(r'^profile/(?P.+)/', views.profile, name='profile-api'), # current user profile url(r'^profile/', views.profile, name='profile-api'), @@ -15,6 +14,8 @@ url(r'^profile_delete/(?P[0-9]+)/', views.profile_delete, name='delete-profile-api'), url(r'^dashboard/',views.dashboard,name='dashboard-api'), + url(r'^notification/',views.notification,name='notification'), url(r'^notification/read',views.NotificationRead,name='notifications-read') + ] diff --git a/FusionIIIT/applications/globals/api/views.py b/FusionIIIT/applications/globals/api/views.py index 3f30c1028..d6fc75321 100644 --- a/FusionIIIT/applications/globals/api/views.py +++ b/FusionIIIT/applications/globals/api/views.py @@ -17,7 +17,8 @@ from . import serializers - +from applications.globals.models import (ExtraInfo, Feedback, HoldsDesignation, + Issue, IssueImage, DepartmentInfo) from .utils import get_and_authenticate_user from notifications.models import Notification @@ -30,10 +31,33 @@ def login(request): serializer.is_valid(raise_exception=True) user = get_and_authenticate_user(**serializer.validated_data) data = serializers.AuthUserSerializer(user).data + print(user.id) + desig = list(HoldsDesignation.objects.select_related('user','working','designation').all().filter(working = user).values_list('designation')) + print(desig) + b = [i for sub in desig for i in sub] + design = HoldsDesignation.objects.select_related('user','designation').filter(working=user) + + designation=[] + + + + designation.append(str(user.extrainfo.user_type)) + for i in design: + if str(i.designation) != str(user.extrainfo.user_type): + print('-------') + print(i.designation) + print(user.extrainfo.user_type) + print('') + designation.append(str(i.designation)) + for i in designation: + print(i) + + resp = { 'success' : 'True', 'message' : 'User logged in successfully', - 'token' : data['auth_token'] + 'token' : data['auth_token'], + 'designations':designation } return Response(data=resp, status=status.HTTP_200_OK) @@ -71,20 +95,33 @@ def dashboard(request): return Response(data=resp,status=status.HTTP_200_OK) +@api_view(['GET']) +@permission_classes([IsAuthenticated]) +@authentication_classes([TokenAuthentication]) +def notification(request): + + print(request) + notifications=serializers.NotificationSerializer(request.user.notifications.all(),many=True).data + print("get") + print(notifications) + + resp={ + 'notifications':notifications, + } + + return Response(data=resp,status=status.HTTP_200_OK) + @api_view(['GET']) def profile(request, username=None): user = get_object_or_404(User, username=username) if username else request.user user_detail = serializers.UserSerializer(user).data profile = serializers.ExtraInfoSerializer(user.extrainfo).data - - print(user) - if profile['user_type'] == 'student': student = user.extrainfo.student skills = serializers.HasSerializer(student.has_set.all(),many=True).data education = serializers.EducationSerializer(student.education_set.all(), many=True).data course = serializers.CourseSerializer(student.course_set.all(), many=True).data - experience = serializers.ExperienceSerializer(student.experience_set.all(), many=True).datap + experience = serializers.ExperienceSerializer(student.experience_set.all(), many=True).data project = serializers.ProjectSerializer(student.project_set.all(), many=True).data achievement = serializers.AchievementSerializer(student.achievement_set.all(), many=True).data publication = serializers.PublicationSerializer(student.publication_set.all(), many=True).data @@ -105,7 +142,6 @@ def profile(request, username=None): } return Response(data=resp, status=status.HTTP_200_OK) elif profile['user_type'] == 'faculty': - print(username) return redirect('/eis/api/profile/' + (username+'/' if username else '')) @api_view(['PUT']) @@ -259,4 +295,4 @@ def NotificationRead(request): response ={ 'error':'Failed, notification is not marked as seen.' } - return Response(response,status=status.HTTP_404_NOT_FOUND) + return Response(response,status=status.HTTP_404_NOT_FOUND) \ No newline at end of file diff --git a/FusionIIIT/applications/globals/migrations/0001_initial.py b/FusionIIIT/applications/globals/migrations/0001_initial.py new file mode 100644 index 000000000..1fc3a8925 --- /dev/null +++ b/FusionIIIT/applications/globals/migrations/0001_initial.py @@ -0,0 +1,112 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +import applications.globals.models +import datetime +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='DepartmentInfo', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100, unique=True)), + ], + ), + migrations.CreateModel( + name='Designation', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(default='student', max_length=50, unique=True)), + ('full_name', models.CharField(default='Computer Science and Engineering', max_length=100)), + ('type', models.CharField(choices=[('academic', 'Academic Designation'), ('administrative', 'Administrative Designation')], default='academic', max_length=30)), + ], + ), + migrations.CreateModel( + name='ExtraInfo', + fields=[ + ('id', models.CharField(max_length=20, primary_key=True, serialize=False)), + ('title', models.CharField(choices=[('Mr.', 'Mr.'), ('Mrs.', 'Mrs.'), ('Ms.', 'Ms.'), ('Dr.', 'Dr.'), ('Professor', 'Prof.'), ('Shreemati', 'Shreemati'), ('Shree', 'Shree')], default='Dr.', max_length=20)), + ('sex', models.CharField(choices=[('M', 'Male'), ('F', 'Female'), ('O', 'Other')], default='M', max_length=2)), + ('date_of_birth', models.DateField(default=datetime.date(1970, 1, 1))), + ('user_status', models.CharField(choices=[('PRESENT', 'PRESENT'), ('NEW', 'NEW')], default='PRESENT', max_length=50)), + ('address', models.TextField(default='', max_length=1000)), + ('phone_no', models.BigIntegerField(default=9999999999, null=True)), + ('user_type', models.CharField(choices=[('student', 'student'), ('staff', 'staff'), ('compounder', 'compounder'), ('faculty', 'faculty')], max_length=20)), + ('profile_picture', models.ImageField(blank=True, null=True, upload_to='globals/profile_pictures')), + ('about_me', models.TextField(blank=True, default='NA', max_length=1000)), + ('date_modified', models.DateTimeField(blank=True, null=True, verbose_name='date_updated')), + ('department', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='globals.departmentinfo')), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Faculty', + fields=[ + ('id', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='Staff', + fields=[ + ('id', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='IssueImage', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('image', models.ImageField(upload_to=applications.globals.models.Issue_image_directory)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Issue', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('report_type', models.CharField(choices=[('feature_request', 'Feature Request'), ('bug_report', 'Bug Report'), ('security_issue', 'Security Issue'), ('ui_issue', 'User Interface Issue'), ('other', 'Other than the ones listed')], max_length=63)), + ('module', models.CharField(choices=[('academic_information', 'Academic'), ('central_mess', 'Central Mess'), ('complaint_system', 'Complaint System'), ('eis', 'Employee Imformation System'), ('file_tracking', 'File Tracking System'), ('health_center', 'Health Center'), ('leave', 'Leave'), ('online_cms', 'Online Course Management System'), ('placement_cell', 'Placement Cell'), ('scholarships', 'Scholarships'), ('visitor_hostel', 'Visitor Hostel'), ('other', 'Other')], max_length=63)), + ('closed', models.BooleanField(default=False)), + ('text', models.TextField()), + ('title', models.CharField(max_length=255)), + ('timestamp', models.DateTimeField(auto_now=True)), + ('added_on', models.DateTimeField(auto_now_add=True)), + ('images', models.ManyToManyField(blank=True, to='globals.IssueImage')), + ('support', models.ManyToManyField(blank=True, to=settings.AUTH_USER_MODEL)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reported_issues', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Feedback', + fields=[ + ('id', models.AutoField(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', models.TextField(blank=True)), + ('timestamp', models.DateTimeField(auto_now=True)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='fusion_feedback', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='HoldsDesignation', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('held_at', models.DateTimeField(auto_now=True)), + ('designation', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='designees', to='globals.designation')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='holds_designations', to=settings.AUTH_USER_MODEL)), + ('working', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='current_designation', to=settings.AUTH_USER_MODEL)), + ], + options={ + 'unique_together': {('user', 'designation'), ('working', 'designation')}, + }, + ), + ] diff --git a/FusionIIIT/applications/globals/migrations/0002_auto_20231116_2323.py b/FusionIIIT/applications/globals/migrations/0002_auto_20231116_2323.py deleted file mode 100644 index 51f5a76b5..000000000 --- a/FusionIIIT/applications/globals/migrations/0002_auto_20231116_2323.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.5 on 2023-11-16 23:23 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('globals', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='extrainfo', - name='user_status', - field=models.CharField(choices=[('NEW', 'NEW'), ('PRESENT', 'PRESENT')], default='PRESENT', max_length=50), - ), - ] diff --git a/FusionIIIT/applications/globals/migrations/__init__.py b/FusionIIIT/applications/globals/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/globals/static/globals/js/modal.js b/FusionIIIT/applications/globals/static/globals/js/modal.js index 95253fd72..c8d234d5a 100644 --- a/FusionIIIT/applications/globals/static/globals/js/modal.js +++ b/FusionIIIT/applications/globals/static/globals/js/modal.js @@ -63,4 +63,13 @@ function checkOutModal(id) { $(document).ready(function() { $('#check-out-modal-'.concat(id)).modal('show'); }); +} + +function hostelBillModal(id) { + console.log("in modal.js") + + $(document).ready(function() { + $('#hostel-bill-'.concat(id)).modal('show'); + }); + } \ No newline at end of file diff --git a/FusionIIIT/applications/gymkhana/migrations/0001_initial.py b/FusionIIIT/applications/gymkhana/migrations/0001_initial.py new file mode 100644 index 000000000..e140005a1 --- /dev/null +++ b/FusionIIIT/applications/gymkhana/migrations/0001_initial.py @@ -0,0 +1,243 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('academic_information', '0001_initial'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('globals', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Club_info', + fields=[ + ('club_name', models.CharField(max_length=50, primary_key=True, serialize=False)), + ('club_website', models.CharField(default='hello', max_length=150, null=True)), + ('category', models.CharField(choices=[('Technical', 'Technical'), ('Sports', 'Sports'), ('Cultural', 'Cultural')], max_length=50)), + ('club_file', models.FileField(null=True, upload_to='gymkhana/club_poster')), + ('activity_calender', models.FileField(default=' ', null=True, upload_to='gymkhana/activity_calender')), + ('description', models.TextField(max_length=256, null=True)), + ('alloted_budget', models.IntegerField(default=0, null=True)), + ('spent_budget', models.IntegerField(default=0, null=True)), + ('avail_budget', models.IntegerField(default=0, null=True)), + ('status', models.CharField(choices=[('open', 'Open'), ('confirmed', 'Confirmed'), ('rejected', 'Rejected')], default='open', max_length=50)), + ('co_coordinator', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='coco_of', to='academic_information.student')), + ('co_ordinator', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='co_of', to='academic_information.student')), + ('faculty_incharge', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='faculty_incharge_of', to='globals.faculty')), + ], + options={ + 'db_table': 'Club_info', + }, + ), + migrations.CreateModel( + name='Fest_budget', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('fest', models.CharField(choices=[('Abhikalpan', 'Abhikalpan'), ('Gusto', 'Gusto'), ('Tarang', 'Tarang')], max_length=50)), + ('budget_amt', models.IntegerField(default=0)), + ('budget_file', models.FileField(upload_to='uploads/')), + ('year', models.CharField(max_length=10, null=True)), + ('description', models.TextField(max_length=256)), + ('status', models.CharField(choices=[('open', 'Open'), ('confirmed', 'Confirmed'), ('rejected', 'Rejected')], default='open', max_length=50)), + ('remarks', models.CharField(max_length=256, null=True)), + ], + options={ + 'db_table': 'Fest_budget', + }, + ), + migrations.CreateModel( + name='Form_available', + fields=[ + ('roll', models.CharField(default=2016001, max_length=7, primary_key=True, serialize=False)), + ('status', models.BooleanField(default=True, max_length=5)), + ('form_name', models.CharField(default='senate_registration', max_length=30)), + ], + options={ + 'db_table': 'Form_available', + }, + ), + migrations.CreateModel( + name='Registration_form', + fields=[ + ('roll', models.CharField(default='2016001', max_length=7, primary_key=True, serialize=False)), + ('user_name', models.CharField(default='Student', max_length=40)), + ('branch', models.CharField(default='open', max_length=20)), + ('cpi', models.FloatField(default=6.0, max_length=3)), + ('programme', models.CharField(default='B.tech', max_length=20)), + ], + options={ + 'db_table': 'Registration_form', + }, + ), + migrations.CreateModel( + name='Voting_polls', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=200)), + ('description', models.CharField(max_length=5000)), + ('pub_date', models.DateTimeField(default=django.utils.timezone.now)), + ('exp_date', models.DateTimeField(default=django.utils.timezone.now)), + ('created_by', models.CharField(max_length=100, null=True)), + ('groups', models.CharField(default='{}', max_length=500)), + ], + options={ + 'ordering': ['-pub_date'], + }, + ), + migrations.CreateModel( + name='Voting_voters', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('student_id', models.CharField(max_length=50)), + ('poll_event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='gymkhana.voting_polls')), + ], + ), + migrations.CreateModel( + name='Voting_choices', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=200)), + ('description', models.CharField(default='', max_length=500)), + ('votes', models.IntegerField(default=0)), + ('poll_event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='gymkhana.voting_polls')), + ], + options={ + 'get_latest_by': 'votes', + }, + ), + migrations.CreateModel( + name='Session_info', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('venue', models.CharField(choices=[('Classroom', (('CR101', 'CR101'), ('CR102', 'CR102'))), ('Lecturehall', (('L101', 'L101'), ('L102', 'L102')))], max_length=50)), + ('date', models.DateField(default=None)), + ('start_time', models.TimeField(default=None)), + ('end_time', models.TimeField(default=None, null=True)), + ('session_poster', models.ImageField(null=True, upload_to='gymkhana/session_poster')), + ('details', models.TextField(max_length=256, null=True)), + ('status', models.CharField(choices=[('open', 'Open'), ('confirmed', 'Confirmed'), ('rejected', 'Rejected')], default='open', max_length=50)), + ('club', models.ForeignKey(max_length=50, null=True, on_delete=django.db.models.deletion.CASCADE, to='gymkhana.club_info')), + ], + options={ + 'db_table': 'Session_info', + }, + ), + migrations.CreateModel( + name='Other_report', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('event_name', models.CharField(max_length=50)), + ('date', models.DateTimeField(blank=True, default=django.utils.timezone.now, max_length=50)), + ('event_details', models.FileField(upload_to='uploads/')), + ('description', models.TextField(max_length=256, null=True)), + ('incharge', models.ForeignKey(max_length=256, on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + options={ + 'db_table': 'Other_report', + }, + ), + migrations.CreateModel( + name='Event_info', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('event_name', models.CharField(max_length=256)), + ('venue', models.CharField(choices=[('Classroom', (('CR101', 'CR101'), ('CR102', 'CR102'))), ('Lecturehall', (('L101', 'L101'), ('L102', 'L102')))], max_length=50)), + ('incharge', models.CharField(max_length=256)), + ('date', models.DateField(default=None)), + ('start_time', models.TimeField(default=None)), + ('end_time', models.TimeField(default=None, null=True)), + ('event_poster', models.FileField(blank=True, upload_to='gymkhana/event_poster')), + ('details', models.TextField(max_length=256, null=True)), + ('status', models.CharField(choices=[('open', 'Open'), ('confirmed', 'Confirmed'), ('rejected', 'Rejected')], default='open', max_length=50)), + ('club', models.ForeignKey(max_length=50, null=True, on_delete=django.db.models.deletion.CASCADE, to='gymkhana.club_info')), + ], + options={ + 'db_table': 'Event_info', + }, + ), + migrations.CreateModel( + name='Core_team', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('team', models.CharField(max_length=50)), + ('year', models.DateTimeField(max_length=6, null=True)), + ('fest_name', models.CharField(choices=[('Abhikalpan', 'Abhikalpan'), ('Gusto', 'Gusto'), ('Tarang', 'Tarang')], max_length=256)), + ('pda', models.TextField(max_length=256)), + ('remarks', models.CharField(max_length=256, null=True)), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='applied_for', to='academic_information.student')), + ], + options={ + 'db_table': 'Core_team', + }, + ), + migrations.CreateModel( + name='Club_report', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('event_name', models.CharField(max_length=50)), + ('date', models.DateTimeField(blank=True, default=django.utils.timezone.now, max_length=50)), + ('event_details', models.FileField(upload_to='uploads/')), + ('description', models.TextField(max_length=256, null=True)), + ('club', models.ForeignKey(max_length=50, on_delete=django.db.models.deletion.CASCADE, to='gymkhana.club_info')), + ('incharge', models.ForeignKey(max_length=256, on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + options={ + 'db_table': 'Club_report', + }, + ), + migrations.CreateModel( + name='Club_member', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('description', models.TextField(max_length=256, null=True)), + ('status', models.CharField(choices=[('open', 'Open'), ('confirmed', 'Confirmed'), ('rejected', 'Rejected')], default='open', max_length=50)), + ('remarks', models.CharField(max_length=256, null=True)), + ('club', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='this_club', to='gymkhana.club_info')), + ('member', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='member_of', to='academic_information.student')), + ], + options={ + 'db_table': 'Club_member', + }, + ), + migrations.CreateModel( + name='Club_budget', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('budget_for', models.CharField(max_length=256)), + ('budget_amt', models.IntegerField(default=0)), + ('budget_file', models.FileField(upload_to='uploads/')), + ('description', models.TextField(max_length=256)), + ('status', models.CharField(choices=[('open', 'Open'), ('confirmed', 'Confirmed'), ('rejected', 'Rejected')], default='open', max_length=50)), + ('remarks', models.CharField(max_length=256, null=True)), + ('club', models.ForeignKey(max_length=50, on_delete=django.db.models.deletion.CASCADE, to='gymkhana.club_info')), + ], + options={ + 'db_table': 'Club_budget', + }, + ), + migrations.CreateModel( + name='Change_office', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('status', models.CharField(choices=[('open', 'Open'), ('confirmed', 'Confirmed'), ('rejected', 'Rejected')], default='open', max_length=50)), + ('date_request', models.DateTimeField(blank=True, default=django.utils.timezone.now, max_length=50)), + ('date_approve', models.DateTimeField(blank=True, max_length=50)), + ('remarks', models.CharField(max_length=256, null=True)), + ('club', models.ForeignKey(max_length=50, on_delete=django.db.models.deletion.CASCADE, to='gymkhana.club_info')), + ('co_coordinator', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='coco_of', to=settings.AUTH_USER_MODEL)), + ('co_ordinator', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='co_of', to=settings.AUTH_USER_MODEL)), + ], + options={ + 'db_table': 'Change_office', + }, + ), + ] diff --git a/FusionIIIT/applications/gymkhana/migrations/__init__.py b/FusionIIIT/applications/gymkhana/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/health_center/admin.py b/FusionIIIT/applications/health_center/admin.py index 6153211ad..7299eff00 100644 --- a/FusionIIIT/applications/health_center/admin.py +++ b/FusionIIIT/applications/health_center/admin.py @@ -14,7 +14,8 @@ admin.site.register(Prescription) admin.site.register(Medicine) admin.site.register(Prescribed_medicine) -admin.site.register(Schedule) +admin.site.register(Doctors_Schedule) +admin.site.register(Pathologist_Schedule) admin.site.register(Announcements) admin.site.register(SpecialRequest) admin.site.register(Pathologist) \ No newline at end of file diff --git a/FusionIIIT/applications/health_center/api/serializers.py b/FusionIIIT/applications/health_center/api/serializers.py index 11dda4d87..13aa9f049 100644 --- a/FusionIIIT/applications/health_center/api/serializers.py +++ b/FusionIIIT/applications/health_center/api/serializers.py @@ -41,11 +41,18 @@ class Meta: model=Expiry fields=('__all__') -class ScheduleSerializer(serializers.ModelSerializer): +class DoctorsScheduleSerializer(serializers.ModelSerializer): class Meta: - model=Schedule + model=Doctors_Schedule fields=('__all__') +class PathologistScheduleSerializer(serializers.ModelSerializer): + + class Meta: + model=Pathologist_Schedule + fields=('__all__') + + class AnnouncementSerializer(serializers.ModelSerializer): diff --git a/FusionIIIT/applications/health_center/api/views.py b/FusionIIIT/applications/health_center/api/views.py index de9e2d76f..f2f6b69cd 100644 --- a/FusionIIIT/applications/health_center/api/views.py +++ b/FusionIIIT/applications/health_center/api/views.py @@ -57,7 +57,7 @@ def student_request_api(request): doctor_id = request.data['doctor_id'] except: return Response({'message': 'Please enter doctor id'}, status=status.HTTP_404_NOT_FOUND) - request.data['schedule'] =get_object_or_404(Schedule,doctor_id=request.data['doctor_id'],day=day).id + request.data['schedule'] =get_object_or_404(Doctors_Schedule,doctor_id=request.data['doctor_id'],day=day).id comp_id = ExtraInfo.objects.filter(user_type='compounder') serializer = serializers.AppointmentSerializer(data=request.data) if serializer.is_valid(): @@ -109,7 +109,7 @@ def student_view_api(request): medicines = serializers.PrescribedMedicineSerializer(Prescribed_medicine.objects.all(),many=True).data complaints = serializers.ComplaintSerializer(Complaint.objects.filter(user_id=user_id).order_by('-date'),many=True).data days = Constants.DAYS_OF_WEEK - schedule=serializers.ScheduleSerializer(Schedule.objects.all().order_by('doctor_id'),many=True).data + schedule=serializers.ScheduleSerializer(Doctors_Schedule.objects.all().order_by('doctor_id'),many=True).data doctors=serializers.DoctorSerializer(Doctor.objects.filter(active=True),many=True).data count=Counter.objects.all() if count: @@ -170,11 +170,11 @@ def compounder_request_api(request): day = request.data['day'] except: return Response({'message': 'Please enter valid day'}, status=status.HTTP_404_NOT_FOUND) - sc = Schedule.objects.filter(doctor_id=doctor_id, day=day) + sc = Doctor.objects.filter(doctor_id=doctor_id, day=day) if sc.count() == 0: serializer = serializers.ScheduleSerializer(data=request.data) else: - sc = get_object_or_404(Schedule,doctor_id=doctor_id,day=day) + sc = get_object_or_404(Doctors_Schedule,doctor_id=doctor_id,day=day) serializer = serializers.ScheduleSerializer(sc,data=request.data,partial=True) if serializer.is_valid(): serializer.save() @@ -190,7 +190,7 @@ def compounder_request_api(request): day = request.data['day'] except: return Response({'message': 'Please enter valid day'}, status=status.HTTP_404_NOT_FOUND) - sc = get_object_or_404(Schedule,doctor_id=doctor_id,day=day) + sc = get_object_or_404(Doctors_Schedule,doctor_id=doctor_id,day=day) sc.delete() resp={'message':'Schedule Deleted successfully'} return Response(data=resp,status=status.HTTP_200_OK) @@ -326,7 +326,7 @@ def compounder_view_api(request): appointments_future= serializers.AppointmentSerializer(Appointment.objects.filter(date__gt=datetime.now()).order_by('date'),many=True).data stocks = serializers.StockSerializer(Stock.objects.all(),many=True).data days = Constants.DAYS_OF_WEEK - schedule= serializers.ScheduleSerializer(Schedule.objects.all().order_by('doctor_id'),many=True).data + schedule= serializers.ScheduleSerializer(Doctors_Schedule.objects.all().order_by('doctor_id'),many=True).data expired= serializers.ExpirySerializer(Expiry.objects.filter(expiry_date__lt=datetime.now(),returned=False).order_by('expiry_date'),many=True).data live_meds= serializers.ExpirySerializer(Expiry.objects.filter(returned=False).order_by('quantity'),many=True).data count= Counter.objects.all() @@ -338,7 +338,7 @@ def compounder_view_api(request): Counter.objects.create(count=0,fine=0) count= serializers.CounterSerializer(Counter.objects.get()).data hospitals=serializers.HospitalSerializer(Hospital.objects.all(),many=True).data - schedule= serializers.ScheduleSerializer(Schedule.objects.all().order_by('day','doctor_id'),many=True).data + schedule= serializers.ScheduleSerializer(Doctors_Schedule.objects.all().order_by('day','doctor_id'),many=True).data doctors= serializers.DoctorSerializer(Doctor.objects.filter(active=True).order_by('id'),many=True).data resp= {'days': days, 'count': count,'expired':expired, @@ -351,4 +351,3 @@ def compounder_view_api(request): else: resp = {'message': 'invalid request'} return Response(data=resp,status=status.HTTP_404_NOT_FOUND) # compounder view ends - diff --git a/FusionIIIT/applications/health_center/migrations/0001_initial.py b/FusionIIIT/applications/health_center/migrations/0001_initial.py new file mode 100644 index 000000000..ee068099e --- /dev/null +++ b/FusionIIIT/applications/health_center/migrations/0001_initial.py @@ -0,0 +1,168 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('globals', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Appointment', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('description', models.CharField(max_length=50)), + ('date', models.DateField()), + ], + ), + migrations.CreateModel( + name='Counter', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('count', models.IntegerField(default=0)), + ('fine', models.IntegerField(default=0)), + ('doc_count', models.IntegerField(default=0)), + ], + ), + migrations.CreateModel( + name='Doctor', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('doctor_name', models.IntegerField(choices=[(0, 'Dr.Sharma'), (1, 'Dr.Vinay')])), + ('doctor_phone', models.CharField(max_length=10)), + ('specialization', models.CharField(max_length=100)), + ('active', models.BooleanField(default=True)), + ], + ), + migrations.CreateModel( + name='Hospital', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('hospital_name', models.CharField(max_length=100)), + ('phone', models.CharField(max_length=10)), + ], + ), + migrations.CreateModel( + name='Stock', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('medicine_name', models.CharField(max_length=100)), + ('quantity', models.IntegerField(default=0)), + ('threshold', models.IntegerField(default=10)), + ], + ), + migrations.CreateModel( + name='Schedule', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('day', models.IntegerField(choices=[(0, 'Monday'), (1, 'Tuesday'), (2, 'Wednesday'), (3, 'Thursday'), (4, 'Friday'), (5, 'Saturday'), (6, 'Sunday')])), + ('from_time', models.TimeField(blank=True, null=True)), + ('to_time', models.TimeField(blank=True, null=True)), + ('room', models.IntegerField()), + ('date', models.DateField(auto_now=True)), + ('doctor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='health_center.doctor')), + ], + ), + migrations.CreateModel( + name='Prescription', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('details', models.CharField(max_length=100)), + ('date', models.DateField()), + ('test', models.CharField(blank=True, max_length=200, null=True)), + ('appointment', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='health_center.appointment')), + ('doctor_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='health_center.doctor')), + ('user_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='Prescribed_medicine', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('quantity', models.IntegerField(default=0)), + ('days', models.IntegerField(default=0)), + ('times', models.IntegerField(default=0)), + ('medicine_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='health_center.stock')), + ('prescription_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='health_center.prescription')), + ], + ), + migrations.CreateModel( + name='Medicine', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('quantity', models.IntegerField(default=0)), + ('days', models.IntegerField(default=0)), + ('times', models.IntegerField(default=0)), + ('medicine_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='health_center.stock')), + ('patient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='Hospital_admit', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('hospital_doctor', models.CharField(max_length=100)), + ('admission_date', models.DateField()), + ('discharge_date', models.DateField(blank=True, null=True)), + ('reason', models.CharField(max_length=50)), + ('doctor_id', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='health_center.doctor')), + ('hospital_name', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='health_center.hospital')), + ('user_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='Expiry', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('quantity', models.IntegerField(default=0)), + ('supplier', models.CharField(max_length=50)), + ('expiry_date', models.DateField()), + ('returned', models.BooleanField(default=False)), + ('return_date', models.DateField(blank=True, null=True)), + ('date', models.DateField(auto_now=True)), + ('medicine_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='health_center.stock')), + ], + ), + migrations.CreateModel( + name='Complaint', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('feedback', models.CharField(max_length=100, null=True)), + ('complaint', models.CharField(max_length=100, null=True)), + ('date', models.DateField(auto_now=True)), + ('user_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.AddField( + model_name='appointment', + name='doctor_id', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='health_center.doctor'), + ), + migrations.AddField( + model_name='appointment', + name='schedule', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='health_center.schedule'), + ), + migrations.AddField( + model_name='appointment', + name='user_id', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo'), + ), + migrations.CreateModel( + name='Ambulance_request', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date_request', models.DateTimeField()), + ('start_date', models.DateField()), + ('end_date', models.DateField(blank=True, null=True)), + ('reason', models.CharField(max_length=50)), + ('user_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + ] diff --git a/FusionIIIT/applications/health_center/migrations/0002_auto_20240421_1716.py b/FusionIIIT/applications/health_center/migrations/0002_auto_20240421_1716.py new file mode 100644 index 000000000..e507431ce --- /dev/null +++ b/FusionIIIT/applications/health_center/migrations/0002_auto_20240421_1716.py @@ -0,0 +1,104 @@ +# Generated by Django 3.1.5 on 2024-04-21 17:16 + +import datetime +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('globals', '0001_initial'), + ('health_center', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Pathologist', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pathologist_name', models.CharField(choices=[(0, 'Dr.Ajay'), (1, 'Dr.Rahul')], max_length=50)), + ('pathologist_phone', models.CharField(max_length=15)), + ('specialization', models.CharField(max_length=100)), + ('active', models.BooleanField(default=True)), + ], + ), + migrations.RemoveField( + model_name='prescription', + name='appointment', + ), + migrations.AddField( + model_name='counter', + name='patho_count', + field=models.IntegerField(default=0), + ), + migrations.AlterField( + model_name='doctor', + name='doctor_name', + field=models.CharField(choices=[(0, 'Dr.Sharma'), (1, 'Dr.Vinay')], max_length=50), + ), + migrations.AlterField( + model_name='doctor', + name='doctor_phone', + field=models.CharField(max_length=15), + ), + migrations.CreateModel( + name='SpecialRequest', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('request_date', models.DateTimeField(default=datetime.date.today)), + ('brief', models.CharField(default='--', max_length=20)), + ('request_details', models.CharField(max_length=200)), + ('upload_request', models.FileField(blank=True, upload_to='')), + ('status', models.CharField(default='Pending', max_length=50)), + ('remarks', models.CharField(default='--', max_length=300)), + ('request_receiver', models.CharField(default='--', max_length=30)), + ('request_ann_maker', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='special_requests_made', to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='Pathologist_Schedule', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('day', models.CharField(choices=[(0, 'Monday'), (1, 'Tuesday'), (2, 'Wednesday'), (3, 'Thursday'), (4, 'Friday'), (5, 'Saturday'), (6, 'Sunday')], max_length=10)), + ('from_time', models.TimeField(blank=True, null=True)), + ('to_time', models.TimeField(blank=True, null=True)), + ('room', models.IntegerField()), + ('date', models.DateField(auto_now=True)), + ('pathologist_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='health_center.pathologist')), + ], + ), + migrations.CreateModel( + name='Doctors_Schedule', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('day', models.CharField(choices=[(0, 'Monday'), (1, 'Tuesday'), (2, 'Wednesday'), (3, 'Thursday'), (4, 'Friday'), (5, 'Saturday'), (6, 'Sunday')], max_length=10)), + ('from_time', models.TimeField(blank=True, null=True)), + ('to_time', models.TimeField(blank=True, null=True)), + ('room', models.IntegerField()), + ('date', models.DateField(auto_now=True)), + ('doctor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='health_center.doctor')), + ], + ), + migrations.CreateModel( + name='Announcements', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('ann_date', models.DateTimeField(default='04-04-2021')), + ('message', models.CharField(max_length=200)), + ('batch', models.CharField(default='Year-1', max_length=40)), + ('department', models.CharField(default='ALL', max_length=40)), + ('programme', models.CharField(max_length=10)), + ('upload_announcement', models.FileField(default=' ', null=True, upload_to='health_center/upload_announcement')), + ('anno_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='announcements_made', to='globals.extrainfo')), + ], + ), + migrations.AlterField( + model_name='appointment', + name='schedule', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='health_center.doctors_schedule'), + ), + migrations.DeleteModel( + name='Schedule', + ), + ] diff --git a/FusionIIIT/applications/health_center/migrations/__init__.py b/FusionIIIT/applications/health_center/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/health_center/models.py b/FusionIIIT/applications/health_center/models.py index 0c2d6dc39..b22410cd4 100644 --- a/FusionIIIT/applications/health_center/models.py +++ b/FusionIIIT/applications/health_center/models.py @@ -31,7 +31,7 @@ class Constants: class Doctor(models.Model): doctor_name = models.CharField(choices=Constants.NAME_OF_DOCTOR, max_length=50) - doctor_phone = models.IntegerField(max_length=10) + doctor_phone = models.CharField(max_length=15) specialization = models.CharField(max_length=100) active = models.BooleanField(default=True) @@ -40,7 +40,7 @@ def __str__(self): class Pathologist(models.Model): pathologist_name = models.CharField(choices=Constants.NAME_OF_PATHOLOGIST, max_length=50) - pathologist_phone = models.IntegerField(max_length=10) + pathologist_phone = models.CharField(max_length=15) specialization = models.CharField(max_length=100) active = models.BooleanField(default=True) @@ -94,14 +94,24 @@ class Expiry(models.Model): def __str__(self): return self.medicine_id.medicine_name -class Schedule(models.Model): - doctor_id = models.ForeignKey(Doctor,on_delete=models.CASCADE, default=0) - pathologist_id = models.ForeignKey(Pathologist,on_delete=models.CASCADE, default=0) +class Doctors_Schedule(models.Model): + doctor_id = models.ForeignKey(Doctor,on_delete=models.CASCADE) + # pathologist_id = models.ForeignKey(Pathologist,on_delete=models.CASCADE, default=0) + day = models.CharField(choices=Constants.DAYS_OF_WEEK, max_length=10) + from_time = models.TimeField(null=True,blank=True) + to_time = models.TimeField(null=True,blank=True) + room = models.IntegerField() + date = models.DateField(auto_now=True) + +class Pathologist_Schedule(models.Model): + # doctor_id = models.ForeignKey(Doctor,on_delete=models.CASCADE) + pathologist_id = models.ForeignKey(Pathologist,on_delete=models.CASCADE) day = models.CharField(choices=Constants.DAYS_OF_WEEK, max_length=10) from_time = models.TimeField(null=True,blank=True) to_time = models.TimeField(null=True,blank=True) room = models.IntegerField() date = models.DateField(auto_now=True) + @@ -147,7 +157,7 @@ class Appointment(models.Model): user_id = models.ForeignKey(ExtraInfo,on_delete=models.CASCADE) doctor_id = models.ForeignKey(Doctor,on_delete=models.CASCADE) description = models.CharField(max_length=50) - schedule = models.ForeignKey(Schedule, on_delete=models.CASCADE,null=True, blank=True) + schedule = models.ForeignKey(Doctors_Schedule, on_delete=models.CASCADE,null=True, blank=True) date = models.DateField() def __str__(self): @@ -160,7 +170,7 @@ class Prescription(models.Model): details = models.CharField(max_length=100) date = models.DateField() test = models.CharField(max_length=200, null=True, blank=True) - appointment = models.ForeignKey(Appointment, on_delete=models.CASCADE,null=True, blank=True) + # appointment = models.ForeignKey(Appointment, on_delete=models.CASCADE,null=True, blank=True) def __str__(self): return self.details diff --git a/FusionIIIT/applications/health_center/urls.py b/FusionIIIT/applications/health_center/urls.py index b70110a7f..a3969188e 100644 --- a/FusionIIIT/applications/health_center/urls.py +++ b/FusionIIIT/applications/health_center/urls.py @@ -16,7 +16,8 @@ url(r'announcement/', announcement, name='announcement'), #database entry - url(r'^schedule_entry', schedule_entry, name='schedule_entry'), + + url(r'^doctor_entry', doctor_entry, name='doctor_entry'), url(r'^compounder_entry', compounder_entry, name='compounder_entry'), diff --git a/FusionIIIT/applications/health_center/utils.py b/FusionIIIT/applications/health_center/utils.py index 6f0948a54..e0ec56c75 100644 --- a/FusionIIIT/applications/health_center/utils.py +++ b/FusionIIIT/applications/health_center/utils.py @@ -6,7 +6,7 @@ from notification.views import healthcare_center_notif from .models import (Ambulance_request, Appointment, Complaint, Doctor, Expiry, Hospital, Hospital_admit, Medicine, - Prescribed_medicine, Prescription, Schedule, + Prescribed_medicine, Prescription, Doctors_Schedule,Pathologist_Schedule, Stock, Announcements, SpecialRequest, Pathologist) def datetime_handler(date): @@ -81,15 +81,15 @@ def compounder_view_handler(request): return JsonResponse(data) # making announcements from compounder - # elif 'add' in request.POST: - # ven=request.POST.get('venue') - # announcement=request.POST.get('announcement') - # Announcement.objects.create( - # venue=ven, - # announcement=announcement, - # ) - # data={ 'venue':ven, 'announcement':announcement } - # return JsonResponse(data) + elif 'add' in request.POST: + ven=request.POST.get('venue') + announcement=request.POST.get('announcement') + Announcement.objects.create( + venue=ven, + announcement=announcement, + ) + data={ 'venue':ven, 'announcement':announcement } + return JsonResponse(data) # remove doctor by changing active status elif 'remove_doctor' in request.POST: @@ -145,15 +145,15 @@ def compounder_view_handler(request): time_in = request.POST.get('time_in') time_out = request.POST.get('time_out') room = request.POST.get('room') - schedule = Schedule.objects.select_related('doctor_id').filter(doctor_id=doctor, day=day) + schedule = Doctors_Schedule.objects.select_related('doctor_id').filter(doctor_id=doctor, day=day) doctor_id = Doctor.objects.get(id=doctor) if schedule.count() == 0: - Schedule.objects.create(doctor_id=doctor_id, day=day, room=room, + Doctors_Schedule.objects.create(doctor_id=doctor_id, day=day, room=room, from_time=time_in, to_time=time_out) else: - Schedule.objects.select_related('doctor_id').filter(doctor_id=doctor_id, day=day).update(room=room) - Schedule.objects.select_related('doctor_id').filter(doctor_id=doctor_id, day=day).update(from_time=time_in) - Schedule.objects.select_related('doctor_id').filter(doctor_id=doctor_id, day=day).update(to_time=time_out) + Doctors_Schedule.objects.select_related('doctor_id').filter(doctor_id=doctor_id, day=day).update(room=room) + Doctors_Schedule.objects.select_related('doctor_id').filter(doctor_id=doctor_id, day=day).update(from_time=time_in) + Doctors_Schedule.objects.select_related('doctor_id').filter(doctor_id=doctor_id, day=day).update(to_time=time_out) data={'status':1} return JsonResponse(data) @@ -163,7 +163,7 @@ def compounder_view_handler(request): doctor = request.POST.get('doctor') day = request.POST.get('day') - Schedule.objects.select_related('doctor_id').filter(doctor_id=doctor, day=day).delete() + Doctors_Schedule.objects.select_related('doctor_id').filter(doctor_id=doctor, day=day).delete() data = {'status': 1} return JsonResponse(data) @@ -176,14 +176,14 @@ def compounder_view_handler(request): time_out = request.POST.get('time_out') room = request.POST.get('room') pathologist_id = Pathologist.objects.get(id=doctor) - schedule = Schedule.objects.select_related('pathologist_id').filter(pathologist_id=doctor, day=day) + schedule = Pathologist_Schedule.objects.select_related('pathologist_id').filter(pathologist_id=doctor, day=day) if schedule.count() == 0: - Schedule.objects.create(pathologist_id=pathologist_id, day=day, room=room, + Pathologist_Schedule.objects.create(pathologist_id=pathologist_id, day=day, room=room, from_time=time_in, to_time=time_out) else: - Schedule.objects.select_related('pathologist_id').filter(pathologist_id=pathologist_id, day=day).update(room=room) - Schedule.objects.select_related('pathologist_id').filter(pathologist_id=pathologist_id, day=day).update(from_time=time_in) - Schedule.objects.select_related('pathologist_id').filter(pathologist_id=pathologist_id, day=day).update(to_time=time_out) + Pathologist_Schedule.objects.select_related('pathologist_id').filter(pathologist_id=pathologist_id, day=day).update(room=room) + Pathologist_Schedule.objects.select_related('pathologist_id').filter(pathologist_id=pathologist_id, day=day).update(from_time=time_in) + Pathologist_Schedule.objects.select_related('pathologist_id').filter(pathologist_id=pathologist_id, day=day).update(to_time=time_out) data={'status':1} return JsonResponse(data) @@ -193,7 +193,7 @@ def compounder_view_handler(request): doctor = request.POST.get('pathologist') day = request.POST.get('day') - Schedule.objects.select_related('pathologist_id').filter(pathologist_id=doctor, day=day).delete() + Pathologist_Schedule.objects.select_related('pathologist_id').filter(pathologist_id=doctor, day=day).delete() data = {'status': 1} return JsonResponse(data) @@ -372,21 +372,21 @@ def compounder_view_handler(request): doctor = Doctor.objects.get(id=doctor_id) details = request.POST.get('details') tests = request.POST.get('tests') - app = Appointment.objects.select_related('user_id','user_id__user','user_id__department','doctor_id','schedule','schedule__doctor_id').filter(user_id=user_id,date=datetime.now()) - if app: - appointment = Appointment.objects.select_related('user_id','user_id__user','user_id__department','doctor_id','schedule','schedule__doctor_id').get(user_id=user_id,date=datetime.now()) - else: - appointment = None + # app = Appointment.objects.select_related('user_id','user_id__user','user_id__department','doctor_id','schedule','schedule__doctor_id').filter(user_id=user_id,date=datetime.now()) + # if app: + # appointment = Appointment.objects.select_related('user_id','user_id__user','user_id__department','doctor_id','schedule','schedule__doctor_id').get(user_id=user_id,date=datetime.now()) + # else: + # appointment = None Prescription.objects.create( user_id=user, doctor_id=doctor, details=details, date=datetime.now(), test=tests, - appointment=appointment + # appointment=appointment ) query = Medicine.objects.select_related('patient','patient__user','patient__department').filter(patient=user) - prescribe = Prescription.objects.select_related('user_id','user_id__user','user_id__department','doctor_id','appointment','appointment__user_id','appointment__user_id__user','appointment__user_id__department','appointment__doctor_id','appointment__schedule','appointment__schedule__doctor_id').all().last() + prescribe = Prescription.objects.select_related('user_id','user_id__user','user_id__department','doctor_id').all().last() for medicine in query: medicine_id = medicine.medicine_id quantity = medicine.quantity @@ -431,7 +431,7 @@ def compounder_view_handler(request): return JsonResponse(data) elif 'cancel_presc' in request.POST: presc_id = request.POST.get('cancel_presc') - Prescription.objects.select_related('user_id','user_id__user','user_id__department','doctor_id','appointment','appointment__user_id','appointment__user_id__user','appointment__user_id__department','appointment__doctor_id','appointment__schedule','appointment__schedule__doctor_id').filter(pk=presc_id).delete() + Prescription.objects.select_related('user_id','user_id__user','user_id__department','doctor_id').filter(pk=presc_id).delete() data = {'status': 1} return JsonResponse(data) elif 'medicine' in request.POST: @@ -492,10 +492,10 @@ def student_view_handler(request): elif 'doctor' in request.POST: doctor_id = request.POST.get('doctor') - days = Schedule.objects.select_related('doctor_id').filter(doctor_id=doctor_id).values('day') + days =Dotors_Schedule.objects.select_related('doctor_id').filter(doctor_id=doctor_id).values('day') today = datetime.today() time = datetime.today().time() - sch = Schedule.objects.select_related('doctor_id').filter(date__gte=today) + sch = Doctors_Schedule.objects.select_related('doctor_id').filter(date__gte=today) for day in days: for i in range(0, 7): @@ -504,7 +504,7 @@ def student_view_handler(request): d = day.get('day') if dayi == d: - Schedule.objects.select_related('doctor_id').filter(doctor_id=doctor_id, day=dayi).update(date=date) + Doctors_Schedule.objects.select_related('doctor_id').filter(doctor_id=doctor_id, day=dayi).update(date=date) sch.filter(date=today, to_time__lt=time).delete() schedule = sch.filter(doctor_id=doctor_id).order_by('date') @@ -531,4 +531,4 @@ def student_view_handler(request): app_id = request.POST.get('cancel_app') Appointment.objects.select_related('user_id','user_id__user','user_id__department','doctor_id','schedule','schedule__doctor_id').filter(pk=app_id).delete() data = {'status': 1} - return JsonResponse(data) + return JsonResponse(data) \ No newline at end of file diff --git a/FusionIIIT/applications/health_center/views.py b/FusionIIIT/applications/health_center/views.py index 6e32d7b87..8ded8b462 100644 --- a/FusionIIIT/applications/health_center/views.py +++ b/FusionIIIT/applications/health_center/views.py @@ -12,7 +12,7 @@ from notification.views import healthcare_center_notif from .models import (Ambulance_request, Appointment, Complaint, Constants, Counter, Doctor,Pathologist, Expiry, Hospital, Hospital_admit, - Medicine, Prescribed_medicine, Prescription, Schedule, + Medicine, Prescribed_medicine, Prescription, Doctors_Schedule,Pathologist_Schedule, Stock,SpecialRequest,Announcements) from .utils import datetime_handler, compounder_view_handler, student_view_handler @@ -80,20 +80,20 @@ def compounder_view(request): users = ExtraInfo.objects.select_related('user','department').filter(user_type='student') stocks = Stock.objects.all() days = Constants.DAYS_OF_WEEK - schedule=Schedule.objects.select_related('doctor_id').all().order_by('doctor_id') - schedule1=Schedule.objects.select_related('pathologist_id').all().order_by('pathologist_id') + schedule=Doctors_Schedule.objects.select_related('doctor_id').all().order_by('doctor_id') + schedule1=Pathologist_Schedule.objects.select_related('pathologist_id').all().order_by('pathologist_id') expired=Expiry.objects.select_related('medicine_id').filter(expiry_date__lt=datetime.now(),returned=False).order_by('expiry_date') live_meds=Expiry.objects.select_related('medicine_id').filter(returned=False).order_by('quantity') count=Counter.objects.all() - presc_hist=Prescription.objects.select_related('user_id','user_id__user','user_id__department','doctor_id','appointment','appointment__user_id','appointment__user_id__user','appointment__user_id__department','appointment__doctor_id','appointment__schedule','appointment__schedule__doctor_id').all().order_by('-date') - medicines_presc=Prescribed_medicine.objects.select_related('prescription_id','prescription_id__user_id','prescription_id__user_id__user','prescription_id__user_id__department','prescription_id__doctor_id','prescription_id__appointment','prescription_id__appointment__user_id','prescription_id__appointment__user_id__user','prescription_id__appointment__user_id__department','prescription_id__appointment__doctor_id','prescription_id__appointment__schedule','prescription_id__appointment__schedule__doctor_id','medicine_id').all() + presc_hist=Prescription.objects.select_related('user_id','user_id__user','user_id__department','doctor_id').all().order_by('-date') + medicines_presc=Prescribed_medicine.objects.select_related('prescription_id','prescription_id__user_id','prescription_id__user_id__user','prescription_id__user_id__department','prescription_id__doctor_id').all() if count: Counter.objects.all().delete() Counter.objects.create(count=0,fine=0) count=Counter.objects.get() hospitals=Hospital.objects.all() - schedule=Schedule.objects.select_related('doctor_id').all().order_by('day','doctor_id') - schedule1=Schedule.objects.select_related('pathologist_id').all().order_by('day','pathologist_id') + schedule=Doctors_Schedule.objects.select_related('doctor_id').all().order_by('day','doctor_id') + schedule1=Pathologist_Schedule.objects.select_related('pathologist_id').all().order_by('day','pathologist_id') doctors=Doctor.objects.filter(active=True).order_by('id') pathologists=Pathologist.objects.filter(active=True).order_by('id') @@ -142,12 +142,12 @@ def student_view(request): hospitals = Hospital_admit.objects.select_related('user_id','user_id__user','user_id__department','doctor_id').filter(user_id=user_id).order_by('-admission_date') appointments = Appointment.objects.select_related('user_id','user_id__user','user_id__department','doctor_id','schedule','schedule__doctor_id').filter(user_id=user_id).order_by('-date') ambulances = Ambulance_request.objects.select_related('user_id','user_id__user','user_id__department').filter(user_id=user_id).order_by('-date_request') - prescription = Prescription.objects.select_related('user_id','user_id__user','user_id__department','doctor_id','appointment','appointment__user_id','appointment__user_id__user','appointment__user_id__department','appointment__doctor_id','appointment__schedule','appointment__schedule__doctor_id').filter(user_id=user_id).order_by('-date') - medicines = Prescribed_medicine.objects.select_related('prescription_id','prescription_id__user_id','prescription_id__user_id__user','prescription_id__user_id__department','prescription_id__doctor_id','prescription_id__appointment','prescription_id__appointment__user_id','prescription_id__appointment__user_id__user','prescription_id__appointment__user_id__department','prescription_id__appointment__doctor_id','prescription_id__appointment__schedule','prescription_id__appointment__schedule__doctor_id','medicine_id').all() + prescription = Prescription.objects.select_related('user_id','user_id__user','user_id__department','doctor_id').filter(user_id=user_id).order_by('-date') + medicines = Prescribed_medicine.objects.select_related('prescription_id','prescription_id__user_id','prescription_id__user_id__user','prescription_id__user_id__department','prescription_id__doctor_id','medicine_id').all() complaints = Complaint.objects.select_related('user_id','user_id__user','user_id__department').filter(user_id=user_id).order_by('-date') days = Constants.DAYS_OF_WEEK - schedule=Schedule.objects.select_related('doctor_id').all().order_by('doctor_id') - schedule1=Schedule.objects.select_related('pathologist_id').all().order_by('pathologist_id') + schedule=Doctors_Schedule.objects.select_related('doctor_id').all().order_by('doctor_id') + schedule1=Pathologist_Schedule.objects.select_related('pathologist_id').all().order_by('pathologist_id') doctors=Doctor.objects.filter(active=True) pathologists=Pathologist.objects.filter(active=True) diff --git a/FusionIIIT/applications/hostel_management/migrations/0001_initial.py b/FusionIIIT/applications/hostel_management/migrations/0001_initial.py new file mode 100644 index 000000000..ef1639d4c --- /dev/null +++ b/FusionIIIT/applications/hostel_management/migrations/0001_initial.py @@ -0,0 +1,137 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import django.db.models.fields.related +import django.utils.timezone + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('academic_information', '0001_initial'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('globals', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Hall', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('hall_id', models.CharField(max_length=10)), + ('hall_name', models.CharField(max_length=50)), + ('max_accomodation', models.IntegerField(default=0)), + ('number_students', models.PositiveIntegerField(default=0)), + ], + ), + migrations.CreateModel( + name='WorkerReport', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('worker_id', models.CharField(max_length=10)), + ('worker_name', models.CharField(max_length=50)), + ('year', models.IntegerField(default=2020)), + ('month', models.IntegerField(default=1)), + ('absent', models.IntegerField(default=0)), + ('total_day', models.IntegerField(default=31)), + ('remark', models.CharField(max_length=100)), + ('hall', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='hostel_management.hall')), + ], + ), + migrations.CreateModel( + name='StaffSchedule', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('staff_type', models.CharField(default='Caretaker', max_length=100)), + ('day', models.CharField(choices=[('Monday', 'Monday'), ('Tuesday', 'Tuesday'), ('Wednesday', 'Wednesday'), ('Thursday', 'Thursday'), ('Friday', 'Friday'), ('Saturday', 'Saturday'), ('Sunday', 'Sunday')], max_length=15)), + ('start_time', models.TimeField(blank=True, null=True)), + ('end_time', models.TimeField(blank=True, null=True)), + ('hall', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='hostel_management.hall')), + ('staff_id', models.ForeignKey(on_delete=django.db.models.fields.related.ForeignKey, to='globals.staff')), + ], + ), + migrations.CreateModel( + name='HostelStudentAttendence', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date', models.DateField()), + ('present', models.BooleanField()), + ('hall', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='hostel_management.hall')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='HostelNoticeBoard', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('head_line', models.CharField(max_length=100)), + ('content', models.FileField(blank=True, null=True, upload_to='hostel_management/')), + ('description', models.TextField(blank=True)), + ('hall', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='hostel_management.hall')), + ('posted_by', models.ForeignKey(on_delete=django.db.models.fields.related.ForeignKey, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='HallWarden', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('faculty', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.faculty')), + ('hall', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='hostel_management.hall')), + ], + ), + migrations.CreateModel( + name='HallRoom', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('room_no', models.CharField(max_length=4)), + ('block_no', models.CharField(max_length=1)), + ('room_cap', models.IntegerField(default=3)), + ('room_occupied', models.IntegerField(default=0)), + ('hall', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='hostel_management.hall')), + ], + ), + migrations.CreateModel( + name='HallCaretaker', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('hall', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='hostel_management.hall')), + ('staff', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.staff')), + ], + ), + migrations.CreateModel( + name='GuestRoomDetail', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('room_no', models.CharField(max_length=4, unique=True)), + ('room_status', models.CharField(choices=[('Booked', 'Booked'), ('CheckedIn', 'Checked In'), ('Available', 'Available'), ('UnderMaintenance', 'Under Maintenance')], default='Available', max_length=20)), + ('hall', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='hostel_management.hall')), + ], + ), + migrations.CreateModel( + name='GuestRoomBooking', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('guest_name', models.CharField(max_length=100)), + ('guest_phone', models.CharField(max_length=15)), + ('guest_email', models.CharField(blank=True, max_length=40)), + ('guest_address', models.TextField(blank=True)), + ('rooms_required', models.IntegerField(blank=True, default=1, null=True)), + ('total_guest', models.IntegerField(default=1)), + ('purpose', models.TextField()), + ('arrival_date', models.DateField()), + ('arrival_time', models.TimeField()), + ('departure_date', models.DateField()), + ('departure_time', models.TimeField()), + ('status', models.CharField(choices=[('Confirmed', 'Confirmed'), ('Pending', 'Pending'), ('Rejected', 'Rejected'), ('Canceled', 'Canceled'), ('CancelRequested', 'Cancel Requested'), ('CheckedIn', 'Checked In'), ('Complete', 'Complete'), ('Forward', 'Forward')], default='Pending', max_length=15)), + ('booking_date', models.DateField(default=django.utils.timezone.now)), + ('nationality', models.CharField(blank=True, max_length=20)), + ('guest_room_id', models.ManyToManyField(to='hostel_management.GuestRoomDetail')), + ('hall', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='hostel_management.hall')), + ('intender', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/FusionIIIT/applications/hostel_management/migrations/__init__.py b/FusionIIIT/applications/hostel_management/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/hr2/migrations/0001_initial.py b/FusionIIIT/applications/hr2/migrations/0001_initial.py new file mode 100644 index 000000000..83b197c8f --- /dev/null +++ b/FusionIIIT/applications/hr2/migrations/0001_initial.py @@ -0,0 +1,91 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +import django.core.validators +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('globals', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='WorkAssignemnt', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('start_date', models.DateField(blank=True, max_length=6, null=True)), + ('end_date', models.DateField(blank=True, max_length=6, null=True)), + ('job_title', models.CharField(default='', max_length=50)), + ('orders_copy', models.FileField(blank=True, null=True, upload_to='')), + ('extra_info', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='ForeignService', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('start_date', models.DateField(blank=True, max_length=6, null=True)), + ('end_date', models.DateField(blank=True, max_length=6, null=True)), + ('job_title', models.CharField(default='', max_length=50)), + ('organisation', models.CharField(default='', max_length=100)), + ('description', models.CharField(default='', max_length=300)), + ('salary_source', models.CharField(default='', max_length=100)), + ('designation', models.CharField(default='', max_length=100)), + ('service_type', models.CharField(choices=[('LIEN', 'LIEN'), ('DEPUTATION', 'DEPUTATION'), ('OTHER', 'OTHER')], max_length=100)), + ('extra_info', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='Employee', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('father_name', models.CharField(default='', max_length=40)), + ('mother_name', models.CharField(default='', max_length=40)), + ('religion', models.CharField(default='', max_length=40)), + ('category', models.CharField(choices=[('SC', 'SC'), ('ST', 'ST'), ('OBC', 'OBC'), ('GENERAL', 'GENERAL'), ('PWD', 'PWD')], max_length=50)), + ('cast', models.CharField(default='', max_length=40)), + ('home_state', models.CharField(default='', max_length=40)), + ('home_district', models.CharField(default='', max_length=40)), + ('date_of_joining', models.DateField(blank=True, null=True)), + ('designation', models.CharField(default='', max_length=40)), + ('blood_group', models.CharField(choices=[('AB+', 'AB+'), ('O+', 'O+'), ('AB-', 'AB-'), ('B+', 'B+'), ('B-', 'B-'), ('O-', 'O-'), ('A+', 'A+'), ('A-', 'A-')], max_length=50)), + ('extra_info', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='EmpDependents', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(default='', max_length=100)), + ('gender', models.CharField(choices=[('M', 'Male'), ('F', 'Female'), ('O', 'Other')], max_length=50)), + ('dob', models.DateField(max_length=6, null=True)), + ('relationship', models.CharField(default='', max_length=40)), + ('extra_info', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='EmpConfidentialDetails', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('aadhar_no', models.BigIntegerField(default=0, max_length=12, validators=[django.core.validators.MaxValueValidator(999999999999), django.core.validators.MinValueValidator(99999999999)])), + ('maritial_status', models.CharField(choices=[('MARRIED', 'MARRIED'), ('UN-MARRIED', 'UN-MARRIED'), ('WIDOW', 'WIDOW')], max_length=50)), + ('bank_account_no', models.IntegerField(default=0)), + ('salary', models.IntegerField(default=0)), + ('extra_info', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='EmpAppraisalForm', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('year', models.DateField(blank=True, max_length=6, null=True)), + ('appraisal_form', models.FileField(default=' ', null=True, upload_to='Hr2/appraisal_form')), + ('extra_info', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + ] diff --git a/FusionIIIT/applications/hr2/migrations/__init__.py b/FusionIIIT/applications/hr2/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/income_expenditure/migrations/0001_initial.py b/FusionIIIT/applications/income_expenditure/migrations/0001_initial.py new file mode 100644 index 000000000..1501efdb9 --- /dev/null +++ b/FusionIIIT/applications/income_expenditure/migrations/0001_initial.py @@ -0,0 +1,80 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='BalanceSheet', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('balanceSheet', models.FileField(upload_to='')), + ('date_added', models.CharField(max_length=10)), + ], + ), + migrations.CreateModel( + name='ExpenditureType', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('expenditure_type', models.CharField(max_length=100)), + ], + ), + migrations.CreateModel( + name='FixedAttributes', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('attribute', models.CharField(max_length=100)), + ('value', models.IntegerField(default=0)), + ], + ), + migrations.CreateModel( + name='IncomeSource', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('income_source', models.CharField(max_length=100)), + ], + ), + migrations.CreateModel( + name='otherExpense', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('spent_on', models.CharField(max_length=100)), + ('status', models.CharField(max_length=20)), + ('name', models.CharField(max_length=30)), + ('userid', models.CharField(max_length=10)), + ('amount', models.IntegerField()), + ('date_added', models.DateField()), + ('remarks', models.CharField(blank=True, max_length=100)), + ], + ), + migrations.CreateModel( + name='Income', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('amount', models.IntegerField()), + ('date_added', models.DateField()), + ('remarks', models.CharField(blank=True, max_length=100)), + ('receipt', models.FileField(blank=True, upload_to='iemodule/income_receipts')), + ('source', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='incomeSource', to='income_expenditure.incomesource')), + ], + ), + migrations.CreateModel( + name='Expenditure', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('amount', models.IntegerField()), + ('date_added', models.DateField()), + ('remarks', models.CharField(max_length=100)), + ('expenditure_receipt', models.FileField(upload_to='iemodule/expenditure_receipts')), + ('spent_on', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='expenditureType', to='income_expenditure.expendituretype')), + ], + ), + ] diff --git a/FusionIIIT/applications/income_expenditure/migrations/__init__.py b/FusionIIIT/applications/income_expenditure/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/iwdModuleV2/migrations/0001_initial.py b/FusionIIIT/applications/iwdModuleV2/migrations/0001_initial.py new file mode 100644 index 000000000..bbde8386c --- /dev/null +++ b/FusionIIIT/applications/iwdModuleV2/migrations/0001_initial.py @@ -0,0 +1,226 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='FinancialBidDetails', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sNo', models.CharField(max_length=200)), + ('description', models.CharField(max_length=200)), + ], + ), + migrations.CreateModel( + name='Projects', + fields=[ + ('id', models.CharField(max_length=200, primary_key=True, serialize=False)), + ], + ), + migrations.CreateModel( + name='PageOneDetails', + fields=[ + ('id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='iwdModuleV2.projects')), + ('aESFile', models.FileField(null=True, upload_to='')), + ('dASA', models.DateField(null=True)), + ('nitNiqNo', models.IntegerField(null=True)), + ('proTh', models.CharField(max_length=200, null=True)), + ('emdDetails', models.CharField(max_length=200, null=True)), + ('preBidDate', models.DateField(max_length=200, null=True)), + ('technicalBidDate', models.DateField(null=True)), + ('financialBidDate', models.DateField(null=True)), + ], + ), + migrations.CreateModel( + name='PageThreeDetails', + fields=[ + ('id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='iwdModuleV2.projects')), + ('extensionOfTime', models.FileField(upload_to='')), + ('actualCostOfBuilding', models.IntegerField()), + ], + ), + migrations.CreateModel( + name='PageTwoDetails', + fields=[ + ('id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='iwdModuleV2.projects')), + ('corrigendum', models.FileField(null=True, upload_to='')), + ('addendum', models.FileField(null=True, upload_to='')), + ('preBidMeetingDetails', models.FileField(null=True, upload_to='')), + ('technicalBidMeetingDetails', models.FileField(null=True, upload_to='')), + ('technicallyQualifiedAgencies', models.CharField(max_length=200, null=True)), + ('financialBidMeetingDetails', models.FileField(null=True, upload_to='')), + ('nameOfLowestAgency', models.CharField(max_length=200, null=True)), + ('letterOfIntent', models.FileField(null=True, upload_to='')), + ('workOrder', models.FileField(null=True, upload_to='')), + ('agreementLetter', models.FileField(null=True, upload_to='')), + ('milestones', models.FileField(null=True, upload_to='')), + ], + ), + migrations.CreateModel( + name='WorkOrderForm', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('issueDate', models.DateField()), + ('nitNiqNo', models.IntegerField()), + ('agency', models.CharField(max_length=200)), + ('name', models.CharField(max_length=200)), + ('amount', models.IntegerField()), + ('time', models.IntegerField()), + ('monthDay', models.IntegerField()), + ('startDate', models.DateField()), + ('completionDate', models.DateField()), + ('deposit', models.IntegerField()), + ('contractDay', models.IntegerField()), + ('key', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='iwdModuleV2.projects', unique=True)), + ], + ), + migrations.CreateModel( + name='TechnicalBidDetails', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sNo', models.CharField(max_length=200)), + ('requirements', models.CharField(max_length=200)), + ('key', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='iwdModuleV2.projects', unique=True)), + ], + ), + migrations.CreateModel( + name='TechnicalBidContractorDetails', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=200)), + ('description', models.CharField(max_length=200)), + ('key', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='iwdModuleV2.technicalbiddetails')), + ], + ), + migrations.CreateModel( + name='PreBidDetails', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sNo', models.CharField(max_length=200)), + ('nameOfParticipants', models.CharField(max_length=200)), + ('issuesRaised', models.CharField(max_length=200)), + ('responseDecision', models.CharField(max_length=200)), + ('key', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='iwdModuleV2.projects', unique=True)), + ], + ), + migrations.CreateModel( + name='NoOfTechnicalBidTimes', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('number', models.IntegerField()), + ('key', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='iwdModuleV2.projects', unique=True)), + ], + ), + migrations.CreateModel( + name='Milestones', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sNo', models.CharField(max_length=200)), + ('description', models.CharField(max_length=200)), + ('timeAllowed', models.IntegerField()), + ('amountWithheld', models.IntegerField()), + ('key', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='iwdModuleV2.projects')), + ], + ), + migrations.CreateModel( + name='LetterOfIntentDetails', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('nitNiqNo', models.IntegerField()), + ('dateOfOpening', models.DateField()), + ('agency', models.CharField(max_length=200)), + ('name', models.CharField(max_length=200)), + ('tenderValue', models.IntegerField()), + ('key', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='iwdModuleV2.projects', unique=True)), + ], + ), + migrations.CreateModel( + name='FinancialContractorDetails', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=200)), + ('estimatedCost', models.IntegerField()), + ('percentageRelCost', models.IntegerField()), + ('perFigures', models.IntegerField()), + ('totalCost', models.IntegerField()), + ('key', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='iwdModuleV2.financialbiddetails')), + ], + ), + migrations.AddField( + model_name='financialbiddetails', + name='key', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='iwdModuleV2.projects', unique=True), + ), + migrations.CreateModel( + name='ExtensionOfTimeDetails', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sNo', models.CharField(max_length=200)), + ('hindrance', models.CharField(max_length=200)), + ('periodOfHindrance', models.IntegerField()), + ('periodOfExtension', models.IntegerField()), + ('key', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='iwdModuleV2.projects')), + ], + ), + migrations.CreateModel( + name='CorrigendumTable', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('issueDate', models.DateField()), + ('nitNo', models.IntegerField()), + ('name', models.CharField(max_length=200)), + ('lastDate', models.DateField(null=True)), + ('lastTime', models.TimeField()), + ('env1BidOpeningDate', models.DateField()), + ('env1BidOpeningTime', models.TimeField()), + ('env2BidOpeningDate', models.DateField()), + ('env2BidOpeningTime', models.TimeField()), + ('key', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='iwdModuleV2.projects', unique=True)), + ], + ), + migrations.CreateModel( + name='Agreement', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date', models.DateField()), + ('agencyName', models.CharField(max_length=200)), + ('workName', models.CharField(max_length=200)), + ('fdrSum', models.IntegerField()), + ('key', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='iwdModuleV2.projects', unique=True)), + ], + ), + migrations.CreateModel( + name='AESDetails', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sNo', models.CharField(max_length=100)), + ('descOfItems', models.CharField(max_length=200)), + ('unit', models.CharField(max_length=200)), + ('quantity', models.IntegerField()), + ('rate', models.IntegerField()), + ('amount', models.IntegerField()), + ('key', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='iwdModuleV2.projects')), + ], + ), + migrations.CreateModel( + name='Addendum', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('issueDate', models.DateField()), + ('nitNiqNo', models.IntegerField()), + ('name', models.CharField(max_length=200)), + ('openDate', models.DateField()), + ('openTime', models.TimeField()), + ('key', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='iwdModuleV2.projects', unique=True)), + ], + ), + ] diff --git a/FusionIIIT/applications/iwdModuleV2/migrations/__init__.py b/FusionIIIT/applications/iwdModuleV2/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/leave/migrations/0001_initial.py b/FusionIIIT/applications/leave/migrations/0001_initial.py new file mode 100644 index 000000000..d9ce4e044 --- /dev/null +++ b/FusionIIIT/applications/leave/migrations/0001_initial.py @@ -0,0 +1,169 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('globals', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='ClosedHoliday', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date', models.DateField()), + ], + ), + migrations.CreateModel( + name='Leave', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('purpose', models.CharField(blank=True, default='', max_length=500)), + ('status', models.CharField(choices=[('pending', 'Pending'), ('accepted', 'Accepted'), ('rejected', 'Rejected'), ('forwarded', 'Forwarded'), ('auto rejected', 'Auto Rejected')], default='pending', max_length=20)), + ('timestamp', models.DateTimeField(auto_now=True, null=True)), + ('extra_info', models.CharField(blank=True, default='', max_length=200, null=True)), + ('applicant', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='all_leaves', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='LeaveOffline', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('purpose', models.CharField(blank=True, default='', max_length=500)), + ('timestamp', models.DateTimeField(auto_now=True, null=True)), + ('application_date', models.DateField()), + ('applicant', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='all_leaves_offline', to=settings.AUTH_USER_MODEL)), + ('leave_user_select', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='LeaveType', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=40)), + ('max_in_year', models.IntegerField(default=2)), + ('requires_proof', models.BooleanField(default=False)), + ('authority_forwardable', models.BooleanField(default=False)), + ('for_faculty', models.BooleanField(default=True)), + ('for_staff', models.BooleanField(default=True)), + ('for_student', models.BooleanField(default=False)), + ('requires_address', models.BooleanField(default=False)), + ], + ), + migrations.CreateModel( + name='RestrictedHoliday', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date', models.DateField()), + ], + ), + migrations.CreateModel( + name='VacationHoliday', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date', models.DateField()), + ], + ), + migrations.CreateModel( + name='ReplacementSegmentOffline', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('replacement_type', models.CharField(choices=[('academic', 'Academic Replacement'), ('administrative', 'Administrative Replacement')], default='academic', max_length=20)), + ('start_date', models.DateField()), + ('end_date', models.DateField()), + ('leave', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='replace_segments_offline', to='leave.leaveoffline')), + ('replacer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='rep_requests_offline', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='ReplacementSegment', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('replacement_type', models.CharField(choices=[('academic', 'Academic Replacement'), ('administrative', 'Administrative Replacement')], default='academic', max_length=20)), + ('start_date', models.DateField()), + ('end_date', models.DateField()), + ('status', models.CharField(choices=[('pending', 'Pending'), ('accepted', 'Accepted'), ('rejected', 'Rejected'), ('forwarded', 'Forwarded'), ('auto rejected', 'Auto Rejected')], default='pending', max_length=20)), + ('remark', models.CharField(blank=True, default='', max_length=50, null=True)), + ('leave', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='replace_segments', to='leave.leave')), + ('replacer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='rep_requests', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='LeaveSegmentOffline', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('document', models.FileField(null=True, upload_to='leave/leave_documents/')), + ('start_date', models.DateField()), + ('start_half', models.BooleanField(default=False)), + ('end_date', models.DateField()), + ('end_half', models.BooleanField(default=False)), + ('address', models.CharField(blank=True, default='', max_length=500, null=True)), + ('leave', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='segments_offline', to='leave.leaveoffline')), + ('leave_type', models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='leave.leavetype')), + ], + ), + migrations.CreateModel( + name='LeaveSegment', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('document', models.FileField(null=True, upload_to='leave/leave_documents/')), + ('start_date', models.DateField()), + ('start_half', models.BooleanField(default=False)), + ('end_date', models.DateField()), + ('end_half', models.BooleanField(default=False)), + ('address', models.CharField(blank=True, default='', max_length=500, null=True)), + ('leave', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='segments', to='leave.leave')), + ('leave_type', models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='leave.leavetype')), + ], + ), + migrations.CreateModel( + name='LeavesCount', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('year', models.IntegerField(default=2019)), + ('remaining_leaves', models.FloatField(default=2.0)), + ('leave_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='leave.leavetype')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='leave_balance', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='LeaveRequest', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('remark', models.CharField(blank=True, max_length=50, null=True)), + ('permission', models.CharField(choices=[('intermediary', 'Intermediary Staff'), ('sanc_auth', 'Leave Sanctioning Authority'), ('sanc_off', 'Leave Sanctioning Officer')], default='sanc_auth', max_length=20)), + ('status', models.CharField(choices=[('pending', 'Pending'), ('accepted', 'Accepted'), ('rejected', 'Rejected'), ('forwarded', 'Forwarded'), ('auto rejected', 'Auto Rejected')], default='pending', max_length=20)), + ('leave', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='leave_requests', to='leave.leave')), + ('requested_from', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='all_leave_requests', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='LeaveMigration', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('type_migration', models.CharField(choices=[('revert', 'Revert Responsibilities'), ('transfer', 'Transfer Responsibilities')], default='transfer', max_length=10)), + ('on_date', models.DateField()), + ('replacement_type', models.CharField(choices=[('academic', 'Academic Replacement'), ('administrative', 'Administrative Replacement')], default='academic', max_length=20)), + ('leave', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='all_migrations', to='leave.leave')), + ('replacee', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='replacee_migrations', to=settings.AUTH_USER_MODEL)), + ('replacer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='replacer_migrations', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='LeaveAdministrators', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('authority', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='sanc_authority_of', to='globals.designation')), + ('officer', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='sanc_officer_of', to='globals.designation')), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='leave_admins', to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/FusionIIIT/applications/leave/migrations/__init__.py b/FusionIIIT/applications/leave/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/notifications_extension/migrations/__init__.py b/FusionIIIT/applications/notifications_extension/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/office_module/migrations/0001_initial.py b/FusionIIIT/applications/office_module/migrations/0001_initial.py new file mode 100644 index 000000000..521c8e886 --- /dev/null +++ b/FusionIIIT/applications/office_module/migrations/0001_initial.py @@ -0,0 +1,492 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +import datetime +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('academic_information', '0001_initial'), + ('filetracking', '0001_initial'), + ('leave', '0001_initial'), + ('globals', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Budget', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('budget_type', models.CharField(max_length=20)), + ('club_type', models.CharField(choices=[('TECHNICAL', 'technical'), ('CULTURAL', 'cultural'), ('SPORTS', 'sports')], default='', max_length=20)), + ('budget_allocated', models.PositiveIntegerField(default=0)), + ('budget_expenditure', models.PositiveIntegerField(default=0)), + ('budget_available', models.PositiveIntegerField(default=0)), + ], + ), + migrations.CreateModel( + name='hostel_allotment', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('program', models.CharField(choices=[('BTECH', 'btech'), ('BDES', 'bdes'), ('MTECH', 'mtech'), ('MDES', 'mdes'), ('PHD', 'phd')], default='', max_length=30)), + ('year', models.IntegerField(default=2016)), + ('gender', models.CharField(choices=[('MALE', 'male'), ('FEMALE', 'female')], default='', max_length=10)), + ('hall_no', models.CharField(choices=[('HALL-1-BOYS', 'hall-1-boys'), ('HALL-1-GIRLS', 'hall-1-girls'), ('HALL-3', 'hall-3'), ('HALL-4', 'hall-4')], default='', max_length=15)), + ('number_students', models.PositiveIntegerField(default=0)), + ('remark', models.CharField(max_length=200)), + ], + options={ + 'db_table': 'hostel_allotment', + }, + ), + migrations.CreateModel( + name='hostel_capacity', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('name', models.CharField(choices=[('HALL-1-BOYS', 'hall-1-boys'), ('HALL-1-GIRLS', 'hall-1-girls'), ('HALL-3', 'hall-3'), ('HALL-4', 'hall-4')], default='', max_length=15)), + ('current_capacity', models.PositiveIntegerField(default=0)), + ('total_capacity', models.PositiveIntegerField(default=0)), + ], + options={ + 'db_table': 'hostel_capacity', + }, + ), + migrations.CreateModel( + name='Lab', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('lab', models.CharField(max_length=10)), + ('lab_instructor', models.CharField(max_length=30)), + ('day', models.CharField(choices=[('Monday', 'Monday'), ('Tuesday', 'Tuesday'), ('Wednesday', 'Wednesday'), ('Thursday', 'Thursday'), ('Friday', 'Friday')], default='Monday', max_length=10)), + ('s_time', models.CharField(default='0:00', max_length=6)), + ('e_time', models.CharField(default='0:00', max_length=6)), + ], + options={ + 'db_table': 'Lab', + }, + ), + migrations.CreateModel( + name='quotations', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('quotation1', models.FileField(upload_to='')), + ('quotation2', models.FileField(upload_to='')), + ('quotation3', models.FileField(upload_to='')), + ], + options={ + 'db_table': 'quotations', + }, + ), + migrations.CreateModel( + name='Registrar', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('file_name', models.CharField(max_length=50)), + ('date', models.DateField()), + ('purpose', models.CharField(max_length=100)), + ('status', models.CharField(choices=[('0', 'unseen'), ('1', 'seen')], default=0, max_length=1)), + ('file', models.FileField(upload_to='')), + ], + ), + migrations.CreateModel( + name='registrar_create_doc', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('file_name', models.CharField(max_length=50)), + ('purpose', models.CharField(max_length=100)), + ('Description', models.CharField(max_length=200)), + ('file', models.FileField(upload_to='')), + ], + ), + migrations.CreateModel( + name='registrar_director_section', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('file_name', models.CharField(max_length=50)), + ('date', models.DateField()), + ('purpose', models.CharField(max_length=100)), + ('status', models.CharField(choices=[('0', 'unseen'), ('1', 'seen')], default=0, max_length=1)), + ], + ), + migrations.CreateModel( + name='registrar_establishment_section', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('person_name', models.CharField(max_length=50)), + ('person_mail_id', models.CharField(default='xyz', max_length=50)), + ('date', models.DateField()), + ('duration', models.IntegerField()), + ('post', models.CharField(max_length=100)), + ('file', models.FileField(upload_to='')), + ], + ), + migrations.CreateModel( + name='registrar_finance_section', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('file_name', models.CharField(max_length=50)), + ('date', models.DateField()), + ('purpose', models.CharField(max_length=100)), + ('status', models.IntegerField(choices=[('0', 'unseen'), ('1', 'seen')])), + ('file', models.FileField(upload_to='')), + ], + ), + migrations.CreateModel( + name='registrar_purchase_sales_section', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('file_name', models.CharField(max_length=50)), + ('member1', models.CharField(max_length=50)), + ('member2', models.CharField(max_length=50)), + ('member3', models.CharField(max_length=50)), + ('date', models.DateField()), + ('purpose', models.CharField(max_length=100)), + ('status', models.IntegerField(choices=[('0', 'unseen'), ('1', 'seen')], default=0)), + ('file', models.FileField(upload_to='')), + ], + ), + migrations.CreateModel( + name='stock', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('item_name', models.CharField(max_length=100)), + ('quantity', models.IntegerField(default='0')), + ('item_type', models.IntegerField(choices=[('0', 'Non-consumable'), ('1', 'Consumable')], default='0')), + ], + options={ + 'db_table': 'stock', + }, + ), + migrations.CreateModel( + name='Teaching_credits1', + fields=[ + ('roll_no', models.CharField(max_length=100, primary_key=True, serialize=False)), + ('name', models.CharField(max_length=100)), + ('programme', models.CharField(max_length=100)), + ('branch', models.CharField(max_length=100)), + ('course1', models.CharField(choices=[('Computer Graphics', 'Computer Graphics'), ('Machine Learning', 'Machine Learning'), ('Image Processing', 'Image Processing'), ('Data Structure', 'Data Structure')], default='NO', max_length=100)), + ('course2', models.CharField(choices=[('Computer Graphics', 'Computer Graphics'), ('Machine Learning', 'Machine Learning'), ('Image Processing', 'Image Processing'), ('Data Structure', 'Data Structure')], default='NO', max_length=100)), + ('course3', models.CharField(choices=[('Computer Graphics', 'Computer Graphics'), ('Machine Learning', 'Machine Learning'), ('Image Processing', 'Image Processing'), ('Data Structure', 'Data Structure')], default='NO', max_length=100)), + ('tag', models.IntegerField(default=0)), + ], + options={ + 'db_table': 'Teaching_credits1', + }, + ), + migrations.CreateModel( + name='vendor', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('vendor_name', models.CharField(max_length=100)), + ('vendor_address', models.CharField(max_length=200)), + ('vendor_item', models.CharField(max_length=200)), + ], + options={ + 'db_table': 'vendor', + }, + ), + migrations.CreateModel( + name='TA_assign', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('balance', models.IntegerField(default=2)), + ('lab', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='office_module.lab')), + ('roll_no', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='TA_id', to='globals.extrainfo')), + ], + options={ + 'db_table': 'TA_assign', + }, + ), + migrations.CreateModel( + name='Requisitions', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('req_date', models.DateTimeField(auto_now_add=True)), + ('title', models.CharField(max_length=50)), + ('department', models.CharField(choices=[('civil', 'civil'), ('electrical', 'electrical')], max_length=50)), + ('building', models.CharField(choices=[('corelab', 'corelab'), ('computer center', 'computer center'), ('hostel', 'hostel'), ('mess', 'mess'), ('library', 'library'), ('cc', 'cc')], max_length=50)), + ('description', models.CharField(max_length=200)), + ('tag', models.IntegerField(default=0)), + ('assign_file', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='filetracking.file')), + ('userid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='Registrar_response', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('remark', models.CharField(default='', max_length=50)), + ('status', models.CharField(default='', max_length=20)), + ('track_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='t_id', to='filetracking.tracking')), + ], + options={ + 'db_table': 'Registrar_response', + }, + ), + migrations.CreateModel( + name='registrar_general_section', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('file_name', models.CharField(max_length=50)), + ('date', models.DateField()), + ('amount', models.IntegerField()), + ('status', models.IntegerField(choices=[('0', 'unseen'), ('1', 'seen')], default=0)), + ('file', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='office_module.registrar_create_doc')), + ], + ), + migrations.CreateModel( + name='Registrar_File', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('status', models.IntegerField(choices=[('0', 'unseen'), ('1', 'seen')], default=0)), + ('approval', models.IntegerField(choices=[('0', 'reject'), ('1', 'accept')], default=0)), + ('section_name', models.CharField(max_length=50)), + ('section_type', models.CharField(max_length=20)), + ('file_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='filetracking.tracking')), + ], + ), + migrations.CreateModel( + name='purchase_commitee', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('approve_mem1', models.IntegerField(choices=[('0', 'Pending'), ('1', 'Approve'), ('-1', 'Rejected')], default='0')), + ('approve_mem2', models.IntegerField(choices=[('0', 'Pending'), ('1', 'Approve'), ('-1', 'Rejected')], default='0')), + ('approve_mem3', models.IntegerField(choices=[('0', 'Pending'), ('1', 'Approve'), ('-1', 'Rejected')], default='0')), + ('local_comm_mem1', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='local_comm_mem1', to='globals.extrainfo')), + ('local_comm_mem2', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='local_comm_mem2', to='globals.extrainfo')), + ('local_comm_mem3', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='local_comm_mem3', to='globals.extrainfo')), + ], + options={ + 'db_table': 'purchase_commitee', + }, + ), + migrations.CreateModel( + name='Project_Registration', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('project_title', models.CharField(max_length=200)), + ('sponsored_agency', models.CharField(max_length=100)), + ('CO_PI', models.CharField(max_length=100, null=True)), + ('start_date', models.DateField(blank=True, null=True)), + ('duration', models.IntegerField(default=0)), + ('agreement', models.CharField(choices=[('Computer Graphics', 'Computer Graphics'), ('Machine Learning', 'Machine Learning'), ('Image Processing', 'Image Processing'), ('Data Structure', 'Data Structure')], default='NO', max_length=20)), + ('amount_sanctioned', models.IntegerField(default=0)), + ('project_type', models.CharField(choices=[('SRes', 'Sponsored Research'), ('Consultancy', 'Consultancy'), ('fig', 'Faculty Initiation Grant'), ('Testing', 'Testing')], max_length=25)), + ('project_operated', models.CharField(choices=[('PI', 'Only by PI'), ('any', 'Either PI or CO-PI')], default='me', max_length=50)), + ('remarks', models.CharField(max_length=200)), + ('fund_recieved_date', models.DateField(blank=True, null=True)), + ('HOD_response', models.CharField(choices=[('Forwarded', 'Forwarded'), ('Pending', 'Pending')], default='Pending', max_length=10)), + ('DRSPC_response', models.CharField(choices=[('Approve', 'Approve'), ('Disapprove', 'Disapprove'), ('Pending', 'Pending')], default='Pending', max_length=10)), + ('applied_date', models.DateField(blank=True, null=True)), + ('description', models.CharField(max_length=200, null=True)), + ('file', models.FileField(blank=True, null=True, upload_to='documents/')), + ('PI_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='Project_Reallocation', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date', models.DateField(blank=True, null=True)), + ('previous_budget_head', models.CharField(max_length=300)), + ('previous_amount', models.IntegerField(default=0)), + ('pf_no', models.CharField(max_length=100, null=True)), + ('new_budget_head', models.CharField(max_length=300)), + ('new_amount', models.IntegerField(default=0)), + ('transfer_reason', models.CharField(max_length=300)), + ('HOD_response', models.CharField(choices=[('Forwarded', 'Forwarded'), ('Pending', 'Pending')], default='Pending', max_length=10)), + ('DRSPC_response', models.CharField(choices=[('Approve', 'Approve'), ('Disapprove', 'Disapprove'), ('Pending', 'Pending')], default='Pending', max_length=10)), + ('project_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='office_module.project_registration')), + ], + ), + migrations.CreateModel( + name='Project_Extension', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date', models.DateField(blank=True, null=True)), + ('extended_duration', models.IntegerField(default=0)), + ('extension_details', models.CharField(max_length=300)), + ('HOD_response', models.CharField(choices=[('Forwarded', 'Forwarded'), ('Pending', 'Pending')], default='Pending', max_length=10)), + ('DRSPC_response', models.CharField(choices=[('Approve', 'Approve'), ('Disapprove', 'Disapprove'), ('Pending', 'Pending')], default='Pending', max_length=10)), + ('file', models.FileField(blank=True, null=True, upload_to='documents/')), + ('project_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='office_module.project_registration')), + ], + ), + migrations.CreateModel( + name='Project_Closure', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('completion_date', models.DateField(blank=True, null=True)), + ('date', models.DateField(blank=True, null=True)), + ('expenses_dues', models.CharField(choices=[('Computer Graphics', 'Computer Graphics'), ('Machine Learning', 'Machine Learning'), ('Image Processing', 'Image Processing'), ('Data Structure', 'Data Structure')], default='Pending', max_length=20)), + ('expenses_dues_description', models.CharField(blank=True, max_length=200, null=True)), + ('payment_dues', models.CharField(choices=[('Computer Graphics', 'Computer Graphics'), ('Machine Learning', 'Machine Learning'), ('Image Processing', 'Image Processing'), ('Data Structure', 'Data Structure')], default='Pending', max_length=20)), + ('payment_dues_description', models.CharField(blank=True, max_length=200, null=True)), + ('salary_dues', models.CharField(choices=[('Computer Graphics', 'Computer Graphics'), ('Machine Learning', 'Machine Learning'), ('Image Processing', 'Image Processing'), ('Data Structure', 'Data Structure')], default='Pending', max_length=20)), + ('salary_dues_description', models.CharField(blank=True, max_length=200, null=True)), + ('advances_dues', models.CharField(choices=[('Computer Graphics', 'Computer Graphics'), ('Machine Learning', 'Machine Learning'), ('Image Processing', 'Image Processing'), ('Data Structure', 'Data Structure')], default='Pending', max_length=20)), + ('advances_description', models.CharField(blank=True, max_length=200, null=True)), + ('others_dues', models.CharField(choices=[('Computer Graphics', 'Computer Graphics'), ('Machine Learning', 'Machine Learning'), ('Image Processing', 'Image Processing'), ('Data Structure', 'Data Structure')], default='Pending', max_length=20)), + ('other_dues_description', models.CharField(blank=True, max_length=200, null=True)), + ('overhead_deducted', models.CharField(choices=[('Computer Graphics', 'Computer Graphics'), ('Machine Learning', 'Machine Learning'), ('Image Processing', 'Image Processing'), ('Data Structure', 'Data Structure')], default='Pending', max_length=20)), + ('overhead_description', models.CharField(blank=True, max_length=200, null=True)), + ('HOD_response', models.CharField(choices=[('Forwarded', 'Forwarded'), ('Pending', 'Pending')], default='Pending', max_length=10)), + ('DRSPC_response', models.CharField(choices=[('Approve', 'Approve'), ('Disapprove', 'Disapprove'), ('Pending', 'Pending')], default='Pending', max_length=10)), + ('remarks', models.CharField(max_length=300, null=True)), + ('extended_duration', models.CharField(default='0', max_length=100, null=True)), + ('project_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='office_module.project_registration')), + ], + ), + migrations.CreateModel( + name='LTC', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date_request', models.DateField()), + ('travel_mode', models.CharField(choices=[('road', 'ROAD'), ('rail', 'RAIL')], default='ROAD', max_length=10)), + ('advance', models.IntegerField(default=0)), + ('family_details', models.TextField(max_length=500)), + ('department', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.departmentinfo')), + ('designation', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.designation')), + ('leave', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='leave.leave')), + ('name', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + options={ + 'db_table': 'LTC', + }, + ), + migrations.CreateModel( + name='hostel_guestroom_approval', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('hall_no', models.CharField(choices=[('HALL-1-BOYS', 'hall-1-boys'), ('HALL-1-GIRLS', 'hall-1-girls'), ('HALL-3', 'hall-3'), ('HALL-4', 'hall-4')], default='', max_length=16)), + ('arrival_date', models.DateField(default=datetime.date.today, verbose_name='Date')), + ('departure_date', models.DateField(blank=True, null=True)), + ('status', models.CharField(choices=[('APPROVED', 'Approved'), ('PENDING', 'Pending')], default='Pending', max_length=20)), + ('intender', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='Filemovement', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date', models.DateTimeField(auto_now_add=True)), + ('remarks', models.CharField(max_length=200, null=True)), + ('actionby_receiver', models.CharField(choices=[('forward', 'forwarded'), ('revert', 'revert'), ('accept', 'accept'), ('reject', 'reject')], max_length=50)), + ('receivedby', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='received_by', to='globals.holdsdesignation')), + ('rid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='office_module.requisitions')), + ('sentby', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sent_by', to='globals.holdsdesignation')), + ], + ), + migrations.CreateModel( + name='DeanS_approve_committes', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('date_approved', models.DateField(blank=True, null=True)), + ('description', models.CharField(max_length=200)), + ('convener', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='convener', to='globals.extrainfo')), + ('faculty_incharge', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='facultyincharge', to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='CPDA', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('PF_no', models.CharField(max_length=100)), + ('purpose', models.CharField(max_length=100)), + ('amoutn', models.IntegerField(default=0)), + ('designation', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.designation')), + ('name', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + options={ + 'db_table': 'CPDA', + }, + ), + migrations.CreateModel( + name='Auto_fair_claim', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('purpose', models.CharField(max_length=100)), + ('amount', models.IntegerField(default=0)), + ('auto_reg_no', models.CharField(max_length=50)), + ('auto_contact', models.IntegerField(default=0)), + ('bill', models.FileField(upload_to='hod/')), + ('date', models.DateField()), + ('name', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + options={ + 'db_table': 'auto_fair_claim', + }, + ), + migrations.CreateModel( + name='Assigned_Teaching_credits', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('assigned_course', models.CharField(default='NO', max_length=100)), + ('roll_no', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='office_module.teaching_credits1')), + ], + options={ + 'db_table': 'Assigned_Teaching_credits', + }, + ), + migrations.CreateModel( + name='apply_for_purchase', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('inspecting_authority', models.CharField(default='0', max_length=200)), + ('expected_purchase_date', models.DateField()), + ('order_date', models.DateField(default=datetime.date.today)), + ('purchase_status', models.IntegerField(choices=[('0', 'Pending'), ('1', 'Approve'), ('2', 'Items Ordered'), ('3', 'Items Puchased'), ('4', 'Items Delivered')], default=0)), + ('amount', models.IntegerField(default='0')), + ('purchase_date', models.DateField(default='2018-06-01')), + ('registrar_approve_tag', models.IntegerField(choices=[('0', 'Pending'), ('1', 'Approve'), ('-1', 'Rejected')], default=0)), + ('director_approve_tag', models.IntegerField(choices=[('0', 'Pending'), ('1', 'Approve'), ('-1', 'Rejected')], default=0)), + ('HOD_approve_tag', models.IntegerField(choices=[('0', 'Pending'), ('1', 'Approve'), ('-1', 'Rejected')], default=0)), + ('accounts_approve_tag', models.IntegerField(choices=[('0', 'Pending'), ('1', 'Approve'), ('-1', 'Rejected')], default=0)), + ('gem_tag', models.IntegerField(choices=[('0', 'Pending'), ('1', 'Approve'), ('-1', 'Rejected')], default=0)), + ('purchase_type', models.IntegerField(choices=[('0', 'Amount < 25000'), ('1', '250002500000')], default=0)), + ('purpose', models.CharField(default=0, max_length=200)), + ('budgetary_head', models.CharField(default=0, max_length=200)), + ('invoice', models.FileField(default=0, upload_to='')), + ('nature_of_item1', models.IntegerField(choices=[('0', 'Non-consumable'), ('1', 'Consumable')], default=0)), + ('nature_of_item2', models.IntegerField(choices=[('0', 'Equipment'), ('1', 'Machinery'), ('2', 'Furniture'), ('3', 'Fixture')], default=0)), + ('item_name', models.CharField(default=0, max_length=100)), + ('expected_cost', models.IntegerField(default=0)), + ('quantity', models.IntegerField(default=0)), + ('indentor_name', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='indentor_name', to='globals.extrainfo')), + ], + options={ + 'db_table': 'apply_for_purchase', + }, + ), + migrations.CreateModel( + name='Member', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('meeting_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.meeting')), + ('member_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.faculty')), + ], + options={ + 'db_table': 'Member', + 'unique_together': {('member_id', 'meeting_id')}, + }, + ), + migrations.CreateModel( + name='Assistantship', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('file', models.FileField(blank=True, null=True, upload_to='documents/')), + ('action', models.IntegerField(default=0)), + ('comments', models.CharField(blank=True, max_length=150, null=True)), + ('instructor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.curriculum_instructor')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'Assistantship', + 'unique_together': {('student_id', 'instructor_id')}, + }, + ), + ] diff --git a/FusionIIIT/applications/office_module/migrations/__init__.py b/FusionIIIT/applications/office_module/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/online_cms/migrations/0001_initial.py b/FusionIIIT/applications/online_cms/migrations/0001_initial.py new file mode 100644 index 000000000..4e3377ab7 --- /dev/null +++ b/FusionIIIT/applications/online_cms/migrations/0001_initial.py @@ -0,0 +1,196 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('academic_information', '0001_initial'), + ('globals', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Assignment', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('upload_time', models.DateTimeField(auto_now=True)), + ('submit_date', models.DateTimeField()), + ('assignment_name', models.CharField(max_length=100)), + ('assignment_url', models.CharField(max_length=100, null=True)), + ('course_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.course')), + ], + ), + migrations.CreateModel( + name='Forum', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('comment_time', models.DateTimeField(auto_now=True)), + ('comment', models.TextField(max_length=2000)), + ('commenter_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ('course_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.course')), + ], + ), + migrations.CreateModel( + name='Practice', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('prac_quiz_name', models.CharField(max_length=20)), + ('negative_marks', models.FloatField(default=0)), + ('number_of_question', models.IntegerField(default=0)), + ('description', models.TextField(max_length=1000)), + ('total_score', models.IntegerField(default=0)), + ('course_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.course')), + ], + ), + migrations.CreateModel( + name='Question', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('question', models.TextField(max_length=1000)), + ('options1', models.CharField(max_length=100, null=True)), + ('options2', models.CharField(max_length=100, null=True)), + ('options3', models.CharField(max_length=100, null=True)), + ('options4', models.CharField(max_length=100, null=True)), + ('options5', models.CharField(max_length=100, null=True)), + ('answer', models.IntegerField()), + ('image', models.TextField(max_length=1000, null=True)), + ('marks', models.IntegerField()), + ], + ), + migrations.CreateModel( + name='Quiz', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('quiz_name', models.CharField(max_length=20)), + ('end_time', models.DateTimeField()), + ('start_time', models.DateTimeField()), + ('d_day', models.CharField(max_length=2)), + ('d_hour', models.CharField(max_length=2)), + ('d_minute', models.CharField(max_length=2)), + ('negative_marks', models.FloatField(default=0)), + ('number_of_question', models.IntegerField(default=0)), + ('description', models.TextField(max_length=1000)), + ('rules', models.TextField(max_length=2000)), + ('total_score', models.IntegerField(default=0)), + ('course_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.course')), + ], + ), + migrations.CreateModel( + name='QuizQuestion', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='online_cms.question')), + ('quiz_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='online_cms.quiz')), + ], + ), + migrations.CreateModel( + name='Topics', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('topic_name', models.TextField(max_length=200)), + ('course_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.course')), + ], + ), + migrations.CreateModel( + name='StudentAssignment', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('upload_time', models.DateTimeField(auto_now=True)), + ('upload_url', models.TextField(max_length=200)), + ('score', models.IntegerField(null=True)), + ('feedback', models.CharField(max_length=100, null=True)), + ('assign_name', models.CharField(max_length=100)), + ('assignment_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='online_cms.assignment')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='StudentAnswer', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('choice', models.IntegerField()), + ('question_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='online_cms.quizquestion')), + ('quiz_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='online_cms.quiz')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='QuizResult', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('score', models.IntegerField()), + ('finished', models.BooleanField(default=False)), + ('quiz_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='online_cms.quiz')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='QuestionBank', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ('course_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.course')), + ('instructor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.AddField( + model_name='question', + name='question_bank', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='online_cms.questionbank'), + ), + migrations.AddField( + model_name='question', + name='topic', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='online_cms.topics'), + ), + migrations.CreateModel( + name='PracticeQuestion', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('question', models.TextField(max_length=1000)), + ('options1', models.CharField(max_length=100, null=True)), + ('options2', models.CharField(max_length=100, null=True)), + ('options3', models.CharField(max_length=100, null=True)), + ('options4', models.CharField(max_length=100, null=True)), + ('options5', models.CharField(max_length=100, null=True)), + ('answer', models.IntegerField()), + ('image', models.TextField(max_length=1000, null=True)), + ('prac_quiz_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='online_cms.practice')), + ], + ), + migrations.CreateModel( + name='ForumReply', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('forum_ques', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='forum_ques', to='online_cms.forum')), + ('forum_reply', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='forum_reply', to='online_cms.forum')), + ], + ), + migrations.CreateModel( + name='CourseVideo', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('upload_time', models.DateTimeField(auto_now=True)), + ('description', models.CharField(max_length=100)), + ('video_name', models.CharField(max_length=40)), + ('video_url', models.CharField(max_length=100, null=True)), + ('course_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.course')), + ], + ), + migrations.CreateModel( + name='CourseDocuments', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('upload_time', models.DateTimeField(auto_now=True)), + ('description', models.CharField(max_length=100)), + ('document_name', models.CharField(max_length=40)), + ('document_url', models.CharField(max_length=100, null=True)), + ('course_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.course')), + ], + ), + ] diff --git a/FusionIIIT/applications/online_cms/migrations/__init__.py b/FusionIIIT/applications/online_cms/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/placement_cell/migrations/0001_initial.py b/FusionIIIT/applications/placement_cell/migrations/0001_initial.py new file mode 100644 index 000000000..257c98609 --- /dev/null +++ b/FusionIIIT/applications/placement_cell/migrations/0001_initial.py @@ -0,0 +1,289 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +import datetime +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('academic_information', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='ChairmanVisit', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('company_name', models.CharField(default='', max_length=100)), + ('location', models.CharField(default='', max_length=100)), + ('visiting_date', models.DateField(default=datetime.date.today, verbose_name='Date')), + ('description', models.TextField(blank=True, default='', max_length=1000, null=True)), + ('timestamp', models.DateTimeField(auto_now=True)), + ], + ), + migrations.CreateModel( + name='CompanyDetails', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('company_name', models.CharField(blank=True, max_length=100, null=True)), + ], + ), + migrations.CreateModel( + name='MessageOfficer', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('message', models.CharField(default='', max_length=100)), + ('timestamp', models.DateTimeField(auto_now=True)), + ], + ), + migrations.CreateModel( + name='NotifyStudent', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('placement_type', models.CharField(choices=[('PLACEMENT', 'Placement'), ('PBI', 'PBI'), ('HIGHER STUDIES', 'Higher Studies'), ('OTHER', 'Other')], default='PLACEMENT', max_length=20)), + ('company_name', models.CharField(default='', max_length=100)), + ('ctc', models.DecimalField(decimal_places=4, max_digits=10)), + ('description', models.TextField(blank=True, default='', max_length=1000, null=True)), + ('timestamp', models.DateTimeField(auto_now=True)), + ], + ), + migrations.CreateModel( + name='PlacementRecord', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('placement_type', models.CharField(choices=[('PLACEMENT', 'Placement'), ('PBI', 'PBI'), ('HIGHER STUDIES', 'Higher Studies'), ('OTHER', 'Other')], default='PLACEMENT', max_length=20)), + ('name', models.CharField(default='', max_length=100)), + ('ctc', models.DecimalField(decimal_places=2, default=0, max_digits=5)), + ('year', models.IntegerField(default=0)), + ('test_score', models.IntegerField(blank=True, default=0, null=True)), + ('test_type', models.CharField(blank=True, default='', max_length=30, null=True)), + ], + ), + migrations.CreateModel( + name='Role', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('role', models.CharField(blank=True, max_length=100, null=True)), + ], + ), + migrations.CreateModel( + name='Skill', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('skill', models.CharField(default='', max_length=30)), + ], + ), + migrations.CreateModel( + name='StudentPlacement', + fields=[ + ('unique_id', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='academic_information.student')), + ('debar', models.CharField(choices=[('NOT DEBAR', 'Not Debar'), ('DEBAR', 'Debar')], default='NOT DEBAR', max_length=20)), + ('future_aspect', models.CharField(choices=[('PLACEMENT', 'Placement'), ('PBI', 'PBI'), ('HIGHER STUDIES', 'Higher Studies'), ('OTHER', 'Other')], default='PLACEMENT', max_length=20)), + ('placed_type', models.CharField(choices=[('NOT PLACED', 'Not Placed'), ('PLACED', 'Placed')], default='NOT PLACED', max_length=20)), + ('placement_date', models.DateField(blank=True, default=datetime.date.today, null=True, verbose_name='Date')), + ('package', models.DecimalField(blank=True, decimal_places=2, max_digits=5, null=True)), + ], + ), + migrations.CreateModel( + name='Reference', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('reference_name', models.CharField(default='', max_length=100)), + ('post', models.CharField(blank=True, default='', max_length=100, null=True)), + ('email', models.CharField(default='', max_length=50)), + ('mobile_number', models.CharField(blank=True, max_length=15, null=True)), + ('unique_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Publication', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('publication_title', models.CharField(default='', max_length=100)), + ('description', models.TextField(blank=True, default='', max_length=250, null=True)), + ('publisher', models.TextField(default='', max_length=250)), + ('publication_date', models.DateField(default=datetime.date.today, verbose_name='Date')), + ('unique_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Project', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('project_name', models.CharField(default='', max_length=50)), + ('project_status', models.CharField(choices=[('ONGOING', 'Ongoing'), ('COMPLETED', 'Completed')], default='COMPLETED', max_length=20)), + ('summary', models.TextField(blank=True, default='', max_length=1000, null=True)), + ('project_link', models.CharField(blank=True, default='', max_length=200, null=True)), + ('sdate', models.DateField(default=datetime.date.today, verbose_name='Date')), + ('edate', models.DateField(blank=True, null=True)), + ('unique_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='PlacementSchedule', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(default='', max_length=100)), + ('placement_date', models.DateField(default=datetime.date.today, verbose_name='Date')), + ('location', models.CharField(default='', max_length=100)), + ('description', models.TextField(blank=True, default='', max_length=500, null=True)), + ('time', models.TimeField()), + ('attached_file', models.FileField(blank=True, null=True, upload_to='documents/placement/schedule')), + ('schedule_at', models.DateTimeField(blank=True, default=django.utils.timezone.now, null=True)), + ('notify_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='placement_cell.notifystudent')), + ('role', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='placement_cell.role')), + ], + ), + migrations.CreateModel( + name='Patent', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('patent_name', models.CharField(default='', max_length=100)), + ('description', models.TextField(blank=True, default='', max_length=250, null=True)), + ('patent_office', models.TextField(default='', max_length=250)), + ('patent_date', models.DateField()), + ('unique_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Interest', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('interest', models.CharField(default='', max_length=100)), + ('unique_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Extracurricular', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('event_name', models.CharField(default='', max_length=100)), + ('event_type', models.CharField(choices=[('SOCIAL', 'Social'), ('CULTURE', 'Culture'), ('SPORT', 'Sport'), ('OTHER', 'Other')], default='OTHER', max_length=20)), + ('description', models.TextField(blank=True, default='', max_length=1000, null=True)), + ('name_of_position', models.CharField(default='', max_length=200)), + ('date_earned', models.DateField(default=datetime.date.today, verbose_name='Date')), + ('unique_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Experience', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(default='', max_length=100)), + ('status', models.CharField(choices=[('ONGOING', 'Ongoing'), ('COMPLETED', 'Completed')], default='COMPLETED', max_length=20)), + ('description', models.TextField(blank=True, default='', max_length=500, null=True)), + ('company', models.CharField(default='', max_length=200)), + ('location', models.CharField(default='', max_length=200)), + ('sdate', models.DateField(default=datetime.date.today, verbose_name='Date')), + ('edate', models.DateField(blank=True, null=True)), + ('unique_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Education', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('degree', models.CharField(default='', max_length=40)), + ('grade', models.CharField(default='', max_length=10)), + ('institute', models.TextField(default='', max_length=250)), + ('stream', models.CharField(blank=True, default='', max_length=150, null=True)), + ('sdate', models.DateField(default=datetime.date.today, verbose_name='Date')), + ('edate', models.DateField(blank=True, null=True)), + ('unique_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Course', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('course_name', models.CharField(default='', max_length=100)), + ('description', models.TextField(blank=True, default='', max_length=250, null=True)), + ('license_no', models.CharField(blank=True, default='', max_length=100, null=True)), + ('sdate', models.DateField(default=datetime.date.today, verbose_name='Date')), + ('edate', models.DateField(blank=True, null=True)), + ('unique_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Conference', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('conference_name', models.CharField(default='', max_length=100)), + ('description', models.TextField(blank=True, default='', max_length=250, null=True)), + ('sdate', models.DateField(default=datetime.date.today, verbose_name='Date')), + ('edate', models.DateField(blank=True, null=True)), + ('unique_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='Coinventor', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('coinventor_name', models.CharField(default='', max_length=100)), + ('patent_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='placement_cell.patent')), + ], + ), + migrations.CreateModel( + name='Coauthor', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('coauthor_name', models.CharField(default='', max_length=100)), + ('publication_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='placement_cell.publication')), + ], + ), + migrations.CreateModel( + name='Achievement', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('achievement', models.CharField(default='', max_length=100)), + ('achievement_type', models.CharField(choices=[('EDUCATIONAL', 'Educational'), ('OTHER', 'Other')], default='OTHER', max_length=20)), + ('description', models.TextField(blank=True, default='', max_length=1000, null=True)), + ('issuer', models.CharField(default='', max_length=200)), + ('date_earned', models.DateField(default=datetime.date.today, verbose_name='Date')), + ('unique_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + ), + migrations.CreateModel( + name='StudentRecord', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('record_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='placement_cell.placementrecord')), + ('unique_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'unique_together': {('record_id', 'unique_id')}, + }, + ), + migrations.CreateModel( + name='PlacementStatus', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('invitation', models.CharField(choices=[('ACCEPTED', 'Accepted'), ('REJECTED', 'Rejected'), ('PENDING', 'Pending'), ('IGNORE', 'IGNORE')], default='PENDING', max_length=20)), + ('placed', models.CharField(choices=[('NOT PLACED', 'Not Placed'), ('PLACED', 'Placed')], default='NOT PLACED', max_length=20)), + ('timestamp', models.DateTimeField(auto_now=True)), + ('no_of_days', models.IntegerField(blank=True, default=10, null=True)), + ('notify_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='placement_cell.notifystudent')), + ('unique_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'unique_together': {('notify_id', 'unique_id')}, + }, + ), + migrations.CreateModel( + name='Has', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('skill_rating', models.IntegerField(default=80)), + ('skill_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='placement_cell.skill')), + ('unique_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'unique_together': {('skill_id', 'unique_id')}, + }, + ), + ] diff --git a/FusionIIIT/applications/placement_cell/migrations/__init__.py b/FusionIIIT/applications/placement_cell/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/programme_curriculum/migrations/0001_initial.py b/FusionIIIT/applications/programme_curriculum/migrations/0001_initial.py new file mode 100644 index 000000000..b01ec58a7 --- /dev/null +++ b/FusionIIIT/applications/programme_curriculum/migrations/0001_initial.py @@ -0,0 +1,142 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('globals', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Curriculum', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ('version', models.PositiveIntegerField(default=1)), + ('working_curriculum', models.BooleanField(default=True)), + ('no_of_semester', models.PositiveIntegerField(default=1)), + ('min_credit', models.PositiveIntegerField(default=0)), + ], + ), + migrations.CreateModel( + name='Programme', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('category', models.CharField(choices=[('UG', 'Undergraduate'), ('PG', 'Postgraduate'), ('PHD', 'Doctor of Philosophy')], max_length=3)), + ('name', models.CharField(max_length=70, unique=True)), + ('programme_begin_year', models.PositiveIntegerField(default=2023)), + ], + ), + migrations.CreateModel( + name='Semester', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('semester_no', models.PositiveIntegerField()), + ('instigate_semester', models.BooleanField(default=False, null=True)), + ('start_semester', models.DateField(blank=True, null=True)), + ('end_semester', models.DateField(blank=True, null=True)), + ('semester_info', models.TextField(blank=True, null=True)), + ('curriculum', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.curriculum')), + ], + options={ + 'unique_together': {('curriculum', 'semester_no')}, + }, + ), + migrations.CreateModel( + name='Discipline', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100, unique=True)), + ('acronym', models.CharField(default='', max_length=10)), + ('programmes', models.ManyToManyField(blank=True, to='programme_curriculum.Programme')), + ], + ), + migrations.AddField( + model_name='curriculum', + name='programme', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.programme'), + ), + migrations.CreateModel( + name='Course', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('code', models.CharField(max_length=10, unique=True)), + ('name', models.CharField(max_length=100, unique=True)), + ('credit', models.PositiveIntegerField(default=0)), + ('lecture_hours', models.PositiveIntegerField(null=True)), + ('tutorial_hours', models.PositiveIntegerField(null=True)), + ('pratical_hours', models.PositiveIntegerField(null=True)), + ('discussion_hours', models.PositiveIntegerField(null=True)), + ('project_hours', models.PositiveIntegerField(null=True)), + ('pre_requisits', models.TextField(blank=True, null=True)), + ('syllabus', models.TextField()), + ('percent_quiz_1', models.PositiveIntegerField(default=10)), + ('percent_midsem', models.PositiveIntegerField(default=20)), + ('percent_quiz_2', models.PositiveIntegerField(default=10)), + ('percent_endsem', models.PositiveIntegerField(default=30)), + ('percent_project', models.PositiveIntegerField(default=15)), + ('percent_lab_evaluation', models.PositiveIntegerField(default=10)), + ('percent_course_attendance', models.PositiveIntegerField(default=5)), + ('ref_books', models.TextField()), + ('working_course', models.BooleanField(default=True)), + ('disciplines', models.ManyToManyField(blank=True, to='programme_curriculum.Discipline')), + ('pre_requisit_courses', models.ManyToManyField(blank=True, related_name='_course_pre_requisit_courses_+', to='programme_curriculum.Course')), + ], + options={ + 'unique_together': {('code', 'name')}, + }, + ), + migrations.CreateModel( + name='Batch', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(choices=[('B.Tech', 'B.Tech'), ('M.Tech', 'M.Tech'), ('B.Des', 'B.Des'), ('M.Des', 'M.Des'), ('Phd', 'Phd')], max_length=50)), + ('year', models.PositiveIntegerField(default=2023)), + ('running_batch', models.BooleanField(default=True)), + ('curriculum', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='programme_curriculum.curriculum')), + ('discipline', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.discipline')), + ], + options={ + 'unique_together': {('name', 'discipline', 'year')}, + }, + ), + migrations.AlterUniqueTogether( + name='curriculum', + unique_together={('name', 'version')}, + ), + migrations.CreateModel( + name='CourseSlot', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ('type', models.CharField(choices=[('Professional Core', 'Professional Core'), ('Professional Elective', 'Professional Elective'), ('Professional Lab', 'Professional Lab'), ('Engineering Science', 'Engineering Science'), ('Natural Science', 'Natural Science'), ('Humanities', 'Humanities'), ('Design', 'Design'), ('Manufacturing', 'Manufacturing'), ('Management Science', 'Management Science'), ('Optional Elective', 'Optional Elective'), ('Project', 'Project'), ('Optional', 'Optional'), ('Others', 'Others')], max_length=70)), + ('course_slot_info', models.TextField(null=True)), + ('duration', models.PositiveIntegerField(default=1)), + ('min_registration_limit', models.PositiveIntegerField(default=0)), + ('max_registration_limit', models.PositiveIntegerField(default=1000)), + ('courses', models.ManyToManyField(blank=True, to='programme_curriculum.Course')), + ('semester', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.semester')), + ], + options={ + 'unique_together': {('semester', 'name', 'type')}, + }, + ), + migrations.CreateModel( + name='CourseInstructor', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('batch_id', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.batch')), + ('course_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='programme_curriculum.course')), + ('instructor_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + options={ + 'unique_together': {('course_id', 'instructor_id', 'batch_id')}, + }, + ), + ] diff --git a/FusionIIIT/applications/programme_curriculum/migrations/0002_auto_20240421_1716.py b/FusionIIIT/applications/programme_curriculum/migrations/0002_auto_20240421_1716.py new file mode 100644 index 000000000..34a7fe109 --- /dev/null +++ b/FusionIIIT/applications/programme_curriculum/migrations/0002_auto_20240421_1716.py @@ -0,0 +1,123 @@ +# Generated by Django 3.1.5 on 2024-04-21 17:16 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('programme_curriculum', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='course', + name='latest_version', + field=models.BooleanField(default=True), + ), + migrations.AddField( + model_name='course', + name='version', + field=models.DecimalField(decimal_places=1, default=1.0, max_digits=5, validators=[django.core.validators.MinValueValidator(1.0), django.core.validators.DecimalValidator(decimal_places=1, max_digits=5)]), + ), + migrations.AlterField( + model_name='batch', + name='year', + field=models.PositiveIntegerField(default=2024), + ), + migrations.AlterField( + model_name='course', + name='code', + field=models.CharField(max_length=10), + ), + migrations.AlterField( + model_name='course', + name='name', + field=models.CharField(max_length=100), + ), + migrations.AlterField( + model_name='courseslot', + name='type', + field=models.CharField(choices=[('Professional Core', 'Professional Core'), ('Professional Elective', 'Professional Elective'), ('Professional Lab', 'Professional Lab'), ('Engineering Science', 'Engineering Science'), ('Natural Science', 'Natural Science'), ('Humanities', 'Humanities'), ('Design', 'Design'), ('Manufacturing', 'Manufacturing'), ('Management Science', 'Management Science'), ('Open Elective', 'Open Elective'), ('Swayam', 'Swayam'), ('Project', 'Project'), ('Optional', 'Optional'), ('Others', 'Others')], max_length=70), + ), + migrations.AlterField( + model_name='curriculum', + name='version', + field=models.DecimalField(decimal_places=1, default=1.0, max_digits=2, validators=[django.core.validators.MinValueValidator(1.0), django.core.validators.DecimalValidator(decimal_places=1, max_digits=2)]), + ), + migrations.AlterField( + model_name='programme', + name='programme_begin_year', + field=models.PositiveIntegerField(default=2024), + ), + migrations.AlterUniqueTogether( + name='course', + unique_together={('code', 'version')}, + ), + migrations.CreateModel( + name='UpdateCourseProposal', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('faculty_name', models.CharField(max_length=100)), + ('faculty_code', models.CharField(max_length=10)), + ('code', models.CharField(max_length=10)), + ('name', models.CharField(max_length=100)), + ('credit', models.PositiveIntegerField(default=0)), + ('lecture_hours', models.PositiveIntegerField(null=True)), + ('tutorial_hours', models.PositiveIntegerField(null=True)), + ('pratical_hours', models.PositiveIntegerField(null=True)), + ('discussion_hours', models.PositiveIntegerField(null=True)), + ('project_hours', models.PositiveIntegerField(null=True)), + ('pre_requisits', models.TextField(blank=True, null=True)), + ('syllabus', models.TextField()), + ('percent_quiz_1', models.PositiveIntegerField(default=10)), + ('percent_midsem', models.PositiveIntegerField(default=20)), + ('percent_quiz_2', models.PositiveIntegerField(default=10)), + ('percent_endsem', models.PositiveIntegerField(default=30)), + ('percent_project', models.PositiveIntegerField(default=15)), + ('percent_lab_evaluation', models.PositiveIntegerField(default=10)), + ('percent_course_attendance', models.PositiveIntegerField(default=5)), + ('ref_books', models.TextField()), + ('working_course', models.BooleanField(default=True)), + ('status', models.PositiveIntegerField(default=0)), + ('disciplines', models.ManyToManyField(blank=True, to='programme_curriculum.Discipline')), + ('pre_requisit_courses', models.ManyToManyField(blank=True, to='programme_curriculum.Course')), + ], + options={ + 'unique_together': {('code', 'faculty_code')}, + }, + ), + migrations.CreateModel( + name='CourseProposal', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('faculty_name', models.CharField(max_length=100)), + ('faculty_code', models.CharField(max_length=10)), + ('code', models.CharField(max_length=10)), + ('name', models.CharField(max_length=100)), + ('credit', models.PositiveIntegerField(default=3)), + ('lecture_hours', models.PositiveIntegerField(default=3, null=True)), + ('tutorial_hours', models.PositiveIntegerField(default=0, null=True)), + ('pratical_hours', models.PositiveIntegerField(default=0, null=True)), + ('discussion_hours', models.PositiveIntegerField(default=0, null=True)), + ('project_hours', models.PositiveIntegerField(default=0, null=True)), + ('pre_requisits', models.TextField(blank=True, null=True)), + ('syllabus', models.TextField()), + ('percent_quiz_1', models.PositiveIntegerField(default=10)), + ('percent_midsem', models.PositiveIntegerField(default=20)), + ('percent_quiz_2', models.PositiveIntegerField(default=10)), + ('percent_endsem', models.PositiveIntegerField(default=30)), + ('percent_project', models.PositiveIntegerField(default=15)), + ('percent_lab_evaluation', models.PositiveIntegerField(default=10)), + ('percent_course_attendance', models.PositiveIntegerField(default=5)), + ('ref_books', models.TextField()), + ('status', models.PositiveIntegerField(default=0)), + ('disciplines', models.ManyToManyField(blank=True, to='programme_curriculum.Discipline')), + ('pre_requisit_courses', models.ManyToManyField(blank=True, to='programme_curriculum.Course')), + ], + options={ + 'unique_together': {('code', 'faculty_code')}, + }, + ), + ] diff --git a/FusionIIIT/applications/programme_curriculum/migrations/__init__.py b/FusionIIIT/applications/programme_curriculum/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/ps1/migrations/0001_initial.py b/FusionIIIT/applications/ps1/migrations/0001_initial.py new file mode 100644 index 000000000..4cd74fe33 --- /dev/null +++ b/FusionIIIT/applications/ps1/migrations/0001_initial.py @@ -0,0 +1,58 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('filetracking', '0001_initial'), + ('globals', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='IndentFile', + fields=[ + ('file_info', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='filetracking.file')), + ('item_name', models.CharField(max_length=250)), + ('quantity', models.IntegerField()), + ('present_stock', models.IntegerField()), + ('estimated_cost', models.IntegerField(null=True)), + ('purpose', models.CharField(max_length=250)), + ('specification', models.CharField(max_length=250)), + ('indent_type', models.CharField(max_length=250)), + ('nature', models.BooleanField(default=False)), + ('indigenous', models.BooleanField(default=False)), + ('replaced', models.BooleanField(default=False)), + ('budgetary_head', models.CharField(max_length=250)), + ('expected_delivery', models.DateField()), + ('sources_of_supply', models.CharField(max_length=250)), + ('head_approval', models.BooleanField(default=False)), + ('director_approval', models.BooleanField(default=False)), + ('financial_approval', models.BooleanField(default=False)), + ('purchased', models.BooleanField(default=False)), + ], + options={ + 'db_table': 'IndentFile', + }, + ), + migrations.CreateModel( + name='StockEntry', + fields=[ + ('item_id', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='ps1.indentfile')), + ('vendor', models.CharField(max_length=250)), + ('item_name', models.CharField(max_length=250)), + ('current_stock', models.IntegerField()), + ('recieved_date', models.DateField()), + ('bill', models.FileField(upload_to='')), + ('dealing_assistant_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + options={ + 'db_table': 'StockEntry', + }, + ), + ] diff --git a/FusionIIIT/applications/ps1/migrations/__init__.py b/FusionIIIT/applications/ps1/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/recruitment/migrations/0001_initial.py b/FusionIIIT/applications/recruitment/migrations/0001_initial.py new file mode 100644 index 000000000..9cf2d3a77 --- /dev/null +++ b/FusionIIIT/applications/recruitment/migrations/0001_initial.py @@ -0,0 +1,311 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +import datetime +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='EducationalDetails', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('university', models.CharField(max_length=200)), + ('board', models.CharField(max_length=200)), + ('year_of_passing', models.IntegerField()), + ('division', models.CharField(max_length=6)), + ], + ), + migrations.CreateModel( + name='Experience', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('duration', models.IntegerField(null=True)), + ('organization', models.CharField(max_length=100, null=True)), + ('area', models.CharField(max_length=200, null=True)), + ], + ), + migrations.CreateModel( + name='Vacancy', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('advertisement_number', models.IntegerField()), + ('job_description', models.TextField()), + ('job_notification', models.FileField(upload_to='')), + ('number_of_vacancy', models.IntegerField(default=1)), + ('job_type', models.CharField(choices=[('T', 'Teaching'), ('NT', 'Non-Teaching')], max_length=15)), + ('last_date', models.DateField()), + ], + ), + migrations.CreateModel( + name='ThesisSupervision', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name_of_student', models.CharField(max_length=200)), + ('masters_or_phd', models.CharField(choices=[('Masters', 'Masters'), ('PhD', 'PhD')], max_length=20)), + ('year_of_completion', models.IntegerField()), + ('title_of_thesis', models.CharField(max_length=100)), + ('co_guides', models.CharField(max_length=200, null=True)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='TeachingExperience', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('teaching_experience', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='recruitment.experience')), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='SponsoredProjects', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('period', models.CharField(max_length=10)), + ('sponsoring_organisation', models.CharField(max_length=200)), + ('title_of_project', models.CharField(max_length=200)), + ('grant_amount', models.IntegerField(null=True)), + ('co_investigators', models.CharField(max_length=200, null=True)), + ('status', models.CharField(choices=[('Ongoing', 'Ongoing'), ('Completed', 'Completed')], max_length=20)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='ResearchExperience', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('research_experience', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='recruitment.experience')), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='References', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ('address', models.TextField(null=True)), + ('email', models.EmailField(max_length=254)), + ('mobile_number', models.BigIntegerField()), + ('department', models.CharField(max_length=50)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='QualifiedExams', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('net', models.BooleanField()), + ('gate', models.BooleanField()), + ('jrf', models.BooleanField()), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Publications', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('referred_journal', models.CharField(max_length=100)), + ('sci_index_journal', models.CharField(max_length=100)), + ('international_conferences', models.CharField(max_length=100, null=True)), + ('national_conferences', models.CharField(max_length=100, null=True)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='PersonalDetails', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(default='Dr.', max_length=20)), + ('sex', models.CharField(choices=[('M', 'Male'), ('F', 'Female'), ('O', 'Other')], default='M', max_length=2)), + ('profile_picture', models.ImageField(blank=True, null=True, upload_to='')), + ('marital_status', models.CharField(choices=[('M', 'Married'), ('U', 'Unmarried')], max_length=10)), + ('discipline', models.CharField(max_length=50)), + ('specialization', models.CharField(choices=[('MA', 'Major'), ('MI', 'Minor')], max_length=10)), + ('category', models.CharField(choices=[('PH', 'Physically Handicapped'), ('UR', 'Unreserved'), ('OBC', 'Other Backward Classes'), ('SC', 'Scheduled Castes'), ('ST', 'Scheduled Tribes'), ('EWS', 'Economic Weaker Section')], max_length=20)), + ('father_name', models.CharField(default='', max_length=40)), + ('address_correspondence', models.TextField(max_length=1000)), + ('address_permanent', models.TextField(default='', max_length=1000)), + ('email_alternate', models.EmailField(default='', max_length=50, null=True)), + ('phone_no', models.BigIntegerField(default=9999999999, null=True)), + ('mobile_no_first', models.BigIntegerField(default=9999999999)), + ('mobile_no_second', models.BigIntegerField(default=9999999999, null=True)), + ('date_of_birth', models.DateField(default=datetime.date(1970, 1, 1))), + ('nationality', models.CharField(max_length=30)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Patent', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('filed_national', models.CharField(max_length=200, null=True)), + ('filed_international', models.CharField(max_length=200, null=True)), + ('award_national', models.CharField(max_length=200, null=True)), + ('award_international', models.CharField(max_length=200, null=True)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='PapersInReferredJournal', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('author', models.CharField(max_length=100)), + ('year', models.IntegerField()), + ('published', models.BooleanField()), + ('accepted', models.BooleanField()), + ('title', models.CharField(max_length=100)), + ('reference_of_journal', models.CharField(max_length=100)), + ('impact_factor', models.CharField(max_length=100)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='NationalConference', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('author', models.CharField(max_length=100)), + ('year', models.IntegerField()), + ('title', models.CharField(max_length=100)), + ('name_and_place_of_conference', models.CharField(max_length=200)), + ('presented', models.BooleanField()), + ('published', models.BooleanField()), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='InternationalConference', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('author', models.CharField(max_length=100)), + ('year', models.IntegerField()), + ('title', models.CharField(max_length=100)), + ('name_and_place_of_conference', models.CharField(max_length=200)), + ('presented', models.BooleanField()), + ('published', models.BooleanField()), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='IndustrialExperience', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('period', models.IntegerField(null=True)), + ('organization', models.CharField(max_length=200, null=True)), + ('title_of_post', models.CharField(max_length=200, null=True)), + ('nature_of_work', models.TextField(null=True)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='ExperienceDetails', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('total_experience_months', models.IntegerField(null=True)), + ('member_of_professional_body', models.CharField(max_length=200, null=True)), + ('employer', models.CharField(max_length=100, null=True)), + ('position_held', models.CharField(max_length=100, null=True)), + ('date_of_joining', models.DateField(null=True)), + ('date_of_leaving', models.DateField(null=True)), + ('pay_in_payband', models.CharField(max_length=20, null=True)), + ('payband', models.CharField(max_length=20, null=True)), + ('AGP', models.CharField(max_length=20, null=True)), + ('reasons_for_leaving', models.TextField(null=True)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='CoursesTaught', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=100, null=True)), + ('level', models.CharField(choices=[('UG', 'UnderGraduate'), ('PG', 'PostGraduate')], max_length=20, null=True)), + ('number_of_times', models.IntegerField(null=True)), + ('developed_by_you', models.BooleanField(null=True)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Consultancy', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('period', models.CharField(max_length=10)), + ('sponsoring_organisation', models.CharField(max_length=200)), + ('title_of_project', models.CharField(max_length=200)), + ('grant_amount', models.IntegerField(null=True)), + ('co_investigators', models.CharField(max_length=200, null=True)), + ('status', models.CharField(choices=[('Ongoing', 'Ongoing'), ('Completed', 'Completed')], max_length=20)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Books', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name_of_book', models.CharField(max_length=100)), + ('year', models.IntegerField()), + ('published', models.BooleanField()), + ('title', models.CharField(max_length=100)), + ('publisher', models.CharField(max_length=200)), + ('co_author', models.CharField(max_length=100, null=True)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='BankDetails', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('payment_reference_number', models.CharField(max_length=20)), + ('payment_date', models.DateField()), + ('bank_name', models.CharField(max_length=100)), + ('bank_branch', models.CharField(max_length=200)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='applied', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date', models.DateField(default=django.utils.timezone.now)), + ('advertisement_number', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='recruitment.vacancy')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='AdministrativeExperience', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('period', models.IntegerField(null=True)), + ('organization', models.CharField(max_length=200, null=True)), + ('title_of_post', models.CharField(max_length=200, null=True)), + ('nature_of_work', models.TextField(null=True)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='AcademicDetails', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('area_of_specialization', models.TextField()), + ('current_area_of_research', models.TextField()), + ('date_of_enrollment_in_phd', models.DateField()), + ('date_of_phd_defence', models.DateField()), + ('date_of_award_of_phd', models.DateField()), + ('XIIth', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='XIIth_details', to='recruitment.educationaldetails')), + ('Xth', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='Xth_details', to='recruitment.educationaldetails')), + ('graduation', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='graduation_details', to='recruitment.educationaldetails')), + ('phd', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='phd_details', to='recruitment.educationaldetails')), + ('post_graduation', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='post_graduations_details', to='recruitment.educationaldetails')), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/FusionIIIT/applications/recruitment/migrations/__init__.py b/FusionIIIT/applications/recruitment/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/research_procedures/migrations/0001_initial.py b/FusionIIIT/applications/research_procedures/migrations/0001_initial.py new file mode 100644 index 000000000..ec4b77a48 --- /dev/null +++ b/FusionIIIT/applications/research_procedures/migrations/0001_initial.py @@ -0,0 +1,91 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +import datetime +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('globals', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='TechTransfer', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pf_no', models.IntegerField()), + ('details', models.CharField(default=' ', max_length=500)), + ('date_entry', models.DateField(blank=True, default=datetime.datetime.now, null=True)), + ('start_date', models.DateField(blank=True, null=True)), + ('end_date', models.DateField(blank=True, null=True)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='ResearchProject', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pf_no', models.IntegerField()), + ('ptype', models.CharField(default='Research', max_length=100)), + ('pi', models.CharField(default=' ', max_length=1000)), + ('co_pi', models.CharField(default=' ', max_length=1500)), + ('title', models.TextField(default=' ', max_length=5000)), + ('funding_agency', models.CharField(default=' ', max_length=250, null=True)), + ('financial_outlay', models.CharField(default=' ', max_length=150, null=True)), + ('status', models.CharField(choices=[('Awarded', 'Awarded'), ('Submitted', 'Submitted'), ('Ongoing', 'Ongoing'), ('Completed', 'Completed')], max_length=10)), + ('start_date', models.DateField(blank=True, null=True)), + ('finish_date', models.DateField(blank=True, null=True)), + ('date_submission', models.DateField(blank=True, null=True)), + ('date_entry', models.DateField(blank=True, default=datetime.datetime.now, null=True)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='ResearchGroup', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=120)), + ('description', models.TextField()), + ('faculty_under_group', models.ManyToManyField(related_name='allfaculty', to=settings.AUTH_USER_MODEL)), + ('students_under_group', models.ManyToManyField(related_name='allstudents', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Patent', + fields=[ + ('application_id', models.AutoField(primary_key=True, serialize=False)), + ('title', models.CharField(max_length=120)), + ('ipd_form', models.FileField(blank=True, null=True, upload_to='')), + ('project_details', models.FileField(blank=True, null=True, upload_to='')), + ('ipd_form_file', models.TextField(blank=True, null=True)), + ('project_details_file', models.TextField(blank=True, null=True)), + ('status', models.CharField(choices=[('Approved', 'Approved'), ('Disapproved', 'Disapproved'), ('Pending', 'Pending')], default='Pending', max_length=20)), + ('faculty_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + ), + migrations.CreateModel( + name='ConsultancyProject', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('pf_no', models.IntegerField()), + ('consultants', models.CharField(max_length=150)), + ('title', models.CharField(max_length=1000)), + ('client', models.CharField(max_length=1000)), + ('financial_outlay', models.IntegerField()), + ('start_date', models.DateField(blank=True, null=True)), + ('end_date', models.DateField(blank=True, null=True)), + ('duration', models.CharField(blank=True, max_length=500, null=True)), + ('date_entry', models.DateField(blank=True, default=datetime.datetime.now, null=True)), + ('status', models.CharField(blank=True, choices=[('Completed', 'Completed'), ('Submitted', 'Submitted'), ('Ongoing', 'Ongoing')], default='Ongoing', max_length=10, null=True)), + ('remarks', models.CharField(blank=True, max_length=1000, null=True)), + ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/FusionIIIT/applications/research_procedures/migrations/__init__.py b/FusionIIIT/applications/research_procedures/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/scholarships/migrations/0001_initial.py b/FusionIIIT/applications/scholarships/migrations/0001_initial.py new file mode 100644 index 000000000..176422fd9 --- /dev/null +++ b/FusionIIIT/applications/scholarships/migrations/0001_initial.py @@ -0,0 +1,233 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +import datetime +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('academic_information', '0001_initial'), + ('globals', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Award_and_scholarship', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('award_name', models.CharField(default='', max_length=100)), + ('catalog', models.TextField(max_length=5000)), + ], + options={ + 'db_table': 'Award_and_scholarship', + }, + ), + migrations.CreateModel( + name='Release', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date_time', models.DateTimeField(blank=True, default=datetime.datetime.now)), + ('programme', models.CharField(default='B.Tech', max_length=10)), + ('startdate', models.DateField(default=datetime.date.today)), + ('enddate', models.DateField()), + ('award', models.CharField(default='', max_length=50)), + ('remarks', models.TextField(default='', max_length=500)), + ('batch', models.TextField(default='all')), + ('notif_visible', models.IntegerField(default=1)), + ], + options={ + 'db_table': 'Release', + }, + ), + migrations.CreateModel( + name='Proficiency_dm', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('relevant_document', models.FileField(blank=True, null=True, upload_to='')), + ('title_name', models.CharField(max_length=30, null=True)), + ('award_type', models.CharField(max_length=50, null=True)), + ('status', models.CharField(choices=[('Complete', 'COMPLETE'), ('Incomplete', 'INCOMPLETE'), ('Reject', 'REJECT'), ('Accept', 'ACCEPT')], default='INCOMPLETE', max_length=10)), + ('no_of_students', models.IntegerField(default=1)), + ('date', models.DateField(default=datetime.date.today)), + ('roll_no1', models.IntegerField(default=0)), + ('roll_no2', models.IntegerField(default=0)), + ('roll_no3', models.IntegerField(default=0)), + ('roll_no4', models.IntegerField(default=0)), + ('roll_no5', models.IntegerField(default=0)), + ('brief_description', models.TextField(max_length=1000, null=True)), + ('justification', models.TextField(max_length=1000, null=True)), + ('ece_topic', models.CharField(max_length=25, null=True)), + ('cse_topic', models.CharField(max_length=25, null=True)), + ('mech_topic', models.CharField(max_length=25, null=True)), + ('design_topic', models.CharField(max_length=25, null=True)), + ('ece_percentage', models.IntegerField(null=True)), + ('cse_percentage', models.IntegerField(null=True)), + ('mech_percentage', models.IntegerField(null=True)), + ('design_percentage', models.IntegerField(null=True)), + ('correspondence_address', models.CharField(max_length=100, null=True)), + ('financial_assistance', models.TextField(max_length=1000, null=True)), + ('grand_total', models.IntegerField(null=True)), + ('nearest_policestation', models.CharField(max_length=25, null=True)), + ('nearest_railwaystation', models.CharField(max_length=25, null=True)), + ('award_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='scholarships.award_and_scholarship')), + ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'Proficiency_dm', + }, + ), + migrations.CreateModel( + name='Previous_winner', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('programme', models.CharField(default='B.Tech', max_length=10)), + ('year', models.IntegerField(default=2023)), + ('award_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='scholarships.award_and_scholarship')), + ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'Previous_winner', + }, + ), + migrations.CreateModel( + name='Notional_prize', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('spi', models.FloatField()), + ('cpi', models.FloatField()), + ('year', models.CharField(choices=[('UG1', 'UG1'), ('UG2', 'UG2'), ('UG3', 'UG3'), ('UG4', 'UG4'), ('PG1', 'PG1'), ('PG2', 'PG2')], max_length=10)), + ('award_id', models.ForeignKey(default=4, on_delete=django.db.models.deletion.CASCADE, to='scholarships.award_and_scholarship')), + ], + options={ + 'db_table': 'Notional_prize', + }, + ), + migrations.CreateModel( + name='Notification', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('notification_mcm_flag', models.BooleanField(default=False)), + ('notification_convocation_flag', models.BooleanField(default=False)), + ('invite_mcm_accept_flag', models.BooleanField(default=False)), + ('invite_convocation_accept_flag', models.BooleanField(default=False)), + ('release_id', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='scholarships.release')), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'Notification', + }, + ), + migrations.CreateModel( + name='Mcm', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('brother_name', models.CharField(max_length=30, null=True)), + ('brother_occupation', models.TextField(max_length=100, null=True)), + ('sister_name', models.CharField(max_length=30, null=True)), + ('sister_occupation', models.TextField(max_length=100, null=True)), + ('income_father', models.IntegerField(default=0)), + ('income_mother', models.IntegerField(default=0)), + ('income_other', models.IntegerField(default=0)), + ('father_occ', models.CharField(choices=[('government', 'Government'), ('private', 'Private'), ('public', 'Public'), ('business', 'Business'), ('medical', 'Medical'), ('consultant', 'Consultant'), ('pensioners', 'Pensioners')], default='', max_length=10)), + ('mother_occ', models.CharField(choices=[('EMPLOYED', 'EMPLOYED'), ('HOUSE_WIFE', 'HOUSE_WIFE')], default='', max_length=10)), + ('father_occ_desc', models.CharField(max_length=30, null=True)), + ('mother_occ_desc', models.CharField(max_length=30, null=True)), + ('four_wheeler', models.IntegerField(blank=True, null=True)), + ('four_wheeler_desc', models.CharField(max_length=30, null=True)), + ('two_wheeler', models.IntegerField(blank=True, null=True)), + ('two_wheeler_desc', models.CharField(max_length=30, null=True)), + ('house', models.CharField(max_length=10, null=True)), + ('plot_area', models.IntegerField(blank=True, null=True)), + ('constructed_area', models.IntegerField(blank=True, null=True)), + ('school_fee', models.IntegerField(blank=True, null=True)), + ('school_name', models.CharField(max_length=30, null=True)), + ('bank_name', models.CharField(max_length=100, null=True)), + ('loan_amount', models.IntegerField(blank=True, null=True)), + ('college_fee', models.IntegerField(blank=True, null=True)), + ('college_name', models.CharField(max_length=30, null=True)), + ('income_certificate', models.FileField(blank=True, null=True, upload_to='')), + ('forms', models.FileField(blank=True, null=True, upload_to='')), + ('status', models.CharField(choices=[('Complete', 'COMPLETE'), ('Incomplete', 'INCOMPLETE'), ('Reject', 'REJECT'), ('Accept', 'ACCEPT')], default='INCOMPLETE', max_length=10)), + ('annual_income', models.IntegerField(default=0)), + ('date', models.DateField(default=datetime.date.today)), + ('award_id', models.ForeignKey(default=4, on_delete=django.db.models.deletion.CASCADE, to='scholarships.award_and_scholarship')), + ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='mcm_info', to='academic_information.student')), + ], + options={ + 'db_table': 'Mcm', + }, + ), + migrations.CreateModel( + name='Director_silver', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('nearest_policestation', models.TextField(default='station', max_length=30)), + ('nearest_railwaystation', models.TextField(default='station', max_length=30)), + ('correspondence_address', models.TextField(max_length=150, null=True)), + ('award_type', models.CharField(max_length=50, null=True)), + ('status', models.CharField(choices=[('Complete', 'COMPLETE'), ('Incomplete', 'INCOMPLETE'), ('Reject', 'REJECT'), ('Accept', 'ACCEPT')], default='INCOMPLETE', max_length=10)), + ('relevant_document', models.FileField(blank=True, null=True, upload_to='')), + ('date', models.DateField(default=datetime.date.today)), + ('financial_assistance', models.TextField(max_length=1000, null=True)), + ('grand_total', models.IntegerField(null=True)), + ('inside_achievements', models.TextField(max_length=1000, null=True)), + ('justification', models.TextField(max_length=1000, null=True)), + ('outside_achievements', models.TextField(max_length=1000, null=True)), + ('award_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='scholarships.award_and_scholarship')), + ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'Director_silver', + }, + ), + migrations.CreateModel( + name='Director_gold', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('status', models.CharField(choices=[('Complete', 'COMPLETE'), ('Incomplete', 'INCOMPLETE'), ('Reject', 'REJECT'), ('Accept', 'ACCEPT')], default='INCOMPLETE', max_length=10)), + ('relevant_document', models.FileField(blank=True, null=True, upload_to='')), + ('date', models.DateField(default=datetime.date.today)), + ('academic_achievements', models.TextField(max_length=1000, null=True)), + ('science_inside', models.TextField(max_length=1000, null=True)), + ('science_outside', models.TextField(max_length=1000, null=True)), + ('games_inside', models.TextField(max_length=1000, null=True)), + ('games_outside', models.TextField(max_length=1000, null=True)), + ('cultural_inside', models.TextField(max_length=1000, null=True)), + ('cultural_outside', models.TextField(max_length=1000, null=True)), + ('social', models.TextField(max_length=1000, null=True)), + ('corporate', models.TextField(max_length=1000, null=True)), + ('hall_activities', models.TextField(max_length=1000, null=True)), + ('gymkhana_activities', models.TextField(max_length=1000, null=True)), + ('institute_activities', models.TextField(max_length=1000, null=True)), + ('counselling_activities', models.TextField(max_length=1000, null=True)), + ('other_activities', models.TextField(max_length=1000, null=True)), + ('justification', models.TextField(max_length=1000, null=True)), + ('correspondence_address', models.CharField(max_length=100, null=True)), + ('financial_assistance', models.TextField(max_length=1000, null=True)), + ('grand_total', models.IntegerField(null=True)), + ('nearest_policestation', models.CharField(max_length=25, null=True)), + ('nearest_railwaystation', models.CharField(max_length=25, null=True)), + ('award_id', models.ForeignKey(default=4, on_delete=django.db.models.deletion.CASCADE, to='scholarships.award_and_scholarship')), + ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='academic_information.student')), + ], + options={ + 'db_table': 'Director_gold', + }, + ), + migrations.CreateModel( + name='Application', + fields=[ + ('application_id', models.CharField(max_length=100, primary_key=True, serialize=False)), + ('applied_flag', models.BooleanField(default=False)), + ('award', models.CharField(max_length=30)), + ('student_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='globals.extrainfo')), + ], + options={ + 'db_table': 'Application', + }, + ), + ] diff --git a/FusionIIIT/applications/scholarships/migrations/0002_auto_20240421_1716.py b/FusionIIIT/applications/scholarships/migrations/0002_auto_20240421_1716.py new file mode 100644 index 000000000..0ed9172ca --- /dev/null +++ b/FusionIIIT/applications/scholarships/migrations/0002_auto_20240421_1716.py @@ -0,0 +1,18 @@ +# Generated by Django 3.1.5 on 2024-04-21 17:16 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('scholarships', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='previous_winner', + name='year', + field=models.IntegerField(default=2024), + ), + ] diff --git a/FusionIIIT/applications/scholarships/migrations/__init__.py b/FusionIIIT/applications/scholarships/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/visitor_hostel/migrations/0001_initial.py b/FusionIIIT/applications/visitor_hostel/migrations/0001_initial.py new file mode 100644 index 000000000..f4229feb2 --- /dev/null +++ b/FusionIIIT/applications/visitor_hostel/migrations/0001_initial.py @@ -0,0 +1,134 @@ +# Generated by Django 3.1.5 on 2023-03-15 18:53 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='BookingDetail', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('visitor_category', models.CharField(choices=[('A', 'A'), ('B', 'B'), ('C', 'C'), ('D', 'D')], default='C', max_length=1)), + ('modified_visitor_category', models.CharField(choices=[('A', 'A'), ('B', 'B'), ('C', 'C'), ('D', 'D')], default='C', max_length=1)), + ('person_count', models.IntegerField(default=1)), + ('purpose', models.TextField(default='Hi!')), + ('booking_from', models.DateField()), + ('booking_to', models.DateField()), + ('arrival_time', models.TextField(blank=True, null=True)), + ('departure_time', models.TextField(blank=True, null=True)), + ('forwarded_date', models.DateField(blank=True, null=True)), + ('confirmed_date', models.DateField(blank=True, null=True)), + ('check_in', models.DateField(blank=True, null=True)), + ('check_out', models.DateField(blank=True, null=True)), + ('check_in_time', models.TimeField(blank=True, null=True)), + ('check_out_time', models.TimeField(blank=True, null=True)), + ('status', models.CharField(choices=[('Confirmed', 'Confirmed'), ('Pending', 'Pending'), ('Rejected', 'Rejected'), ('Canceled', 'Canceled'), ('CancelRequested', 'CancelRequested'), ('CheckedIn', 'CheckedIn'), ('Complete', 'Complete'), ('Forward', 'Forward')], default='Pending', max_length=15)), + ('remark', models.CharField(blank=True, max_length=40, null=True)), + ('image', models.FileField(blank=True, null=True, upload_to='VhImage/')), + ('number_of_rooms', models.IntegerField(blank=True, default=1, null=True)), + ('number_of_rooms_alloted', models.IntegerField(blank=True, default=1, null=True)), + ('booking_date', models.DateField(default=django.utils.timezone.now)), + ('bill_to_be_settled_by', models.CharField(choices=[('Intender', 'Intender'), ('Visitor', 'Visitor'), ('ProjectNo', 'ProjectNo'), ('Institute', 'Institute')], default='Intender', max_length=15)), + ('caretaker', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='caretaker', to=settings.AUTH_USER_MODEL)), + ('intender', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='intender', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Inventory', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('item_name', models.CharField(max_length=20)), + ('quantity', models.IntegerField(default=0)), + ('consumable', models.BooleanField(default=False)), + ('opening_stock', models.IntegerField(default=0)), + ('addition_stock', models.IntegerField(default=0)), + ('total_stock', models.IntegerField(default=0)), + ('serviceable', models.IntegerField(default=0)), + ('non_serviceable', models.IntegerField(default=0)), + ('inuse', models.IntegerField(default=0)), + ('total_usable', models.IntegerField(default=0)), + ('remark', models.TextField(blank=True)), + ], + ), + migrations.CreateModel( + name='VisitorDetail', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('visitor_phone', models.CharField(max_length=15)), + ('visitor_name', models.CharField(max_length=40)), + ('visitor_email', models.CharField(blank=True, max_length=40)), + ('visitor_organization', models.CharField(blank=True, max_length=100)), + ('visitor_address', models.TextField(blank=True)), + ('nationality', models.CharField(blank=True, max_length=20)), + ], + ), + migrations.CreateModel( + name='RoomDetail', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('room_number', models.CharField(max_length=4, unique=True)), + ('room_type', models.CharField(choices=[('SingleBed', 'SingleBed'), ('DoubleBed', 'DoubleBed'), ('VIP', 'VIP')], max_length=12)), + ('room_floor', models.CharField(choices=[('GroundFloor', 'GroundFloor'), ('FirstFloor', 'FirstFloor'), ('SecondFloor', 'SecondFloor'), ('ThirdFloor', 'ThirdFloor')], max_length=12)), + ('room_status', models.CharField(choices=[('Booked', 'Booked'), ('CheckedIn', 'CheckedIn'), ('Available', 'Available'), ('UnderMaintenance', 'UnderMaintenance')], default='Available', max_length=20)), + ('visitor', models.ManyToManyField(blank=True, to='visitor_hostel.VisitorDetail')), + ], + ), + migrations.CreateModel( + name='MealRecord', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('meal_date', models.DateField()), + ('morning_tea', models.BooleanField(default=False)), + ('eve_tea', models.BooleanField(default=False)), + ('breakfast', models.BooleanField(default=False)), + ('lunch', models.BooleanField(default=False)), + ('dinner', models.BooleanField(default=False)), + ('persons', models.IntegerField(default=0)), + ('booking', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='visitor_hostel.bookingdetail')), + ('room', models.ForeignKey(default=0, on_delete=django.db.models.deletion.CASCADE, to='visitor_hostel.roomdetail')), + ('visitor', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='visitor_hostel.visitordetail')), + ], + ), + migrations.CreateModel( + name='InventoryBill', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('bill_number', models.CharField(max_length=40)), + ('cost', models.IntegerField(default=0)), + ('item_name', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='visitor_hostel.inventory')), + ], + ), + migrations.AddField( + model_name='bookingdetail', + name='rooms', + field=models.ManyToManyField(to='visitor_hostel.RoomDetail'), + ), + migrations.AddField( + model_name='bookingdetail', + name='visitor', + field=models.ManyToManyField(to='visitor_hostel.VisitorDetail'), + ), + migrations.CreateModel( + name='Bill', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('meal_bill', models.IntegerField(default=0)), + ('room_bill', models.IntegerField(default=0)), + ('payment_status', models.BooleanField(default=False)), + ('booking', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='visitor_hostel.bookingdetail')), + ('caretaker', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ('room', models.ManyToManyField(to='visitor_hostel.RoomDetail')), + ], + ), + ] diff --git a/FusionIIIT/applications/visitor_hostel/migrations/0002_auto_20240421_1716.py b/FusionIIIT/applications/visitor_hostel/migrations/0002_auto_20240421_1716.py new file mode 100644 index 000000000..ba61ffe8d --- /dev/null +++ b/FusionIIIT/applications/visitor_hostel/migrations/0002_auto_20240421_1716.py @@ -0,0 +1,48 @@ +# Generated by Django 3.1.5 on 2024-04-21 17:16 + +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('visitor_hostel', '0001_initial'), + ] + + operations = [ + migrations.RemoveField( + model_name='mealrecord', + name='room', + ), + migrations.AddField( + model_name='bill', + name='bill_date', + field=models.DateField(blank=True, default=django.utils.timezone.now), + ), + migrations.AlterField( + model_name='mealrecord', + name='breakfast', + field=models.IntegerField(default=0), + ), + migrations.AlterField( + model_name='mealrecord', + name='dinner', + field=models.IntegerField(default=0), + ), + migrations.AlterField( + model_name='mealrecord', + name='eve_tea', + field=models.IntegerField(default=0), + ), + migrations.AlterField( + model_name='mealrecord', + name='lunch', + field=models.IntegerField(default=0), + ), + migrations.AlterField( + model_name='mealrecord', + name='morning_tea', + field=models.IntegerField(default=0), + ), + ] diff --git a/FusionIIIT/applications/visitor_hostel/migrations/__init__.py b/FusionIIIT/applications/visitor_hostel/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/FusionIIIT/applications/visitor_hostel/static/visitor_hostel/visitor-hostel.js b/FusionIIIT/applications/visitor_hostel/static/visitor_hostel/visitor-hostel.js index 5338efcbc..45ca5a168 100644 --- a/FusionIIIT/applications/visitor_hostel/static/visitor_hostel/visitor-hostel.js +++ b/FusionIIIT/applications/visitor_hostel/static/visitor_hostel/visitor-hostel.js @@ -987,6 +987,10 @@ function checkInModal (id, booking_from) { function checkOutModal(id) { $('#check-out-modal-'.concat(id)).modal('show'); } +function hostelBillModal(id) { + console.log("in visitor-hostel.js") + $('#hostel-bill-'.concat(id)).modal('show'); +} function alertModal(alert) { $('#append-alert').html(alert); diff --git a/FusionIIIT/applications/visitor_hostel/views.py b/FusionIIIT/applications/visitor_hostel/views.py index 3419a7d14..88a7bde71 100644 --- a/FusionIIIT/applications/visitor_hostel/views.py +++ b/FusionIIIT/applications/visitor_hostel/views.py @@ -36,6 +36,7 @@ @login_required(login_url='/accounts/login/') def visitorhostel(request): + notifs = request.user.notifications.all() # intenders intenders = User.objects.all() user = request.user @@ -276,18 +277,20 @@ def visitorhostel(request): 'rejected_bookings': rejected_bookings, 'cancel_booking_request': cancel_booking_request, 'cancel_booking_requested': cancel_booking_requested, - 'user_designation': user_designation}) + 'user_designation': user_designation, + 'notifications': notifs}) # Get methods for bookings @login_required(login_url='/accounts/login/') def get_booking_requests(request): + notifs = request.user.notifications.all() if request.method == 'POST': pending_bookings = BookingDetail.objects.select_related( 'intender', 'caretaker').filter(status="Pending") - return render(request, "vhModule/visitorhostel.html", {'pending_bookings': pending_bookings}) + return render(request, "vhModule/visitorhostel.html", {'pending_bookings': pending_bookings,'notifications': notifs}) else: return HttpResponseRedirect('/visitorhostel/') @@ -296,22 +299,24 @@ def get_booking_requests(request): @login_required(login_url='/accounts/login/') def get_active_bookings(request): + notifs = request.user.notifications.all() if request.method == 'POST': active_bookings = BookingDetail.objects.select_related( 'intender', 'caretaker').filter(status="Confirmed") - return render(request, "vhModule/visitorhostel.html", {'active_bookings': active_bookings}) + return render(request, "vhModule/visitorhostel.html", {'active_bookings': active_bookings,'notifications': notifs}) else: return HttpResponseRedirect('/visitorhostel/') @login_required(login_url='/accounts/login/') def get_inactive_bookings(request): + notifs = request.user.notifications.all() if request.method == 'POST': inactive_bookings = BookingDetail.objects.select_related('intender', 'caretaker').filter( Q(status="Cancelled") | Q(status="Rejected") | Q(status="Complete")) - return render(request, "vhModule/visitorhostel.html", {'inactive_bookings': inactive_bookings}) + return render(request, "vhModule/visitorhostel.html", {'inactive_bookings': inactive_bookings,'notifications': notifs}) else: return HttpResponseRedirect('/visitorhostel/') @@ -320,9 +325,10 @@ def get_inactive_bookings(request): @login_required(login_url='/accounts/login/') def get_booking_form(request): + notifs = request.user.notifications.all() if request.method == 'POST': intenders = User.objects.all() - return render(request, "vhModule/visitorhostel.html", {'intenders': intenders}) + return render(request, "vhModule/visitorhostel.html", {'intenders': intenders,'notifications': notifs}) else: return HttpResponseRedirect('/visitorhostel/') @@ -331,7 +337,7 @@ def get_booking_form(request): @login_required(login_url='/accounts/login/') def request_booking(request): - + notifs = request.user.notifications.all() if request.method == 'POST': flag = 0 @@ -463,6 +469,7 @@ def request_booking(request): @login_required(login_url='/accounts/login/') def update_booking(request): + notifs = request.user.notifications.all() if request.method == 'POST': user = request.user print(request.POST) @@ -507,7 +514,7 @@ def update_booking(request): forwarded_rooms[booking.id] = temp2 return render(request, "visitorhostel/", { - 'forwarded_rooms': forwarded_rooms}) + 'forwarded_rooms': forwarded_rooms,'notifications': notifs}) else: return HttpResponseRedirect('/visitorhostel/') @@ -517,6 +524,7 @@ def update_booking(request): @login_required(login_url='/accounts/login/') def confirm_booking(request): + notifs = request.user.notifications.all() if request.method == 'POST': booking_id = request.POST.get('booking-id') intender = request.POST.get('intender'), @@ -551,6 +559,7 @@ def confirm_booking(request): @login_required(login_url='/accounts/login/') def cancel_booking(request): + notifs = request.user.notifications.all() if request.method == 'POST': user = request.user print(request.POST) @@ -587,6 +596,7 @@ def cancel_booking(request): @login_required(login_url='/accounts/login/') def cancel_booking_request(request): + notifs = request.user.notifications.all() if request.method == 'POST': intender = request.user.holds_designations.filter( designation__name='VhIncharge') @@ -611,6 +621,7 @@ def cancel_booking_request(request): @login_required(login_url='/accounts/login/') def reject_booking(request): + notifs = request.user.notifications.all() if request.method == 'POST': booking_id = request.POST.get('booking-id') remark = request.POST.get('remark') @@ -629,6 +640,7 @@ def reject_booking(request): @login_required(login_url='/accounts/login/') def check_in(request): + notifs = request.user.notifications.all() if request.method == 'POST': booking_id = request.POST.get('booking-id') visitor_name = request.POST.get('name') @@ -659,6 +671,7 @@ def check_in(request): @login_required(login_url='/accounts/login/') def check_out(request): + notifs = request.user.notifications.all() user = get_object_or_404(User, username=request.user.username) c = ExtraInfo.objects.select_related('department').all().filter(user=user) @@ -708,6 +721,7 @@ def check_out(request): @login_required(login_url='/accounts/login/') def record_meal(request): + notifs = request.user.notifications.all() user = get_object_or_404(User, username=request.user.username) c = ExtraInfo.objects.select_related('department').all().filter(user=user) @@ -765,6 +779,7 @@ def record_meal(request): @login_required(login_url='/accounts/login/') def bill_generation(request): + notifs = request.user.notifications.all() user = get_object_or_404(User, username=request.user.username) c = ExtraInfo.objects.all().filter(user=user) @@ -798,6 +813,7 @@ def bill_generation(request): @login_required(login_url='/accounts/login/') def room_availabity(request): + notifs = request.user.notifications.all() if request.method == 'POST': date_1 = request.POST.get('start_date') date_2 = request.POST.get('end_date') @@ -809,13 +825,14 @@ def room_availabity(request): available_rooms_array = np.asarray(available_rooms_list) print(available_rooms_array) - return render(request, "vhModule/room-availability.html", {'available_rooms': available_rooms_array}) + return render(request, "vhModule/room-availability.html", {'available_rooms': available_rooms_array,'notifications': notifs}) else: return HttpResponseRedirect('/visitorhostel/') @login_required(login_url='/accounts/login/') def add_to_inventory(request): + notifs = request.user.notifications.all() if request.method == 'POST': item_name = request.POST.get('item_name') bill_number = request.POST.get('bill_number') @@ -841,6 +858,7 @@ def add_to_inventory(request): @login_required(login_url='/accounts/login/') def update_inventory(request): + notifs = request.user.notifications.all() if request.method == 'POST': id = request.POST.get('id') quantity = int(request.POST.get('quantity')) @@ -857,6 +875,7 @@ def update_inventory(request): @login_required(login_url='/accounts/login/') def edit_room_status(request): + notifs = request.user.notifications.all() if request.method == 'POST': room_number = request.POST.get('room_number') room_status = request.POST.get('room_status') @@ -869,6 +888,7 @@ def edit_room_status(request): @login_required(login_url='/accounts/login/') def bill_between_dates(request): + notifs = request.user.notifications.all() if request.method == 'POST': date_1 = request.POST.get('start_date') date_2 = request.POST.get('end_date') @@ -892,6 +912,7 @@ def bill_between_dates(request): 'total_bill': total_bill, 'individual_total': individual_total, 'booking_bw_dates': zip(bill_range_bw_dates, individual_total) + ,'notifications': notifs }) else: return HttpResponseRedirect('/visitorhostel/') @@ -920,7 +941,6 @@ def bill_range(date1, date2): def booking_details(date1, date2): - bookings = BookingDetail.objects.select_related('intender', 'caretaker').filter(Q(booking_from__lte=date1, booking_to__gte=date1, status="Confirmed") | Q(booking_from__gte=date1, booking_to__lte=date2, status="Confirmed") | Q(booking_from__lte=date2, booking_to__gte=date2, status="Confirmed") | Q(booking_from__lte=date1, booking_to__gte=date1, status="Forward") | Q(booking_from__gte=date1, booking_to__lte=date2, status="Forward") | Q(booking_from__lte=date2, booking_to__gte=date2, status="Forward") | Q(booking_from__lte=date1, booking_to__gte=date1, status="CheckedIn") | Q(booking_from__gte=date1, booking_to__lte=date2, status="CheckedIn") | Q(booking_from__lte=date2, booking_to__gte=date2, status="CheckedIn")) @@ -963,6 +983,7 @@ def forwarded_booking_details(date1, date2): @login_required(login_url='/accounts/login/') def forward_booking(request): + notifs = request.user.notifications.all() if request.method == 'POST': user = request.user booking_id = request.POST.get('id') diff --git a/FusionIIIT/templates/globals/usercard.html b/FusionIIIT/templates/globals/usercard.html index cdcd4712a..a910fa4c3 100644 --- a/FusionIIIT/templates/globals/usercard.html +++ b/FusionIIIT/templates/globals/usercard.html @@ -16,20 +16,13 @@ TODO: Add a If-Else here! {% endcomment %} {% if user %} - - - {{ user.first_name }} {{ user.last_name }} - - - - {{ user.extrainfo.department.name }} diff --git a/FusionIIIT/templates/notifications/visitorhostel_sidepanel.html b/FusionIIIT/templates/notifications/visitorhostel_sidepanel.html new file mode 100644 index 000000000..b7ec08e61 --- /dev/null +++ b/FusionIIIT/templates/notifications/visitorhostel_sidepanel.html @@ -0,0 +1,26 @@ +{% load static %} +{% block sidepanel %} + {% load notifications_tags %} + {% for notice in notifications %} + {% if notice.unread %} + {% if notice.data.module == "Visitor's Hostel" %} + + + + + + {{ notice.data.module }} + + + {{ notice.verb }} + + + + + + + + {% endif%} + {% endif %} + {% endfor %} +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/phcModule/comp_prescription.html b/FusionIIIT/templates/phcModule/comp_prescription.html index b1b1fa226..7738b5cae 100755 --- a/FusionIIIT/templates/phcModule/comp_prescription.html +++ b/FusionIIIT/templates/phcModule/comp_prescription.html @@ -216,7 +216,7 @@ Patient - + @@ -533,4 +533,4 @@ *Admission details for outside hospitals -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/phcModule/phc_student.html b/FusionIIIT/templates/phcModule/phc_student.html index 735d61ab3..15fb9f602 100644 --- a/FusionIIIT/templates/phcModule/phc_student.html +++ b/FusionIIIT/templates/phcModule/phc_student.html @@ -37,10 +37,10 @@ {% comment %}The Tab-Menu starts here!{% endcomment %} - + Appointments/Requests - + History diff --git a/FusionIIIT/templates/vhModule/booking-details.html b/FusionIIIT/templates/vhModule/booking-details.html index ba089a9f5..600a819e1 100644 --- a/FusionIIIT/templates/vhModule/booking-details.html +++ b/FusionIIIT/templates/vhModule/booking-details.html @@ -85,7 +85,7 @@ - {% if user_designation == 'Intender' %} + {% if user_designationz == 'Intender' %} Category diff --git a/FusionIIIT/templates/vhModule/booking-request-action-modal.html b/FusionIIIT/templates/vhModule/booking-request-action-modal.html index 5180d61ad..5ab9728bc 100644 --- a/FusionIIIT/templates/vhModule/booking-request-action-modal.html +++ b/FusionIIIT/templates/vhModule/booking-request-action-modal.html @@ -213,11 +213,11 @@ - {% if user_designation == 'VhIncharge' %} + {% if user_designation == 'VhIncharge' or user_designation == 'VhCaretaker' %} Remarks (required*) - + {% endif %} @@ -232,9 +232,9 @@ Forward - + {% endif %} diff --git a/FusionIIIT/templates/vhModule/bookings.html b/FusionIIIT/templates/vhModule/bookings.html index 51b3bc07a..b57005651 100644 --- a/FusionIIIT/templates/vhModule/bookings.html +++ b/FusionIIIT/templates/vhModule/bookings.html @@ -472,6 +472,7 @@ CheckOut Category Status + @@ -518,6 +519,11 @@ {% endif %} + {% endfor %} @@ -579,6 +585,8 @@ {% include 'vhModule/check-out-modal.html' %} +{% include 'vhModule/hostel-bill.html' %} + {% include 'vhModule/request-booking.html' %} {% include 'vhModule/update-booking.html' %} diff --git a/FusionIIIT/templates/vhModule/check-out-modal.html b/FusionIIIT/templates/vhModule/check-out-modal.html index b393906cd..019fdef3d 100644 --- a/FusionIIIT/templates/vhModule/check-out-modal.html +++ b/FusionIIIT/templates/vhModule/check-out-modal.html @@ -156,9 +156,13 @@ Room Details + Settle + + Print Bill + + + {% endif %} + {% endfor %} + + + + + +{% endif %} +{% endfor %} + +{% endblock %} + diff --git a/FusionIIIT/templates/vhModule/visitorhostel.html b/FusionIIIT/templates/vhModule/visitorhostel.html index ab8278324..a61c48300 100644 --- a/FusionIIIT/templates/vhModule/visitorhostel.html +++ b/FusionIIIT/templates/vhModule/visitorhostel.html @@ -36,7 +36,7 @@ - {% if user_designation == 'VhIncharge' or user_designation == 'VhCaretaker' %} + {% if global_var == 'VhIncharge' or global_var == 'VhCaretaker' %} Room Availability @@ -129,9 +129,9 @@ - {% comment %} - TODO: the right rail! - {% endcomment %} + {% block sidepanel%} + {% include 'notifications/visitorhostel_sidepanel.html' %} + {% endblock %}
{{ notice.verb }}