diff --git a/FusionIIIT/Fusion/fusion.db b/FusionIIIT/Fusion/fusion.db index 852a2ab43..872bcb675 100644 Binary files a/FusionIIIT/Fusion/fusion.db and b/FusionIIIT/Fusion/fusion.db differ diff --git a/FusionIIIT/applications/central_mess/handlers.py b/FusionIIIT/applications/central_mess/handlers.py index 2e6e9d60b..054bca3d3 100644 --- a/FusionIIIT/applications/central_mess/handlers.py +++ b/FusionIIIT/applications/central_mess/handlers.py @@ -161,8 +161,8 @@ def add_menu_change_request(request, student): new_dish = request.POST.get("newdish") print("newdish") reason = request.POST.get("reason") - menu_object = Menu_change_request(dish=dish, request=new_dish, reason=reason) - # menu_object = Menu_change_request(dish=dish, student_id=student, request=new_dish, reason=reason) + # menu_object = Menu_change_request(dish=dish, request=new_dish, reason=reason) + menu_object = Menu_change_request(dish=dish, student_id=student, request=new_dish, reason=reason) menu_object.save() data = { 'status': 1 diff --git a/FusionIIIT/applications/central_mess/models.py b/FusionIIIT/applications/central_mess/models.py index 688ec2ea1..216b1c32e 100644 --- a/FusionIIIT/applications/central_mess/models.py +++ b/FusionIIIT/applications/central_mess/models.py @@ -1,6 +1,6 @@ import datetime from django.db import models -from applications.academic_information.models import Student +from applications.academic_information.models import (Student, Holiday) # Create your models here. LEAVE_TYPE = ( @@ -234,7 +234,7 @@ def __str__(self): class Menu_change_request(models.Model): dish = models.ForeignKey(Menu, on_delete=models.CASCADE) - # student_id = models.ForeignKey(Student, on_delete=models.CASCADE) + student_id = models.ForeignKey(Student, on_delete=models.CASCADE) reason = models.TextField() request = models.CharField(max_length=100) status = models.CharField(max_length=20, choices=STATUS, default='1') @@ -247,7 +247,7 @@ def __str__(self): class Feedback(models.Model): student_id = models.ForeignKey(Student, on_delete=models.CASCADE) mess = models.CharField(max_length=10, choices=MESS_OPTION, default='mess1') - # mess_rating = models.PositiveSmallIntegerField(default='5') + mess_rating = models.PositiveSmallIntegerField(default='5') fdate = models.DateField(default=datetime.date.today) description = models.TextField() feedback_type = models.CharField(max_length=20, choices=FEEDBACK_TYPE) diff --git a/FusionIIIT/applications/central_mess/urls.py b/FusionIIIT/applications/central_mess/urls.py index 76ff37c71..76f0daeb9 100644 --- a/FusionIIIT/applications/central_mess/urls.py +++ b/FusionIIIT/applications/central_mess/urls.py @@ -9,6 +9,7 @@ url(r'^$', views.mess, name='mess'), url(r'^menurequest/', views.menu_change_request, name='menu_change_request'), url(r'^placeorder/', views.place_order, name='placeorder'), + url(r'^addleavet/', views.add_leave_manager, name='addleavet'), url(r'^submitmessfeedback/', views.submit_mess_feedback, name='submitmessfeedback'), url(r'^messvacationsubmit/', views.mess_vacation_submit, name='messvacationsubmit'), url(r'^messmenusubmit/', views.submit_mess_menu, name='messmenusubmit'), diff --git a/FusionIIIT/applications/central_mess/views.py b/FusionIIIT/applications/central_mess/views.py index 661aee245..f201b98f0 100644 --- a/FusionIIIT/applications/central_mess/views.py +++ b/FusionIIIT/applications/central_mess/views.py @@ -70,6 +70,10 @@ def mess(request): rebates = Rebate.objects.filter(student_id=student).order_by('-app_date') splrequest = Special_request.objects.filter(student_id=student).order_by('-app_date') mess_optn = Messinfo.objects.get(student_id=student) + if student.programme == 'B.Tech' or student.programme == 'B.Des': + programme = 1 + else: + programme = 0 # newmenu = Menu_change_request.objects.all() # meeting = Mess_meeting.objects.all() # minutes = Mess_minutes.objects.all() @@ -144,7 +148,7 @@ def mess(request): meeting = Mess_meeting.objects.all() minutes = Mess_minutes.objects.all() feed = Feedback.objects.filter(mess='mess1').order_by('-fdate') - feed2 = Feedback.objects.filter(mess='mess1').order_by('-fdate') + feed2 = Feedback.objects.filter(mess='mess2').order_by('-fdate') sprequest = Special_request.objects.filter(status='1').order_by('-app_date') sprequest_past = Special_request.objects.filter(status='2').order_by('-app_date') # count1 = feed.filter(Q(feedback_type='Maintenance') & Q(mess='mess1')).count() @@ -195,6 +199,7 @@ def mess(request): 'sprequest': sprequest, 'splrequest': splrequest, 'sprequest_past': sprequest_past, + 'programme':programme, 'count1': count1, 'count2': count2, 'count3': count3, @@ -214,7 +219,7 @@ def mess(request): meeting = Mess_meeting.objects.all() minutes = Mess_minutes.objects.all() feed = Feedback.objects.filter(mess='mess2').order_by('-fdate') - feed2 = Feedback.objects.filter(mess='mess2').order_by('-fdate') + feed2 = Feedback.objects.filter(mess='mess1').order_by('-fdate') sprequest = Special_request.objects.filter(status='1').order_by('-app_date') sprequest_past = Special_request.objects.filter(status='2').order_by('-app_date') # count5 = feed.filter(Q(feedback_type='Maintenance') & Q(mess='mess2')).count() @@ -260,6 +265,7 @@ def mess(request): 'current_date': current_date, 'count': count, 'rebates': rebates, + 'programme': programme, 'meeting': meeting, 'minutes': minutes, 'sprequest': sprequest, @@ -295,6 +301,7 @@ def mess(request): 'rebates': rebates, 'splrequest': splrequest, 'form': form, + 'programme': programme, 'desig': desig } @@ -316,6 +323,7 @@ def mess(request): y = Menu.objects.all() x = Nonveg_menu.objects.all() leave = Rebate.objects.filter(status='1').order_by('-app_date') + leave_past = Rebate.objects.filter(status='2').order_by('-app_date') context = { 'bill_base': current_bill, @@ -329,6 +337,7 @@ def mess(request): 'vaca_all': vaca_all, 'info': extrainfo, 'leave': leave, + 'leave_past': leave_past, 'current_date': current_date, 'mess_reg': mess_reg, 'desig': desig, @@ -403,14 +412,8 @@ def place_order(request): if extra_info.user_type == 'student': student = Student.objects.get(id=extra_info) student_mess = Messinfo.objects.get(student_id=student) - - if student_mess.mess_option == 'mess1': - add_nonveg_order(request, student) - return HttpResponseRedirect('/mess') - elif student_mess.mess_option == 'mess2': - messages.info(request,"You cannot apply for non veg food") - else: - return HttpResponse("you can't apply for this application sorry for the inconvenience") + add_nonveg_order(request, student) + return HttpResponseRedirect('/mess') @csrf_exempt @@ -903,3 +906,51 @@ def get_nonveg_order(request): 'status': 1, } return JsonResponse(data) + + +def add_leave_manager(request): + flag = 1 + start_date = request.POST.get('l_startd') + end_date = request.POST.get('l_endd') + roll_number = request.POST.get('l_rollno') + type = request.POST.get('l_type') + purpose = request.POST.get('l_purpose') + student = Student.objects.get(id__id=roll_number) + add_obj = Rebate(student_id = student, + start_date = start_date, + end_date = end_date, + purpose = purpose, + status='2', + leave_type=type) + + if (end_date < start_date): + data = { + 'status': 3, + 'message': "Please check the dates" + } + flag = 0 + return HttpResponse('Check the dates') + + date_format = "%Y-%m-%d" + b = datetime.strptime(str(start_date), date_format) + d = datetime.strptime(str(end_date), date_format) + + rebates = Rebate.objects.filter(student_id=student) + rebate_check = rebates.filter(status='2') + + for r in rebate_check: + a = datetime.strptime(str(r.start_date), date_format) + c = datetime.strptime(str(r.end_date), date_format) + if ((b <= a and (d >= a and d <= c)) or (b >= a and (d >= a and d <= c)) + or (b <= a and (d >= c)) or ((b >= a and b <= c) and (d >= c))): + flag = 0 + data = { + 'status': 3, + 'message': "Already applied for these dates", + } + return HttpResponse('You are seeing this page : As the leave has been applied for these days already') + if flag == 1: + message = 'Your leave request has been accepted between dates ' + str(b.date()) + ' and ' + str(d.date()) + central_mess_notif(request.user, student.id.user, 'leave_request', message) + add_obj.save() + return HttpResponseRedirect('/mess') diff --git a/FusionIIIT/templates/messModule/applications.html b/FusionIIIT/templates/messModule/applications.html index c0525af36..7c3c99a31 100644 --- a/FusionIIIT/templates/messModule/applications.html +++ b/FusionIIIT/templates/messModule/applications.html @@ -5,20 +5,22 @@ {% comment %}The tab menu starts here!{% endcomment %} -
+
-
+