From 50a7344857b216e3714b92f2df1cca8cb5db4ac5 Mon Sep 17 00:00:00 2001 From: Joel Thomas Date: Thu, 10 Feb 2022 09:48:49 +0530 Subject: [PATCH 1/3] removed iitj ca details from export --- dashboard/views.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/dashboard/views.py b/dashboard/views.py index 5ee68ad..5945d47 100644 --- a/dashboard/views.py +++ b/dashboard/views.py @@ -114,12 +114,13 @@ def users_info(request): row2 += 1 workbook2.close() for ca in ca_list: - worksheet.write(row, 0, ca.user.email) - worksheet.write(row, 1, ca.first_name + ' ' + ca.last_name) - worksheet.write(row, 2, ca.invite_referral) - worksheet.write(row, 3, ca.contact) - worksheet.write(row, 4, ca.college) - row += 1 + if 'iitj' not in ca.college.lower() and 'iit jodhpur' not in ca.college.lower(): + worksheet.write(row, 0, ca.user.email) + worksheet.write(row, 1, ca.first_name + ' ' + ca.last_name) + worksheet.write(row, 2, ca.invite_referral) + worksheet.write(row, 3, ca.contact) + worksheet.write(row, 4, ca.college) + row += 1 workbook.close() return render(request, 'dashboard/users_info.html', {'users': users, 'wbname': wbname, 'wbname2': wbname2}) From acda0f07b3fff47ae347f6c3bdf89356a1e7a75c Mon Sep 17 00:00:00 2001 From: Joel Thomas Date: Thu, 10 Feb 2022 14:38:45 +0530 Subject: [PATCH 2/3] modified user export modelled it to reduce loading time --- dashboard/urls.py | 4 +- dashboard/views.py | 105 +++++++++++++++++----------- templates/dashboard/users_info.html | 4 +- 3 files changed, 71 insertions(+), 42 deletions(-) diff --git a/dashboard/urls.py b/dashboard/urls.py index 403baf7..4d16310 100644 --- a/dashboard/urls.py +++ b/dashboard/urls.py @@ -1,9 +1,11 @@ from django.urls import path -from .views import user_info, change_registration, update_event_state, event_info, event_type_info, events_info, users_info, mass_mail +from .views import user_info, change_registration, update_event_state, event_info, downloadfile, event_type_info, events_info, users_info, mass_mail +# app_name = 'dashboard' urlpatterns = [ path('users//', user_info, name='user_info'), path('users/', users_info, name='users_info'), + path('downloadfile//', downloadfile, name='downloadfile'), path('updateevents////', update_event_state, name='update_event_state'), path('events/', events_info, name='events_info'), path('events//', event_type_info, name='event_type_info'), diff --git a/dashboard/views.py b/dashboard/views.py index 5945d47..85e0356 100644 --- a/dashboard/views.py +++ b/dashboard/views.py @@ -8,7 +8,7 @@ from django.core.mail import EmailMultiAlternatives from django.contrib import messages from .forms import EmailForm -from django.http import HttpResponseRedirect +from django.http import HttpResponseRedirect, Http404, HttpResponse from django.urls import reverse # Create your views here. sendMailID = settings.EMAIL_HOST_USER @@ -22,30 +22,18 @@ def update_event_state(request, type, eventid, redirect_url_name): return HttpResponseRedirect(reverse(redirect_url_name)) -@user_passes_test(lambda u: u.is_staff, login_url='/admin/login/?next=/dashboard/users/') -def users_info(request): - users = ExtendedUser.objects.all() - wbname = 'Campus Ambassador List.xlsx' +def get_ca_export(filename): + wbname = filename wbpath = os.path.join(settings.MEDIA_ROOT, os.path.join('workbooks', wbname)) workbook = xlsxwriter.Workbook(wbpath) - wbname2 = 'User List.xlsx' - wbpath2 = os.path.join(settings.MEDIA_ROOT, os.path.join('workbooks', wbname2)) - workbook2 = xlsxwriter.Workbook(wbpath2) ca_list = ExtendedUser.objects.filter(ambassador=True) worksheet = workbook.add_worksheet('CA List') - worksheet2 = workbook2.add_worksheet('Users List') col_center = workbook.add_format({ 'align': 'center', 'valign': 'vcenter', }) - col_center2 = workbook2.add_format({ - 'align': 'center', - 'valign': 'vcenter', - }) worksheet.set_column(0, 100, 30, col_center) worksheet.set_row(0, 30) - worksheet2.set_column(0, 100, 30, col_center2) - worksheet2.set_row(0, 30) merge_format = workbook.add_format({ 'bold': 1, 'border': 1, @@ -54,20 +42,50 @@ def users_info(request): 'bg_color': 'gray', 'font_size': 20 }) - merge_format2 = workbook2.add_format({ + header_format = workbook.add_format({ 'bold': 1, - 'border': 1, 'align': 'center', 'valign': 'vcenter', - 'bg_color': 'gray', - 'font_size': 20 + 'font_color': 'white', + 'bg_color': 'black' }) - header_format = workbook.add_format({ + row = 2 + worksheet.merge_range('A1:E1', 'Campus Ambassadors', merge_format) + worksheet.write(1, 0, "Email", header_format) + worksheet.write(1, 1, "Name", header_format) + worksheet.write(1, 2, "Referral Id", header_format) + worksheet.write(1, 3, "Contact", header_format) + worksheet.write(1, 4, "College", header_format) + for ca in ca_list: + if 'iitj' not in ca.college.lower() and 'iit jodhpur' not in ca.college.lower() and 'Indian Institute of Technology Jodhpur' not in ca.college.lower() and 'Indian Institute of Technology, Jodhpur' not in ca.college.lower(): + worksheet.write(row, 0, ca.user.email) + worksheet.write(row, 1, ca.first_name + ' ' + ca.last_name) + worksheet.write(row, 2, ca.invite_referral) + worksheet.write(row, 3, ca.contact) + worksheet.write(row, 4, ca.college) + row += 1 + workbook.close() + + +def get_all_user_export(filename): + users = ExtendedUser.objects.all() + wbname2 = filename + wbpath2 = os.path.join(settings.MEDIA_ROOT, os.path.join('workbooks', wbname2)) + workbook2 = xlsxwriter.Workbook(wbpath2) + worksheet2 = workbook2.add_worksheet('Users List') + col_center2 = workbook2.add_format({ + 'align': 'center', + 'valign': 'vcenter', + }) + worksheet2.set_column(0, 100, 30, col_center2) + worksheet2.set_row(0, 30) + merge_format2 = workbook2.add_format({ 'bold': 1, + 'border': 1, 'align': 'center', 'valign': 'vcenter', - 'font_color': 'white', - 'bg_color': 'black' + 'bg_color': 'gray', + 'font_size': 20 }) header_format2 = workbook2.add_format({ 'bold': 1, @@ -86,13 +104,6 @@ def users_info(request): # 'align': 'center', # 'valign': 'vcenter', # }) - - worksheet.merge_range('A1:E1', 'Campus Ambassadors', merge_format) - worksheet.write(1, 0, "Email", header_format) - worksheet.write(1, 1, "Name", header_format) - worksheet.write(1, 2, "Referral Id", header_format) - worksheet.write(1, 3, "Contact", header_format) - worksheet.write(1, 4, "College", header_format) worksheet2.merge_range('A1:G1', 'User List', merge_format2) worksheet2.write(1, 0, "Email", header_format2) worksheet2.write(1, 1, "Name", header_format2) @@ -102,7 +113,7 @@ def users_info(request): worksheet2.write(1, 5, "College", header_format2) worksheet2.write(1, 6, "Current Year", header_format2) row2 = 2 - row = 2 + for user in users: worksheet2.write(row2, 0, user.user.email) worksheet2.write(row2, 1, user.first_name + ' ' + user.last_name) @@ -113,15 +124,31 @@ def users_info(request): worksheet2.write(row2, 6, user.current_year) row2 += 1 workbook2.close() - for ca in ca_list: - if 'iitj' not in ca.college.lower() and 'iit jodhpur' not in ca.college.lower(): - worksheet.write(row, 0, ca.user.email) - worksheet.write(row, 1, ca.first_name + ' ' + ca.last_name) - worksheet.write(row, 2, ca.invite_referral) - worksheet.write(row, 3, ca.contact) - worksheet.write(row, 4, ca.college) - row += 1 - workbook.close() + + +@user_passes_test(lambda u: u.is_staff, login_url='/admin/login/?next=/dashboard/users/') +def downloadfile(request, filename): + file_path = os.path.join(settings.MEDIA_ROOT, os.path.join('workbooks', filename)) + if filename == "User_List": + get_all_user_export(filename + '.xlsx') + elif filename == "Campus_Ambassador_List": + get_ca_export(filename + '.xlsx') + print(file_path) + file_path += '.xlsx' + if os.path.exists(file_path): + with open(file_path, 'rb') as fh: + response = HttpResponse(fh.read(), content_type="application/vnd.ms-excel") + response['Content-Disposition'] = 'inline; filename=' + os.path.basename(file_path) + print(response) + return response + raise Http404 + + +@user_passes_test(lambda u: u.is_staff, login_url='/admin/login/?next=/dashboard/users/') +def users_info(request): + users = ExtendedUser.objects.all() + wbname = 'User_List' + wbname2 = 'Campus_Ambassador_List' return render(request, 'dashboard/users_info.html', {'users': users, 'wbname': wbname, 'wbname2': wbname2}) diff --git a/templates/dashboard/users_info.html b/templates/dashboard/users_info.html index e061577..946ad03 100644 --- a/templates/dashboard/users_info.html +++ b/templates/dashboard/users_info.html @@ -132,9 +132,9 @@

