Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions FusionIIIT/Fusion/context_processors.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
def global_vars(request):
return {
'global_var': request.session.get('currentDesignationSelected', 'default_value'),
'global_var2': request.session.get('allDesignations', 'default_value2'),
}
48 changes: 48 additions & 0 deletions FusionIIIT/Fusion/middleware/custom_middleware.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# custom_middleware.py
from django.contrib.auth.signals import user_logged_in
from django.dispatch import receiver
from applications.globals.models import (ExtraInfo, Feedback, HoldsDesignation,
Issue, IssueImage, DepartmentInfo)
from django.shortcuts import get_object_or_404, redirect, render

def user_logged_in_middleware(get_response):
@receiver(user_logged_in)
def user_logged_in_handler(sender, user, request, **kwargs):
if 'function_executed' not in request.session:
# Run the function only if the flag is not set
# Assuming user is a model with the desired data field, retrieve the data
# For example, if your User model has a field named 'custom_field', you can access it like:
if user.is_authenticated:
desig = list(HoldsDesignation.objects.select_related('user','working','designation').all().filter(working = request.user).values_list('designation'))
print(desig)
b = [i for sub in desig for i in sub]
design = HoldsDesignation.objects.select_related('user','designation').filter(working=request.user)

designation=[]

designation.append(str(user.extrainfo.user_type))
for i in design:
if str(i.designation) != str(user.extrainfo.user_type):
print('-------')
print(i.designation)
print(user.extrainfo.user_type)
print('')
designation.append(str(i.designation))

for i in designation:
print(i)

request.session['currentDesignationSelected'] = designation[0]
request.session['allDesignations'] = designation
print("logged iN")

# Set the flag in the session to indicate that the function has bee+n executed
request.session['function_executed'] = True

def middleware(request):
if request.user.is_authenticated:
user_logged_in_handler(request.user, request.user, request)
response = get_response(request)
return response

return middleware
2 changes: 2 additions & 0 deletions FusionIIIT/Fusion/settings/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'Fusion.middleware.custom_middleware.user_logged_in_middleware',
]

ROOT_URLCONF = 'Fusion.urls'
Expand All @@ -178,6 +179,7 @@
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'Fusion.context_processors.global_vars',
],
},
},
Expand Down
3 changes: 2 additions & 1 deletion FusionIIIT/applications/globals/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,6 @@
# Endpoint to reset all passwords in DEV environment
url(r'^resetallpass/$', views.reset_all_pass, name='resetallpass'),
# API urls
url(r'^api/', include('applications.globals.api.urls'))
url(r'^api/', include('applications.globals.api.urls')),
url(r'^update_global_variable/$', views.update_global_variable, name='update_global_var'),
]
102 changes: 97 additions & 5 deletions FusionIIIT/applications/globals/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
from Fusion.settings.common import LOGIN_URL
from notifications.models import Notification
from .models import *
from applications.hostel_management.models import (HallCaretaker,HallWarden)

def index(request):
context = {}
Expand Down Expand Up @@ -732,29 +733,48 @@ def dashboard(request):
for i in b :
name_ = get_object_or_404(Designation, id = i)
roll_.append(str(name_.name))

hall_caretakers = HallCaretaker.objects.all().select_related()
hall_wardens = HallWarden.objects.all().select_related()

hall_caretaker_user = []
for caretaker in hall_caretakers:
hall_caretaker_user.append(caretaker.staff.id.user)

hall_warden_user = []
for warden in hall_wardens:
hall_warden_user.append(warden.faculty.id.user)

context={
'notifications':notifs,
'Curr_desig' : roll_,
'club_details' : coordinator_club(request),
'designation' : designation,
'hall_caretaker': hall_caretaker_user,
'hall_warden': hall_warden_user,

}
# a=HoldsDesignation.objects.select_related('user','working','designation').filter(designation = user)
print(context)
print(type(user.extrainfo.user_type))
if(request.user.get_username() == 'director'):
return render(request, "dashboard/director_dashboard2.html", {})
elif( "dean_rspc" in designation):
return render(request, "dashboard/dashboard.html", context)
elif user.extrainfo.user_type != 'student':
elif user.extrainfo.user_type != "student":
print ("inside")
designat = HoldsDesignation.objects.select_related().filter(user=user)
response = {'designat':designat}
context.update(response)
return render(request, "dashboard/dashboard.html", context)
else:
print ("inside2")

