Skip to content

Commit a03c083

Browse files
authored
Merge pull request #55 from joetho786/admin-V3
removed iitj cas from export
2 parents 1b04409 + 3e78ec7 commit a03c083

File tree

3 files changed

+69
-41
lines changed

3 files changed

+69
-41
lines changed

dashboard/urls.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
from django.urls import path
2-
from .views import user_info, change_registration, update_event_state, event_info, event_type_info, events_info, users_info, mass_mail
2+
from .views import user_info, change_registration, update_event_state, event_info, downloadfile, event_type_info, events_info, users_info, mass_mail
33

4+
# app_name = 'dashboard'
45
urlpatterns = [
56
path('users/<int:userid>/', user_info, name='user_info'),
67
path('users/', users_info, name='users_info'),
8+
path('downloadfile/<slug:filename>/', downloadfile, name='downloadfile'),
79
path('updateevents/<slug:type>/<int:eventid>/<slug:redirect_url_name>/', update_event_state, name='update_event_state'),
810
path('events/', events_info, name='events_info'),
911
path('events/<slug:type>/', event_type_info, name='event_type_info'),

dashboard/views.py

Lines changed: 64 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from django.core.mail import EmailMultiAlternatives
99
from django.contrib import messages
1010
from .forms import EmailForm
11-
from django.http import HttpResponseRedirect
11+
from django.http import HttpResponseRedirect, Http404, HttpResponse
1212
from django.urls import reverse
1313
# Create your views here.
1414
sendMailID = settings.EMAIL_HOST_USER
@@ -22,30 +22,18 @@ def update_event_state(request, type, eventid, redirect_url_name):
2222
return HttpResponseRedirect(reverse(redirect_url_name))
2323

2424

25-
@user_passes_test(lambda u: u.is_staff, login_url='/admin/login/?next=/dashboard/users/')
26-
def users_info(request):
27-
users = ExtendedUser.objects.all()
28-
wbname = 'Campus Ambassador List.xlsx'
25+
def get_ca_export(filename):
26+
wbname = filename
2927
wbpath = os.path.join(settings.MEDIA_ROOT, os.path.join('workbooks', wbname))
3028
workbook = xlsxwriter.Workbook(wbpath)
31-
wbname2 = 'User List.xlsx'
32-
wbpath2 = os.path.join(settings.MEDIA_ROOT, os.path.join('workbooks', wbname2))
33-
workbook2 = xlsxwriter.Workbook(wbpath2)
3429
ca_list = ExtendedUser.objects.filter(ambassador=True)
3530
worksheet = workbook.add_worksheet('CA List')
36-
worksheet2 = workbook2.add_worksheet('Users List')
3731
col_center = workbook.add_format({
3832
'align': 'center',
3933
'valign': 'vcenter',
4034
})
41-
col_center2 = workbook2.add_format({
42-
'align': 'center',
43-
'valign': 'vcenter',
44-
})
4535
worksheet.set_column(0, 100, 30, col_center)
4636
worksheet.set_row(0, 30)
47-
worksheet2.set_column(0, 100, 30, col_center2)
48-
worksheet2.set_row(0, 30)
4937
merge_format = workbook.add_format({
5038
'bold': 1,
5139
'border': 1,
@@ -54,20 +42,50 @@ def users_info(request):
5442
'bg_color': 'gray',
5543
'font_size': 20
5644
})
57-
merge_format2 = workbook2.add_format({
45+
header_format = workbook.add_format({
5846
'bold': 1,
59-
'border': 1,
6047
'align': 'center',
6148
'valign': 'vcenter',
62-
'bg_color': 'gray',
63-
'font_size': 20
49+
'font_color': 'white',
50+
'bg_color': 'black'
6451
})
65-
header_format = workbook.add_format({
52+
row = 2
53+
worksheet.merge_range('A1:E1', 'Campus Ambassadors', merge_format)
54+
worksheet.write(1, 0, "Email", header_format)
55+
worksheet.write(1, 1, "Name", header_format)
56+
worksheet.write(1, 2, "Referral Id", header_format)
57+
worksheet.write(1, 3, "Contact", header_format)
58+
worksheet.write(1, 4, "College", header_format)
59+
for ca in ca_list:
60+
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():
61+
worksheet.write(row, 0, ca.user.email)
62+
worksheet.write(row, 1, ca.first_name + ' ' + ca.last_name)
63+
worksheet.write(row, 2, ca.invite_referral)
64+
worksheet.write(row, 3, ca.contact)
65+
worksheet.write(row, 4, ca.college)
66+
row += 1
67+
workbook.close()
68+
69+
70+
def get_all_user_export(filename):
71+
users = ExtendedUser.objects.all()
72+
wbname2 = filename
73+
wbpath2 = os.path.join(settings.MEDIA_ROOT, os.path.join('workbooks', wbname2))
74+
workbook2 = xlsxwriter.Workbook(wbpath2)
75+
worksheet2 = workbook2.add_worksheet('Users List')
76+
col_center2 = workbook2.add_format({
77+
'align': 'center',
78+
'valign': 'vcenter',
79+
})
80+
worksheet2.set_column(0, 100, 30, col_center2)
81+
worksheet2.set_row(0, 30)
82+
merge_format2 = workbook2.add_format({
6683
'bold': 1,
84+
'border': 1,
6785
'align': 'center',
6886
'valign': 'vcenter',
69-
'font_color': 'white',
70-
'bg_color': 'black'
87+
'bg_color': 'gray',
88+
'font_size': 20
7189
})
7290
header_format2 = workbook2.add_format({
7391
'bold': 1,
@@ -86,13 +104,6 @@ def users_info(request):
86104
# 'align': 'center',
87105
# 'valign': 'vcenter',
88106
# })
89-
90-
worksheet.merge_range('A1:E1', 'Campus Ambassadors', merge_format)
91-
worksheet.write(1, 0, "Email", header_format)
92-
worksheet.write(1, 1, "Name", header_format)
93-
worksheet.write(1, 2, "Referral Id", header_format)
94-
worksheet.write(1, 3, "Contact", header_format)
95-
worksheet.write(1, 4, "College", header_format)
96107
worksheet2.merge_range('A1:G1', 'User List', merge_format2)
97108
worksheet2.write(1, 0, "Email", header_format2)
98109
worksheet2.write(1, 1, "Name", header_format2)
@@ -102,7 +113,7 @@ def users_info(request):
102113
worksheet2.write(1, 5, "College", header_format2)
103114
worksheet2.write(1, 6, "Current Year", header_format2)
104115
row2 = 2
105-
row = 2
116+
106117
for user in users:
107118
worksheet2.write(row2, 0, user.user.email)
108119
worksheet2.write(row2, 1, user.first_name + ' ' + user.last_name)
@@ -113,14 +124,29 @@ def users_info(request):
113124
worksheet2.write(row2, 6, user.current_year)
114125
row2 += 1
115126
workbook2.close()
116-
for ca in ca_list:
117-
worksheet.write(row, 0, ca.user.email)
118-
worksheet.write(row, 1, ca.first_name + ' ' + ca.last_name)
119-
worksheet.write(row, 2, ca.invite_referral)
120-
worksheet.write(row, 3, ca.contact)
121-
worksheet.write(row, 4, ca.college)
122-
row += 1
123-
workbook.close()
127+
128+
129+
@user_passes_test(lambda u: u.is_staff, login_url='/admin/login/?next=/dashboard/users/')
130+
def downloadfile(request, filename):
131+
file_path = os.path.join(settings.MEDIA_ROOT, os.path.join('workbooks', filename))
132+
if filename == "User_List":
133+
get_all_user_export(filename + '.xlsx')
134+
elif filename == "Campus_Ambassador_List":
135+
get_ca_export(filename + '.xlsx')
136+
file_path += '.xlsx'
137+
if os.path.exists(file_path):
138+
with open(file_path, 'rb') as fh:
139+
response = HttpResponse(fh.read(), content_type="application/vnd.ms-excel")
140+
response['Content-Disposition'] = 'inline; filename=' + os.path.basename(file_path)
141+
return response
142+
raise Http404
143+
144+
145+
@user_passes_test(lambda u: u.is_staff, login_url='/admin/login/?next=/dashboard/users/')
146+
def users_info(request):
147+
users = ExtendedUser.objects.all()
148+
wbname = 'User_List'
149+
wbname2 = 'Campus_Ambassador_List'
124150
return render(request, 'dashboard/users_info.html', {'users': users, 'wbname': wbname, 'wbname2': wbname2})
125151

126152

templates/dashboard/users_info.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,9 +132,9 @@
132132

133133
<h1>All Users</h1>
134134
<hr>
135-
<span> <i class="fas fa-download"></i> <a href="{% get_media_prefix %}workbooks/{{ wbname2 }}" download="{{ wbname2 }}"> Download All Users list</a></span>
135+
<span> <i class="fas fa-download"></i> <a href="{% url 'downloadfile' wbname %}"> Download All Users list</a></span>
136136
<br>
137-
<span> <i class="fas fa-download"></i> <a href="{% get_media_prefix %}workbooks/{{ wbname }}" download="{{ wbname }}"> Download Campus Ambassador list</a></span>
137+
<span> <i class="fas fa-download"></i> <a href="{% url 'downloadfile' wbname2 %}"> Download Campus Ambassador list</a></span>
138138
<div class="card mb-3">
139139
<div class="card-header">
140140
<i class="fas fa-table"></i>

0 commit comments

Comments
 (0)