Skip to content

Commit

Permalink
Merge pull request #55 from joetho786/admin-V3
Browse files Browse the repository at this point in the history
removed iitj cas from export
  • Loading branch information
Sahil1479 authored Feb 11, 2022
2 parents 1b04409 + 3e78ec7 commit a03c083
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 41 deletions.
4 changes: 3 additions & 1 deletion dashboard/urls.py
Original file line number Diff line number Diff line change
@@ -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/<int:userid>/', user_info, name='user_info'),
path('users/', users_info, name='users_info'),
path('downloadfile/<slug:filename>/', downloadfile, name='downloadfile'),
path('updateevents/<slug:type>/<int:eventid>/<slug:redirect_url_name>/', update_event_state, name='update_event_state'),
path('events/', events_info, name='events_info'),
path('events/<slug:type>/', event_type_info, name='event_type_info'),
Expand Down
102 changes: 64 additions & 38 deletions dashboard/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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,
Expand All @@ -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,
Expand All @@ -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)
Expand All @@ -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)
Expand All @@ -113,14 +124,29 @@ def users_info(request):
worksheet2.write(row2, 6, user.current_year)
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
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')
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)
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})


Expand Down
4 changes: 2 additions & 2 deletions templates/dashboard/users_info.html
Original file line number Diff line number Diff line change
Expand Up @@ -132,9 +132,9 @@

<h1>All Users</h1>
<hr>
<span> <i class="fas fa-download"></i> <a href="{% get_media_prefix %}workbooks/{{ wbname2 }}" download="{{ wbname2 }}"> Download All Users list</a></span>
<span> <i class="fas fa-download"></i> <a href="{% url 'downloadfile' wbname %}"> Download All Users list</a></span>
<br>
<span> <i class="fas fa-download"></i> <a href="{% get_media_prefix %}workbooks/{{ wbname }}" download="{{ wbname }}"> Download Campus Ambassador list</a></span>
<span> <i class="fas fa-download"></i> <a href="{% url 'downloadfile' wbname2 %}"> Download Campus Ambassador list</a></span>
<div class="card mb-3">
<div class="card-header">
<i class="fas fa-table"></i>
Expand Down

0 comments on commit a03c083

Please sign in to comment.