All Users


- Download All Users list + Download All Users list
- Download Campus Ambassador list + Download Campus Ambassador list
From 3e78ec737a7693d32be339e29aedbb332ae1d929 Mon Sep 17 00:00:00 2001 From: Joel Thomas Date: Thu, 10 Feb 2022 16:25:01 +0530 Subject: [PATCH 3/3] fixed typo --- dashboard/views.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/dashboard/views.py b/dashboard/views.py index 85e0356..7c55b6b 100644 --- a/dashboard/views.py +++ b/dashboard/views.py @@ -57,7 +57,7 @@ def get_ca_export(filename): worksheet.write(1, 3, "Contact", header_format) worksheet.write(1, 4, "College", header_format) for ca in ca_list: - if 'iitj' not in ca.college.lower() and 'iit jodhpur' not in ca.college.lower() and 'Indian Institute of Technology Jodhpur' not in ca.college.lower() and 'Indian Institute of Technology, Jodhpur' not in ca.college.lower(): + if 'iitj' not in ca.college.lower() and 'iit jodhpur' not in ca.college.lower() and 'indian institute of technology jodhpur' not in ca.college.lower() and 'indian institute of technology, jodhpur' not in ca.college.lower(): worksheet.write(row, 0, ca.user.email) worksheet.write(row, 1, ca.first_name + ' ' + ca.last_name) worksheet.write(row, 2, ca.invite_referral) @@ -133,13 +133,11 @@ def downloadfile(request, filename): get_all_user_export(filename + '.xlsx') elif filename == "Campus_Ambassador_List": get_ca_export(filename + '.xlsx') - print(file_path) file_path += '.xlsx' if os.path.exists(file_path): with open(file_path, 'rb') as fh: response = HttpResponse(fh.read(), content_type="application/vnd.ms-excel") response['Content-Disposition'] = 'inline; filename=' + os.path.basename(file_path) - print(response) return response raise Http404