From cb4c9480389cdd489286da25dce4f98908d33486 Mon Sep 17 00:00:00 2001 From: Akshat Nema <76521428+akshatnema@users.noreply.github.com> Date: Mon, 6 Feb 2023 22:16:54 +0530 Subject: [PATCH 1/6] feat: dockerize Fusion (#1059) Co-authored-by: sanu gautam Co-authored-by: ANIMESH KUMAR <40890542+akanimesh@users.noreply.github.com> Co-authored-by: nayantripathi-17 <81465207+nayantripathi-17@users.noreply.github.com> Co-authored-by: Aksh Bansal <63552235+Aksh-Bansal-dev@users.noreply.github.com> --- Dockerfile | 33 +++++++++++++++++++++++++++++++++ README.md | 17 +++++++++++++++++ docker-compose.yml | 23 +++++++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..6e99e98e9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,33 @@ +# base image +FROM python:3.8 + +# setup environment variable for work directory +ENV FUSION_HOME=/home/app + +# make work directory +RUN mkdir -p $FUSION_HOME + +# set work directory +WORKDIR $FUSION_HOME + +# set environment variables +ENV PYTHONDONTWRITEBYTECODE 1 +ENV PYTHONUNBUFFERED 1 + +# copy requirements file +COPY requirements.txt $FUSION_HOME + +# install dependencies +RUN pip install --upgrade pip && pip install -r requirements.txt + +# copy api directory to docker's work directory. +COPY . $FUSION_HOME + +# Migrate all migrations +# RUN cd FusionIIIT && python manage.py migrate + +# port where the Django app runs +EXPOSE 8000 + +# start server +CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] diff --git a/README.md b/README.md index c3ffb5d97..4bc1fa120 100644 --- a/README.md +++ b/README.md @@ -190,3 +190,20 @@ The project now supports notifications across all modules. To implement notifica module_notif(sender, receiver, type) ``` * The Notifications should then appear in the dashboard for the recipient + +## Setting up Fusion using Docker +- Make sure you have docker & docker-compose setup properly. +- Update `FusionIIIT/Fusion/settings/development.py` +```python +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'NAME': 'fusiondb', + 'HOST': os.environ.get("DB_HOST"), + 'USER': 'fusionuser', + 'PASSWORD': 'password', + } +} +``` +- Run `docker-compose up` +- Once the server starts, run `sudo docker exec -i fusion_db_1 psql -U fusionuser -d fusiondb < path_to_db_dump` diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..5229cd549 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,23 @@ +version: "3.9" +services: + db: + image: postgres:13-alpine + environment: + - POSTGRES_DB=fusiondb + - POSTGRES_USER=fusionuser + - POSTGRES_PASSWORD=password + ports: + - "5432:5432" + app: + build: + context: . + dockerfile: Dockerfile + volumes: + - .:/home/app + ports: + - 8000:8000 + command: python FusionIIIT/manage.py runserver 0.0.0.0:8000 + environment: + - DB_HOST=db + depends_on: + - db From e45faa11f2824487eea51b9f4c6691ef51b5389b Mon Sep 17 00:00:00 2001 From: A Anunaya <76819712+Anunaya07@users.noreply.github.com> Date: Tue, 7 Feb 2023 19:15:41 +0530 Subject: [PATCH 2/6] feat: added user_sem and year constraints to pre registration eligibility check (#1033) --- .../applications/academic_procedures/views.py | 35 ++++++++++++++++--- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/FusionIIIT/applications/academic_procedures/views.py b/FusionIIIT/applications/academic_procedures/views.py index cf234307d..aaae264d6 100644 --- a/FusionIIIT/applications/academic_procedures/views.py +++ b/FusionIIIT/applications/academic_procedures/views.py @@ -264,7 +264,7 @@ def academic_procedures_student(request): year = demo_date.year registers = get_student_register(user_details.id) - user_sem = get_user_semester(request.user, ug_flag, masters_flag, phd_flag) + # user_sem = get_user_semester(request.user, ug_flag, masters_flag, phd_flag) user_branch = get_user_branch(user_details) batch = obj.batch_id @@ -297,8 +297,12 @@ def academic_procedures_student(request): curr_sem_id = Semester.objects.get(curriculum = curr_id, semester_no = obj.curr_semester_no) try: - next_sem_id = Semester.objects.get(curriculum = curr_id, semester_no = obj.curr_semester_no+1) + semester_no = obj.curr_semester_no+1 + next_sem_id = Semester.objects.get(curriculum = curr_id, semester_no = semester_no) + user_sem = semester_no + except Exception as e: + user_sem = get_user_semester(request.user, ug_flag, masters_flag, phd_flag) next_sem_id = curr_sem_id student_registration_check_pre = get_student_registrtion_check(obj,next_sem_id) @@ -312,7 +316,7 @@ def academic_procedures_student(request): if user_sem==2 and des_flag==False and ug_flag==True: branchchange_flag=True - pre_registration_date_flag = get_pre_registration_eligibility(current_date) + pre_registration_date_flag = get_pre_registration_eligibility(current_date, user_sem, year) final_registration_date_flag = get_final_registration_eligibility(current_date) add_or_drop_course_date_flag = get_add_or_drop_course_date_eligibility(current_date) pre_registration_flag = False @@ -326,6 +330,7 @@ def academic_procedures_student(request): final_registration_flag = student_registration_check_final.final_registration_flag # print(">>>>>>>>>>>>>>>>>>>>>>",student_registration_check_pre.pre_registration_flag) + acad_year = get_acad_year(user_sem, year) currently_registered_courses = get_currently_registered_courses(user_details.id, user_sem) @@ -1214,9 +1219,29 @@ def phd_details(request): def get_student_register(id): return Register.objects.all().select_related('curr_id','student_id','curr_id__course_id','student_id__id','student_id__id__user','student_id__id__department').filter(student_id = id) -def get_pre_registration_eligibility(current_date): +def get_pre_registration_eligibility(current_date, user_sem, year): + ''' + This function is used to extract the elgibility of pre-registration for a given semester + for a given year from the Calendar table. + + @param: + current_date - current date at the user end + user_sem - current semester of the user(integer) + year - current year at the user end + + @variables: + pre_registration_date - stores the object returned from calendar table for a given description + prd_start_date - holds start date of the pre registeration + prd_end_date - holds end date of the pre registration + + #exception handling: + In case calendar table has no row for the given description pre_registration_date will store None value, + Therefore from_date and to_date attributes cannot be accessed so the function will return False. + + ''' try: - pre_registration_date = Calendar.objects.all().filter(description="Pre Registration").first() + # pre_registration_date = Calendar.objects.all().filter(description="Pre Registration").first() + pre_registration_date = Calendar.objects.all().filter(description=f"Pre Registration {user_sem} {year}").first() prd_start_date = pre_registration_date.from_date prd_end_date = pre_registration_date.to_date if current_date>=prd_start_date and current_date<=prd_end_date: From 906d3b31fdf891b3392a7052b0cfc3825ded86b6 Mon Sep 17 00:00:00 2001 From: Yathartha Goenka <75240973+yatharthagoenka@users.noreply.github.com> Date: Wed, 8 Feb 2023 19:06:52 +0530 Subject: [PATCH 3/6] Added volumes to docker (#1065) --- docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 5229cd549..4b7dc6cf2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,6 +2,8 @@ version: "3.9" services: db: image: postgres:13-alpine + volumes: + - /private/var/lib/postgresql:/var/lib/postgresql environment: - POSTGRES_DB=fusiondb - POSTGRES_USER=fusionuser From a9318233e6c4cc10441655fc24f0e0d6146ac404 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Sun, 12 Feb 2023 19:37:22 +0530 Subject: [PATCH 4/6] Revert "fix ui divider globally" This reverts commit 58f8f3d3c4d31df453bf06998d5c862e61f24f3b. --- FusionIIIT/Fusion/settings/development.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FusionIIIT/Fusion/settings/development.py b/FusionIIIT/Fusion/settings/development.py index 5f392c443..2d9c53e38 100644 --- a/FusionIIIT/Fusion/settings/development.py +++ b/FusionIIIT/Fusion/settings/development.py @@ -10,7 +10,7 @@ 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'fusionlab', - 'HOST': 'localhost', + 'HOST': '172.27.16.216', 'USER': 'fusion_admin', 'PASSWORD': 'hello123', } From 678bdc46dec402ce6c12bbcb7c442d1db6465ea7 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Sun, 12 Feb 2023 19:40:34 +0530 Subject: [PATCH 5/6] fix ui divider --- FusionIIIT/Fusion/settings/development.py | 2 +- FusionIIIT/templates/libraryModule/libraryModule.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/FusionIIIT/Fusion/settings/development.py b/FusionIIIT/Fusion/settings/development.py index 2d9c53e38..5f392c443 100644 --- a/FusionIIIT/Fusion/settings/development.py +++ b/FusionIIIT/Fusion/settings/development.py @@ -10,7 +10,7 @@ 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'fusionlab', - 'HOST': '172.27.16.216', + 'HOST': 'localhost', 'USER': 'fusion_admin', 'PASSWORD': 'hello123', } diff --git a/FusionIIIT/templates/libraryModule/libraryModule.html b/FusionIIIT/templates/libraryModule/libraryModule.html index cb617b11c..ac94c2d17 100644 --- a/FusionIIIT/templates/libraryModule/libraryModule.html +++ b/FusionIIIT/templates/libraryModule/libraryModule.html @@ -34,7 +34,7 @@ {% endblock %} {% comment %}The user image card ends here!{% endcomment %} -
+
{% comment %}The Tab-Menu starts here!{% endcomment %}
-
+
{% block tab1content1 %} {% include 'libraryModule/issuedItems_content.html' %} {% endblock %}