diff --git a/FusionIIIT/applications/research_procedures/api/serializers.py b/FusionIIIT/applications/research_procedures/api/serializers.py index 3d3178f79..5c4a8bc34 100644 --- a/FusionIIIT/applications/research_procedures/api/serializers.py +++ b/FusionIIIT/applications/research_procedures/api/serializers.py @@ -1,13 +1,51 @@ from rest_framework.serializers import ModelSerializer +from rest_framework import serializers + from applications.research_procedures.models import * # Create a Serializer for Model Patent class ProjectSerializer(ModelSerializer): + class Meta: + # model = projects + fields = '__all__' + +class Project_serializer(serializers.ModelSerializer): class Meta: model = projects fields = '__all__' -class PatentSerializer(ModelSerializer): + def create(self, validated_data): + return projects.objects.create(**validated_data) + +class financial_outlay_serializer(serializers.ModelSerializer): class Meta: - # model = projects - fields = '__all__' \ No newline at end of file + model = financial_outlay + fields = '__all__' + + def create(self, validated_data): + return financial_outlay.objects.create(**validated_data) + +class category_serializer(serializers.ModelSerializer): + class Meta: + model = category + fields = '__all__' + + def create(self, validated_data): + return category.objects.create(**validated_data) + +class staff_allocations_serializer(serializers.ModelSerializer): + class Meta: + model = staff_allocations + fields = '__all__' + + def create(self, validated_data): + return staff_allocations.objects.create(**validated_data) + +class requests_serializer(serializers.ModelSerializer): + class Meta: + model = requests + fields = '__all__' + + def create(self, validated_data): + return requests.objects.create(**validated_data) + diff --git a/FusionIIIT/applications/research_procedures/api/urls.py b/FusionIIIT/applications/research_procedures/api/urls.py index af74ea805..232dda90c 100644 --- a/FusionIIIT/applications/research_procedures/api/urls.py +++ b/FusionIIIT/applications/research_procedures/api/urls.py @@ -1,8 +1,45 @@ from rest_framework.routers import DefaultRouter from .views import * +from django.urls import include,path +from django.conf.urls import url +from . import views + +app_name="research_procedures" router = DefaultRouter() # router.register(r'patent', PatentViewSet) urlpatterns = router.urls + +urlpatterns = [ + # url(r'^$', views.view_projects, name='patent_registration'), + # url(r'^update$', views.patent_status_update, name='patent_status_update'), + # url(r'^research_group$', views.research_group_create, name='research_group_create'), + # url(r'^project_insert$',views.project_insert,name='project_insert'), + # url(r'^consult_insert$',views.consult_insert,name='consult_insert'), + # url(r'^add_projects$',views.add_projects,name='add_projects'), + # url(r'^view_projects$',views.view_projects,name='view_projects'), + # # path('add_requests///',views.add_requests,name='add_requests'), + # url(r'^api/',include('applications.research_procedures.api.urls')), + # path('view_requests//',views.view_requests), + path('projects',views.view_projects), + # path('view_project_info//',views.view_project_info), + # path('submit_closure_report//',views.submit_closure_report, name="submit_closure_report"), + # path('add_fund_requests//',views.add_fund_requests, name="add_fund_requests"), + # path('add_staff_requests//',views.add_staff_requests, name="add_staff_requests"), + # path('view_project_inventory//',views.view_project_inventory, name="view_project_inventory"), + # path('view_project_staff//',views.view_project_staff, name="view_project_staff"), + # path('add_financial_outlay//',views.add_financial_outlay, name="add_financial_outlay"), + # path('financial_outlay//',views.financial_outlay_form, name="financial_outlay_form"), + # path('view_financial_outlay//',views.view_financial_outlay, name="view_financial_outlay"), + # path('add_staff_details//',views.add_staff_details, name="add_staff_details"), + # path('view_staff_details//',views.view_staff_details, name="view_staff_details"), + # path('add_staff_request//',views.add_staff_request, name="add_staff_request"), + # path('inbox',views.inbox, name="inbox"), + # path('view_request_inbox',views.view_request_inbox, name="view_request_inbox"), + # path('forward_request',views.forward_request, name="forward_request"), + + + +] print("URL patterns",urlpatterns) \ No newline at end of file diff --git a/FusionIIIT/applications/research_procedures/api/views.py b/FusionIIIT/applications/research_procedures/api/views.py index 3a4f92f8b..3addf40d4 100644 --- a/FusionIIIT/applications/research_procedures/api/views.py +++ b/FusionIIIT/applications/research_procedures/api/views.py @@ -2,8 +2,751 @@ from applications.research_procedures.models import * from .serializers import * from rest_framework.permissions import IsAuthenticatedOrReadOnly +from django.shortcuts import redirect, render, get_object_or_404 +from rest_framework.response import Response +from django.contrib import messages +from applications.research_procedures.models import * +from applications.globals.models import ExtraInfo, HoldsDesignation, Designation +from django.core.files.storage import FileSystemStorage +from django.core.exceptions import ObjectDoesNotExist +from notification.views import research_procedures_notif +from django.urls import reverse +from django.contrib.auth.decorators import login_required +import datetime +from django.utils import timezone + +from collections import defaultdict +from applications.filetracking.sdk.methods import * + +# # Faculty can file patent and view status of it. + +# @login_required +# def patent_registration(request): + + +# return render(request ,"rs/research.html") + +# @login_required +# #dean_rspc can update status of patent. +# def patent_status_update(request): + +# user = request.user +# user_extra_info = ExtraInfo.objects.get(user=user) +# user_designations = HoldsDesignation.objects.filter(user=user) +# if request.method=='POST': +# if(user_designations.exists()): +# if(user_designations.first().designation.name == "dean_rspc" and user_extra_info.user_type == "faculty"): +# patent_application_id = request.POST.get('id') +# patent = Patent.objects.get(application_id=patent_application_id) +# patent.status = request.POST.get('status') +# patent.save() +# messages.success(request, 'Patent status updated successfully') +# # Create a notification for the user about the patent status update +# dean_rspc_user = HoldsDesignation.objects.get(designation=Designation.objects.filter(name='dean_rspc').first()).working +# research_procedures_notif(dean_rspc_user,patent.faculty_id.user,request.POST.get('status')) +# else: +# messages.error(request, 'Only Dean RSPC can update status of patent') +# return redirect(reverse("research_procedures:patent_registration")) + +# @login_required +# def research_group_create(request): + +# user = request.user +# user_extra_info = ExtraInfo.objects.get(user=user) +# if request.method=='POST': +# if user_extra_info.user_type == "faculty": +# form = ResearchGroupForm(request.POST) + +# if form.is_valid(): +# form.save() +# messages.success(request, 'Research group created successfully') +# else: +# messages.error(request, 'Only Faculty can create research group') +# return redirect(reverse("research_procedures:patent_registration")) + +# @login_required +# def project_insert(request): +# user = get_object_or_404(ExtraInfo, user=request.user) +# pf = user.id + +# research_project = ResearchProject() +# research_project.user = request.user +# research_project.pf_no = pf +# research_project.pi = request.POST.get('pi') +# research_project.co_pi = request.POST.get('co_pi') +# research_project.title = request.POST.get('title') +# research_project.financial_outlay = request.POST.get('financial_outlay') +# research_project.funding_agency = request.POST.get('funding_agency') +# research_project.status = request.POST.get('status') +# x = request.POST.get('start') +# if x[:5] == "Sept." : +# x = "Sep." + x[5:] +# if (request.POST.get('start') != None and request.POST.get('start') != '' and request.POST.get('start') != 'None'): +# try: +# research_project.start_date = datetime.datetime.strptime(x, "%B %d, %Y") +# except: +# research_project.start_date = datetime.datetime.strptime(x, "%b. %d, %Y") +# x = request.POST.get('end') +# if x[:5] == "Sept." : +# x = "Sep." + x[5:] +# if (request.POST.get('end') != None and request.POST.get('end') != '' and request.POST.get('end') != 'None'): +# try: +# research_project.finish_date = datetime.datetime.strptime(x, "%B %d, %Y") +# except: +# research_project.finish_date = datetime.datetime.strptime(x, "%b. %d, %Y") +# x = request.POST.get('sub') +# if x[:5] == "Sept." : +# x = "Sep." + x[5:] +# if (request.POST.get('sub') != None and request.POST.get('sub') != '' and request.POST.get('sub') != 'None'): +# try: +# research_project.date_submission = datetime.datetime.strptime(x, "%B %d, %Y") +# except: +# research_project.date_submission = datetime.datetime.strptime(x, "%b. %d, %Y") +# research_project.save() +# messages.success(request, 'Successfully created research project') +# return redirect(reverse("research_procedures:patent_registration")) + +# @login_required +# def consult_insert(request): +# user = get_object_or_404(ExtraInfo, user=request.user) +# pf = user.id +# consultancy_project = ConsultancyProject() +# consultancy_project.user = request.user +# consultancy_project.pf_no = pf +# consultancy_project.consultants = request.POST.get('consultants') +# consultancy_project.client = request.POST.get('client') +# consultancy_project.title = request.POST.get('title') +# consultancy_project.financial_outlay = request.POST.get('financial_outlay') +# x = request.POST.get('start') +# if x[:5] == "Sept." : +# x = "Sep." + x[5:] +# if (request.POST.get('start') != None and request.POST.get('start') != '' and request.POST.get('start') != 'None'): +# try: +# consultancy_project.start_date = datetime.datetime.strptime(x, "%B %d, %Y") +# except: +# consultancy_project.start_date = datetime.datetime.strptime(x, "%b. %d, %Y") +# x = request.POST.get('end') +# if x[:5] == "Sept." : +# x = "Sep." + x[5:] +# if (request.POST.get('end') != None and request.POST.get('end') != '' and request.POST.get('end') != 'None'): +# try: +# consultancy_project.end_date = datetime.datetime.strptime(x, "%B %d, %Y") +# except: +# consultancy_project.end_date = datetime.datetime.strptime(x, "%b. %d, %Y") +# consultancy_project.save() +# messages.success(request,"Successfully created consultancy project") +# return redirect(reverse("research_procedures:patent_registration")) + +# def add_projects(request): +# if request.method== "POST": +# obj= request.POST +# projectname= obj.get('project_name') +# projecttype= obj.get('project_type') +# fo= obj.get('financial_outlay') +# pid= obj.get('project_investigator_id') +# copid=obj.get('co_project_investigator_id') +# sa= obj.get('sponsored_agency') +# startd= obj.get('start_date') +# subd= obj.get('finish_date') +# finishd= obj.get('finish_date') +# years= obj.get('number_of_years') +# # project_description= obj.get('description') +# project_info_file= request.FILES.get('project_info_file') + +# check = User.objects.filter(username=pid) +# # print(check[0].username) + + + +# check= HoldsDesignation.objects.filter(user__username=pid , designation__name= "Professor") +# if not check.exists(): +# check= HoldsDesignation.objects.filter(user__username=pid , designation__name= "Assistant Professor") + +# if not check.exists(): +# messages.error(request,"Request not added, no such project investigator exists 2") +# return render(request,"rs/projects.html") + + +# check= HoldsDesignation.objects.filter(user__username=copid , designation__name= "Professor") +# if not check.exists(): +# check= HoldsDesignation.objects.filter(user__username=copid , designation__name= "Assistant Professor") + +# if not check.exists(): +# messages.error(request,"Request not added, no such project investigator exists 2") +# return render(request,"rs/projects.html") + + +# obj= projects.objects.all() +# if len(obj)==0 : +# projectid=1 + +# else : +# projectid= obj[0].project_id+1 + +# userpi_instance = User.objects.get(username=pid) +# usercpi_instance = User.objects.get(username=copid) + +# projects.objects.create( +# project_id=projectid, +# project_name=projectname, +# project_type=projecttype, +# status=0, +# project_investigator_id=userpi_instance, +# co_project_investigator_id=usercpi_instance, +# sponsored_agency=sa, +# start_date=startd, +# submission_date=finishd, +# finish_date=finishd, +# years=years, +# project_info_file=project_info_file + +# ) +# project_investigator_designation = HoldsDesignation.objects.get(user=userpi_instance).designation + +# file_x= create_file( +# uploader=request.user.username, +# uploader_designation="rspc_admin", +# receiver= pid, +# receiver_designation=project_investigator_designation, +# src_module="research_procedures", +# src_object_id= projectid, +# file_extra_JSON= { "message": "Project added successfully"}, +# attached_file= project_info_file, +# ) + +# messages.success(request,"Project added successfully") +# categories = category.objects.all() + +# data = { +# "pid": pid, +# "years": list(range(1, int(years) + 1)), +# "categories": categories, +# } + +# return redirect("/research_procedures/financial_outlay/"+str(projectid)) +# return render(request,"rs/projects.html") + +# def add_fund_requests(request,pj_id): +# data= { +# "pj_id": pj_id +# } +# return render(request,"rs/add_fund_requests.html",context=data) + +# def add_staff_requests(request,pj_id): +# data= { +# "pj_id": pj_id +# } +# return render(request,"rs/add_staff_requests.html",context=data) + +# def add_requests(request,id,pj_id): +# if request.method == 'POST': +# obj=request.POST + + +# if(id=='0') : +# projectid = pj_id +# reqtype = obj.get('request_type') +# stats =0 +# desc= obj.get('description') +# amt= obj.get('amount') + +# check= projects.objects.filter(project_id=projectid) +# if not check.exists(): +# messages.error(request,"Request not added, no such project exists") +# return render(request,"rs/add_fund_requests.html") + +# check= projects.objects.filter(project_id= projectid, project_investigator_id__username=pi_id) +# if not check.exists(): +# messages.error(request,"Request not added, no such project investigator exists") +# return render(request,"rs/add_fund_requests.html") + + +# pi_id_instance=User.objects.get(username= request.user.username ) +# project_instance=projects.objects.get(project_id=projectid) + +# obj= requests.objects.all() +# if len(obj)==0 : +# requestid=1 + +# else : +# requestid= obj[0].request_id+1 + +# requests.objects.create( +# request_id=requestid, +# project_id=project_instance, +# request_type="funds", +# project_investigator_id=pi_id_instance, +# status=stats, description=desc, amount= amt +# ) +# rspc_inventory.objects.create( +# inventory_id=requestid, +# project_id=project_instance, +# project_investigator_id=pi_id_instance, +# status=stats, +# description=desc, amount= amt +# ) +# messages.success(request,"Request added successfully") +# return render(request,"rs/add_fund_requests.html") + +# if(id=='1'): +# projectid = obj.get('project_id') +# pi_id = obj.get('project_investigator_id') +# stats = obj.get('status') +# desc= obj.get('description') + +# obj= requests.objects.all() +# if len(obj)==0 : +# requestid=1 + +# else : +# requestid= obj[0].request_id+1 + + +# check= projects.objects.filter(project_id=projectid) +# if not check.exists(): +# messages.error(request,"Request not added, no such project exists") +# return render(request,"rs/add_fund_requests.html") + +# check= projects.objects.filter(project_id= projectid, project_investigator_id__username=pi_id) +# if not check.exists(): +# messages.error(request,"Request not added, no such project investigator exists") +# return render(request,"rs/add_fund_requests.html") + +# pi_id_instance=User.objects.get(username=pi_id) +# project_instance=projects.objects.get(project_id=projectid) + +# requests.objects.create( +# request_id=requestid, +# project_id=project_instance, +# request_type="staff", +# project_investigator_id=pi_id_instance, +# description=desc +# ) +# messages.success(request,"Request added successfully") +# return redirect("/research_procedures") +# return render(request, "rs/add_requests.html") + + + +def view_projects(request): + queryset= projects.objects.all() + + rspc_admin = HoldsDesignation.objects.get(designation__name="rspc_admin") + rspc_admin =rspc_admin.user.username + if request.user.username == rspc_admin: + data= { + "projects": queryset, + "username": request.user.username, + } + return render(request,"rs/view_projects_rspc.html", context= data) + + queryset= projects.objects.filter(project_investigator_id__username= request.user.username) + + data= { + "projects": queryset, + "username": request.user.username, + } + # print(data) + # print(request.user.username) + + return Response(data, status=status.HTTP_200_OK) + +# def view_requests(request,id): + +# if id== '1': +# queryset= requests.objects.filter(request_type= "staff") +# elif id== '0': +# rspc_admin = HoldsDesignation.objects.get(designation__name="rspc_admin") +# rspc_admin =rspc_admin.user.username +# if request.user.username == rspc_admin : +# queryset= rspc_inventory.objects.all() +# data= { +# "requests": queryset, +# "username": request.user.username +# } +# return render(request,"rs/view_requests.html", context= data) + + +# queryset= rspc_inventory.objects.filter(project_investigator_id = request.user.username ) +# else: +# render(request,"/404.html") + +# data= { +# "requests": queryset, +# "username": request.user.username, +# "id":id, +# } + +# # print(data) +# # print(request.user.username) + +# return render(request,"rs/view_requests.html", context= data) + +# def view_financial_outlay(request,pid): + +# table_data=financial_outlay.objects.filter(project_id=pid).order_by('category', 'sub_category') +# project= projects.objects.get(project_id=pid); + +# years = set(table_data.values_list('year', flat=True)) + +# category_data = {} +# for category in table_data.values_list('category', flat=True).distinct(): +# category_data[category] = table_data.filter(category=category) + + +# data = { +# 'table_title': 'Total Budget Outlay', +# 'table_caption': '...', # Add caption if needed +# 'project_name':project.project_name, +# 'years': list(years), +# 'category_data': category_data, +# } + +# # print(data) +# return render(request,"rs/view_financial_outlay.html", context= data) + +# def submit_closure_report(request,id): +# id= int(id) +# obj= projects.objects.get(project_id=id) +# obj.status= 1; +# obj.save() + +# queryset= projects.objects.filter(project_investigator_id = request.user.username) + +# # print(queryset) + +# data= { +# "projects": queryset, +# "username": request.user.username +# } +# messages.success(request,"Closure report submitted successfully") +# return render(request,"rs/view_projects_rspc.html",context=data) + +# def view_project_inventory(request,pj_id): +# pj_id=int(pj_id) +# queryset= requests.objects.filter(project_id=pj_id,request_type="funds") + + +# # print(queryset) + +# data= { +# "requests": queryset, +# "username": request.user.username +# } +# return render(request,"rs/view_project_inventory.html",context=data) + +# def view_project_staff(request,pj_id): +# pj_id=int(pj_id) +# queryset= requests.objects.filter(project_id=pj_id,request_type="staff") + + +# # print(queryset) + +# data= { +# "requests": queryset, +# "username": request.user.username +# } +# return render(request,"rs/view_project_staff.html",context=data) + +# def projectss(request): +# return render(request,"rs/projects.html") + +# def view_project_info(request,id): +# id= int(id) +# obj= projects.objects.get(project_id=id) + + + +# data = { +# "project": obj, +# } + +# return render(request,"rs/view_project_info.html", context= data) + +# def financial_outlay_form(request,pid): +# pid= int(pid) +# project= projects.objects.get(project_id=pid); +# categories = category.objects.all().distinct(); + +# categories_with_subcategories = category.objects.values('category_name', 'sub_category_name') + +# # Organize the data into a dictionary +# category_subcategory_map = {} +# for item in categories_with_subcategories: +# category_name = item['category_name'] +# subcategory = item['sub_category_name'] +# if category_name in category_subcategory_map: +# category_subcategory_map[category_name].append(subcategory) +# else: +# category_subcategory_map[category_name] = [subcategory] + +# # Pass the organized data to the template + +# data = { +# "project_id": project.project_id, +# "project_name":project.project_name, +# "years": list(range(1, int(project.years) + 1)), +# "category_subcategory_map": category_subcategory_map + +# } + +# return render(request,"rs/add_financial_outlay.html", context= data) +# # return render(request,"rs/add_financial_outlay.html", context= data) + + + +# def add_staff_details(request, pid): +# if request.method == 'POST': +# obj = request.POST +# for key, value in obj.items(): +# if key.startswith('staff_id'): +# year_count = key.split('-')[-2] +# staff_count = key.split('-')[-1] +# staff_id_key = f'staff_id-{year_count}-{staff_count}' +# staff_name_key = f'staff_name-{year_count}-{staff_count}' +# qualification_key = f'qualification-{year_count}-{staff_count}' +# stipend_key = f'stipend-{year_count}-{staff_count}' +# year = year_count +# staff_id = obj.get(staff_id_key, '').strip() +# staff_name = obj.get(staff_name_key, '').strip() +# qualification = obj.get(qualification_key, '').strip() +# stipend = obj.get(stipend_key, '').strip() +# project_instance = projects.objects.get(project_id=pid) +# # print(type(staff_id)) +# ob = staff_allocations.objects.all() + +# if len(ob) == 0: +# fid = 1 +# else: +# fid = ob[0].staff_allocation_id + 1 + +# staff_id_instance = User.objects.get(username=staff_id) + + +# staff_allocations.objects.create( +# staff_allocation_id=fid, +# project_id=project_instance, +# staff_id=staff_id_instance, +# staff_name=staff_name, +# qualification=qualification, +# year=year, +# stipend=stipend +# ) + +# return redirect("/research_procedures/view_staff_details/"+str(pid)) + +# project = projects.objects.get(project_id=pid) + +# years_passed = int((datetime.datetime.now().date() - project.start_date).days / 365.25) + +# data = { +# "project_id": project.project_id, +# "project_name" : project.project_name, +# "years": list(range(1, int(project.years) + 1)), +# "year": int(years_passed) + 1, +# } + +# return render(request, "rs/add_staff_details.html", context=data) + + +# def view_staff_details(request,pid): + +# staff_records = staff_allocations.objects.filter(project_id=pid) + +# # Initialize a dictionary to hold data year-wise +# data_by_year = {} +# project = projects.objects.get(project_id=pid) + +# # Iterate through each staff record +# for record in staff_records: +# year = record.year +# if year not in data_by_year: +# data_by_year[year] = [] +# data_by_year[year].append({ +# 'staff_id' : record.staff_id, +# 'staff_name': record.staff_name, +# 'qualification': record.qualification, +# 'stipend': record.stipend +# }) +# # Pass the organized data to the template +# context = { +# 'data_by_year': data_by_year, +# 'project_name':project.project_name +# } +# rspc_admin = HoldsDesignation.objects.get(designation__name="rspc_admin") + + +# return render(request, "rs/view_staff_details.html", context) + + + +# def add_financial_outlay(request,pid): +# if request.method == 'POST': + +# project = projects.objects.get(project_id=pid) +# project.financial_outlay_status = 1 +# project.save() + +# obj = request.POST +# for key, value in obj.items(): +# if key.startswith('category-select'): +# year_count = key.split('-')[-2] +# category_count = key.split('-')[-1] +# subcategory_key = f'subcategory-select-{year_count}-{category_count}' +# amount_key = f'amount-{year_count}-{category_count}' + +# category = value +# subcategory = obj.get(subcategory_key, ['']) +# amount = obj.get(amount_key, ['']) +# year = int(year_count) + +# # print(year) +# # print(amount) +# # print(subcategory) +# # print(category) +# project_instance=projects.objects.get(project_id=pid) + + +# ob= financial_outlay.objects.all() +# if len(ob)==0 : +# fid=1 + +# else : +# fid= ob[0].financial_outlay_id+1 +# financial_outlay.objects.create( +# financial_outlay_id=fid, +# project_id=project_instance, +# category=category, +# sub_category=subcategory, +# amount=amount, +# year=year, +# status=0, +# staff_limit=0 +# ) + + +# return redirect("/research_procedures/view_financial_outlay/"+str(pid)) + +# def inbox(request): + + +# user_designation= getDesignation(request.user.username) +# print(user_designation) +# data = view_inbox(request.user.username,user_designation, "research_procedures") +# files= [] +# count =0 +# for i in data: +# count+=1 +# file1= File.objects.get(id=i['id']) +# files.append((count, file1)) + + +# data={ + +# "inbox": data, +# "files": files +# } +# # print(data) +# return render(request, "rs/inbox.html",context= data) + +# def add_staff_request(request,id): +# if request.method == 'POST': +# obj= request.POST +# projectid = int(id) +# receiver = obj.get('receiver') + + +# sender = request.user.username +# file_to_forward= request.FILES.get('file_to_forward') +# project_instance=projects.objects.get(project_id=projectid) +# receiver_instance=User.objects.get(username=receiver) +# sender_designation= HoldsDesignation.objects.get(user= request.user).designation +# receiver_designation = HoldsDesignation.objects.get(user= receiver_instance).designation + +# file_x= create_file( +# uploader=sender, +# uploader_designation=sender_designation, +# receiver= receiver_instance.username, +# receiver_designation=receiver_designation, +# src_module="research_procedures", +# src_object_id= projectid, +# file_extra_JSON= { "message": "Staff request added ("+ str(projectid)+ ")"}, +# attached_file= file_to_forward, +# ) +# messages.success(request,"Staff request added successfully") + +# return redirect("/research_procedures/view_project_info/"+ str(projectid)) + +# def view_request_inbox(request): +# user_designation= getDesignation(request.user.username) +# print(user_designation) +# data = view_inbox(request.user.username,user_designation, "research_procedures") +# files= [] +# count =0 +# for i in data: +# count+=1 +# file1= File.objects.get(id=i['id']) +# files.append((count, file1)) + + +# data={ + +# "inbox": data, +# "files": files +# } +# # print(data) +# # return render(request, "rs/view_request_inbox.html",context= data) +# return Response(data, status=status.HTTP_200_OK) + + +# def forward_request(request): +# if request.method == 'POST': +# obj= request.POST +# fileid = int(obj.get('file_id')) +# receiver = obj.get('receiver') +# message= obj.get('message') +# receiver_instance= User.objects.get(username=receiver) +# receiver_designation= HoldsDesignation.objects.get(user=receiver_instance).designation +# sender = request.user.username + +# filex= get_file_by_id(fileid) + +# file2=create_file( +# uploader=sender, +# uploader_designation= getDesignation(sender), +# receiver= receiver, +# receiver_designation=receiver_designation, +# src_module="research_procedures", +# src_object_id= filex.src_object_id, +# file_extra_JSON= { "message": message}, +# attached_file= filex.upload_file, +# ) + +# delete_file(fileid) +# messages.success(request,"Request forwarded successfully") +# return redirect("/research_procedures/view_request_inbox") + + +# return redirect("/research_procedures/view_request_inbox") + +# def getDesignation(us): +# user_inst = User.objects.get(username= us) +# user_designation= HoldsDesignation.objects.get(user= user_inst).designation +# return user_designation + +# def get_file_by_id(id): +# file1= File.objects.get(id=id) +# print(file1) +# return file1 + +# def delete_file(id): +# file1= File.objects.get(id=id) +# tracking= Tracking.objects.get(file_id=file1) +# tracking.delete() +# file1.delete() +# return + + + + -# class PatentViewSet(ModelViewSet): -# queryset = Patent.objects.all() -# serializer_class = PatentSerializer -# permission_classes = [ IsAuthenticatedOrReadOnly ] \ No newline at end of file diff --git a/FusionIIIT/applications/research_procedures/urls.py b/FusionIIIT/applications/research_procedures/urls.py index 0986d7f36..85e4b2350 100644 --- a/FusionIIIT/applications/research_procedures/urls.py +++ b/FusionIIIT/applications/research_procedures/urls.py @@ -5,7 +5,7 @@ app_name="research_procedures" urlpatterns = [ - url(r'^$', views.projectss, name='patent_registration'), + url(r'^$', views.view_projects, name='patent_registration'), url(r'^update$', views.patent_status_update, name='patent_status_update'), url(r'^research_group$', views.research_group_create, name='research_group_create'), url(r'^project_insert$',views.project_insert,name='project_insert'), diff --git a/FusionIIIT/applications/research_procedures/views.py b/FusionIIIT/applications/research_procedures/views.py index b4d3fbd6f..19a530594 100644 --- a/FusionIIIT/applications/research_procedures/views.py +++ b/FusionIIIT/applications/research_procedures/views.py @@ -343,7 +343,6 @@ def view_projects(request): "username": request.user.username, } # print(data) - # print(request.user.username) return render(request,"rs/view_projects_rspc.html", context= data) @@ -376,7 +375,7 @@ def view_requests(request,id): # print(data) # print(request.user.username) - + return render(request,"rs/view_requests.html", context= data) def view_financial_outlay(request,pid): @@ -571,16 +570,7 @@ def view_staff_details(request,pid): 'project_name':project.project_name } rspc_admin = HoldsDesignation.objects.get(designation__name="rspc_admin") - filex= create_file(uploader=request.user.username, - uploader_designation="rspc_admin", - receiver= rspc_admin.user.username, - receiver_designation="rspc_admin", - src_module="research_procedures", - src_object_id= pid, - file_extra_JSON= {"false": "false", "roll": 21}, - attached_file= None, - ) - # print(filex) + return render(request, "rs/view_staff_details.html", context) @@ -638,19 +628,21 @@ def inbox(request): user_designation= getDesignation(request.user.username) print(user_designation) - data = view_inbox(request.user.username,user_designation, "research_procedures") - files= [] - count =0 - for i in data: - count+=1 - file1= File.objects.get(id=i['id']) - files.append((count, file1)) + # data = view_inbox(request.user.username,user_designation, "research_procedures") + user_obj = get_user_by_username(request.user.username) + + data= Tracking.objects.filter(receiver_id=user_obj, receive_design=user_designation, file_id__src_module="research_procedures") + print(data) + # files= [] + # count =0 + # for i in data: + # count+=1 + # file1= File.objects.get(id=i['id']) + # files.append((count, file1)) data={ - "inbox": data, - "files": files } # print(data) return render(request, "rs/inbox.html",context= data) @@ -687,6 +679,7 @@ def view_request_inbox(request): user_designation= getDesignation(request.user.username) print(user_designation) data = view_inbox(request.user.username,user_designation, "research_procedures") + print(data) files= [] count =0 for i in data: @@ -750,6 +743,10 @@ def delete_file(id): file1.delete() return +def get_user_by_username(username): + return User.objects.get(username=username) + + diff --git a/FusionIIIT/templates/dashboard/modules.html b/FusionIIIT/templates/dashboard/modules.html index 8c2ca9174..c4cfd5b9c 100644 --- a/FusionIIIT/templates/dashboard/modules.html +++ b/FusionIIIT/templates/dashboard/modules.html @@ -224,7 +224,7 @@
- +
diff --git a/FusionIIIT/templates/rs/display_add_financial_outlay.html b/FusionIIIT/templates/rs/display_add_financial_outlay.html index e3eac78c2..358aed8de 100644 --- a/FusionIIIT/templates/rs/display_add_financial_outlay.html +++ b/FusionIIIT/templates/rs/display_add_financial_outlay.html @@ -1,9 +1,9 @@ -{% extends 'globals/base.html' %} -{% load static %} -{% block title %} -IPR -{% endblock %} -{% block projects %} +{% extends 'globals/base.html' %} +{% load static %} +{% block title %} +IPR +{% endblock %} +{% block projects %} {% block body %} + {% endfor %}