return render(request, "dashboard/dashboard.html", context)


@login_required(login_url=LOGIN_URL)
def profile(request, username=None):
def profile(request, username=None):
"""
Generic endpoint for views.
If it's a faculty, redirects to /eis/profile/*
Expand All @@ -768,16 +788,76 @@ def profile(request, username=None):
"""
user = get_object_or_404(User, Q(username=username)) if username else request.user


editable = request.user == user
print("editable",editable)
profile = get_object_or_404(ExtraInfo, Q(user=user))
print("profile",profile)
if(str(user.extrainfo.user_type)=='faculty'):
print("profile")
return HttpResponseRedirect('/eis/profile/' + (username if username else ''))
if(str(user.extrainfo.department)=='department: Academics'):
print("profile2")
return HttpResponseRedirect('/aims')
current = HoldsDesignation.objects.select_related('user','working','designation').filter(Q(working=user, designation__name="student"))

array = [
"student",
"CC convenor",
"Mechatronic convenor",
"mess_committee",
"mess_convener",
"alumini",
"Electrical_AE",
"Electrical_JE",
"Civil_AE",
"Civil_JE",
"co-ordinator",
"co co-ordinator",
"Convenor",
"Convener",
"cc1convener",
"CC2 convener",
"mess_convener_mess2",
"mess_committee_mess2"
]

# queryset = HoldsDesignation.objects.select_related('user','working','designation').filter(Q(working=user))

# for obj in queryset:
# designation_name = obj.designation.name
# print("designation_name",designation_name)

# design = False
# if designation_name in array:
# design = True
# print("design",design)
# print("designation_name",designation_name)
# if design:
# current = HoldsDesignation.objects.select_relapted('user','working','designation').filter(Q(working=user, designation__name=designation_name))
# for obj in current:
# obj.designation.name = obj.designation.name.replace(designation_name, 'student')

designation_name = ""
design = False

current = HoldsDesignation.objects.select_related('user', 'working', 'designation').filter(Q(working=user))

for obj in current:
designation_name = obj.designation.name
if designation_name in array:
design = True
break

if design:
current = HoldsDesignation.objects.filter(working=user, designation__name=designation_name)
for obj in current:
obj.designation.name = obj.designation.name.replace(designation_name, 'student')

print(user.extrainfo.user_type)
print("current",current)
if current:
print("profile3")
student = get_object_or_404(Student, Q(id=profile.id))
print("student",student)
if editable and request.method == 'POST':
if 'studentapprovesubmit' in request.POST:
status = PlacementStatus.objects.select_related('notify_id','unique_id__id__user','unique_id__id__department').filter(pk=request.POST['studentapprovesubmit']).update(invitation='ACCEPTED', timestamp=timezone.now())
Expand Down Expand Up @@ -979,6 +1059,7 @@ def profile(request, username=None):
return render(request, "globals/student_profile4.html", context)
if 'achievementsubmit' in request.POST or 'deleteach' in request.POST:
return render(request, "globals/student_profile5.html", context)
print("context",context)
return render(request, "globals/student_profile.html", context)
else:
return redirect("/")
Expand Down Expand Up @@ -1176,4 +1257,15 @@ def search(request):
if len(search_results) == 0:
search_results = []
context = {'sresults':search_results}
return render(request, "globals/search.html", context)
return render(request, "globals/search.html", context),

@login_required(login_url=LOGIN_URL)
def update_global_variable(request):
if request.method == 'POST':
selected_option = request.POST.get('dropdown')
request.session['currentDesignationSelected'] = selected_option
print(selected_option)
print(request.session['currentDesignationSelected'])
return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
# Redirect to home if not a POST request or some issue occurs
return HttpResponseRedirect(reverse('home'))
7 changes: 3 additions & 4 deletions FusionIIIT/applications/hostel_management/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -356,8 +356,7 @@ def hostel_view(request, context={}):
}

