diff --git a/FusionIIIT/Fusion/settings/development.py b/FusionIIIT/Fusion/settings/development.py deleted file mode 100644 index 6acc214c1..000000000 --- a/FusionIIIT/Fusion/settings/development.py +++ /dev/null @@ -1,55 +0,0 @@ -from Fusion.settings.common import * - -DEBUG = True - -SECRET_KEY = '=&w9due426k@l^ju1=s1)fj1rnpf0ok8xvjwx+62_nc-f12-8(' - -ALLOWED_HOSTS = ['*'] - -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.postgresql_psycopg2', - 'NAME': 'fusionlab', - 'HOST': os.environ.get("DB_HOST", default='localhost'), - 'USER': 'fusion_admin', - 'PASSWORD': 'hello123', - } -} - -REST_FRAMEWORK = { - 'DEFAULT_AUTHENTICATION_CLASSES': ( - 'rest_framework.authentication.TokenAuthentication', - ), - 'DEFAULT_PERMISSION_CLASSES': ( - 'rest_framework.permissions.IsAuthenticated', - ) -} - -if DEBUG: - MIDDLEWARE += ( - 'debug_toolbar.middleware.DebugToolbarMiddleware', - ) - - INSTALLED_APPS += ( - 'debug_toolbar', - 'django_extensions', - ) - - - ############################### - # DJANGO_EXTENSIONS SETTINGS: # - ############################### - INTERNAL_IPS = [ - '127.0.0.1', - ] - - ############################### - # DJANGO_EXTENSIONS SETTINGS: # - ############################### - SHELL_PLUS = "ipython" - - SHELL_PLUS_PRINT_SQL = True - - DEBUG_TOOLBAR_CONFIG = { - 'INTERCEPT_REDIRECTS': False, - } diff --git a/FusionIIIT/applications/programme_curriculum/admin.py b/FusionIIIT/applications/programme_curriculum/admin.py index 75ab2ca82..0afbdaf09 100644 --- a/FusionIIIT/applications/programme_curriculum/admin.py +++ b/FusionIIIT/applications/programme_curriculum/admin.py @@ -1,6 +1,6 @@ from django.contrib import admin from django.contrib.admin.options import ModelAdmin -from .models import Programme, Discipline, Curriculum, Semester, Course, Batch, CourseSlot,CourseInstructor +from .models import Programme, Discipline, Curriculum, Semester, Course, Batch, CourseSlot,CourseInstructor, CourseProposal,UpdateCourseProposal class ProgrammeAdmin(admin.ModelAdmin): @@ -29,7 +29,10 @@ class BatchAdmin(admin.ModelAdmin): class CourseSlotAdmin(admin.ModelAdmin): list_display = ('name', 'type', 'course_slot_info','semester') list_filter = ('type', 'courses',) - +class CourseProposalAdmin(admin.ModelAdmin): + list_display = ('faculty_name','faculty_code', 'name', 'code',) +class UpdateCourseProposalAdmin(admin.ModelAdmin): + list_display = ('faculty_name','faculty_code', 'name', 'code',) # Register your models here. admin.site.register(Discipline, DisciplineAdmin) @@ -39,4 +42,6 @@ class CourseSlotAdmin(admin.ModelAdmin): admin.site.register(Course, CourseAdmin) admin.site.register(Batch, BatchAdmin) admin.site.register(CourseSlot, CourseSlotAdmin) -admin.site.register(CourseInstructor) \ No newline at end of file +admin.site.register(CourseInstructor) +admin.site.register(CourseProposal,CourseProposalAdmin) +admin.site.register(UpdateCourseProposal,UpdateCourseProposalAdmin) \ No newline at end of file diff --git a/FusionIIIT/applications/programme_curriculum/filters.py b/FusionIIIT/applications/programme_curriculum/filters.py index 2959c61b9..d4444ff18 100644 --- a/FusionIIIT/applications/programme_curriculum/filters.py +++ b/FusionIIIT/applications/programme_curriculum/filters.py @@ -7,6 +7,7 @@ class Meta: model = Course fields = {'code': ['icontains'], 'name': ['icontains'], + 'version': ['exact'], 'working_course': ['exact'], 'disciplines': ['exact'], } @@ -14,6 +15,7 @@ class Meta: 'code' : django_filters.CharFilter(forms.TextInput(attrs={'placeholder': 'Course Code','max_length': 10,})), 'name' : forms.TextInput(attrs={'placeholder': 'Course/Project Name','max_length': 100,}), 'name' : django_filters.CharFilter(forms.TextInput(attrs={'placeholder': 'Course/Project Name','max_length': 100,})), + 'code' : django_filters.CharFilter(forms.TextInput(attrs={'placeholder': 'Version','max_length': 10,})), 'working_course' : django_filters.CharFilter(forms.CheckboxInput(attrs={'class': 'ui checkbox'})), 'disciplines' : django_filters.CharFilter(forms.SelectMultiple(attrs={'class':'ui fluid search selection dropdown',})), } diff --git a/FusionIIIT/applications/programme_curriculum/forms.py b/FusionIIIT/applications/programme_curriculum/forms.py index 72ccfa2b2..2e50d5154 100644 --- a/FusionIIIT/applications/programme_curriculum/forms.py +++ b/FusionIIIT/applications/programme_curriculum/forms.py @@ -3,7 +3,7 @@ from django.forms import ModelForm, widgets from django.forms import Form, ValidationError from django.forms.models import ModelChoiceField -from .models import Programme, Discipline, Curriculum, Semester, Course, Batch, CourseSlot, PROGRAMME_CATEGORY_CHOICES +from .models import Programme, Discipline, Curriculum, Semester, Course, Batch, CourseSlot, PROGRAMME_CATEGORY_CHOICES,CourseProposal,UpdateCourseProposal from django.utils.translation import gettext_lazy as _ class ProgrammeForm(ModelForm): @@ -18,8 +18,7 @@ class Meta: 'category' : 'Programme Category', 'name': 'Programme Name' } - - + class DisciplineForm(ModelForm): class Meta: model = Discipline @@ -44,7 +43,7 @@ class Meta: widgets = { 'name' : forms.TextInput(attrs={'placeholder': 'Enter New Curriculum Name','max_length': 70,'class':'field'}), 'programme' : forms.Select(attrs={'class':'ui fluid search selection dropdown',}), - 'version' : forms.NumberInput(attrs={'placeholder': 'Enter the latest version',' class': 'field'}, ), + 'version' : forms.NumberInput(attrs={'placeholder': 'Enter the latest version',' class': 'field','min': '1.0'}, ), 'working_curriculum' : forms.CheckboxInput(attrs={'class': 'ui checkbox'}), 'no_of_semester' : forms.NumberInput(attrs={'placeholder': 'Enter the number of semesters',' class': 'field'}, ), 'min_credit' : forms.NumberInput(attrs={'placeholder': 'Minimum Number of Credits',' class': 'field'}, ), @@ -124,15 +123,19 @@ def clean(self): self.add_error('percent_project', msg) self.add_error('percent_lab_evaluation', msg) self.add_error('percent_course_attendance', msg) - + + # version = cleaned_data.get('version') + # previous_version = self.instance.version if self.instance else None + # if version < previous_version: + # self.add_error('version', 'The version should be greater than the previous version.') return cleaned_data - class Meta: model = Course fields = '__all__' widgets = { 'code' : forms.TextInput(attrs={'placeholder': 'Course Code','max_length': 10,}), 'name' : forms.TextInput(attrs={'placeholder': 'Course/Project Name','max_length': 100,}), + 'version' : forms.NumberInput(attrs={'placeholder': 'version_no'}, ), 'credit' : forms.NumberInput(attrs={'placeholder': 'Course Credits',}, ), 'lecture_hours' : forms.NumberInput(attrs={'placeholder': 'Lecture hours',}, ), 'tutorial_hours' : forms.NumberInput(attrs={'placeholder': 'Tutorial hours',}, ), @@ -156,6 +159,7 @@ class Meta: labels = { 'code' : 'Course Code', 'name' : 'Course Name', + 'version':'version', 'credit' : 'Credits', 'lecture_hours' : 'Academic Loads', 'tutorial_hours' : '', @@ -219,4 +223,256 @@ class Meta: 'duration' : "Course/Project Duration", 'min_registration_limit': 'Min Course Slot Registration Limit', 'max_registration_limit': 'Max Course Slot Registration Limit', - } \ No newline at end of file + } + + + +#new + +class Course_Proposal(ModelForm): + + def clean(self): + cleaned_data = super().clean() + + percentages_sum = ( + cleaned_data.get("percent_quiz_1") + + cleaned_data.get("percent_midsem") + + cleaned_data.get("percent_quiz_2") + + cleaned_data.get("percent_endsem") + + cleaned_data.get("percent_project") + + cleaned_data.get("percent_lab_evaluation") + + cleaned_data.get("percent_course_attendance") + ) + + if percentages_sum != 100: + msg = 'Percentages must add up to 100%, they currently add up to ' + str(percentages_sum) + '%' + self.add_error('percent_quiz_1', msg) + self.add_error('percent_midsem', msg) + self.add_error('percent_quiz_2', msg) + self.add_error('percent_endsem', msg) + self.add_error('percent_project', msg) + self.add_error('percent_lab_evaluation', msg) + self.add_error('percent_course_attendance', msg) + + return cleaned_data + + class Meta: + model = CourseProposal + fields = '__all__' + widgets = { + 'faculty_name' : forms.TextInput(attrs={'max_length': 100,'readonly':'readonly'}), + 'faculty_code' : forms.TextInput(attrs={'placeholder': 'Course Code','max_length': 10,'readonly':'readonly'}), + 'code' : forms.TextInput(attrs={'placeholder': 'Course Code','max_length': 10,}), + 'name' : forms.TextInput(attrs={'placeholder': 'Course/Project Name','max_length': 100,}), + 'credit' : forms.NumberInput(attrs={'placeholder': 'Course Credits',}, ), + 'lecture_hours' : forms.NumberInput(attrs={'placeholder': 'Lecture hours',}, ), + 'tutorial_hours' : forms.NumberInput(attrs={'placeholder': 'Tutorial hours',}, ), + 'pratical_hours' : forms.NumberInput(attrs={'placeholder': 'Practical hours',}, ), + 'discussion_hours' : forms.NumberInput(attrs={'placeholder': 'Group Discussion hours',}, ), + 'project_hours' : forms.NumberInput(attrs={'placeholder': 'Project hours',}, ), + 'disciplines' : forms.SelectMultiple(attrs={'class':'ui fluid search selection dropdown',}), + 'pre_requisits' : forms.Textarea(attrs={'placeholder': 'Text','class':'field'}), + 'pre_requisit_courses' : forms.SelectMultiple(attrs={'class':'ui fluid search selection dropdown',}), + 'syllabus' : forms.Textarea(attrs={'placeholder': 'Text','class':'field'}), + 'ref_books' : forms.Textarea(attrs={'placeholder': 'Text','class':'field'}), + 'percent_quiz_1' : forms.NumberInput(attrs={'placeholder': '%'}, ), + 'percent_midsem' : forms.NumberInput(attrs={'placeholder': '%'}, ), + 'percent_quiz_2' : forms.NumberInput(attrs={'placeholder': '%'}, ), + 'percent_endsem' : forms.NumberInput(attrs={'placeholder': '%'}, ), + 'percent_project' : forms.NumberInput(attrs={'placeholder': '%'}, ), + 'percent_lab_evaluation' : forms.NumberInput(attrs={'placeholder': '%'}, ), + 'percent_course_attendance' : forms.NumberInput(attrs={'placeholder': '%'}, ), + 'status':forms.NumberInput(attrs={'readonly':'readonly'},), + + } + labels = { + 'faculty_name':'Faculty name', + 'faculty_code':'Faculty Code', + 'code' : 'Course Code', + 'name' : 'Course Name', + 'credit' : 'Credits', + 'lecture_hours' : 'Academic Loads', + 'tutorial_hours' : '', + 'pratical_hours' : '', + 'discussion_hours' : '', + 'project_hours' : '', + 'pre_requisits' : 'Pre-requisits', + 'pre_requisit_courses' : 'Pre-requisit Courses', + 'syllabus' : 'Syllabus', + 'ref_books' : 'References & Books', + 'percent_quiz_1' : 'percent_quiz_1', + 'percent_midsem' : 'percent_midsem', + 'percent_quiz_2' : 'percent_quiz_2', + 'percent_endsem' : 'percent_endsem', + 'percent_project' : 'percent_project', + 'percent_lab_evaluation' : 'percent_lab_evaluation', + 'percent_course_attendance' : 'percent_course_attendance', + 'disciplines' : 'disciplines', + 'status':'status' + } + + + + +class Update_Course_Proposal(ModelForm): + + def clean(self): + cleaned_data = super().clean() + + percentages_sum = ( + cleaned_data.get("percent_quiz_1") + + cleaned_data.get("percent_midsem") + + cleaned_data.get("percent_quiz_2") + + cleaned_data.get("percent_endsem") + + cleaned_data.get("percent_project") + + cleaned_data.get("percent_lab_evaluation") + + cleaned_data.get("percent_course_attendance") + ) + + if percentages_sum != 100: + msg = 'Percentages must add up to 100%, they currently add up to ' + str(percentages_sum) + '%' + self.add_error('percent_quiz_1', msg) + self.add_error('percent_midsem', msg) + self.add_error('percent_quiz_2', msg) + self.add_error('percent_endsem', msg) + self.add_error('percent_project', msg) + self.add_error('percent_lab_evaluation', msg) + self.add_error('percent_course_attendance', msg) + + return cleaned_data + + class Meta: + model = UpdateCourseProposal + fields = '__all__' + widgets = { + 'faculty_name' : forms.TextInput(attrs={'max_length': 100,'readonly':'readonly'}), + 'faculty_code' : forms.TextInput(attrs={'placeholder': 'Course Code','max_length': 10,'readonly':'readonly'}), + 'code' : forms.TextInput(attrs={'placeholder': 'Course Code','max_length': 10,'readonly':'readonly'}), + 'name' : forms.TextInput(attrs={'placeholder': 'Course/Project Name','max_length': 100,}), + 'credit' : forms.NumberInput(attrs={'placeholder': 'Course Credits',}, ), + 'lecture_hours' : forms.NumberInput(attrs={'placeholder': 'Lecture hours',}, ), + 'tutorial_hours' : forms.NumberInput(attrs={'placeholder': 'Tutorial hours',}, ), + 'pratical_hours' : forms.NumberInput(attrs={'placeholder': 'Practical hours',}, ), + 'discussion_hours' : forms.NumberInput(attrs={'placeholder': 'Group Discussion hours',}, ), + 'project_hours' : forms.NumberInput(attrs={'placeholder': 'Project hours',}, ), + 'working_course' : forms.CheckboxInput(attrs={'class': 'ui checkbox'}), + 'disciplines' : forms.SelectMultiple(attrs={'class':'ui fluid search selection dropdown',}), + 'pre_requisits' : forms.Textarea(attrs={'placeholder': 'Text','class':'field'}), + 'pre_requisit_courses' : forms.SelectMultiple(attrs={'class':'ui fluid search selection dropdown',}), + 'syllabus' : forms.Textarea(attrs={'placeholder': 'Text','class':'field'}), + 'ref_books' : forms.Textarea(attrs={'placeholder': 'Text','class':'field'}), + 'percent_quiz_1' : forms.NumberInput(attrs={'placeholder': '%'}, ), + 'percent_midsem' : forms.NumberInput(attrs={'placeholder': '%'}, ), + 'percent_quiz_2' : forms.NumberInput(attrs={'placeholder': '%'}, ), + 'percent_endsem' : forms.NumberInput(attrs={'placeholder': '%'}, ), + 'percent_project' : forms.NumberInput(attrs={'placeholder': '%'}, ), + 'percent_lab_evaluation' : forms.NumberInput(attrs={'placeholder': '%'}, ), + 'percent_course_attendance' : forms.NumberInput(attrs={'placeholder': '%'}, ), + 'status':forms.NumberInput(attrs={'readonly':'readonly'},), + + } + labels = { + 'faculty_name':'Faculty name', + 'faculty_code':'Faculty Code', + 'code' : 'Course Code', + 'name' : 'Course Name', + 'credit' : 'Credits', + 'lecture_hours' : 'Academic Loads', + 'tutorial_hours' : '', + 'pratical_hours' : '', + 'discussion_hours' : '', + 'project_hours' : '', + 'pre_requisits' : 'Pre-requisits', + 'pre_requisit_courses' : 'Pre-requisit Courses', + 'syllabus' : 'Syllabus', + 'ref_books' : 'References & Books', + 'percent_quiz_1' : 'percent_quiz_1', + 'percent_midsem' : 'percent_midsem', + 'percent_quiz_2' : 'percent_quiz_2', + 'percent_endsem' : 'percent_endsem', + 'percent_project' : 'percent_project', + 'percent_lab_evaluation' : 'percent_lab_evaluation', + 'percent_course_attendance' : 'percent_course_attendance', + 'disciplines' : 'disciplines', + 'working_course' : 'working_course', + 'status':'status' + } + + +class CourseProposalForm(ModelForm): + + def clean(self): + cleaned_data = super().clean() + + percentages_sum = ( + cleaned_data.get("percent_quiz_1") + + cleaned_data.get("percent_midsem") + + cleaned_data.get("percent_quiz_2") + + cleaned_data.get("percent_endsem") + + cleaned_data.get("percent_project") + + cleaned_data.get("percent_lab_evaluation") + + cleaned_data.get("percent_course_attendance") + ) + + if percentages_sum != 100: + msg = 'Percentages must add up to 100%, they currently add up to ' + str(percentages_sum) + '%' + self.add_error('percent_quiz_1', msg) + self.add_error('percent_midsem', msg) + self.add_error('percent_quiz_2', msg) + self.add_error('percent_endsem', msg) + self.add_error('percent_project', msg) + self.add_error('percent_lab_evaluation', msg) + self.add_error('percent_course_attendance', msg) + + return cleaned_data + + class Meta: + model = Course + fields = '__all__' + widgets = { + 'code' : forms.TextInput(attrs={'placeholder': 'Course Code','max_length': 10,'readonly':'readonly'}), + 'name' : forms.TextInput(attrs={'placeholder': 'Course/Project Name','max_length': 100,'readonly':'readonly'}), + 'credit' : forms.NumberInput(attrs={'placeholder': 'Course Credits','readonly':'readonly'}, ), + 'lecture_hours' : forms.NumberInput(attrs={'placeholder': 'Lecture hours','readonly':'readonly'}, ), + 'tutorial_hours' : forms.NumberInput(attrs={'placeholder': 'Tutorial hours','readonly':'readonly'}, ), + 'pratical_hours' : forms.NumberInput(attrs={'placeholder': 'Practical hours','readonly':'readonly'}, ), + 'discussion_hours' : forms.NumberInput(attrs={'placeholder': 'Group Discussion hours','readonly':'readonly'}, ), + 'project_hours' : forms.NumberInput(attrs={'placeholder': 'Project hours','readonly':'readonly'}, ), + 'working_course' : forms.CheckboxInput(attrs={'class': 'ui checkbox','disabled': 'disabled'}), + 'disciplines' : forms.SelectMultiple(attrs={'class':'ui fluid search selection dropdown','disabled': 'disabled'}), + 'pre_requisits' : forms.Textarea(attrs={'placeholder': 'Text','class':'field','readonly':'readonly'}), + 'pre_requisit_courses' : forms.SelectMultiple(attrs={'class':'ui fluid search selection dropdown','disabled': 'disabled'}), + 'syllabus' : forms.Textarea(attrs={'placeholder': 'Text','class':'field','readonly':'readonly'}), + 'ref_books' : forms.Textarea(attrs={'placeholder': 'Text','class':'field','readonly':'readonly'}), + 'percent_quiz_1' : forms.NumberInput(attrs={'placeholder': '%','readonly':'readonly'}, ), + 'percent_midsem' : forms.NumberInput(attrs={'placeholder': '%','readonly':'readonly'}, ), + 'percent_quiz_2' : forms.NumberInput(attrs={'placeholder': '%','readonly':'readonly'}, ), + 'percent_endsem' : forms.NumberInput(attrs={'placeholder': '%','readonly':'readonly'}, ), + 'percent_project' : forms.NumberInput(attrs={'placeholder': '%','readonly':'readonly'}, ), + 'percent_lab_evaluation' : forms.NumberInput(attrs={'placeholder': '%','readonly':'readonly'}, ), + 'percent_course_attendance' : forms.NumberInput(attrs={'placeholder': '%','readonly':'readonly'}, ), + } + labels = { + 'code' : 'Course Code', + 'name' : 'Course Name', + 'credit' : 'Credits', + 'lecture_hours' : 'Academic Loads', + 'tutorial_hours' : '', + 'pratical_hours' : '', + 'discussion_hours' : '', + 'project_hours' : '', + 'pre_requisits' : 'Pre-requisits', + 'pre_requisit_courses' : 'Pre-requisit Courses', + 'syllabus' : 'Syllabus', + 'ref_books' : 'References & Books', + 'percent_quiz_1' : 'percent_quiz_1', + 'percent_midsem' : 'percent_midsem', + 'percent_quiz_2' : 'percent_quiz_2', + 'percent_endsem' : 'percent_endsem', + 'percent_project' : 'percent_project', + 'percent_lab_evaluation' : 'percent_lab_evaluation', + 'percent_course_attendance' : 'percent_course_attendance', + 'working_course' : 'working_course', + 'disciplines' : 'disciplines' + } + diff --git a/FusionIIIT/applications/programme_curriculum/models.py b/FusionIIIT/applications/programme_curriculum/models.py index 248079cd3..40c353605 100644 --- a/FusionIIIT/applications/programme_curriculum/models.py +++ b/FusionIIIT/applications/programme_curriculum/models.py @@ -7,6 +7,7 @@ from django.utils.translation import gettext_lazy as _ from django.core.exceptions import ValidationError from applications.globals.models import ExtraInfo +from django.core.validators import MinValueValidator, MaxValueValidator, DecimalValidator # Create your models here. @@ -26,7 +27,8 @@ ('Design', 'Design'), ('Manufacturing', 'Manufacturing'), ('Management Science', 'Management Science'), - ('Optional Elective', 'Optional Elective'), + ('Open Elective', 'Open Elective'), + ('Swayam','Swayam'), ('Project', 'Project'), ('Optional', 'Optional'), ('Others', 'Others') @@ -117,7 +119,13 @@ class Curriculum(models.Model): ''' programme = models.ForeignKey(Programme, on_delete=models.CASCADE, null=False) name = models.CharField(max_length=100, null=False, blank=False) - version = models.PositiveIntegerField(default=1, null=False) + # version = models.FloatField(default=1.0, null=False) + # version = models.PositiveIntegerField(default=1, null=False) + version = models.DecimalField( + max_digits=2, + decimal_places=1, + default=1.0, + validators=[MinValueValidator(1.0), DecimalValidator(max_digits=2, decimal_places=1)]) working_curriculum = models.BooleanField(default=True, null=False) no_of_semester = models.PositiveIntegerField(default=1, null=False) min_credit = models.PositiveIntegerField(default=0, null=False) @@ -207,8 +215,13 @@ class Course(models.Model): ''' - code = models.CharField(max_length=10, null=False, unique=True, blank=False) - name = models.CharField(max_length=100, null=False, unique=True, blank=False) + code = models.CharField(max_length=10, null=False, blank=False) + name = models.CharField(max_length=100, null=False, blank=False) + version = models.DecimalField( + max_digits=5, + decimal_places=1, + default=1.0, + validators=[MinValueValidator(1.0), DecimalValidator(max_digits=5, decimal_places=1)]) credit = models.PositiveIntegerField(default=0, null=False, blank=False) lecture_hours = PositiveIntegerField(null=True, ) tutorial_hours = PositiveIntegerField(null=True) @@ -228,12 +241,14 @@ class Course(models.Model): ref_books = models.TextField() working_course = models.BooleanField(default=True) disciplines = models.ManyToManyField(Discipline, blank=True) + latest_version = models.BooleanField(default=True) class Meta: - unique_together = ('code', 'name',) + unique_together = ('code','version') def __str__(self): - return str(self.code + " - " +self.name) + return str(self.code + " - " +self.name+"- v"+str(self.version)) + @property def courseslots(self): @@ -277,11 +292,6 @@ class CourseSlot(models.Model): Current Purpose : To store the details regarding a course slot Course slot : is defined as per the curriculum for a programme to have specific type of courses for a given semester - - - - - ATTRIBUTES : semester(programme_curriculum.Semester) - [not nullable] to denote link to the semester details for which the courseslot is made @@ -326,4 +336,141 @@ class Meta: def __self__(self): return '{} - {}'.format(self.course_id, self.instructor_id) - \ No newline at end of file + + +#new + + +class CourseProposal(models.Model): + ''' + Current Purpose : To store the details regarding a course + + + + + + ATTRIBUTES : + + code(char) - the course code (eg CS3005) + name(char) - the name of the course(eg Machine Learning) + credit(Integer) - the credits defined for the course + lecture_hours(integer) - lecture hours defined for the course + tutorial_hours(Integer) - tutorial hours defined for the course + practical_hours(Integer) - practical hours defined for the course + discussion_hours(Integer) - discussion hours + project_hours(Integer) - project hours + pre_requisits(Boolean) - denote whether this course has prerequisites(courses that one should take before opting this ) + pre_requisit_courses(programme_curriculum.Course) - link to set of prerequisite courses + syllabus(text) - syllabus described for the course + percent_quiz_1(+ve int) - defined weightage in marking + percent_midsem(+ve int) - defined weightage in marking + percent_quiz_2(+ve int) - defined weightage in marking + percent_endsem (+ve int) - defined weightage in marking + percent_project(+ve int) - defined weightage in marking + percent_lab_evaluation (+ve int) - defined weightage in marking + percent_course_attendance (+ve int) - defined weightage in marking + ref_books(text) - reference books suggested for the course + working_course(boolean) - to denote whether the course is currently in execution or not + disciplines(programme_curriculum.Discipline) - to store which discipline is offering the course + + + ''' + faculty_name=models.CharField(max_length=100, null=False,blank=False) + faculty_code = models.CharField(max_length=10, null=False, blank=False) + code = models.CharField(max_length=10, null=False, blank=False) + name = models.CharField(max_length=100, null=False,blank=False) + credit = models.PositiveIntegerField(default=3, null=False, blank=False) + lecture_hours = PositiveIntegerField(default=3,null=True, ) + tutorial_hours = PositiveIntegerField(default=0,null=True) + pratical_hours = PositiveIntegerField(default=0,null=True) + discussion_hours = PositiveIntegerField(default=0,null=True) + project_hours = PositiveIntegerField(default=0,null=True) + pre_requisits = models.TextField(null=True, blank=True) + pre_requisit_courses = models.ManyToManyField(Course, blank=True) + syllabus = models.TextField() + percent_quiz_1 = models.PositiveIntegerField(default=10, null=False, blank=False) + percent_midsem = models.PositiveIntegerField(default=20, null=False, blank=False) + percent_quiz_2 = models.PositiveIntegerField(default=10, null=False, blank=False) + percent_endsem = models.PositiveIntegerField(default=30, null=False, blank=False) + percent_project = models.PositiveIntegerField(default=15, null=False, blank=False) + percent_lab_evaluation = models.PositiveIntegerField(default=10, null=False, blank=False) + percent_course_attendance = models.PositiveIntegerField(default=5, null=False, blank=False) + ref_books = models.TextField() + disciplines = models.ManyToManyField(Discipline, blank=True) + status = models.PositiveIntegerField(default=0,null=False, blank=False) + + class Meta: + unique_together = ('code', 'faculty_code',) + + def __str__(self): + return str(self.faculty_name + " - " +self.faculty_code+" - "+self.code + " - "+self.name) + + # @property + # def courseslots(self): + # return CourseSlot.objects.filter(courses=self.id) + + + +class UpdateCourseProposal(models.Model): + ''' + Current Purpose : To store the details regarding a update course proposal forms + ATTRIBUTES : + + code(char) - the course code (eg CS3005) + name(char) - the name of the course(eg Machine Learning) + credit(Integer) - the credits defined for the course + lecture_hours(integer) - lecture hours defined for the course + tutorial_hours(Integer) - tutorial hours defined for the course + practical_hours(Integer) - practical hours defined for the course + discussion_hours(Integer) - discussion hours + project_hours(Integer) - project hours + pre_requisits(Boolean) - denote whether this course has prerequisites(courses that one should take before opting this ) + pre_requisit_courses(programme_curriculum.Course) - link to set of prerequisite courses + syllabus(text) - syllabus described for the course + percent_quiz_1(+ve int) - defined weightage in marking + percent_midsem(+ve int) - defined weightage in marking + percent_quiz_2(+ve int) - defined weightage in marking + percent_endsem (+ve int) - defined weightage in marking + percent_project(+ve int) - defined weightage in marking + percent_lab_evaluation (+ve int) - defined weightage in marking + percent_course_attendance (+ve int) - defined weightage in marking + ref_books(text) - reference books suggested for the course + working_course(boolean) - to denote whether the course is currently in execution or not + disciplines(programme_curriculum.Discipline) - to store which discipline is offering the course + + + ''' + faculty_name=models.CharField(max_length=100, null=False,blank=False) + faculty_code = models.CharField(max_length=10, null=False, blank=False) + code = models.CharField(max_length=10, null=False, blank=False) + name = models.CharField(max_length=100, null=False,blank=False) + credit = models.PositiveIntegerField(default=0, null=False, blank=False) + lecture_hours = PositiveIntegerField(null=True, ) + tutorial_hours = PositiveIntegerField(null=True) + pratical_hours = PositiveIntegerField(null=True) + discussion_hours = PositiveIntegerField(null=True) + project_hours = PositiveIntegerField(null=True) + pre_requisits = models.TextField(null=True, blank=True) + pre_requisit_courses = models.ManyToManyField(Course, blank=True) + syllabus = models.TextField() + percent_quiz_1 = models.PositiveIntegerField(default=10, null=False, blank=False) + percent_midsem = models.PositiveIntegerField(default=20, null=False, blank=False) + percent_quiz_2 = models.PositiveIntegerField(default=10, null=False, blank=False) + percent_endsem = models.PositiveIntegerField(default=30, null=False, blank=False) + percent_project = models.PositiveIntegerField(default=15, null=False, blank=False) + percent_lab_evaluation = models.PositiveIntegerField(default=10, null=False, blank=False) + percent_course_attendance = models.PositiveIntegerField(default=5, null=False, blank=False) + ref_books = models.TextField() + working_course = models.BooleanField(default=True) + disciplines = models.ManyToManyField(Discipline, blank=True) + status = models.PositiveIntegerField(default=0,null=False, blank=False) + + class Meta: + unique_together = ('code', 'faculty_code',) + + def __str__(self): + return str(self.faculty_name + " - " +self.faculty_code+" - "+self.code + " - "+self.name) + + # @property + # def courseslots(self): + # return CourseSlot.objects.filter(courses=self.id) diff --git a/FusionIIIT/applications/programme_curriculum/urls.py b/FusionIIIT/applications/programme_curriculum/urls.py index 85355b0ca..8dc18adc1 100644 --- a/FusionIIIT/applications/programme_curriculum/urls.py +++ b/FusionIIIT/applications/programme_curriculum/urls.py @@ -48,4 +48,23 @@ path('admin_edit_discipline/<discipline_id>/', views.edit_discipline_form, name='edit_discipline_form'), path('admin_instigate_semester/<semester_id>/', views.instigate_semester, name='instigate_semester'), path('admin_replicate_curriculum/<curriculum_id>/', views.replicate_curriculum, name='replicate_curriculum'), -] \ No newline at end of file + + + + #new + path('course_proposal_form/',views.course_proposal_form,name='course_proposal_form'), + path('view_course_proposal_forms/',views.view_course_proposal_forms,name='view_course_proposal_forms'), + path('update_course_proposal_form/<course_id>/',views.update_course_proposal_form,name='update_course_proposal_form'), + path('faculty_view_all_courses/', views.faculty_view_all_courses, name='faculty_view_all_courses'), + path('faculty_view_a_course/<course_id>/',views.faculty_view_a_course,name="faculty_view_a_course"), + path('head_view_a_course_proposal/<CourseProposal_id>/', views.head_view_a_course_proposal, name='head_view_a_course_proposal'), + path('head_view_a_update_course_proposal/<UpdateCourseProposal_id>/', views.head_view_a_update_course_proposal, name='head_view_a_update_course_proposal'), + + path('forward_form/<CourseProposal_id>', views.forward_form, name='forward_form'), + path('reject_form/<CourseProposal_id>', views.reject_form, name='reject_form'), + # path('approve_form/<CourseProposal_id>', views.approve_form, name='approve_form'), + + path('forward_update_form/<UpdateCourseProposal_id>/', views.forward_update_form, name='forward_update_form'), + path('reject_update_form/<UpdateCourseProposal_id>', views.reject_update_form, name='reject_update_form'), + # path('approve_update_form/<UpdateCourseProposal_id>', views.approve_update_form, name='approve_update_form'), +] diff --git a/FusionIIIT/applications/programme_curriculum/views.py b/FusionIIIT/applications/programme_curriculum/views.py index 018e096cd..d2ed3637a 100644 --- a/FusionIIIT/applications/programme_curriculum/views.py +++ b/FusionIIIT/applications/programme_curriculum/views.py @@ -6,9 +6,10 @@ from django.contrib import messages from django.contrib.auth.decorators import login_required from django.contrib.auth.models import User -from .models import Programme, Discipline, Curriculum, Semester, Course, Batch, CourseSlot -from .forms import ProgrammeForm, DisciplineForm, CurriculumForm, SemesterForm, CourseForm, BatchForm, CourseSlotForm, ReplicateCurriculumForm +from .models import Programme, Discipline, Curriculum, Semester, Course, Batch, CourseSlot,CourseProposal,UpdateCourseProposal +from .forms import ProgrammeForm, DisciplineForm, CurriculumForm, SemesterForm, CourseForm, BatchForm, CourseSlotForm, ReplicateCurriculumForm,Course_Proposal,Update_Course_Proposal,CourseProposalForm from .filters import CourseFilter, BatchFilter, CurriculumFilter +from django.db import IntegrityError # from applications.academic_information.models import Student from applications.globals.models import (DepartmentInfo, Designation, @@ -30,7 +31,7 @@ def programme_curriculum(request): """ user_details = ExtraInfo.objects.get(user = request.user) des = HoldsDesignation.objects.all().filter(user = request.user).first() - if str(des.designation) == "student" or str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" : + if str(des.designation) == "student" or str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" or str(des.designation) == "Dean Academic" or str(des.designation) == "CSE HOD": return HttpResponseRedirect('/programme_curriculum/programmes/') elif str(request.user) == "acadadmin" : return HttpResponseRedirect('/programme_curriculum/admin_programmes') @@ -51,12 +52,21 @@ def view_all_programmes(request): pg - PG programmes phd - PHD programmes """ + url='programme_curriculum/' + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).first() + if str(des.designation) == "acadadmin": + return render(request, 'programme_curriculum/admin_programmes/') + + elif str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" or str(des.designation) == "Dean Academic" or str(des.designation) == "CSE HOD": + url+='faculty/' + ug = Programme.objects.filter(category='UG') pg = Programme.objects.filter(category='PG') phd = Programme.objects.filter(category='PHD') + url+='view_all_programmes.html' - - return render(request, 'programme_curriculum/view_all_programmes.html', {'ug': ug, 'pg': pg, 'phd': phd}) + return render(request, url, {'ug': ug, 'pg': pg, 'phd': phd}) def view_curriculums_of_a_programme(request, programme_id): @@ -72,6 +82,15 @@ def view_curriculums_of_a_programme(request, programme_id): working_curriculum - Curriculums that are affective past_curriculum - Curriculums thet are obsolete """ + url='programme_curriculum/' + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).first() + if str(des.designation) == "acadadmin": + return render(request, 'programme_curriculum/admin_programmes/') + + elif str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" or str(des.designation) == "Dean Academic" or str(des.designation) == "CSE HOD": + url+='faculty/' + program = get_object_or_404(Programme, Q(id=programme_id)) curriculums = program.curriculums @@ -81,19 +100,28 @@ def view_curriculums_of_a_programme(request, programme_id): working_curriculums = curriculums.filter(working_curriculum=1) past_curriculums = curriculums.filter(working_curriculum=0) - - return render(request,'programme_curriculum/view_curriculums_of_a_programme.html', {'program': program, 'past_curriculums': past_curriculums, 'working_curriculums': working_curriculums, 'curriculumfilter': curriculumfilter}) + url+='view_curriculums_of_a_programme.html' + return render(request,url, {'program': program, 'past_curriculums': past_curriculums, 'working_curriculums': working_curriculums, 'curriculumfilter': curriculumfilter}) def view_all_working_curriculums(request): - """ views all the working curriculums offered by the institute """ + """ views all the working curriculums offered by the institute """ + url='programme_curriculum/' + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).first() + if str(des.designation) == "acadadmin": + return render(request, 'programme_curriculum/admin_programmes/') + + elif str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" or str(des.designation) == "Dean Academic" or str(des.designation) == "CSE HOD": + + url+='faculty/' curriculums = Curriculum.objects.filter(working_curriculum=1) curriculumfilter = CurriculumFilter(request.GET, queryset=curriculums) curriculums = curriculumfilter.qs - return render(request,'programme_curriculum/view_all_working_curriculums.html',{'curriculums':curriculums, 'curriculumfilter': curriculumfilter}) + return render(request,url+'view_all_working_curriculums.html',{'curriculums':curriculums, 'curriculumfilter': curriculumfilter}) @@ -108,6 +136,15 @@ def view_semesters_of_a_curriculum(request, curriculum_id): transpose_semester_slots - semester_slots 2D list is transpose for viewing in HTML <table>. semester_credits - Total Credits for each semester. """ + url='programme_curriculum/' + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).first() + if str(des.designation) == "acadadmin": + return render(request, 'programme_curriculum/admin_programmes/') + + + elif str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" or str(des.designation) == "Dean Academic" or str(des.designation) == "CSE HOD": + url+='faculty/' curriculum = get_object_or_404(Curriculum, Q(id=curriculum_id)) semesters = curriculum.semesters semester_slots = [] @@ -138,49 +175,95 @@ def view_semesters_of_a_curriculum(request, curriculum_id): transpose_semester_slots = list(zip(*semester_slots)) - return render(request, 'programme_curriculum/view_semesters_of_a_curriculum.html', {'curriculum': curriculum, 'semesters': semesters, 'semester_slots': transpose_semester_slots, 'semester_credits': semester_credits}) + return render(request, url+'view_semesters_of_a_curriculum.html', {'curriculum': curriculum, 'semesters': semesters, 'semester_slots': transpose_semester_slots, 'semester_credits': semester_credits}) def view_a_semester_of_a_curriculum(request, semester_id): """ views a specfic semester of a specfic curriculum """ + url='programme_curriculum/' + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).first() + if str(des.designation) == "acadadmin": + return render(request, 'programme_curriculum/admin_programmes/') + + elif str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" or str(des.designation) == "Dean Academic" or str(des.designation) == "CSE HOD": + url+='faculty/' semester = get_object_or_404(Semester, Q(id=semester_id)) course_slots = semester.courseslots - return render(request, 'programme_curriculum/view_a_semester_of_a_curriculum.html', {'semester': semester, 'course_slots': course_slots}) + return render(request, url+'view_a_semester_of_a_curriculum.html', {'semester': semester, 'course_slots': course_slots}) def view_a_courseslot(request, courseslot_id): """ view a course slot """ + url='programme_curriculum/' + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).first() + if str(des.designation) == "acadadmin": + return render(request, 'programme_curriculum/admin_programmes/') + elif str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" or str(des.designation) == "Dean Academic" or str(des.designation) == "CSE HOD": + url+='faculty/' course_slot = get_object_or_404(CourseSlot, Q(id=courseslot_id)) - return render(request, 'programme_curriculum/view_a_courseslot.html', {'course_slot': course_slot}) + return render(request, url+'view_a_courseslot.html', {'course_slot': course_slot}) def view_all_courses(request): """ views all the course slots of a specfic semester """ + url='programme_curriculum/' + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).first() + if str(des.designation) == "acadadmin": + return render(request, 'programme_curriculum/admin_programmes/') + elif str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" or str(des.designation) == "Dean Academic" or str(des.designation) == "CSE HOD": + + url+='faculty/' courses = Course.objects.all() coursefilter = CourseFilter(request.GET, queryset=courses) courses = coursefilter.qs - return render(request, 'programme_curriculum/view_all_courses.html', {'courses': courses, 'coursefilter': coursefilter}) + return render(request, url+'view_all_courses.html', {'courses': courses, 'coursefilter': coursefilter}) def view_a_course(request, course_id): """ views the details of a Course """ + url='programme_curriculum/' + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).first() + if str(des.designation) == "acadadmin": + return render(request, 'programme_curriculum/admin_programmes/') + elif str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" or str(des.designation) == "Dean Academic" or str(des.designation) == "CSE HOD": + + url+='faculty/' course = get_object_or_404(Course, Q(id=course_id)) - return render(request, 'programme_curriculum/view_a_course.html', {'course': course}) + return render(request, url+'view_a_course.html', {'course': course}) def view_all_discplines(request): """ views the details of a Course """ + url='programme_curriculum/' + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).first() + if str(des.designation) == "acadadmin": + return render(request, 'programme_curriculum/admin_programmes/') + elif str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" or str(des.designation) == "Dean Academic" or str(des.designation) == "CSE HOD": + url+='faculty/' disciplines = Discipline.objects.all() - return render(request, 'programme_curriculum/view_all_disciplines.html', {'disciplines': disciplines}) + return render(request, url+'view_all_disciplines.html', {'disciplines': disciplines}) def view_all_batches(request): """ views the details of a Course """ + url='programme_curriculum/' + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).first() + if str(des.designation) == "acadadmin": + return render(request, 'programme_curriculum/admin_programmes/') + elif str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" or str(des.designation) == "Dean Academic" or str(des.designation) == "CSE HOD": + + url+='faculty/' batches = Batch.objects.all().order_by('year') @@ -192,7 +275,7 @@ def view_all_batches(request): batches = batches.filter(running_batch=True) - return render(request, 'programme_curriculum/view_all_batches.html', {'batches': batches, 'finished_batches': finished_batches, 'batchfilter': batchfilter}) + return render(request, url+'view_all_batches.html', {'batches': batches, 'finished_batches': finished_batches, 'batchfilter': batchfilter}) @@ -664,17 +747,28 @@ def update_course_form(request, course_id): pass course = get_object_or_404(Course, Q(id=course_id)) + previous = Course.objects.all().filter(code=course.code).order_by('version').last() + course.version=previous.version + version_error='' form = CourseForm(instance=course) submitbutton= request.POST.get('Submit') if submitbutton: if request.method == 'POST': - form = CourseForm(request.POST, instance=course) - if form.is_valid(): - form.save() - messages.success(request, "Updated "+ course.name +" successful") - return HttpResponseRedirect("/programme_curriculum/admin_course/" + str(course_id) + "/") - - return render(request,'programme_curriculum/acad_admin/add_course_form.html',{'course':course, 'form':form, 'submitbutton': submitbutton}) + form = CourseForm(request.POST) + if form.is_valid() : + previous.latest_version=False + previous.save() + form.latest_version=True + new_course = form.save(commit=False) + if(new_course.version>previous.version): + form.save() + course = Course.objects.last() + messages.success(request, "Added successful") + return HttpResponseRedirect("/programme_curriculum/admin_course/" + str(course.id) + "/") + else: + version_error+=f'The version should be greater than {previous.version}' + + return render(request,'programme_curriculum/acad_admin/update_course_form.html',{'course':course, 'form':form, 'submitbutton': submitbutton,'version_error':version_error}) @login_required(login_url='/accounts/login') @@ -896,4 +990,338 @@ def replicate_curriculum(request, curriculum_id): messages.success(request, "Added successful") return HttpResponseRedirect('/programme_curriculum/admin_curriculum_semesters/' + str(curriculum.id) + '/') - return render(request, 'programme_curriculum/acad_admin/add_curriculum_form.html',{'form':form, 'submitbutton': submitbutton}) \ No newline at end of file + return render(request, 'programme_curriculum/acad_admin/add_curriculum_form.html',{'form':form, 'submitbutton': submitbutton}) + + + + + + + + + + + + + + + + +#new + +@login_required(login_url='/accounts/login') +def course_proposal_form(request): + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).first() + if str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" : + pass + elif str(request.user) == "acadadmin": + return HttpResponseRedirect('/programme_curriculum/admin_programmes') + faculty_id=user_details.user_id + details=User.objects.get(id=faculty_id) + faculty_name=details.first_name +' '+ details.last_name + + + + + + form=Course_Proposal(initial={'faculty_name': faculty_name,'faculty_code':des.user}) + submitbutton= request.POST.get('Submit') + if submitbutton: + if request.method == 'POST': + form = Course_Proposal(request.POST) + if form.is_valid(): + form.save() + messages.success(request, " Proposal Added successful") + return HttpResponseRedirect('/programme_curriculum/view_course_proposal_forms/') + + return render(request,'programme_curriculum/faculty/course_proposal_form.html',{'form':form,'submitbutton': submitbutton}) + + +# @login_required(login_url='/accounts/login') +# def update_course_proposal_form(request, course_id): + +# user_details = ExtraInfo.objects.get(user = request.user) +# des = HoldsDesignation.objects.all().filter(user = request.user).first() +# if str(des.designation) == "student": +# return HttpResponseRedirect('/programme_curriculum/programmes/') +# elif str(request.user) == "acadadmin" : +# return HttpResponseRedirect('/programme_curriculum/admin_programmes') +# elif str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor": +# pass + +# course = get_object_or_404(Course, Q(id=course_id)) +# form = Update_Course_Proposal(instance=course) +# submitbutton= request.POST.get('Submit') +# if submitbutton: +# if request.method == 'POST': +# form = Update_Course_Proposal(request.POST, instance=course) +# if form.is_valid(): +# form.save() +# messages.success(request, "Updated "+ course.name +" successful") +# return HttpResponseRedirect("/programme_curriculum//programme_curriculum/course_proposal_form//") + + # return render(request,'programme_curriculum/faculty/update_course_proposal_form.html',{'form':form,'submitbutton': submitbutton}) + +@login_required(login_url='/accounts/login') +def faculty_view_all_courses(request): + """ views all the course slots of a specfic semester """ + + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).first() + if str(des.designation) == "student" : + return HttpResponseRedirect('/programme_curriculum/programmes/') + elif str(request.user) == "acadadmin" : + return HttpResponseRedirect('/programme_curriculum/admin_programmes') + elif str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor": + pass + + # discipline=user_details.department + # courses = Course.objects.filter(disciplines=discipline) + + + courses = Course.objects.all() + + coursefilter = CourseFilter(request.GET, queryset=courses) + + courses = coursefilter.qs + + return render(request, 'programme_curriculum/faculty/faculty_view_all_courses.html', {'courses': courses, 'coursefilter': coursefilter}) + + +@login_required(login_url='/accounts/login') +def faculty_view_a_course(request, course_id): + """ views the details of a Course """ + + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).first() + if str(des.designation) == "student" : + return HttpResponseRedirect('/programme_curriculum/programmes/') + elif str(request.user) == "acadadmin" : + return HttpResponseRedirect('/programme_curriculum/admin_programmes') + elif str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" : + pass + course = get_object_or_404(Course, Q(id=course_id)) + return render(request, 'programme_curriculum/faculty/faculty_view_a_course.html', {'course': course}) + + + + + +# ##new +# @login_required(login_url='/accounts/login') +# def head_view_a_course(request, proposal_id): +# """ views the details of a Course """ + +# user_details = ExtraInfo.objects.get(user = request.user) +# des = HoldsDesignation.objects.all().filter(user = request.user).last() +# if str(des.designation) == "CSE HOD" : +# pass +# elif str(request.user) == "acadadmin" : +# return HttpResponseRedirect('/programme_curriculum/admin_programmes') +# elif str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" or str(des.designation)=="student" : +# return HttpResponseRedirect('/programme_curriculum/programmes') +# proposal = get_object_or_404(CourseProposal, Q(id=proposal_id)) +# return render(request, 'programme_curriculum/hod/head_view_a_course.html', {'proposal': proposal}) + +def head_view_a_course_proposal(request,CourseProposal_id): + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).first() + + if str(request.user) == "CSE HOD" : + pass + proposalform = get_object_or_404(CourseProposal, Q(id=CourseProposal_id)) + + if(str(des.designation) == "Dean Academic"): + # poposalform = get_object_or_404(CourseProposal, Q(id=CourseProposal_id)) + form = CourseProposalForm(instance=proposalform) + submitbutton= request.POST.get('Submit') + if submitbutton: + if request.method == 'POST': + form = CourseProposalForm(request.POST) + if form.is_valid(): + proposalform.status = 3 + proposalform.save() + form.save() + course = get_object_or_404(Course, Q(code=proposalform.code)) + messages.success(request, "Updated "+ proposalform.name +" successful") + return HttpResponseRedirect("/programme_curriculum/course/" + str(course.id) + "/") + return render(request, 'programme_curriculum/faculty/dean_view_a_course_proposal.html', {'course': proposalform ,'form':form,'submitbutton': submitbutton}) + return render(request, 'programme_curriculum/faculty/head_view_a_course_proposal.html', {'proposal': proposalform}) + +def head_view_a_update_course_proposal(request,UpdateCourseProposal_id): + + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).first() + + if str(request.user) == "CSE HOD" : + pass + proposalform = get_object_or_404(UpdateCourseProposal, Q(id=UpdateCourseProposal_id)) + + if(str(des.designation) == "Dean Academic"): + + course = get_object_or_404(Course, Q(code=proposalform.code)) + form = CourseProposalForm(instance=proposalform) + submitbutton= request.POST.get('Submit') + if submitbutton: + if request.method == 'POST': + form = CourseProposalForm(request.POST,instance=course) + if form.is_valid(): + proposalform.status = 3 + proposalform.save() + form.save() + messages.success(request, "Updated "+ proposalform.name +" successful") + return HttpResponseRedirect("/programme_curriculum/course/"+ str(course.id) + "/") + return render(request, 'programme_curriculum/faculty/dean_view_update_a_course_proposal.html', {'course': proposalform ,'form':form,'submitbutton': submitbutton}) + return render(request, 'programme_curriculum/faculty/head_view_update_a_course_proposal.html', {'proposal': proposalform}) + +def forward_form(request,CourseProposal_id): + proposalform = get_object_or_404(CourseProposal, Q(id=CourseProposal_id)) + proposalform.status =1 + proposalform.save() + courses = CourseProposal.objects.all() + Updatecourses = UpdateCourseProposal.objects.all() + return render(request, 'programme_curriculum/faculty/head_view_course_proposal_forms.html',{'courseProposals': courses,'updateProposals': Updatecourses}) + +def forward_update_form(request,UpdateCourseProposal_id): + proposalform = get_object_or_404(UpdateCourseProposal, Q(id=UpdateCourseProposal_id)) + proposalform.status =1 + proposalform.save() + Updatecourses = UpdateCourseProposal.objects.all() + courses = CourseProposal.objects.all() + # return HttpResponseRedirect('/programme_curriculum/head_view_a_update_course_proposal/'), + return render(request, 'programme_curriculum/faculty/head_view_course_proposal_forms.html',{'courseProposals': courses,'updateProposals': Updatecourses}) + +@login_required(login_url='/accounts/login') +def reject_form(request,CourseProposal_id): + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).last() + + if str(des.designation) == "CSE HOD" or str(des.designation) == "Dean Academic": + pass + elif str(request.user) == "acadadmin" or str(request.user) == "student" : + return HttpResponseRedirect('/programme_curriculum/programmes/') + + proposalform = get_object_or_404(CourseProposal, Q(id=CourseProposal_id)) + proposalform.status = 2 + proposalform.save() + courses = CourseProposal.objects.all() + Updatecourses = UpdateCourseProposal.objects.all() + + if str(des.designation) == "CSE HOD": + proposalform = get_object_or_404(CourseProposal, Q(id=CourseProposal_id)) + proposalform.status = 2 + proposalform.save() + courses = CourseProposal.objects.all() + return render(request, 'programme_curriculum/faculty/head_view_course_proposal_forms.html',{'courseProposals': courses,'updateProposals': Updatecourses}) + if str(des.designation) == "Dean Academic" : + proposalform = get_object_or_404(CourseProposal, Q(id=CourseProposal_id)) + proposalform.status = 4 + proposalform.save() + courses = CourseProposal.objects.all() + Updatecourses = UpdateCourseProposal.objects.all() + + return render(request, 'programme_curriculum/faculty/dean_view_course_proposal_forms.html',{'courseProposals': courses,'updateProposals': Updatecourses}) + +def reject_update_form(request,UpdateCourseProposal_id): + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).last() + + if str(des.designation) == "CSE HOD" or str(des.designation) == "Dean Academic": + pass + elif str(request.user) == "acadadmin" or str(request.user) == "student" : + return HttpResponseRedirect('/programme_curriculum/programmes/') + + proposalform = get_object_or_404(UpdateCourseProposal, Q(id=UpdateCourseProposal_id)) + proposalform.status = 2 + proposalform.save() + courses = UpdateCourseProposal.objects.all() + if str(des.designation) == "CSE HOD": + proposalform = get_object_or_404(UpdateCourseProposal, Q(id=UpdateCourseProposal_id)) + proposalform.status = 2 + proposalform.save() + Updatecourses = UpdateCourseProposal.objects.all() + courses=CourseProposal.objects.all() + return render(request, 'programme_curriculum/faculty/head_view_course_proposal_forms.html',{'courseProposals': courses,'updateProposals': Updatecourses}) + if str(des.designation) == "Dean Academic" : + proposalform = get_object_or_404(UpdateCourseProposal, Q(id=UpdateCourseProposal_id)) + proposalform.status = 4 + proposalform.save() + courses = CourseProposal.objects.all() + Updatecourses = UpdateCourseProposal.objects.all() + return render(request, 'programme_curriculum/faculty/dean_view_course_proposal_forms.html',{'courseProposals': courses,'updateProposals': Updatecourses}) + + +# def approve_form(request,CourseProposal_id): +# proposalform = get_object_or_404(CourseProposal, Q(id=CourseProposal_id)) +# proposalform.status = 3 +# proposalform.save() +# courses = CourseProposal.objects.all() +# Updatecourses = UpdateCourseProposal.objects.all() + +# return render(request, 'programme_curriculum/faculty/dean_view_course_proposal_forms.html',{'courseProposals': courses,'updateProposals': Updatecourses}) +# def approve_update_form(request,UpdateCourseProposal_id): +# proposalform = get_object_or_404(UpdateCourseProposal, Q(id=UpdateCourseProposal_id)) +# proposalform.status = 3 +# proposalform.save() +# courses = CourseProposal.objects.all() +# Updatecourses = UpdateCourseProposal.objects.all() + +# return render(request, 'programme_curriculum/faculty/dean_view_course_proposal_forms.html',{'courseProposals': courses,'updateProposals': Updatecourses}) + + +@login_required(login_url='/accounts/login') +def view_course_proposal_forms(request): + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).last() + + if str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" : + pass + elif str(request.user) == "acadadmin" or str(request.user) == "student" : + return HttpResponseRedirect('/programme_curriculum/programmes/') + + courseProposal = CourseProposal.objects.filter(faculty_code=des.user) + coursefilter = CourseFilter(request.GET, queryset=courseProposal) + + courses = CourseProposal.objects.all() + updatecourses=UpdateCourseProposal.objects.all() + + updatecourseProposal = UpdateCourseProposal.objects.filter(faculty_code=des.user) + + if(str(des.designation) == "CSE HOD"): + return render(request, 'programme_curriculum/faculty/head_view_course_proposal_forms.html',{'courseProposals': courses,'updateProposals':updatecourses}) + elif(str(des.designation) == "Dean Academic"): + return render(request, 'programme_curriculum/faculty/dean_view_course_proposal_forms.html',{'courseProposals': courses,'updateProposals':updatecourses}) + return render(request, 'programme_curriculum/faculty/view_course_proposal_forms.html',{'courseProposals': courseProposal,'updateProposals':updatecourseProposal}) + + + + + +@login_required(login_url='/accounts/login') +def update_course_proposal_form(request, course_id): + user_details = ExtraInfo.objects.get(user = request.user) + des = HoldsDesignation.objects.all().filter(user = request.user).first() + if str(des.designation) == "student": + return HttpResponseRedirect('/programme_curriculum/programmes/') + elif str(request.user) == "acadadmin" : + return HttpResponseRedirect('/programme_curriculum/admin_programmes/') + elif str(des.designation) == "Associate Professor" or str(des.designation) == "Professor" or str(des.designation) == "Assistant Professor" : + pass + faculty_id=user_details.user_id + details=User.objects.get(id=faculty_id) + faculty_name=details.first_name +' '+ details.last_name + faculty_details=Update_Course_Proposal(initial={'faculty_name': faculty_name,'faculty_code':des.user}) + course = get_object_or_404(Course, Q(id=course_id)) + form = Update_Course_Proposal(instance=course) + + submitbutton= request.POST.get('Submit') + + if submitbutton: + if request.method == 'POST': + form = Update_Course_Proposal(request.POST) + if form.is_valid(): + form.save() + messages.success(request, "Updated "+ course.name +" successful") + return HttpResponseRedirect('/programme_curriculum/view_course_proposal_forms/') + return render(request,'programme_curriculum/faculty/update_course_proposal_form.html',{'faculty_details':faculty_details,'form':form, 'submitbutton': submitbutton}) \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/add_batch_form.html b/FusionIIIT/templates/programme_curriculum/acad_admin/add_batch_form.html index 1159944eb..90eeb464a 100644 --- a/FusionIIIT/templates/programme_curriculum/acad_admin/add_batch_form.html +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/add_batch_form.html @@ -19,6 +19,9 @@ <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses <i class="right floated chevron right icon"></i> </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> + </a> </div> {% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/add_course_form.html b/FusionIIIT/templates/programme_curriculum/acad_admin/add_course_form.html index 35ffa3493..0b6d59993 100644 --- a/FusionIIIT/templates/programme_curriculum/acad_admin/add_course_form.html +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/add_course_form.html @@ -19,6 +19,9 @@ <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses <i class="right floated chevron right icon"></i> </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> + </a> </div> {% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/add_courseslot_form.html b/FusionIIIT/templates/programme_curriculum/acad_admin/add_courseslot_form.html index 0d007cc63..136a63850 100644 --- a/FusionIIIT/templates/programme_curriculum/acad_admin/add_courseslot_form.html +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/add_courseslot_form.html @@ -19,6 +19,9 @@ <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses <i class="right floated chevron right icon"></i> </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> + </a> </div> {% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/add_curriculum_form.html b/FusionIIIT/templates/programme_curriculum/acad_admin/add_curriculum_form.html index 81c6aca98..45a51b928 100644 --- a/FusionIIIT/templates/programme_curriculum/acad_admin/add_curriculum_form.html +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/add_curriculum_form.html @@ -19,6 +19,9 @@ <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses <i class="right floated chevron right icon"></i> </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> + </a> </div> {% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/add_discipline_form.html b/FusionIIIT/templates/programme_curriculum/acad_admin/add_discipline_form.html index 4629ec121..fd5978c9a 100644 --- a/FusionIIIT/templates/programme_curriculum/acad_admin/add_discipline_form.html +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/add_discipline_form.html @@ -19,6 +19,9 @@ <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses <i class="right floated chevron right icon"></i> </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> + </a> </div> {% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/add_programme_form.html b/FusionIIIT/templates/programme_curriculum/acad_admin/add_programme_form.html index 35c1b9870..504e1fa16 100644 --- a/FusionIIIT/templates/programme_curriculum/acad_admin/add_programme_form.html +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/add_programme_form.html @@ -19,6 +19,9 @@ <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses <i class="right floated chevron right icon"></i> </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> + </a> </div> {% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_a_course.html b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_a_course.html index 1b664426d..edb1780fe 100644 --- a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_a_course.html +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_a_course.html @@ -19,6 +19,9 @@ <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses <i class="right floated chevron right icon"></i> </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> + </a> </div> {% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_a_course_proposal.html b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_a_course_proposal.html new file mode 100644 index 000000000..283cc5703 --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_a_course_proposal.html @@ -0,0 +1,241 @@ +{% extends 'programme_curriculum/acad_admin/common.html' %} + +{% block sidetabmenu %} + <div class="ui medium fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:admin_view_all_programmes' %}">Programmes & Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_all_working_curriculums' %}">Working Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_all_discplines' %}">Discipline + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_all_batches' %}">Batch + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + + +{% block content %} +<div class="ui segment" > + <div class="header"><h1>Course Proposal Form</h1></div> + <div class="ui divider"></div> + <form class="ui large form error" method="POST"> + + {% csrf_token %} + {% if form.non_field_errors %} + <div class="ui message"> + <div class="header">We had some issues</div> + {% for error in form.non_field_errors %} + <ul class="list"> + <li>{{ error }}</li> + </ul> + {% endfor %} + </div> + {% endif %} + <div class="field"> + {% if form.name.errors or form.code.errors or form.credit.errors %} + <div class="ui error message"> + <p>{{ form.name.errors }}</p> + <p>{{ form.code.errors }}</p> + <p>{{ form.credit.errors }}</p> + </div> + {% endif %} + </div> + <div class="field"> + <label for="{{ form.name.id_for_label }}">Name:</label> + {{ form.name }} + </div> + <div class="fields"> + <div class="eight wide field"> + <label for="{{ form.code.id_for_label }}">Code:</label> + {{ form.code }} + </div> + <div class="eight wide field"> + <label for="{{ form.credit.id_for_label }}">Credit:</label> + {{ form.credit }} + </div> + </div> + <div class="field"> + {% if form.lecture_hours.errors or form.tutorial_hours.errors or form.pratical_hours.errors or form.discussion_hours.errors or form.project_hours.errors %} + <div class="ui error message"> + <p>{{ form.lecture_hours.errors }}</p> + <p>{{ form.tutorial_hours.errors }}</p> + <p>{{ form.pratical_hours.errors }}</p> + <p>{{ form.discussion_hours.errors }}</p> + <p>{{ form.project_hours.errors }}</p> + </div> + {% endif %} + </div> + <div class="fields"> + <div class="six wide field"> + <label for="{{ form.lecture_hours.id_for_label }}">Lecture Hours (L):</label> + {{ form.lecture_hours }} + </div> + <div class="five wide field"> + <label for="{{ form.tutorial_hours.id_for_label }}">Tutorial Hours (T):</label> + {{ form.tutorial_hours }} + </div> + <div class="five wide field"> + <label for="{{ form.pratical_hours.id_for_label }}">Pratical Hours (P):</label> + {{ form.pratical_hours }} + </div> + </div> + <div class="fields"> + <div class="eight wide field"> + <label for="{{ form.discussion_hours.id_for_label }}">Group Discussion Hours (GD):</label> + {{ form.discussion_hours }} + </div> + <div class="eight wide field"> + <label for="{{ form.project_hours.id_for_label }}">Project Hours (PR):</label> + {{ form.project_hours }} + </div> + </div> + <div class="inline field"> + {% if form.working_course.errors %} + <div class="ui error message"> + {{ form.working_course.errors }} + </div> + {% endif %} + <label for="{{ form.working_course.id_for_label }}">Working Course:</label> + {{ form.working_course }} + </div> + <div class="field"> + {% if form.disciplines.errors %} + <div class="ui error message"> + {{ form.disciplines.errors }} + </div> + {% endif %} + <label for="{{ form.disciplines.id_for_label }}">From Discipline(s):</label> + {{ form.disciplines }} + </div> + <div class="field"> + {% if form.pre_requisits.errors %} + <div class="ui error message"> + {{ form.pre_requisits.errors }} + </div> + {% endif %} + <label for="{{ form.pre_requisits.id_for_label }}">Pre-requisits:</label> + {{ form.pre_requisits }} + </div> + <div class="field"> + {% if form.pre_requisit_courses.errors %} + <div class="ui error message"> + {{ form.pre_requisit_courses.errors }} + </div> + {% endif %} + <label for="{{ form.pre_requisit_courses.id_for_label }}">Pre-requisits Courses:</label> + {{ form.pre_requisit_courses }} + </div> + <div class="field"> + {% if form.syllabus.errors %} + <div class="ui error message"> + {{ form.syllabus.errors }} + </div> + {% endif %} + <label for="{{ form.syllabus.id_for_label }}">Syllabus:</label> + {{ form.syllabus }} + </div> + <div class="field"> + {% if form.ref_books.errors %} + <div class="ui error message"> + {{ form.ref_books.errors }} + </div> + {% endif %} + <label for="{{ form.ref_books.id_for_label }}">References & Books:</label> + {{ form.ref_books }} + </div> + <div class="field"> + {% if form.percent_quiz_1.errors %} + <div class="ui error message"> + <p>{{ form.percent_quiz_1.errors }}</p> + </div> + {% endif %} + </div> + <div class="fields"> + <div class="two wide field"> + <label for="{{ form.percent_quiz_1.id_for_label }}">Quiz 1 %:</label> + {{ form.percent_quiz_1 }} + </div> + <div class="six wide field"> + + <label for="{{ form.percent_midsem.id_for_label }}">Midsem %:</label> + {{ form.percent_midsem }} + </div> + <div class="two wide field"> + + <label for="{{ form.percent_quiz_2.id_for_label }}">Quiz 2 %:</label> + {{ form.percent_quiz_2 }} + </div> + <div class="six wide field"> + + <label for="{{ form.percent_endsem.id_for_label }}">Endsem %:</label> + {{ form.percent_endsem }} + </div> + </div> + <div class="fields"> + <div class="seven wide field"> + + <label for="{{ form.percent_project.id_for_label }}">Project %:</label> + {{ form.percent_project }} + </div> + <div class="six wide field"> + + <label for="{{ form.percent_lab_evaluation.id_for_label }}">Lab Evaluations %:</label> + {{ form.percent_lab_evaluation }} + </div> + <div class="three wide field"> + + <label for="{{ form.percent_course_attendance.id_for_label }}">Attendance %:</label> + {{ form.percent_course_attendance }} + </div> + </div> + + <td></td> + <td> + <div class="ui large right floated buttons"> + <a class="ui button" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Cancel</a> + <div class="or"></div> + <input class="ui primary button" type="Submit" name="Submit"> + </div> + </td> + </form> +</div> +<div class="ui hidden divider"></div> + <script> + $(window).load(function() { + $('form').get(0).reset(); //clear form data on page load + }); + $('.ui.checkbox') + .checkbox() + ; + $('select.dropdown') + .dropdown() + ; + </script> + +{% endblock %} +{% comment %} {% block rightcontent %} +<br> +<br> +<div class="ui center aligned segment"> + <a class="fluid ui large primary animated button" tabindex="0" + href="{% url 'programme_curriculum:add_course_form' %}" + type="Submit" name="Submit" target="_blank" rel="noopener"> + <div class="visible content">ADD ANOTHER COURSE</div> + <div class="hidden content"> + <i class="add icon"></i> + </div> + </a> +</div> +{% endblock %} {% endcomment %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_a_courseslot.html b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_a_courseslot.html index 6bd1707b7..1620a4b8b 100644 --- a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_a_courseslot.html +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_a_courseslot.html @@ -19,6 +19,9 @@ <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses <i class="right floated chevron right icon"></i> </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> + </a> </div> {% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_a_semester_of_a_curriculum.html b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_a_semester_of_a_curriculum.html index bf3ba45e0..4327a5d05 100644 --- a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_a_semester_of_a_curriculum.html +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_a_semester_of_a_curriculum.html @@ -19,6 +19,9 @@ <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses <i class="right floated chevron right icon"></i> </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> + </a> </div> {% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_a_update_course_proposal.html b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_a_update_course_proposal.html new file mode 100644 index 000000000..7fae41d5a --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_a_update_course_proposal.html @@ -0,0 +1,241 @@ +{% extends 'programme_curriculum/acad_admin/common.html' %} + +{% block sidetabmenu %} + <div class="ui medium fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:admin_view_all_programmes' %}">Programmes & Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_all_working_curriculums' %}">Working Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_all_discplines' %}">Discipline + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_all_batches' %}">Batch + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + + +{% block content %} +<div class="ui segment" > + <div class="header"><h1>Course Update Proposal Form</h1></div> + <div class="ui divider"></div> + <form class="ui large form error" method="POST"> + + {% csrf_token %} + {% if form.non_field_errors %} + <div class="ui message"> + <div class="header">We had some issues</div> + {% for error in form.non_field_errors %} + <ul class="list"> + <li>{{ error }}</li> + </ul> + {% endfor %} + </div> + {% endif %} + <div class="field"> + {% if form.name.errors or form.code.errors or form.credit.errors %} + <div class="ui error message"> + <p>{{ form.name.errors }}</p> + <p>{{ form.code.errors }}</p> + <p>{{ form.credit.errors }}</p> + </div> + {% endif %} + </div> + <div class="field"> + <label for="{{ form.name.id_for_label }}">Name:</label> + {{ form.name }} + </div> + <div class="fields"> + <div class="eight wide field"> + <label for="{{ form.code.id_for_label }}">Code:</label> + {{ form.code }} + </div> + <div class="eight wide field"> + <label for="{{ form.credit.id_for_label }}">Credit:</label> + {{ form.credit }} + </div> + </div> + <div class="field"> + {% if form.lecture_hours.errors or form.tutorial_hours.errors or form.pratical_hours.errors or form.discussion_hours.errors or form.project_hours.errors %} + <div class="ui error message"> + <p>{{ form.lecture_hours.errors }}</p> + <p>{{ form.tutorial_hours.errors }}</p> + <p>{{ form.pratical_hours.errors }}</p> + <p>{{ form.discussion_hours.errors }}</p> + <p>{{ form.project_hours.errors }}</p> + </div> + {% endif %} + </div> + <div class="fields"> + <div class="six wide field"> + <label for="{{ form.lecture_hours.id_for_label }}">Lecture Hours (L):</label> + {{ form.lecture_hours }} + </div> + <div class="five wide field"> + <label for="{{ form.tutorial_hours.id_for_label }}">Tutorial Hours (T):</label> + {{ form.tutorial_hours }} + </div> + <div class="five wide field"> + <label for="{{ form.pratical_hours.id_for_label }}">Pratical Hours (P):</label> + {{ form.pratical_hours }} + </div> + </div> + <div class="fields"> + <div class="eight wide field"> + <label for="{{ form.discussion_hours.id_for_label }}">Group Discussion Hours (GD):</label> + {{ form.discussion_hours }} + </div> + <div class="eight wide field"> + <label for="{{ form.project_hours.id_for_label }}">Project Hours (PR):</label> + {{ form.project_hours }} + </div> + </div> + <div class="inline field"> + {% if form.working_course.errors %} + <div class="ui error message"> + {{ form.working_course.errors }} + </div> + {% endif %} + <label for="{{ form.working_course.id_for_label }}">Working Course:</label> + {{ form.working_course }} + </div> + <div class="field"> + {% if form.disciplines.errors %} + <div class="ui error message"> + {{ form.disciplines.errors }} + </div> + {% endif %} + <label for="{{ form.disciplines.id_for_label }}">From Discipline(s):</label> + {{ form.disciplines }} + </div> + <div class="field"> + {% if form.pre_requisits.errors %} + <div class="ui error message"> + {{ form.pre_requisits.errors }} + </div> + {% endif %} + <label for="{{ form.pre_requisits.id_for_label }}">Pre-requisits:</label> + {{ form.pre_requisits }} + </div> + <div class="field"> + {% if form.pre_requisit_courses.errors %} + <div class="ui error message"> + {{ form.pre_requisit_courses.errors }} + </div> + {% endif %} + <label for="{{ form.pre_requisit_courses.id_for_label }}">Pre-requisits Courses:</label> + {{ form.pre_requisit_courses }} + </div> + <div class="field"> + {% if form.syllabus.errors %} + <div class="ui error message"> + {{ form.syllabus.errors }} + </div> + {% endif %} + <label for="{{ form.syllabus.id_for_label }}">Syllabus:</label> + {{ form.syllabus }} + </div> + <div class="field"> + {% if form.ref_books.errors %} + <div class="ui error message"> + {{ form.ref_books.errors }} + </div> + {% endif %} + <label for="{{ form.ref_books.id_for_label }}">References & Books:</label> + {{ form.ref_books }} + </div> + <div class="field"> + {% if form.percent_quiz_1.errors %} + <div class="ui error message"> + <p>{{ form.percent_quiz_1.errors }}</p> + </div> + {% endif %} + </div> + <div class="fields"> + <div class="two wide field"> + <label for="{{ form.percent_quiz_1.id_for_label }}">Quiz 1 %:</label> + {{ form.percent_quiz_1 }} + </div> + <div class="six wide field"> + + <label for="{{ form.percent_midsem.id_for_label }}">Midsem %:</label> + {{ form.percent_midsem }} + </div> + <div class="two wide field"> + + <label for="{{ form.percent_quiz_2.id_for_label }}">Quiz 2 %:</label> + {{ form.percent_quiz_2 }} + </div> + <div class="six wide field"> + + <label for="{{ form.percent_endsem.id_for_label }}">Endsem %:</label> + {{ form.percent_endsem }} + </div> + </div> + <div class="fields"> + <div class="seven wide field"> + + <label for="{{ form.percent_project.id_for_label }}">Project %:</label> + {{ form.percent_project }} + </div> + <div class="six wide field"> + + <label for="{{ form.percent_lab_evaluation.id_for_label }}">Lab Evaluations %:</label> + {{ form.percent_lab_evaluation }} + </div> + <div class="three wide field"> + + <label for="{{ form.percent_course_attendance.id_for_label }}">Attendance %:</label> + {{ form.percent_course_attendance }} + </div> + </div> + + <td></td> + <td> + <div class="ui large right floated buttons"> + <a class="ui button" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Cancel</a> + <div class="or"></div> + <input class="ui primary button" type="Submit" name="Submit"> + </div> + </td> + </form> +</div> +<div class="ui hidden divider"></div> + <script> + $(window).load(function() { + $('form').get(0).reset(); //clear form data on page load + }); + $('.ui.checkbox') + .checkbox() + ; + $('select.dropdown') + .dropdown() + ; + </script> + +{% endblock %} +{% comment %} {% block rightcontent %} +<br> +<br> +<div class="ui center aligned segment"> + <a class="fluid ui large primary animated button" tabindex="0" + href="{% url 'programme_curriculum:add_course_form' %}" + type="Submit" name="Submit" target="_blank" rel="noopener"> + <div class="visible content">ADD ANOTHER COURSE</div> + <div class="hidden content"> + <i class="add icon"></i> + </div> + </a> +</div> +{% endblock %} {% endcomment %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_batches.html b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_batches.html index dfedd63c0..bcebdf026 100644 --- a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_batches.html +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_batches.html @@ -19,6 +19,9 @@ <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses <i class="right floated chevron right icon"></i> </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> + </a> </div> {% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_courses.html b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_courses.html index 8a9b28673..2e87e23a4 100644 --- a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_courses.html +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_courses.html @@ -19,6 +19,9 @@ <a class="active item" href="{% url 'programme_curriculum:admin_view_all_courses' %}"><B>Courses</B> <i class="right floated chevron right icon"></i> </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> + </a> </div> {% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_disciplines.html b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_disciplines.html index f629a476a..48b5e07da 100644 --- a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_disciplines.html +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_disciplines.html @@ -19,6 +19,9 @@ <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses <i class="right floated chevron right icon"></i> </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> + </a> </div> {% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_programmes.html b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_programmes.html index 76656008c..d0176527e 100644 --- a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_programmes.html +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_programmes.html @@ -19,6 +19,9 @@ <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses <i class="right floated chevron right icon"></i> </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> + </a> </div> {% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_working_curriculums.html b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_working_curriculums.html index 105bc73a6..fe5924eaa 100644 --- a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_working_curriculums.html +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_all_working_curriculums.html @@ -19,6 +19,9 @@ <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses <i class="right floated chevron right icon"></i> </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> + </a> </div> {% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_course_proposal_forms.html b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_course_proposal_forms.html new file mode 100644 index 000000000..ecaf585c0 --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_course_proposal_forms.html @@ -0,0 +1,137 @@ +{% extends 'programme_curriculum/acad_admin/common.html' %} + +{% block sidetabmenu %} + <div class="ui medium fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:admin_view_all_programmes' %}">Programmes & Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_all_working_curriculums' %}">Working Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_all_discplines' %}">Discipline + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_all_batches' %}">Batch + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} +<div class="ui top attached tabular large menu"> + <a class="item active" data-tab="afirst">Course Proposal Forms</a> +</div> +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 495px"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td><h4>Faculty Name</h4></td> + <td><h4>Faculty Code</h4></td> + <td><h4>Course Name</h4></td> + <td><h4>Status</h4></td> + <td></td> + </tr> + </thead> + <tbody> + {% for courseProposal in courseProposals %} + + {% if courseProposal.status == 3 %} + <tr> + <td>{{ courseProposal.faculty_name }}</td> + <td>{{ courseProposal.faculty_code }}</td> + <td>{{ courseProposal.name }}</td> + <td> + <B>Approved by Dean</B> + </td> + <td> + {% if courseProposal.status == 3 %} + + <a class="tiny ui positive animated button" tabindex="0" href="{% url 'programme_curriculum:admin_view_a_course_proposal' courseProposal.id %}" + type="Submit" name="Submit"> + <div class="visible content">ADD</div> + <div class="hidden content"> + <i class="add icon"></i> + </div> + </a> + {% endif %} + + <td> + </tr> + {% endif %} + + {% empty %} + <tr><td colspan="3">No Courses Proposals to add</td><tr> + {% endfor %} + + + </tbody> + </table> + </div> + </div> +</div> +<div class="ui top attached tabular large menu"> + <a class="item active" data-tab="afirst">Update Proposal Forms</a> +</div> +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 495px"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td><h4>Faculty Name</h4></td> + <td><h4>Faculty Code</h4></td> + <td><h4>Course Name</h4></td> + <td><h4>Status</h4></td> + <td></td> + </tr> + </thead> + <tbody> + {% for updateProposal in updateProposals %} + {% if updateProposal.status == 3 %} + <tr> + <td>{{ updateProposal.faculty_name }}</td> + <td>{{ updateProposal.faculty_code }}</td> + <td>{{ updateProposal.name }}</td> + <td> + <B>Approved by Dean</B> + </td> + <td> + {% if updateProposal.status == 3 %} + + <a class="tiny ui positive animated button" tabindex="0" href="{% url 'programme_curriculum:admin_view_a_update_course_proposal' updateProposal.id %}" + type="Submit" name="Submit"> + <div class="visible content">Update</div> + <div class="hidden content"> + <i class="edit icon"></i> + </div> + </a> + {% endif %} + + <td> + </tr> + {% endif %} + {% empty %} + <tr><td colspan="3">No Courses Proposals Submitted</td><tr> + {% endfor %} + </tbody> + </table> + </div> + </div> +</div> +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_curriculums_of_a_programme.html b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_curriculums_of_a_programme.html index f7711d5a2..30a71e848 100644 --- a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_curriculums_of_a_programme.html +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_curriculums_of_a_programme.html @@ -19,6 +19,8 @@ <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses <i class="right floated chevron right icon"></i> </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> </div> {% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_semesters_of_a_curriculum.html b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_semesters_of_a_curriculum.html index b66c65e1b..d1a3b9834 100644 --- a/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_semesters_of_a_curriculum.html +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/admin_view_semesters_of_a_curriculum.html @@ -19,6 +19,8 @@ <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses <i class="right floated chevron right icon"></i> </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> </div> {% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/acad_admin/instigate_semester_form.html b/FusionIIIT/templates/programme_curriculum/acad_admin/instigate_semester_form.html index 91995e288..151f1791d 100644 --- a/FusionIIIT/templates/programme_curriculum/acad_admin/instigate_semester_form.html +++ b/FusionIIIT/templates/programme_curriculum/acad_admin/instigate_semester_form.html @@ -19,6 +19,8 @@ <a class="item" href="{% url 'programme_curriculum:admin_view_all_courses' %}">Courses <i class="right floated chevron right icon"></i> </a> + <a class="item" href="{% url 'programme_curriculum:admin_view_course_proposal_forms' %}">Course Proposal_Forms + <i class="right floated chevron right icon"></i> </div> {% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/faculty/common.html b/FusionIIIT/templates/programme_curriculum/faculty/common.html new file mode 100644 index 000000000..22f83d34a --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/common.html @@ -0,0 +1,78 @@ +{% extends 'globals/base.html' %} +{% load static %} + +{% block title %} + Programme & Curriculum +{% endblock %} + +{% block css %} + <meta name='viewport' content='width=device-width, initial-scale=1'> +{% endblock %} + +{% block body %} + {% block navBar %} + {% include 'dashboard/navbar.html' %} + {% endblock %} + + <div class="ui stackable doubling grid"> + + {% comment %}The left-margin segment!{% endcomment %} + <div class="column"></div> + + {% comment %}The left-rail segment starts here!{% endcomment %} + <div class="three wide column"> + + {% comment %}The user image card starts here!{% endcomment %} + {% block usercard %} + {% include 'globals/usercard.html' %} + {% endblock %} + {% comment %}The user image card ends here!{% endcomment %} + + <div class="ui divider"></div> + + {% comment %}The Tab-Menu starts here!{% endcomment %} + {% block sidetabmenu %} + {% endblock %} + {% comment %}The Tab-Menu ends here!{% endcomment %} + </div> + + {% comment %} + The left-rail segment ends here! + {% endcomment %} + + {% comment %} + The central-rail segment starts here! + {% endcomment %} + + <div class="eight wide column"> + + {% block content %} + {% endblock %} + + </div> + {% comment %}The central-rail segment ends here!{% endcomment %} + + {% comment %}The right-rail segment starts here!{% endcomment %} + <div class="three wide column"> + <div class="row"> + {% comment %} + TODO: the right rail! + {% endcomment %} + {% block rightcontent %} + {% endblock %} + </div> + </div> + {% comment %}The right-rail segment ends here!{% endcomment %} + + {% comment %}The right-margin segment!{% endcomment %} + <div class="column"></div> + + </div> + {% comment %}The grid ends here!{% endcomment %} +{% endblock %} + +{% block javascript %} + <script src="https://cdn.rawgit.com/mdehoog/Semantic-UI/6e6d051d47b598ebab05857545f242caf2b4b48c/dist/semantic.min.js"></script> + <script type="text/javascript" src="{% static 'globals/js/datepicker.js' %}"></script> + <script type="text/javascript" src="{% static 'globals/js/tablesort.js' %}"></script> +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/faculty/course_proposal_form.html b/FusionIIIT/templates/programme_curriculum/faculty/course_proposal_form.html new file mode 100644 index 000000000..17a638108 --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/course_proposal_form.html @@ -0,0 +1,239 @@ +{% extends 'programme_curriculum/common.html' %} +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} +<div class="ui segment" > + <div class="header"><h1>New Course Proposal Form</h1></div> + <div class="ui divider"></div> + <form class="ui large form error" method="POST"> + + {% csrf_token %} + {% if form.non_field_errors %} + <div class="ui message"> + <div class="header">We had some issues</div> + {% for error in form.non_field_errors %} + <ul class="list"> + <li>{{ error }}</li> + </ul> + {% endfor %} + </div> + {% endif %} + <div class="field"> + {% if form.name.errors or form.code.errors or form.credit.errors %} + <div class="ui error message"> + <p>{{ form.faculty_name.errors }}</p> + <p>{{ form.faculty_code.errors }}</p> + <p>{{ form.name.errors }}</p> + <p>{{ form.code.errors }}</p> + <p>{{ form.credit.errors }}</p> + </div> + {% endif %} + </div> + <div class="field"> + <label for="{{ form.faculty_name.id_for_label }}">Faculty Name:</label> + {{ form.faculty_name }} + </div> + <div class="field"> + <label for="{{ form.faculty_code.id_for_label }}">Faculty Code:</label> + {{ form.faculty_code }} + </div> + <div class="field"> + <label for="{{ form.name.id_for_label }}">Name:</label> + {{ form.name }} + </div> + <div class="fields"> + <div class="eight wide field"> + <label for="{{ form.code.id_for_label }}">Code:</label> + {{ form.code }} + </div> + <div class="eight wide field"> + <label for="{{ form.credit.id_for_label }}">Credit:</label> + {{ form.credit }} + </div> + </div> + <div class="field"> + {% if form.lecture_hours.errors or form.tutorial_hours.errors or form.pratical_hours.errors or form.discussion_hours.errors or form.project_hours.errors %} + <div class="ui error message"> + <p>{{ form.lecture_hours.errors }}</p> + <p>{{ form.tutorial_hours.errors }}</p> + <p>{{ form.pratical_hours.errors }}</p> + <p>{{ form.discussion_hours.errors }}</p> + <p>{{ form.project_hours.errors }}</p> + </div> + {% endif %} + </div> + <div class="fields"> + <div class="six wide field"> + <label for="{{ form.lecture_hours.id_for_label }}">Lecture Hours (L):</label> + {{ form.lecture_hours }} + </div> + <div class="five wide field"> + <label for="{{ form.tutorial_hours.id_for_label }}">Tutorial Hours (T):</label> + {{ form.tutorial_hours }} + </div> + <div class="five wide field"> + <label for="{{ form.pratical_hours.id_for_label }}">Pratical Hours (P):</label> + {{ form.pratical_hours }} + </div> + </div> + <div class="fields"> + <div class="eight wide field"> + <label for="{{ form.discussion_hours.id_for_label }}">Group Discussion Hours (GD):</label> + {{ form.discussion_hours }} + </div> + <div class="eight wide field"> + <label for="{{ form.project_hours.id_for_label }}">Project Hours (PR):</label> + {{ form.project_hours }} + </div> + </div> + <div class="field"> + {% if form.disciplines.errors %} + <div class="ui error message"> + {{ form.disciplines.errors }} + </div> + {% endif %} + <label for="{{ form.disciplines.id_for_label }}">From Discipline(s):</label> + {{ form.disciplines }} + </div> + <div class="field"> + {% if form.pre_requisits.errors %} + <div class="ui error message"> + {{ form.pre_requisits.errors }} + </div> + {% endif %} + <label for="{{ form.pre_requisits.id_for_label }}">Pre-requisits:</label> + {{ form.pre_requisits }} + </div> + <div class="field"> + {% if form.pre_requisit_courses.errors %} + <div class="ui error message"> + {{ form.pre_requisit_courses.errors }} + </div> + {% endif %} + <label for="{{ form.pre_requisit_courses.id_for_label }}">Pre-requisits Courses:</label> + {{ form.pre_requisit_courses }} + </div> + <div class="field"> + {% if form.syllabus.errors %} + <div class="ui error message"> + {{ form.syllabus.errors }} + </div> + {% endif %} + <label for="{{ form.syllabus.id_for_label }}">Syllabus:</label> + {{ form.syllabus }} + </div> + <div class="field"> + {% if form.ref_books.errors %} + <div class="ui error message"> + {{ form.ref_books.errors }} + </div> + {% endif %} + <label for="{{ form.ref_books.id_for_label }}">References & Books:</label> + {{ form.ref_books }} + </div> + <div class="field"> + {% if form.status.errors %} + <div class="ui error message"> + {{ form.status.errors }} + </div> + {% endif %} + <label for="{{ form.status.id_for_label }}">Status:</label> + {{ form.status }} + </div> + <div class="field"> + {% if form.percent_quiz_1.errors %} + <div class="ui error message"> + <p>{{ form.percent_quiz_1.errors }}</p> + </div> + {% endif %} + </div> + <div class="fields"> + <div class="two wide field"> + <label for="{{ form.percent_quiz_1.id_for_label }}">Quiz 1 %:</label> + {{ form.percent_quiz_1 }} + </div> + <div class="six wide field"> + + <label for="{{ form.percent_midsem.id_for_label }}">Midsem %:</label> + {{ form.percent_midsem }} + </div> + <div class="two wide field"> + + <label for="{{ form.percent_quiz_2.id_for_label }}">Quiz 2 %:</label> + {{ form.percent_quiz_2 }} + </div> + <div class="six wide field"> + + <label for="{{ form.percent_endsem.id_for_label }}">Endsem %:</label> + {{ form.percent_endsem }} + </div> + </div> + <div class="fields"> + <div class="seven wide field"> + + <label for="{{ form.percent_project.id_for_label }}">Project %:</label> + {{ form.percent_project }} + </div> + <div class="six wide field"> + + <label for="{{ form.percent_lab_evaluation.id_for_label }}">Lab Evaluations %:</label> + {{ form.percent_lab_evaluation }} + </div> + <div class="three wide field"> + + <label for="{{ form.percent_course_attendance.id_for_label }}">Attendance %:</label> + {{ form.percent_course_attendance }} + </div> + </div> + + <td></td> + <td> + <div class="ui large right floated buttons"> + <a class="ui button" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Cancel</a> + <div class="or"></div> + <input class="ui primary button" type="Submit" name="Submit"> + </div> + </td> + </form> +</div> +<div class="ui hidden divider"></div> + <script> + $(window).load(function() { + $('form').get(0).reset(); //clear form data on page load + }); + $('.ui.checkbox') + .checkbox() + ; + $('select.dropdown') + .dropdown() + ; + </script> + +{% endblock %} +{% block rightcontent %} +<br> + +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/faculty/dean_view_a_course_proposal.html b/FusionIIIT/templates/programme_curriculum/faculty/dean_view_a_course_proposal.html new file mode 100644 index 000000000..890a74889 --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/dean_view_a_course_proposal.html @@ -0,0 +1,177 @@ +{% extends 'programme_curriculum/common.html' %} +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; height: 680px"> + <table class="ui large celled definition medium table"> + <thead> + <tr style="font-size: medium; + background-color: aliceblue;"> + <td colspan="3"><h2><center>Course Proposal Form By</h2> <h3><center>{{ course.faculty_name }}({{ course.faculty_code }})</center></h3> + </td> + </tr> + <tr style="font-size: medium; + background-color: aliceblue;"> + <td colspan="3"><h2>{{ course.code }} - {{ course.name }}</h2> + </td> + </tr> + {% if course.disciplines.all %} + <tr style="font-size: medium; + background-color: aliceblue;"> + <td colspan="3">Discipline + {% for discipline in course.disciplines.all %} + <h3>{{ discipline }}</h3> + {% endfor %} + + </td> + </tr> + {% endif %} + </thead> + <tbody> + <tr class="collapsing"> + <td class="collapsing" colspan="2"><B>Course Code</B></td> + <td>{{ course.code }}</td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>Course Name</B></td> + <td>{{ course.name }}</td> + </tr> + <tr> + <td rowspan="6" class="collapsing"><B>Contact hours</B></td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Lecture</td> + <td colspan="1">{{ course.lecture_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Tutorial</td> + <td colspan="1">{{ course.tutorial_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Lab</td> + <td colspan="1">{{ course.pratical_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Discussion</td> + <td colspan="1">{{ course.discussion_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Project</td> + <td colspan="1">{{ course.project_hours }}hrs</td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>Credits</B></td> + <td>{{ course.credit }}</td> + </tr> + <tr> + <td rowspan="3" class="collapsing"><B>Pre-requisits</B></td> + </tr> + <tr> + <td class="left aligned collapsing">Info</td> + <td colspan="1">{{ course.pre_requisits|linebreaks }}</td> + </tr> + <tr> + <td class="left aligned collapsing">Courses</td> + <td colspan="1"> + <p> + {% for p_course in course.pre_requisit_courses.all %} + <a href="{% url 'programme_curriculum:view_a_course' p_course.id %}">{{ p_course }}</a>,<br> + {% endfor %} + </p> + </td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>Syllabus</B></td> + <td>{{ course.syllabus|linebreaks }}</td> + </tr> + <tr> + <td rowspan="8" class="collapsing"><B>Evaluation Schema</B></td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Quiz 1</td> + <td colspan="1">{{ course.percent_quiz_1 }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Mid-Sem Exam</td> + <td colspan="1">{{ course.percent_midsem }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Quiz 2</td> + <td colspan="1">{{ course.percent_quiz_2 }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">End-Sem Exam</td> + <td colspan="1">{{ course.percent_endsem }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Project</td> + <td colspan="1">{{ course.percent_project }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Lab Evaluation</td> + <td colspan="1">{{ course.percent_lab_evaluation }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Course Attendance</td> + <td colspan="1">{{ course.percent_course_attendance }} %</td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>References & Books</B></td> + <td>{{ course.ref_books|linebreaks }}</td> + </tr> + </tbody> + </table> + </div> + </div> +</div> +{% endblock %} +{% block rightcontent %} +<br> +<br> +<div class="ui center aligned segment"> + <div class="extra content"> + <a class="fluid ui large positive animated button" tabindex="0" + href="{% url 'programme_curriculum:approve_form' course.id %}" + type="Submit" name="Submit"> + <div class="visible content">Approve</div> + <div class="hidden content"> + <i class="edit icon"></i> + </div> + </a> + <br> + <a class="fluid ui large primary animated button" tabindex="0" + href="{% url 'programme_curriculum:reject_form' course.id %}" + type="Submit" name="Submit"> + <div class="visible content">Reject</div> + <div class="hidden content"> + <i class="add icon"></i> + </div> + </a> + </div> +</div> +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/faculty/dean_view_course_proposal_forms.html b/FusionIIIT/templates/programme_curriculum/faculty/dean_view_course_proposal_forms.html new file mode 100644 index 000000000..08842798d --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/dean_view_course_proposal_forms.html @@ -0,0 +1,159 @@ +{% extends 'programme_curriculum/common.html' %} +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} +<div class="ui top attached tabular large menu"> + <a class="item active" data-tab="afirst">Course Proposal Forms</a> +</div> +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 495px"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td><h4>Faculty Name</h4></td> + <td><h4>Faculty Name</h4></td> + <td><h4>Course Name</h4></td> + <td><h4>Course Code</h4></td> + <td><h4>Status</h4></td> + </tr> + </thead> + <tbody> + + {% for courseProposal in courseProposals %} + + {% if courseProposal.status != 0 and courseProposal.status != 2 %} + + + <tr> + <td>{{ courseProposal.faculty_name }}</td> + <td>{{ courseProposal.faculty_code }}</td> + <td>{{ courseProposal.name }}</td> + <td>{{ courseProposal.code }}</td> + + <td class="collapsing"> + {% if courseProposal.status == 1 %} + <a class="tiny ui positive animated button" tabindex="0" href="{% url 'programme_curriculum:head_view_a_course_proposal' courseProposal.id %}" + type="Submit" name="Submit"> + <div class="visible content">edit</div> + <div class="hidden content"> + <i class="edit icon"></i> + </div> + </a> + {% endif %} + {% if courseProposal.status == 3 %} + <B>Approved</B> + {% endif %} + {% if courseProposal.status == 4 %} + <B>Rejected</B> + {% endif %} + {% if courseProposal.status == 6%} + <B>Course Added!</B> + {% endif %} + </td> + + + </tr> + {% endif %} + + {% empty %} + <tr><td colspan="3">No Courses Avaliable</td><tr> + {% endfor %} + </tbody> + </table> + </div> + </div> +</div> +<div class="ui top attached tabular large menu"> + <a class="item active" data-tab="afirst">Course Proposal Forms</a> +</div> +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 495px"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td><h4>Faculty Name</h4></td> + <td><h4>Faculty Name</h4></td> + <td><h4>Course Name</h4></td> + <td><h4>Course Code</h4></td> + <td><h4>Status</h4></td> + </tr> + </thead> + <tbody> + + {% for updateProposal in updateProposals %} + + {% if updateProposal.status != 0 and updateProposal.status != 2 %} + + + <tr> + <td>{{ updateProposal.faculty_name }}</td> + <td>{{ updateProposal.faculty_code }}</td> + <td>{{ updateProposal.name }}</td> + <td>{{ updateProposal.code }}</td> + + <td class="collapsing"> + {% if updateProposal.status == 1 %} + <a class="tiny ui positive animated button" tabindex="0" href="{% url 'programme_curriculum:head_view_a_update_course_proposal' updateProposal.id %}" + type="Submit" name="Submit"> + <div class="visible content">edit</div> + <div class="hidden content"> + <i class="edit icon"></i> + </div> + </a> + {% endif %} + {% if updateProposal.status == 3 %} + <B>Approved</B> + {% endif %} + {% if updateProposal.status == 4 %} + <B>Rejected</B> + {% endif %} + {% if updateProposal.status == 6%} + <B>Course Updated + <br>Succesfully!</B> + {% endif %} + </td> + + + </tr> + {% endif %} + + {% empty %} + <tr><td colspan="3">No Courses Avaliable</td><tr> + {% endfor %} + </tbody> + </table> + </div> + </div> +</div> +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/faculty/dean_view_update_a_course_proposal.html b/FusionIIIT/templates/programme_curriculum/faculty/dean_view_update_a_course_proposal.html new file mode 100644 index 000000000..d4d2c96ad --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/dean_view_update_a_course_proposal.html @@ -0,0 +1,177 @@ +{% extends 'programme_curriculum/common.html' %} +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; height: 680px"> + <table class="ui large celled definition medium table"> + <thead> + <tr style="font-size: medium; + background-color: aliceblue;"> + <td colspan="3"><h2><center>Course Proposal Form By</h2> <h3><center>{{ course.faculty_name }}({{ course.faculty_code }})</center></h3> + </td> + </tr> + <tr style="font-size: medium; + background-color: aliceblue;"> + <td colspan="3"><h2>{{ course.code }} - {{ course.name }}</h2> + </td> + </tr> + {% if course.disciplines.all %} + <tr style="font-size: medium; + background-color: aliceblue;"> + <td colspan="3">Discipline + {% for discipline in course.disciplines.all %} + <h3>{{ discipline }}</h3> + {% endfor %} + + </td> + </tr> + {% endif %} + </thead> + <tbody> + <tr class="collapsing"> + <td class="collapsing" colspan="2"><B>Course Code</B></td> + <td>{{ course.code }}</td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>Course Name</B></td> + <td>{{ course.name }}</td> + </tr> + <tr> + <td rowspan="6" class="collapsing"><B>Contact hours</B></td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Lecture</td> + <td colspan="1">{{ course.lecture_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Tutorial</td> + <td colspan="1">{{ course.tutorial_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Lab</td> + <td colspan="1">{{ course.pratical_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Discussion</td> + <td colspan="1">{{ course.discussion_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Project</td> + <td colspan="1">{{ course.project_hours }}hrs</td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>Credits</B></td> + <td>{{ course.credit }}</td> + </tr> + <tr> + <td rowspan="3" class="collapsing"><B>Pre-requisits</B></td> + </tr> + <tr> + <td class="left aligned collapsing">Info</td> + <td colspan="1">{{ course.pre_requisits|linebreaks }}</td> + </tr> + <tr> + <td class="left aligned collapsing">Courses</td> + <td colspan="1"> + <p> + {% for p_course in course.pre_requisit_courses.all %} + <a href="{% url 'programme_curriculum:view_a_course' p_course.id %}">{{ p_course }}</a>,<br> + {% endfor %} + </p> + </td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>Syllabus</B></td> + <td>{{ course.syllabus|linebreaks }}</td> + </tr> + <tr> + <td rowspan="8" class="collapsing"><B>Evaluation Schema</B></td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Quiz 1</td> + <td colspan="1">{{ course.percent_quiz_1 }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Mid-Sem Exam</td> + <td colspan="1">{{ course.percent_midsem }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Quiz 2</td> + <td colspan="1">{{ course.percent_quiz_2 }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">End-Sem Exam</td> + <td colspan="1">{{ course.percent_endsem }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Project</td> + <td colspan="1">{{ course.percent_project }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Lab Evaluation</td> + <td colspan="1">{{ course.percent_lab_evaluation }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Course Attendance</td> + <td colspan="1">{{ course.percent_course_attendance }} %</td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>References & Books</B></td> + <td>{{ course.ref_books|linebreaks }}</td> + </tr> + </tbody> + </table> + </div> + </div> +</div> +{% endblock %} +{% block rightcontent %} +<br> +<br> +<div class="ui center aligned segment"> + <div class="extra content"> + <a class="fluid ui large positive animated button" tabindex="0" + href="{% url 'programme_curriculum:approve_update_form' course.id %}" + type="Submit" name="Submit"> + <div class="visible content">Approve</div> + <div class="hidden content"> + <i class="edit icon"></i> + </div> + </a> + <br> + <a class="fluid ui large primary animated button" tabindex="0" + href="{% url 'programme_curriculum:reject_update_form' course.id %}" + type="Submit" name="Submit"> + <div class="visible content">Reject</div> + <div class="hidden content"> + <i class="add icon"></i> + </div> + </a> + </div> +</div> +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/faculty/faculty_view_a_course.html b/FusionIIIT/templates/programme_curriculum/faculty/faculty_view_a_course.html new file mode 100644 index 000000000..cc0f295aa --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/faculty_view_a_course.html @@ -0,0 +1,166 @@ +{% extends 'programme_curriculum/common.html' %} +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:faculty_view_all_courses' %}"> Update Courses Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} +{% block content %} +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; height: 680px"> + <table class="ui large celled definition medium table"> + <thead> + <tr style="font-size: medium; + background-color: aliceblue;"> + <td colspan="3"><h2>{{ course.code }} - {{ course.name }}</h2> + </td> + </tr> + {% if course.disciplines.all %} + <tr style="font-size: medium; + background-color: aliceblue;"> + <td colspan="3">Discipline + {% for discipline in course.disciplines.all %} + <h3>{{ discipline }}</h3> + {% endfor %} + + </td> + </tr> + {% endif %} + </thead> + <tbody> + <tr class="collapsing"> + <td class="collapsing" colspan="2"><B>Course Code</B></td> + <td>{{ course.code }}</td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>Course Name</B></td> + <td>{{ course.name }}</td> + </tr> + <tr> + <td rowspan="6" class="collapsing"><B>Contact hours</B></td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Lecture</td> + <td colspan="1">{{ course.lecture_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Tutorial</td> + <td colspan="1">{{ course.tutorial_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Lab</td> + <td colspan="1">{{ course.pratical_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Discussion</td> + <td colspan="1">{{ course.discussion_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Project</td> + <td colspan="1">{{ course.project_hours }}hrs</td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>Credits</B></td> + <td>{{ course.credit }}</td> + </tr> + <tr> + <td rowspan="3" class="collapsing"><B>Pre-requisits</B></td> + </tr> + <tr> + <td class="left aligned collapsing">Info</td> + <td colspan="1">{{ course.pre_requisits|linebreaks }}</td> + </tr> + <tr> + <td class="left aligned collapsing">Courses</td> + <td colspan="1"> + <p> + {% for p_course in course.pre_requisit_courses.all %} + <a href="{% url 'programme_curriculum:faculty_view_a_course' p_course.id %}">{{ p_course }}</a>,<br> + {% endfor %} + </p> + </td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>Syllabus</B></td> + <td>{{ course.syllabus|linebreaks }}</td> + </tr> + <tr> + <td rowspan="8" class="collapsing"><B>Evaluation Schema</B></td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Quiz 1</td> + <td colspan="1">{{ course.percent_quiz_1 }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Mid-Sem Exam</td> + <td colspan="1">{{ course.percent_midsem }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Quiz 2</td> + <td colspan="1">{{ course.percent_quiz_2 }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">End-Sem Exam</td> + <td colspan="1">{{ course.percent_endsem }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Project</td> + <td colspan="1">{{ course.percent_project }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Lab Evaluation</td> + <td colspan="1">{{ course.percent_lab_evaluation }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Course Attendance</td> + <td colspan="1">{{ course.percent_course_attendance }} %</td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>References & Books</B></td> + <td>{{ course.ref_books|linebreaks }}</td> + </tr> + </tbody> + </table> + </div> + </div> +</div> +{% endblock %} +{% block rightcontent %} +<br> +<br> +<div class="ui center aligned segment"> + <div class="extra content"> + <a class="fluid ui large positive animated button" tabindex="0" + href="{% url 'programme_curriculum:update_course_proposal_form' course.id %}" + type="Submit" name="Submit"> + <div class="visible content">EDIT COURSE</div> + <div class="hidden content"> + <i class="edit icon"></i> + </div> + </a> + <br> + </div> +</div> +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/faculty/faculty_view_all_courses.html b/FusionIIIT/templates/programme_curriculum/faculty/faculty_view_all_courses.html new file mode 100644 index 000000000..e82f0ca7f --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/faculty_view_all_courses.html @@ -0,0 +1,88 @@ +{% extends 'programme_curriculum/common.html' %} +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} +<div class="ui top attached tabular large menu"> + <a class="item active" data-tab="afirst">Courses</a> +</div> +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 495px"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td><h4>index</h4></td> + <td><h4>Course Code</h4></td> + <td><h4>Course Name</h4></td> + <td><h4>Credits</h4></td> + <td></td> + </tr> + </thead> + <tbody> + {% for course in courses %} + <tr> + <td>{{ forloop.counter }}</td> + <td><a href="{% url 'programme_curriculum:faculty_view_a_course' course.id %}">{{ course.code }}</a></td> + <td>{{ course.name }}</td> + <td>{{ course.credit }}</td> + <td class="collapsing"><a class="tiny ui positive animated button" tabindex="0" + href="{% url 'programme_curriculum:faculty_view_a_course' course.id%}" + type="Submit" name="Submit"> + <div class="visible content">EDIT</div> + <div class="hidden content"> + <i class="edit icon"></i> + </div> + </a> + </td> + </tr> + {% empty %} + <tr><td colspan="3">No Courses Avaliable</td><tr> + {% endfor %} + </tbody> + </table> + </div> + </div> +</div> +{% endblock %} +{% block rightcontent %} +<br> +<br> +<div class="ui center aligned segment"> + <div class="ui horizontal divider">FILTER SEARCH</div> + <form class="ui small form" method="get"> + {{ coursefilter.form }} + <br> + <button class="ui tiny basic primary button" type="Submit" name="Submit"> + <i class="search icon"></i> + Search + </button> + </form> + </div> +</div> +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/faculty/head_view_a_course_proposal.html b/FusionIIIT/templates/programme_curriculum/faculty/head_view_a_course_proposal.html new file mode 100644 index 000000000..b1c8c8018 --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/head_view_a_course_proposal.html @@ -0,0 +1,180 @@ + +{% extends 'programme_curriculum/common.html' %} +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">View Proposal Form + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:faculty_view_all_courses' %}">Edit Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} +{% block content %} +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; height: 680px"> + <table class="ui large celled definition medium table"> + <thead> + <tr style="font-size: medium; + background-color: aliceblue;"> + <td colspan="3"><h2><center>Course Proposal Form By</h2> <h3><center>{{ proposal.faculty_name }}({{ proposal.faculty_code }})</center></h3> + </td> + </tr> + <tr style="font-size: medium; + background-color: aliceblue;"> + <td colspan="3"><h2>{{ proposal.code }} - {{ proposal.name }}</h2> + </td> + </tr> + {% if course.disciplines.all %} + <tr style="font-size: medium; + background-color: aliceblue;"> + <td colspan="3">Discipline + {% for discipline in proposal.disciplines.all %} + <h3>{{ discipline }}</h3> + {% endfor %} + + </td> + </tr> + {% endif %} + </thead> + <tbody> + <tr class="collapsing"> + <td class="collapsing" colspan="2"><B>Course Code</B></td> + <td>{{ proposal.code }}</td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>Course Name</B></td> + <td>{{ proposal.name }}</td> + </tr> + <tr> + <td rowspan="6" class="collapsing"><B>Contact hours</B></td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Lecture</td> + <td colspan="1">{{ proposal.lecture_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Tutorial</td> + <td colspan="1">{{ proposal.tutorial_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Lab</td> + <td colspan="1">{{ proposal.pratical_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Discussion</td> + <td colspan="1">{{ proposal.discussion_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Project</td> + <td colspan="1">{{ proposal.project_hours }}hrs</td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>Credits</B></td> + <td>{{ proposal.credit }}</td> + </tr> + <tr> + <td rowspan="3" class="collapsing"><B>Pre-requisits</B></td> + </tr> + <tr> + <td class="left aligned collapsing">Info</td> + <td colspan="1">{{ proposal.pre_requisits|linebreaks }}</td> + </tr> + <tr> + <td class="left aligned collapsing">Courses</td> + <td colspan="1"> + <p> + {% for p_proposal in proposal.pre_requisit_courses.all %} + <a href="{% url 'programme_curriculum:faculty_view_a_course' p_proposal.id %}">{{ p_proposal }}</a>,<br> + {% endfor %} + </p> + </td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>Syllabus</B></td> + <td>{{ proposal.syllabus|linebreaks }}</td> + </tr> + <tr> + <td rowspan="8" class="collapsing"><B>Evaluation Schema</B></td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Quiz 1</td> + <td colspan="1">{{ proposal.percent_quiz_1 }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Mid-Sem Exam</td> + <td colspan="1">{{ proposal.percent_midsem }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Quiz 2</td> + <td colspan="1">{{ proposal.percent_quiz_2 }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">End-Sem Exam</td> + <td colspan="1">{{ proposal.percent_endsem }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Project</td> + <td colspan="1">{{ proposal.percent_project }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Lab Evaluation</td> + <td colspan="1">{{ proposal.percent_lab_evaluation }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Course Attendance</td> + <td colspan="1">{{ proposal.percent_course_attendance }} %</td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>References & Books</B></td> + <td>{{ proposal.ref_books|linebreaks }}</td> + </tr> + </tbody> + </table> + </div> + </div> +</div> +{% endblock %} +{% block rightcontent %} +<br> +<br> +<div class="ui center aligned segment"> + <div class="extra content"> + <a class="fluid ui large positive animated button" tabindex="0" + href="{% url 'programme_curriculum:forward_form' proposal.id %}" + type="Submit" name="Submit"> + <div class="visible content">FORWARD</div> + <div class="hidden content"> + <i class="edit icon"></i> + </div> + </a> + <br> + <a class="fluid ui large primary animated button" tabindex="0" + href="{% url 'programme_curriculum:reject_form' proposal.id %}" + type="Submit" name="Submit"> + <div class="visible content">REJECT</div> + <div class="hidden content"> + <i class="add icon"></i> + </div> + </a> + </div> +</div> +{% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/faculty/head_view_course_proposal_forms.html b/FusionIIIT/templates/programme_curriculum/faculty/head_view_course_proposal_forms.html new file mode 100644 index 000000000..24863ff3a --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/head_view_course_proposal_forms.html @@ -0,0 +1,162 @@ +{% extends 'programme_curriculum/common.html' %} +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} +<div class="ui top attached tabular large menu"> + <a class="item active" data-tab="afirst">Course Proposal Forms</a> +</div> +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 495px"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td><h4>Faculty Name</h4></td> + <td><h4>Faculty Name</h4></td> + <td><h4>Course Name</h4></td> + <td><h4>Course Code</h4></td> + <td><h4>Status</h4></td> + </tr> + </thead> + <tbody> + {% for courseProposal in courseProposals %} + + <tr> + <td>{{ courseProposal.faculty_name }}</td> + <td>{{ courseProposal.faculty_code }}</td> + <td>{{ courseProposal.name }}</td> + <td>{{ courseProposal.code }}</td> + <td class="collapsing"> + {% if courseProposal.status == 0 %} + <a class="tiny ui positive animated button" tabindex="0" href="{% url 'programme_curriculum:head_view_a_course_proposal' courseProposal.id %}" + type="Submit" name="Submit"> + <div class="visible content">edit</div> + <div class="hidden content"> + <i class="edit icon"></i> + </div> + </a> + {% endif %} + {% if courseProposal.status == 1 %} + <B>Forwarded to Dean</B> + {% endif %} + {% if courseProposal.status == 2 %} + <B>Rejected</B> + {% endif %} + {% if courseProposal.status == 3 %} + <B>Approved by Dean</B> + {% endif %} + {% if courseProposal.status == 4 %} + <B>Rejected by Dean</B> + {% endif %} + {% if courseProposal.status == 6%} + <B>Course Added!</B> + {% endif %} + + + </td> + </tr> + + {% empty %} + <tr><td colspan="3">No Courses Avaliable</td><tr> + {% endfor %} + + </tbody> + </table> + </div> + </div> +</div> +<div class="ui top attached tabular large menu"> + <a class="item active" data-tab="afirst">Course Proposal Forms</a> +</div> +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 495px"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td><h4>Faculty Name</h4></td> + <td><h4>Faculty Name</h4></td> + <td><h4>Course Name</h4></td> + <td><h4>Course Code</h4></td> + <td><h4>Status</h4></td> + </tr> + </thead> + <tbody> + {% for updateProposal in updateProposals %} + + <tr> + <td>{{ updateProposal.faculty_name }}</td> + <td>{{ updateProposal.faculty_code }}</td> + <td>{{ updateProposal.name }}</td> + <td>{{ updateProposal.code }}</td> + <td class="collapsing"> + {% if updateProposal.status == 0 %} + <a class="tiny ui positive animated button" tabindex="0" href="{% url 'programme_curriculum:head_view_a_update_course_proposal' updateProposal.id %}" + type="Submit" name="Submit"> + <div class="visible content">edit</div> + <div class="hidden content"> + <i class="edit icon"></i> + </div> + </a> + {% endif %} + {% if updateProposal.status == 1 %} + <B>Forwarded to Dean</B> + {% endif %} + {% if updateProposal.status == 2 %} + <B>Rejected</B> + {% endif %} + {% if updateProposal.status == 3 %} + <B>Approved by Dean</B> + {% endif %} + {% if updateProposal.status == 4 %} + <B>Rejected by Dean</B> + {% endif %} + {% if updateProposal.status == 6%} + <B>Course Added!</B> + {% endif %} + + + </td> + </tr> + + {% empty %} + <tr><td colspan="3">No Courses Avaliable</td><tr> + {% endfor %} + + </tbody> + </table> + </div> + </div> +</div> + +{% endblock %} + diff --git a/FusionIIIT/templates/programme_curriculum/faculty/head_view_update_a_course_proposal.html b/FusionIIIT/templates/programme_curriculum/faculty/head_view_update_a_course_proposal.html new file mode 100644 index 000000000..1bfb07e83 --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/head_view_update_a_course_proposal.html @@ -0,0 +1,180 @@ + +{% extends 'programme_curriculum/common.html' %} +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">View Proposal Form + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:faculty_view_all_courses' %}">Edit Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} +{% block content %} +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; height: 680px"> + <table class="ui large celled definition medium table"> + <thead> + <tr style="font-size: medium; + background-color: aliceblue;"> + <td colspan="3"><h2><center>Course Proposal Form By</h2> <h3><center>{{ proposal.faculty_name }}({{ proposal.faculty_code }})</center></h3> + </td> + </tr> + <tr style="font-size: medium; + background-color: aliceblue;"> + <td colspan="3"><h2>{{ proposal.code }} - {{ proposal.name }}</h2> + </td> + </tr> + {% if course.disciplines.all %} + <tr style="font-size: medium; + background-color: aliceblue;"> + <td colspan="3">Discipline + {% for discipline in proposal.disciplines.all %} + <h3>{{ discipline }}</h3> + {% endfor %} + + </td> + </tr> + {% endif %} + </thead> + <tbody> + <tr class="collapsing"> + <td class="collapsing" colspan="2"><B>Course Code</B></td> + <td>{{ proposal.code }}</td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>Course Name</B></td> + <td>{{ proposal.name }}</td> + </tr> + <tr> + <td rowspan="6" class="collapsing"><B>Contact hours</B></td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Lecture</td> + <td colspan="1">{{ proposal.lecture_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Tutorial</td> + <td colspan="1">{{ proposal.tutorial_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Lab</td> + <td colspan="1">{{ proposal.pratical_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Discussion</td> + <td colspan="1">{{ proposal.discussion_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Project</td> + <td colspan="1">{{ proposal.project_hours }}hrs</td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>Credits</B></td> + <td>{{ proposal.credit }}</td> + </tr> + <tr> + <td rowspan="3" class="collapsing"><B>Pre-requisits</B></td> + </tr> + <tr> + <td class="left aligned collapsing">Info</td> + <td colspan="1">{{ proposal.pre_requisits|linebreaks }}</td> + </tr> + <tr> + <td class="left aligned collapsing">Courses</td> + <td colspan="1"> + <p> + {% for p_proposal in proposal.pre_requisit_courses.all %} + <a href="{% url 'programme_curriculum:faculty_view_a_course' p_proposal.id %}">{{ p_proposal }}</a>,<br> + {% endfor %} + </p> + </td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>Syllabus</B></td> + <td>{{ proposal.syllabus|linebreaks }}</td> + </tr> + <tr> + <td rowspan="8" class="collapsing"><B>Evaluation Schema</B></td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Quiz 1</td> + <td colspan="1">{{ proposal.percent_quiz_1 }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Mid-Sem Exam</td> + <td colspan="1">{{ proposal.percent_midsem }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Quiz 2</td> + <td colspan="1">{{ proposal.percent_quiz_2 }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">End-Sem Exam</td> + <td colspan="1">{{ proposal.percent_endsem }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Project</td> + <td colspan="1">{{ proposal.percent_project }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Lab Evaluation</td> + <td colspan="1">{{ proposal.percent_lab_evaluation }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Course Attendance</td> + <td colspan="1">{{ proposal.percent_course_attendance }} %</td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>References & Books</B></td> + <td>{{ proposal.ref_books|linebreaks }}</td> + </tr> + </tbody> + </table> + </div> + </div> +</div> +{% endblock %} +{% block rightcontent %} +<br> +<br> +<div class="ui center aligned segment"> + <div class="extra content"> + <a class="fluid ui large positive animated button" tabindex="0" + href="{% url 'programme_curriculum:forward_update_form' proposal.id %}" + type="Submit" name="Submit"> + <div class="visible content">FORWARD</div> + <div class="hidden content"> + <i class="edit icon"></i> + </div> + </a> + <br> + <a class="fluid ui large primary animated button" tabindex="0" + href="{% url 'programme_curriculum:reject_update_form' proposal.id %}" + type="Submit" name="Submit"> + <div class="visible content">REJECT</div> + <div class="hidden content"> + <i class="add icon"></i> + </div> + </a> + </div> +</div> +{% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/faculty/update_course_proposal_form.html b/FusionIIIT/templates/programme_curriculum/faculty/update_course_proposal_form.html new file mode 100644 index 000000000..b89075517 --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/update_course_proposal_form.html @@ -0,0 +1,249 @@ +{% extends 'programme_curriculum/common.html' %} +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:faculty_view_all_courses' %}"> Update Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} +<div class="ui segment" > + <div class="header"><h1>Course Update Proposal Form</h1></div> + <div class="ui divider"></div> + <form class="ui large form error" method="POST"> + + {% csrf_token %} + {% if form.non_field_errors %} + <div class="ui message"> + <div class="header">We had some issues</div> + {% for error in form.non_field_errors %} + <ul class="list"> + <li>{{ error }}</li> + </ul> + {% endfor %} + </div> + {% endif %} + <div class="field"> + {% if form.name.errors or form.code.errors or form.credit.errors %} + <div class="ui error message"> + <p>{{ form.name.errors }}</p> + <p>{{ form.code.errors }}</p> + <p>{{ form.credit.errors }}</p> + </div> + {% endif %} + </div> + <div class="field"> + <label for="{{ form.faculty_name.id_for_label }}">Faculty Name:</label> + {{ faculty_details.faculty_name }} + </div> + <div class="field"> + <label for="{{ form.faculty_code.id_for_label }}">Faculty Code:</label> + {{ faculty_details.faculty_code }} + </div> + <div class="field"> + <label for="{{ form.name.id_for_label }}">Name:</label> + {{ form.name }} + </div> + <div class="fields"> + <div class="eight wide field"> + <label for="{{ form.code.id_for_label }}">Code:</label> + {{ form.code }} + </div> + <div class="eight wide field"> + <label for="{{ form.credit.id_for_label }}">Credit:</label> + {{ form.credit }} + </div> + </div> + <div class="field"> + {% if form.lecture_hours.errors or form.tutorial_hours.errors or form.pratical_hours.errors or form.discussion_hours.errors or form.project_hours.errors %} + <div class="ui error message"> + <p>{{ form.lecture_hours.errors }}</p> + <p>{{ form.tutorial_hours.errors }}</p> + <p>{{ form.pratical_hours.errors }}</p> + <p>{{ form.discussion_hours.errors }}</p> + <p>{{ form.project_hours.errors }}</p> + </div> + {% endif %} + </div> + <div class="fields"> + <div class="six wide field"> + <label for="{{ form.lecture_hours.id_for_label }}">Lecture Hours (L):</label> + {{ form.lecture_hours }} + </div> + <div class="five wide field"> + <label for="{{ form.tutorial_hours.id_for_label }}">Tutorial Hours (T):</label> + {{ form.tutorial_hours }} + </div> + <div class="five wide field"> + <label for="{{ form.pratical_hours.id_for_label }}">Pratical Hours (P):</label> + {{ form.pratical_hours }} + </div> + </div> + <div class="fields"> + <div class="eight wide field"> + <label for="{{ form.discussion_hours.id_for_label }}">Group Discussion Hours (GD):</label> + {{ form.discussion_hours }} + </div> + <div class="eight wide field"> + <label for="{{ form.project_hours.id_for_label }}">Project Hours (PR):</label> + {{ form.project_hours }} + </div> + </div> + <div class="inline field"> + {% if form.working_course.errors %} + <div class="ui error message"> + {{ form.working_course.errors }} + </div> + {% endif %} + <label for="{{ form.working_course.id_for_label }}">Working Course:</label> + {{ form.working_course }} + </div> + <div class="field"> + {% if form.disciplines.errors %} + <div class="ui error message"> + {{ form.disciplines.errors }} + </div> + {% endif %} + <label for="{{ form.disciplines.id_for_label }}">From Discipline(s):</label> + {{ form.disciplines }} + </div> + <div class="field"> + {% if form.pre_requisits.errors %} + <div class="ui error message"> + {{ form.pre_requisits.errors }} + </div> + {% endif %} + <label for="{{ form.pre_requisits.id_for_label }}">Pre-requisits:</label> + {{ form.pre_requisits }} + </div> + <div class="field"> + {% if form.pre_requisit_courses.errors %} + <div class="ui error message"> + {{ form.pre_requisit_courses.errors }} + </div> + {% endif %} + <label for="{{ form.pre_requisit_courses.id_for_label }}">Pre-requisits Courses:</label> + {{ form.pre_requisit_courses }} + </div> + <div class="field"> + {% if form.syllabus.errors %} + <div class="ui error message"> + {{ form.syllabus.errors }} + </div> + {% endif %} + <label for="{{ form.syllabus.id_for_label }}">Syllabus:</label> + {{ form.syllabus }} + </div> + <div class="field"> + {% if form.ref_books.errors %} + <div class="ui error message"> + {{ form.ref_books.errors }} + </div> + {% endif %} + <label for="{{ form.ref_books.id_for_label }}">References & Books:</label> + {{ form.ref_books }} + </div> + <div class="field"> + {% if form.status.errors %} + <div class="ui error message"> + {{ form.status.errors }} + </div> + {% endif %} + <label for="{{ form.status.id_for_label }}">Status</label> + {{ form.status }} + </div> + <div class="field"> + {% if form.percent_quiz_1.errors %} + <div class="ui error message"> + <p>{{ form.percent_quiz_1.errors }}</p> + </div> + {% endif %} + </div> + <div class="fields"> + <div class="two wide field"> + <label for="{{ form.percent_quiz_1.id_for_label }}">Quiz 1 %:</label> + {{ form.percent_quiz_1 }} + </div> + <div class="six wide field"> + + <label for="{{ form.percent_midsem.id_for_label }}">Midsem %:</label> + {{ form.percent_midsem }} + </div> + <div class="two wide field"> + + <label for="{{ form.percent_quiz_2.id_for_label }}">Quiz 2 %:</label> + {{ form.percent_quiz_2 }} + </div> + <div class="six wide field"> + + <label for="{{ form.percent_endsem.id_for_label }}">Endsem %:</label> + {{ form.percent_endsem }} + </div> + </div> + <div class="fields"> + <div class="seven wide field"> + + <label for="{{ form.percent_project.id_for_label }}">Project %:</label> + {{ form.percent_project }} + </div> + <div class="six wide field"> + + <label for="{{ form.percent_lab_evaluation.id_for_label }}">Lab Evaluations %:</label> + {{ form.percent_lab_evaluation }} + </div> + <div class="three wide field"> + + <label for="{{ form.percent_course_attendance.id_for_label }}">Attendance %:</label> + {{ form.percent_course_attendance }} + </div> + </div> + + <td></td> + <td> + <div class="ui large right floated buttons"> + <a class="ui button" href="{% url 'programme_curriculum:faculty_view_all_courses' %}">Cancel</a> + <div class="or"></div> + <input class="ui primary button" type="Submit" name="Submit"> + </div> + </td> + </form> +</div> +<div class="ui hidden divider"></div> + <script> + $(window).load(function() { + $('form').get(0).reset(); //clear form data on page load + }); + $('.ui.checkbox') + .checkbox() + ; + $('select.dropdown') + .dropdown() + ; + </script> + +{% endblock %} +{% block rightcontent %} +<br> +<br> +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/faculty/view_a_course.html b/FusionIIIT/templates/programme_curriculum/faculty/view_a_course.html new file mode 100644 index 000000000..21b9b6bc8 --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/view_a_course.html @@ -0,0 +1,148 @@ +{% extends 'programme_curriculum/common.html' %} + +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; height: 680px"> + <table class="ui large celled definition medium table"> + <thead> + <tr style="font-size: medium; + background-color: aliceblue;"> + <td colspan="3"><h2>{{ course.code }} - {{ course.name }}</h2> + </td> + </tr> + {% if course.disciplines.all %} + <tr style="font-size: medium; + background-color: aliceblue;"> + <td colspan="3">Discipline + {% for discipline in course.disciplines.all %} + <h3>{{ discipline }}</h3> + {% endfor %} + + </td> + </tr> + {% endif %} + </thead> + <tbody> + <tr class="collapsing"> + <td class="collapsing" colspan="2"><B>Course Code</B></td> + <td>{{ course.code }}</td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>Course Name</B></td> + <td>{{ course.name }}</td> + </tr> + <tr> + <td rowspan="6" class="collapsing"><B>Contact hours</B></td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Lecture</td> + <td colspan="1">{{ course.lecture_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Tutorial</td> + <td colspan="1">{{ course.tutorial_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Lab</td> + <td colspan="1">{{ course.pratical_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Discussion</td> + <td colspan="1">{{ course.discussion_hours }}hrs</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Project</td> + <td colspan="1">{{ course.project_hours }}hrs</td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>Credits</B></td> + <td>{{ course.credit }}</td> + </tr> + <tr> + <td rowspan="3" class="collapsing"><B>Pre-requisits</B></td> + </tr> + <tr> + <td class="left aligned collapsing">Info</td> + <td colspan="1">{{ course.pre_requisits|linebreaks }}</td> + </tr> + <tr> + <td class="left aligned collapsing">Courses</td> + <td colspan="1"> + <p> + {% for p_course in course.pre_requisit_courses.all %} + <a href="{% url 'programme_curriculum:view_a_course' p_course.id %}">{{ p_course }}</a>,<br> + {% endfor %} + </p> + </td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>Syllabus</B></td> + <td>{{ course.syllabus|linebreaks }}</td> + </tr> + <tr> + <td rowspan="8" class="collapsing"><B>Evaluation Schema</B></td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Quiz 1</td> + <td colspan="1">{{ course.percent_quiz_1 }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Mid-Sem Exam</td> + <td colspan="1">{{ course.percent_midsem }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Quiz 2</td> + <td colspan="1">{{ course.percent_quiz_2 }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">End-Sem Exam</td> + <td colspan="1">{{ course.percent_endsem }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Project</td> + <td colspan="1">{{ course.percent_project }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Lab Evaluation</td> + <td colspan="1">{{ course.percent_lab_evaluation }} %</td> + </tr> + <tr> + <td colspan="1" class="left aligned collapsing">Course Attendance</td> + <td colspan="1">{{ course.percent_course_attendance }} %</td> + </tr> + <tr> + <td colspan="2" class="collapsing"><B>References & Books</B></td> + <td>{{ course.ref_books|linebreaks }}</td> + </tr> + </tbody> + </table> + </div> + </div> +</div> +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/faculty/view_a_courseslot.html b/FusionIIIT/templates/programme_curriculum/faculty/view_a_courseslot.html new file mode 100644 index 000000000..2e73c2014 --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/view_a_courseslot.html @@ -0,0 +1,105 @@ +{% extends 'programme_curriculum/common.html' %} + +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} +<div class="ui top attached tabular large menu"> + <a class="item active" data-tab="afirst">{{ course_slot.name }}</a> +</div> + +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 480px"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto; + background-color: whitesmoke;"> + <tbody> + <tr> + <td colspan="4"><h2>Course Slot: {{ course_slot.name }}</h2></td> + </tr> + <tr> + <td colspan="4"><h3>Semester: {{ course_slot.semester }}</h3></td> + </tr> + <tr> + <td colspan="4"><h4>Type : {{ course_slot.type }}</h4></td> + </tr> + <tr style="background-color: white;"> + <td>Info</td> + <td colspan="3">{{ course_slot.course_slot_info|linebreaks }}</td> + </tr> + <tr style="background-color: white;"> + <td>Duration</td> + <td colspan="3">{{ course_slot.duration }} Semesters</td> + </tr> + <tr style="background-color: white;"> + <td>Min Registration Limit</td> + <td>{{ course_slot.min_registration_limit }}</td> + <td>Max Registration Limit</td> + <td>{{ course_slot.max_registration_limit }}</td> + </tr> + </tbody> + </table> + {% if course_slot.courses.all %} + <br> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td><h4>Course Code</h4></td> + <td><h4>Course Name</h4></td> + <td><h4>Credits</h4></td> + </tr> + </thead> + <tbody> + {% for course in course_slot.courses.all %} + <tr> + <td><a href="{% url 'programme_curriculum:view_a_course' course.id %}">{{ course.code }}</a></td> + <td>{{ course.name }}</td> + <td>{{ course.credit }}</td> + </tr> + {% empty %} + <tr><td colspan="3">{{ course_slot.course_slot_info }}</td><tr> + {% endfor %} + </tbody> + </table> + {% else %} + <br> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <tr> + <td colspan="4">No Courses Instigated</td> + </tr> + </table> + {% endif %} + + </div> + </div> +</div> +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/faculty/view_a_semester_of_a_curriculum.html b/FusionIIIT/templates/programme_curriculum/faculty/view_a_semester_of_a_curriculum.html new file mode 100644 index 000000000..5ab2fe11b --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/view_a_semester_of_a_curriculum.html @@ -0,0 +1,129 @@ +{% extends 'programme_curriculum/common.html' %} + +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} +<div class="ui top attached tabular large menu"> + <a class="item active" data-tab="afirst">Semester {{ semester.semester_no }} Info</a> + <a class="item" data-tab="asecond">Semester {{ semester.semester_no }} Course Slots</a> +</div> + + +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; height: auto;"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="background-color: whitesmoke;"> + <td colspan="4"><h2 class="ui header">Curriculum : {{ semester.curriculum }}</h2></td> + </tr> + <tr style="background-color: whitesmoke;"> + <td colspan="4"><h2 class="ui header">Semester : {{ semester.semester_no }}</h2></td> + </tr> + </thead> + <tbody> + <tr> + <td>Instigate Semester</td> + {% if semester.instigate_semester == True %} + <td class="positive"> + <i class="icon checkmark"></i>Yes + </td> + {% else %} + <td class="warning"> + <i class="attention icon"></i>Not Yet + </td> + {% endif %} + </tr> + <tr> + <td>Start Semester Date</td> + <td>{{ semester.start_semester }}</td> + </tr> + <tr> + <td>End Semester Date</td> + <td>{{ semester.end_semester }}</td> + </tr> + <tr> + <td>Semester Information</td> + <td>{{ semester.semester_info|linebreaks }}</td> + </tr> + </tbody> + </table> + </div> + </div> +</div> + + + +<div class="ui bottom attached tab segment" data-tab="asecond"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 600px;"> + {% for slot in course_slots %} + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="background-color: whitesmoke;"> + <td colspan="4"><h2 class="header">{{ slot.name }}</h2></td> + </tr> + <tr style="background-color: whitesmoke;"> + <td colspan="4"><h3 class="header">Type : {{ slot.type }}</h3></td> + </tr> + </thead> + {% if slot.courses.all %} + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td><h4>Course Code</h4></td> + <td><h4>Course Name</h4></td> + <td><h4>Credits</h4></td> + </tr> + </thead> + <tbody> + {% for course in slot.courses.all %} + <tr> + <td><a href="{% url 'programme_curriculum:view_a_course' course.id %}">{{ course.code }}</a></td> + <td>{{ course.name }}</td> + <td>{{ course.credit }}</td> + </tr> + {% empty %} + <tr><td colspan="3">No Courses Avaliable for this slot</td><tr> + {% endfor %} + </tbody> + {% else %} + <tr><td colspan="3"><I>EMPTY SLOT</I></td><tr> + {% endif %} + </table> + <div class="ui section divider"></div> + {% empty %} + <p>No Courses Avaliable for this slot</p> + {% endfor %} + </div> + </div> +</div> + +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/faculty/view_all_batches.html b/FusionIIIT/templates/programme_curriculum/faculty/view_all_batches.html new file mode 100644 index 000000000..277cd9b80 --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/view_all_batches.html @@ -0,0 +1,120 @@ +{% extends 'programme_curriculum/common.html' %} + +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="active item" href="{% url 'programme_curriculum:view_all_batches' %}"><B>Batches</B> + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} +<div class="ui top attached tabular large menu"> + <a class="item active" data-tab="afirst">Batches</a> + <a class="item" data-tab="asecond">Finished Batches</a> +</div> +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 480px"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td><h4>Name</h4></td> + <td><h4>Discipline</h4></td> + <td><h4>Year</h4></td> + <td><h4>Curriculum</h4></td> + </tr> + </thead> + <tbody> + {% for batch in batches %} + <tr> + <td>{{ batch.name }}</td> + <td>{{ batch.discipline }}</td> + <td>{{ batch.year }}</td> + {% if batch.curriculum != None %} + <td><a href="{% url 'programme_curriculum:view_semesters_of_a_curriculum' batch.curriculum.id %}">{{ batch.curriculum }}</a></td> + {% else %} + <td></td> + {% endif %} + + </tr> + {% empty %} + <tr><td colspan="3">No Batch Avaliable</td><tr> + {% endfor %} + </tbody> + </table> + </div> + </div> +</div> + +<div class="ui bottom attached tab segment" data-tab="asecond"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 480px"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td><h4>Name</h4></td> + <td><h4>Discipline</h4></td> + <td><h4>Year</h4></td> + <td><h4>Curriculum</h4></td> + </tr> + </thead> + <tbody> + {% for batch in finished_batches %} + <tr> + <td>{{ batch.name }}</td> + <td>{{ batch.discipline }}</td> + <td>{{ batch.year }}</td> + {% if batch.curriculum != None %} + <td><a href="{% url 'programme_curriculum:view_semesters_of_a_curriculum' batch.curriculum.id %}">{{ batch.curriculum }}</a></td> + {% else %} + <td></td> + {% endif %} + </tr> + {% empty %} + <tr><td colspan="3">No Batch Avaliable</td><tr> + {% endfor %} + </tbody> + </table> + </div> + </div> +</div> +{% endblock %} +{% block rightcontent %} +<br> +<br> +<div class="ui center aligned segment"> + <div class="ui horizontal divider">FILTER SEARCH</div> + <form class="ui small form" method="get"> + {{ batchfilter.form }} + <br> + <button class="ui tiny basic primary button" type="Submit" name="Submit"> + <i class="search icon"></i> + Search + </button> + </form> +</div> +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/faculty/view_all_courses.html b/FusionIIIT/templates/programme_curriculum/faculty/view_all_courses.html new file mode 100644 index 000000000..db7b0b810 --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/view_all_courses.html @@ -0,0 +1,76 @@ +{% extends 'programme_curriculum/common.html' %} + +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="active item" href="{% url 'programme_curriculum:view_all_courses' %}"><B>Courses</B> + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} +<div class="ui top attached tabular large menu"> + <a class="item active" data-tab="afirst">Courses</a> +</div> +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 495px"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td><h4>Course Code</h4></td> + <td><h4>Course Name</h4></td> + <td><h4>Credits</h4></td> + </tr> + </thead> + <tbody> + {% for course in courses %} + <tr> + <td><a href="{% url 'programme_curriculum:view_a_course' course.id %}">{{ course.code }}</a></td> + <td>{{ course.name }}</td> + <td>{{ course.credit }}</td> + </tr> + {% empty %} + <tr><td colspan="3">No Courses Avaliable</td><tr> + {% endfor %} + </tbody> + </table> + </div> + </div> +</div> +{% endblock %} +{% block rightcontent %} +<br> +<br> +<div class="ui center aligned segment"> + <div class="ui horizontal divider">FILTER SEARCH</div> + <form class="ui small form" method="get"> + {{ coursefilter.form }} + <br> + <button class="ui tiny basic primary button" type="Submit" name="Submit"> + <i class="search icon"></i> + Search + </button> + </form> +</div> +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/faculty/view_all_disciplines.html b/FusionIIIT/templates/programme_curriculum/faculty/view_all_disciplines.html new file mode 100644 index 000000000..61b583c91 --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/view_all_disciplines.html @@ -0,0 +1,61 @@ +{% extends 'programme_curriculum/common.html' %} + +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="active item" href="{% url 'programme_curriculum:view_all_discplines' %}"><B>Disciplines</B> + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} +<div class="ui top attached tabular large menu"> + <a class="item active" data-tab="afirst">Disciplines</a> +</div> +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 480px"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td><h4>Discipline Name</h4></td> + <td colspan="2"><h4>Programmes</h4></td> + </tr> + </thead> + <tbody> + {% for discipline in disciplines %} + <tr> + <td>{{ discipline.name }}</td> + <td colspan="2"> + {% for programme in discipline.programmes.all %} + <a href="{% url 'programme_curriculum:view_curriculums_of_a_programme' programme.id %}"><p>{{ programme.name }}</p></a> + {% endfor %} + </td> + </tr> + {% endfor %} + </tbody> + </table> + </div> + </div> +</div> +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/faculty/view_all_programmes.html b/FusionIIIT/templates/programme_curriculum/faculty/view_all_programmes.html new file mode 100644 index 000000000..c4c66fb17 --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/view_all_programmes.html @@ -0,0 +1,140 @@ +{% extends 'programme_curriculum/common.html' %} + +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="active item" href="{% url 'programme_curriculum:view_all_programmes' %}"><B>Programmes</B> + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} + + +<div class="ui top attached tabular large menu"> + <a class="item active" data-tab="afirst">UG: Under Graduate</a> + <a class="item" data-tab="asecond">PG: Post Graduate</a> + <a class="item" data-tab="athrid">PHD: Doctor of Philosophy</a> +</div> + + +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 480px"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td colspan="2"><h4>Programmes</h4></td> + <td colspan="2"><h4>Discipline</h4></td> + </tr> + </thead> + <tbody> + {% for programme in ug %} + <tr> + <td colspan="2"><a href="{% url 'programme_curriculum:view_curriculums_of_a_programme' programme.id %}">{{ programme.name }}</a></td> + <td colspan="2"> + {% for discipline in programme.get_discipline_objects %} + <p>{{ discipline.name }}</p> + {% endfor %} + </td> + </tr> + {% empty %} + <tr><td colspan="5">No Programmes Avaliable</td></tr> + {% endfor %} + </tbody> + </table> + </div> + </div> +</div> + + + +<div class="ui bottom attached tab segment" data-tab="asecond"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 480px"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td colspan="2"><h4>Programmes</h4></td> + <td colspan="2"><h4>Discipline</h4></td> + </tr> + </thead> + <tbody> + {% for programme in pg %} + <tr> + <td colspan="2"><a href="{% url 'programme_curriculum:view_curriculums_of_a_programme' programme.id %}">{{ programme.name }}</a></td> + <td colspan="2"> + {% for discipline in programme.get_discipline_objects %} + <p>{{ discipline.name }}</p> + {% endfor %} + </td> + </tr> + {% empty %} + <tr><td colspan="5">No Programmes Avaliable</td></tr> + {% endfor %} + </tbody> + </table> + </div> + </div> +</div> + + + + +<div class="ui bottom attached tab segment" data-tab="athrid"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 480px"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td colspan="2"><h4>Programmes</h4></td> + <td colspan="2"><h4>Discipline</h4></td> + </tr> + </thead> + <tbody> + {% for programme in phd %} + <tr> + <td colspan="2"><a href="{% url 'programme_curriculum:view_curriculums_of_a_programme' programme.id %}">{{ programme.name }}</a></td> + <td colspan="2"> + {% for discipline in programme.get_discipline_objects %} + <p>{{ discipline.name }}</p> + {% endfor %} + </td> + + </tr> + {% empty %} + <tr><td colspan="5">No Programmes Avaliable</td></tr> + {% endfor %} + </tbody> + </table> + </div> + </div> +</div> + +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/faculty/view_all_working_curriculums.html b/FusionIIIT/templates/programme_curriculum/faculty/view_all_working_curriculums.html new file mode 100644 index 000000000..15ca0f8c0 --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/view_all_working_curriculums.html @@ -0,0 +1,83 @@ +{% extends 'programme_curriculum/common.html' %} + +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="active item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}"><B>Curriculums</B> + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} +<div class="ui top attached tabular large menu"> + <a class="item active" data-tab="afirst">Working Curriculums</a> +</div> +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 480px"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td><h4>Name</h4></td> + <td class="collapsing"><h4>Version</h4></td> + <td><h4>Batch</h4></td> + <td class="collapsing"><h4>No. of Semester</h4></td> + </tr> + </thead> + <tbody> + {% for curriculum in curriculums %} + <tr> + <td><a href="{% url 'programme_curriculum:view_semesters_of_a_curriculum' curriculum.id %}">{{ curriculum.name }}</a></td> + <td>{{ curriculum.version }}</td> + <td> + {% for batch in curriculum.batches %} + <p>{{ batch }}</p> + {% endfor %} + </td> + <td>{{ curriculum.no_of_semester }}</td> + </tr> + {% empty %} + <tr><td colspan="3">No Curriculums Avaliable</td><tr> + {% endfor %} + </tbody> + </table> + </div> + </div> +</div> +{% endblock %} +{% block rightcontent %} +<br> +<br> +<div class="ui center aligned segment"> + <div class="ui horizontal divider">FILTER SEARCH</div> + <form class="ui small form" method="get"> + {{ curriculumfilter.form }} + <div class="ui horizontal divider"></div> + <button class="ui tiny basic primary button" type="Submit" name="Submit"> + <i class="search icon"></i> + Search + </button> + </form> + +</div> +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/faculty/view_course_proposal_forms.html b/FusionIIIT/templates/programme_curriculum/faculty/view_course_proposal_forms.html new file mode 100644 index 000000000..660fb66ab --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/view_course_proposal_forms.html @@ -0,0 +1,167 @@ +{% extends 'programme_curriculum/common.html' %} +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} +<div class="ui top attached tabular large menu"> + <a class="item active" data-tab="afirst">New Course Proposal Forms</a> +</div> +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 495px"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td><h4>Faculty Name</h4></td> + <td><h4>Faculty Name</h4></td> + <td><h4>Course Name</h4></td> + <td><h4>Course Code</h4></td> + <td><h4>Status</h4></td> + </tr> + </thead> + <tbody> + {% for courseProposal in courseProposals %} + <tr> + <td>{{ courseProposal.faculty_name }}</td> + <td>{{ courseProposal.faculty_code }}</td> + <td>{{ courseProposal.name }}</td> + <td>{{ courseProposal.code }}</td> + <td> + {% if courseProposal.status == 0 %} + <B>Pending</B> + {% endif %} + {% if courseProposal.status == 1 %} + <B>Forwarded to Dean</B> + {% endif %} + {% if courseProposal.status == 2 %} + <B>Rejected by HOD</B> + {% endif %} + {% if courseProposal.status == 3 %} + <B>Approved by Dean</B> + {% endif %} + {% if courseProposal.status == 4 %} + <B>Rejected by Dean</B> + {% endif %} + {% if courseProposal.status == 6%} + <B>Course Added!</B> + {% endif %} + + </td> + </tr> + {% empty %} + <tr><td colspan="3">No Courses Proposals Submitted</td><tr> + {% endfor %} + </tbody> + </table> + </div> + </div> +</div> +<div class="ui top attached tabular large menu"> + <a class="item active" data-tab="afirst">Update Course Proposal Forms</a> +</div> +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: 495px"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td><h4>Faculty Name</h4></td> + <td><h4>Faculty Name</h4></td> + <td><h4>Course Name</h4></td> + <td><h4>Course Code</h4></td> + <td><h4>Status</h4></td> + </tr> + </thead> + <tbody> + {% for updateProposal in updateProposals %} + <tr> + <td>{{ updateProposal.faculty_name }}</td> + <td>{{ updateProposal.faculty_code }}</td> + <td>{{ updateProposal.name }}</td> + <td>{{ updateProposal.code }}</td> + <td> + {% if updateProposal.status == 0 %} + <B>Pending</B> + {% endif %} + {% if updateProposal.status == 1 %} + <B>Forwarded to Dean</B> + {% endif %} + {% if updateProposal.status == 2 %} + <B>Rejected by HOD</B> + {% endif %} + {% if updateProposal.status == 3 %} + <B>Approved by Dean</B> + {% endif %} + {% if updateProposal.status == 4 %} + <B>Rejected by Dean</B> + {% endif %} + {% if updateProposal.status == 6%} + <B>Course Added!</B> + {% endif %} + + </td> + </tr> + {% empty %} + <tr><td colspan="3">No Courses Proposals Submitted</td></tr> + {% endfor %} + </tbody> + </table> + </div> + </div> +</div> +{% endblock %} +{% block rightcontent %} +<br> +<br> +<div class="ui center aligned segment"> + <a class="fluid ui large primary animated button" tabindex="0" + href="{% url 'programme_curriculum:course_proposal_form' %}" + type="Submit" name="Submit" rel="noopener"> + <div class="visible content">ADD COURSE PROPOSAL FORM</div> + <div class="hidden content"> + <i class="add icon"></i> + </div> + </a> +</div> + +<div class="ui center aligned segment"> + <a class="fluid ui large primary animated button" tabindex="0" + href="{% url 'programme_curriculum:faculty_view_all_courses' %}" + type="Submit" name="Submit" rel="noopener"> + <div class="visible content">UPDATE COURSE PROPOSAL FORM</div> + <div class="hidden content"> + <i class="add icon"></i> + </div> + </a> +</div> + +<br> +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/programme_curriculum/faculty/view_curriculums_of_a_programme.html b/FusionIIIT/templates/programme_curriculum/faculty/view_curriculums_of_a_programme.html new file mode 100644 index 000000000..1ffc54fba --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/view_curriculums_of_a_programme.html @@ -0,0 +1,141 @@ +{% extends 'programme_curriculum/common.html' %} + +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} + +<div class="ui top attached tabular large menu"> + <a class="item active" data-tab="afirst">{{ program.name }} Info</a> + <a class="item" data-tab="asecond">Working Curriculums</a> + <a class="item" data-tab="athird">Obsolete Curriculums</a> +</div> + + +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: auto"> + <table class="ui celled large table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td colspan="3"><h3>{{ program.name }}</h3></td> + </tr> + </thead> + <tbody> + <tr> + <td><B>Programme Category</B></td> + <td colspan="2">{{ program.category }}</td> + </tr> + <tr> + <td><B>Programme Name</B></td> + <td colspan="2">{{ program.name }}</td> + </tr> + <tr> + <td><B>Programme Begin Year</B></td> + <td colspan="2">{{ program.programme_begin_year }}</td> + </tr> + </tbody> + </table> + </div> + </div> +</div> + +<div class="ui bottom attached tab segment" data-tab="asecond"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: auto"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td><h4>Name</h4></td> + <td class="collapsing"><h4>Version</h4></td> + <td><h4>Batch</h4></td> + <td><h4>No. of Semester</h4></td> + </tr> + </thead> + <tbody> + {% for curriculum in working_curriculums %} + <tr> + <td><a href="{% url 'programme_curriculum:view_semesters_of_a_curriculum' curriculum.id %}">{{ curriculum.name }}</a></td> + <td>{{ curriculum.version }}</td> + <td> + {% for batch in curriculum.batches %} + <p>{{ batch }}</p> + {% endfor %} + </td> + <td>{{ curriculum.no_of_semester }}</td> + </tr> + {% empty %} + <tr><td colspan="3">No Curriculum Avaliable</td><tr> + {% endfor %} + </tbody> + </table> + </div> + </div> +</div> + + +<div class="ui bottom attached tab segment" data-tab="athird"> + <div class="content"> + <div class="description" style="overflow: auto; max-height: auto"> + <table class="ui celled medium table" + style="text-align: center; + margin: auto;"> + <thead> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td><h4>Name</h4></td> + <td class="collapsing"><h4>Version</h4></td> + <td><h4>Batch</h4></td> + <td><h4>No. of Semester</h4></td> + </tr> + </thead> + <tbody> + {% for curriculum in past_curriculums %} + <tr> + <td><a href="{% url 'programme_curriculum:view_semesters_of_a_curriculum' curriculum.id %}">{{ curriculum.name }}</a></td> + <td>{{ curriculum.version }}</td> + <td> + {% for batch in curriculum.batches %} + <p>{{ batch }}</p> + {% endfor %} + </td> + <td>{{ curriculum.no_of_semester }}</td> + </tr> + {% empty %} + <tr><td colspan="3">No Curriculum Avaliable</td><tr> + {% endfor %} + </tbody> + </table> + </div> + </div> +</div> + +{% endblock %} diff --git a/FusionIIIT/templates/programme_curriculum/faculty/view_semesters_of_a_curriculum.html b/FusionIIIT/templates/programme_curriculum/faculty/view_semesters_of_a_curriculum.html new file mode 100644 index 000000000..72753d692 --- /dev/null +++ b/FusionIIIT/templates/programme_curriculum/faculty/view_semesters_of_a_curriculum.html @@ -0,0 +1,152 @@ +{% extends 'programme_curriculum/common.html' %} + +{% block sidetabmenu %} + <div class="ui huge fluid vertical pointing menu" + style="max-width: 320px;"> + + <a class="item" href="{% url 'programme_curriculum:view_all_programmes' %}">Programmes + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_working_curriculums' %}">Curriculums + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_courses' %}">Courses + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_discplines' %}">Disciplines + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_all_batches' %}">Batches + <i class="right floated chevron right icon"></i> + </a> + <a class="item" href="{% url 'programme_curriculum:view_course_proposal_forms' %}">Course Proposal Form + <i class="right floated chevron right icon"></i> + </a> + </div> +{% endblock %} + +{% block content %} +<div class="ui top attached tabular large menu"> + <a class="item active" data-tab="afirst">{{ curriculum.name }} Table</a> +</div> +<div class="ui bottom attached tab segment active" data-tab="afirst"> + <div class="content"> + <div class="description" style="overflow: auto; width: auto; max-height: auto"> + <table class="ui celled padded medium table" + style="text-align: center; + margin: auto;"> + <tbody> + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td></td> + <td colspan="{{ curriculum.no_of_semester }} "> + <h2 class="header">{{ curriculum }}</h2> + </td> + </tr> + {% if curriculum.batches.count > 0 %} + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td></td> + <td colspan="{{ curriculum.no_of_semester }}"> + <h4 class="header"> + Batches: + {% for batch in curriculum.batches.all %} + {{ batch }}, + {% endfor %} + </h4> + </td> + </tr> + {% endif %} + <tr style="font-size: medium; + background-color: whitesmoke;"> + <td></td> + {% for semester in semesters %} + <td><a href="{% url 'programme_curriculum:view_a_semester_of_a_curriculum' semester.id %}"><B>Semester<br>{{ semester.semester_no }}</B></a></td> + {% endfor %} + </tr> + + {% for course_slot in semester_slots %} + <tr class="compact ui celled small table" + style="text-align: center; + margin: auto;"> + <td></td> + {% for slot in course_slot %} + {% if slot != "" %} + <td colspan="1"> + {% if slot.courses.count != 1 %} + <a href="{% url 'programme_curriculum:view_a_courseslot' slot.id %}">{{ slot.name }}</a> + {% else %} + {% for course in slot.courses.all %} + <a href="{% url 'programme_curriculum:view_a_courseslot' slot.id %}"><p>{{ course }}<br>(L: {{ course.lecture_hours }}, T: {{ course.tutorial_hours }}, C: {{ course.credit }})</p></a> + {% endfor %} + {% endif %} + </td> + {% else %} + <td></td> + {% endif %} + {% endfor %} + </tr> + {% endfor %} + <tr class="compact ui celled small table" + style="text-align: center; + margin: auto;"> + <td>Start Date</td> + {% for semester in semesters %} + {% if semester.start_semester == None %} + <td></td> + {% else %} + <td>{{ semester.start_semester }}</td> + {% endif %} + {% endfor %} + </tr> + <tr class="compact ui celled small table" + style="text-align: center; + margin: auto;"> + <td>End Date</td> + {% for semester in semesters %} + {% if semester.end_semester == None %} + <td></td> + {% else %} + <td>{{ semester.end_semester }}</td> + {% endif %} + {% endfor %} + </tr> + <tr class="compact ui celled small table" + style="text-align: center; + margin: auto;"> + <td>Total Credits</td> + {% for total_credits in semester_credits %} + <td>{{ total_credits }}</td> + {% endfor %} + </tr> + <tr class="compact ui celled small table" + style="text-align: center; + margin: auto;"> + <td>Instigated</td> + {% for semester in semesters %} + {% if semester.instigate_semester == True %} + <td class="positive"> + <i class="icon checkmark"></i>Yes + </td> + {% else %} + <td class="warning"> + <i class="attention icon"></i>Not Yet + </td> + {% endif %} + {% endfor %} + </tr> + </tbody> + </table> + </div> + </div> +</div> +<script> + $("table").tablesorter({ + headers: { + '.first-name' : { + sorter: false + } + } + }); +</script> +{% endblock %} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 4cc3a0a30..000000000 --- a/requirements.txt +++ /dev/null @@ -1,74 +0,0 @@ -amqp==5.0.2 -arabic-reshaper==2.1.1 -asgiref==3.3.1 -attrs==20.3.0 -beautifulsoup4==4.9.3 -billiard==3.6.3.0 -Brotli==1.0.9 -bs4==0.0.1 -celery==5.0.5 -certifi==2020.12.5 -cffi==1.14.4 -chardet==4.0.0 -click==7.1.2 -click-didyoumean==0.0.3 -click-plugins==1.1.1 -click-repl==0.1.6 -cryptography==36.0.2 -defusedxml==0.6.0 -Django==3.1.5 -django-allauth==0.44.0 -django-cleanup==5.1.0 -django-cors-headers==3.7.0 -django-debug-toolbar==3.2.4 -django-extensions==3.1.1 -django-filter==2.4.0 -django-markdown-deux==1.0.5 -django-model-utils==4.1.1 -django-notifications-hq==1.6.0 -django-pagedown==2.2.0 -djangorestframework==3.12.2 -django-semanticui-forms==1.6.5 -django-unused-media==0.2.2 -future==0.18.2 -# gunicorn -html-text==0.5.2 -html5lib==1.1 -idna==2.10 -ipython==8.2.0 -ipython-genutils==0.2.0 -jsonfield==3.1.0 -jsonschema==3.2.0 -kombu==5.0.2 -lxml==4.8.0 -markdown2==2.4.2 -numpy==1.22.3 -oauthlib==3.1.0 -openpyxl==3.0.7 -Pillow==8.1.0 -prompt-toolkit==3.0.10 -psycopg2-binary==2.8.6 -pycparser==2.20 -PyJWT==2.6.0 -PyPDF2==1.26.0 -pyrsistent==0.17.3 -python-bidi==0.4.2 -python-dateutil==2.8.1 -python3-openid==3.2.0 -pytz==2020.5 -reportlab==3.5.59 -requests==2.25.1 -requests-oauthlib==1.3.0 -six==1.15.0 -soupsieve==2.1 -sqlparse==0.4.2 -swapper==1.1.2.post1 -urllib3==1.26.8 -vine==5.0.0 -wcwidth==0.2.5 -webencodings==0.5.1 -whitenoise==5.2.0 -xhtml2pdf==0.2.5 -xlrd==2.0.1 -XlsxWriter==1.3.7 -xlwt==1.3.0 \ No newline at end of file