- + -{% endblock %} +{% endblock %} {% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/rs/display_add_projects.html b/FusionIIIT/templates/rs/display_add_projects.html index 48c943fc4..e2a1342f1 100644 --- a/FusionIIIT/templates/rs/display_add_projects.html +++ b/FusionIIIT/templates/rs/display_add_projects.html @@ -9,134 +9,184 @@ {% block projects %} {% block body %} - - - - +
- +
-
- {% csrf_token %} -
-
- -
- -
-
- - + + {% csrf_token %} +
+
+
- -
-
-
- - - -
-
- - -
+ +
+
+ + +
+ +
+
+
+ + + +
+
+ +
-
-
-
- - -
-
- - -
+
+
+
+
+ + +
+
+ +
-
-
-
- - -
-
- - -
+
+
+
+
+ + +
+
+ +
- {% comment %}
- - -
{% endcomment %} -
-
+ {% comment %}
+ + +
{% endcomment %} +
+ - +

- + - -
-
+ +
- +
{% endblock %} -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/FusionIIIT/templates/rs/display_add_staff_details.html b/FusionIIIT/templates/rs/display_add_staff_details.html index ce50e6e5b..abe416683 100644 --- a/FusionIIIT/templates/rs/display_add_staff_details.html +++ b/FusionIIIT/templates/rs/display_add_staff_details.html @@ -29,7 +29,7 @@ var remove_button_id = '.'+'remove_button-'+year; var remove_button = clonedSection.querySelector(remove_button_id); - remove_button.setAttribute('class','remove_button-'+year); + remove_button.setAttribute('class','remove_button-'+year + " ui grey button"); var fieldcount= document.querySelectorAll(staff_selection_id).length+1; console.log(fieldcount + " field count") var newName = 'staff_id-'+ year+ '-' + fieldcount; // Generate unique ID @@ -47,18 +47,19 @@ clonedstaff_id.setAttribute('id', newId); clonedstaff_name.setAttribute('id', newstaff_name_id); clonedqualification.setAttribute('id', newqualification_id); - clonedyear.setAttribute('id', newyear_id); + //clonedyear.setAttribute('id', newyear_id); clonedstipend.setAttribute('id', newstipend_id); remove_button.setAttribute('id', newRemoveButton); clonedstaff_id.setAttribute('name', newName); clonedstaff_name.setAttribute('name', newstaff_name); clonedqualification.setAttribute('name', newqualification); - clonedyear.setAttribute('name', newyear); + //clonedyear.setAttribute('name', newyear); clonedstipend.setAttribute('name', newstipend); var container_id='container-'+year console.log(container_id) var clonedContainer = document.getElementById(container_id); - clonedContainer.setAttribute('id',container_id) + clonedContainer.setAttribute('id',container_id); + clonedContainer.appendChild(clonedSection); var staff_count_id = 'staff-count-'+year; var staff_count = document.getElementById(staff_count_id); @@ -98,10 +99,15 @@ margin-bottom: 10px; /* Add margin between form groups */ } -button { +.button { + border-radius: 5px; margin-left: 10px; /* Add space between form and button */ } +.ui.grey.button:hover { + background-color: #4c4c5c; /* Change button color on hover */ +} +