return render(request, 'hostelmanagement/hostel.html', context)



def staff_edit_schedule(request):
"""
This function is responsible for creating a new or updating an existing staff schedule.
Expand Down Expand Up @@ -649,7 +648,7 @@ def get(self, request, *args, **kwargs):
hall_caretakers = HallCaretaker.objects.all()
get_hall = ""
get_hall = get_caretaker_hall(hall_caretakers, request.user)
print(get_hall)

if months < current_month:
worker_report = WorkerReport.objects.filter(
hall=get_hall, month__gte=current_month-months, year=current_year)
Expand Down Expand Up @@ -699,7 +698,7 @@ def all_leave_data(request):

@login_required
def create_hostel_leave(request):
print(request.user.username)

if request.method == 'GET':
return render(request, 'hostelmanagement/create_leave.html')
elif request.method == 'POST':
Expand Down
44 changes: 38 additions & 6 deletions FusionIIIT/templates/academic_procedures/academic.html
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,39 @@
}

</style>

<style>
.dashboard-container {
margin: 0 3rem;
display: grid;
gap: 3rem;
grid-template-columns: 1fr;
}

.card-container {
display: flex;
flex-direction: column;
align-items: center;
}

@media (min-width:800px) {
.dashboard-container {
grid-template-columns: 3fr 7fr;
}
.module-container {
grid-column: 1/-1;
}
}

@media (min-width:1200px) {
.dashboard-container {
grid-template-columns: 3fr 7fr 3fr;
}
.module-container {
grid-column:auto;
}
}
</style>
{% endblock css %}


Expand All @@ -30,13 +63,12 @@
{% include 'dashboard/navbar.html' %}
{% endblock %}

<div class="ui stackable doubling grid">
<div class="dashboard-container">

{% comment %}The left-margin segment!{% endcomment %}
<div class="column"></div>


{% comment %}The left-rail segment starts here!{% endcomment %}
<div class="three wide column">
<div class="card-container">
{% comment %}The user image card starts here!{% endcomment %}
{% block usercard %}
{% include 'globals/usercard.html' %}
Expand All @@ -46,8 +78,8 @@
<div class="ui divider"></div>

{% comment %}The Tab-Menu starts here!{% endcomment %}
<div class="ui huge fluid vertical pointing menu" id="vtab"
style="max-width: 320px;">
<div class="ui huge fluid vertical pointing menu" style="max-width: 25rem;">

{% if student_flag %}
<a class="active item" data-tab="one">
<B>Current Semester</B>
Expand Down
11 changes: 6 additions & 5 deletions FusionIIIT/templates/dashboard/dashboard.html
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@
{% comment %}The Tab-Menu starts here!{% endcomment %}
<div class="ui huge fluid vertical pointing menu" style="max-width: 320px;">

<a class="item disabled" href="{% url 'globals:profile' %}">
View Professional Profile
<a class="item" href="{% url 'globals:profile' %}">
View Professional Profile
<i class="right floated chevron right icon"></i>
</a>
{% if "dean_rspc" in designation %}
Expand All @@ -62,11 +62,12 @@
{% comment %}The Tab-Menu ends here!{% endcomment %}


{% if 'student' != request.user.extrainfo.user_type %}
{% if 'student' == request.user.extrainfo.user_type %}

{% comment %}The Tab-Menu starts here!{% endcomment %}
<div class="ui huge fluid vertical pointing menu" style="max-width: 320px;">
<a class="item disabled" href="/hr2/administrativeProfile">
<a class="item
" href="/hr2/administrativeProfile">
View Administrative Profile
<i class="right floated chevron right icon"></i>
</a>
Expand All @@ -77,7 +78,7 @@

{% comment %}The Tab-Menu starts here!{% endcomment %}


{% if request.user.extrainfo.user_type == 'faculty' %}
{%for desig in designat%}
{% if 'hradmin' == desig.designation.name %}
Expand Down
Loading