diff options
-rw-r--r-- | workshop_app/data/Basics_of_Python/Basics_of_Python.pdf | bin | 55260 -> 70333 bytes | |||
-rw-r--r-- | workshop_app/data/ISCP/Basics_of_Python.pdf | bin | 55260 -> 0 bytes | |||
-rw-r--r-- | workshop_app/data/ISCP/instructions-for-coordinators.pdf | bin | 0 -> 36506 bytes | |||
-rw-r--r-- | workshop_app/data/ISCP/instructions-for-participants.pdf | bin | 51627 -> 68177 bytes | |||
-rw-r--r-- | workshop_app/templates/workshop_app/create_workshop.html | 1 | ||||
-rw-r--r-- | workshop_app/templates/workshop_app/edit_profile.html | 1 | ||||
-rw-r--r-- | workshop_app/templates/workshop_app/manage.html | 1 | ||||
-rw-r--r-- | workshop_app/templates/workshop_app/my_workshops.html | 1 | ||||
-rw-r--r-- | workshop_app/templates/workshop_app/profile_updated.html | 1 | ||||
-rw-r--r-- | workshop_app/templates/workshop_app/scheduled_workshops.html | 63 | ||||
-rw-r--r-- | workshop_app/templates/workshop_app/view_profile.html | 1 | ||||
-rw-r--r-- | workshop_app/templates/workshop_app/view_workshoptype_list.html | 1 | ||||
-rw-r--r-- | workshop_app/urls.py | 1 | ||||
-rw-r--r-- | workshop_app/views.py | 65 | ||||
-rw-r--r-- | workshop_portal/settings.py | 4 |
15 files changed, 115 insertions, 25 deletions
diff --git a/workshop_app/data/Basics_of_Python/Basics_of_Python.pdf b/workshop_app/data/Basics_of_Python/Basics_of_Python.pdf Binary files differindex 00401d0..cd3e74c 100644 --- a/workshop_app/data/Basics_of_Python/Basics_of_Python.pdf +++ b/workshop_app/data/Basics_of_Python/Basics_of_Python.pdf diff --git a/workshop_app/data/ISCP/Basics_of_Python.pdf b/workshop_app/data/ISCP/Basics_of_Python.pdf Binary files differdeleted file mode 100644 index 00401d0..0000000 --- a/workshop_app/data/ISCP/Basics_of_Python.pdf +++ /dev/null diff --git a/workshop_app/data/ISCP/instructions-for-coordinators.pdf b/workshop_app/data/ISCP/instructions-for-coordinators.pdf Binary files differnew file mode 100644 index 0000000..7601616 --- /dev/null +++ b/workshop_app/data/ISCP/instructions-for-coordinators.pdf diff --git a/workshop_app/data/ISCP/instructions-for-participants.pdf b/workshop_app/data/ISCP/instructions-for-participants.pdf Binary files differindex 93a3e5d..25a03a7 100644 --- a/workshop_app/data/ISCP/instructions-for-participants.pdf +++ b/workshop_app/data/ISCP/instructions-for-participants.pdf diff --git a/workshop_app/templates/workshop_app/create_workshop.html b/workshop_app/templates/workshop_app/create_workshop.html index 3631bda..685b8ad 100644 --- a/workshop_app/templates/workshop_app/create_workshop.html +++ b/workshop_app/templates/workshop_app/create_workshop.html @@ -21,6 +21,7 @@ <li class="active"><a href="{{ URL_ROOT }}/create_workshop/">Create Workshop</a></li> <li ><a href="{{ URL_ROOT }}/view_workshoptype_list/"> Workshop List</a></li> <li ><a href="{{ URL_ROOT }}/my_workshops/">My Workshops</a></li> + <li><a href="{{ URL_ROOT }}/scheduled_workshops/">Scheduled Workshops</a></li> </ul> <ul class="nav navbar-nav navbar-right"> <li><a href="{{ URL_ROOT }}/view_profile/"><span class="glyphicon glyphicon-user"></span> Profile </a></li> diff --git a/workshop_app/templates/workshop_app/edit_profile.html b/workshop_app/templates/workshop_app/edit_profile.html index d9a39e1..5e01430 100644 --- a/workshop_app/templates/workshop_app/edit_profile.html +++ b/workshop_app/templates/workshop_app/edit_profile.html @@ -15,6 +15,7 @@ <li><a href="{{ URL_ROOT }}/create_workshop/">Create Workshop</a></li> <li><a href="{{ URL_ROOT }}/view_workshoptype_list/">Workshop List</a></li> <li><a href="{{ URL_ROOT }}/my_workshops/">My Workshops</a></li> + <li><a href="{{ URL_ROOT }}/scheduled_workshops/">Scheduled Workshops</a></li> </ul> {% else %} <div class="navbar-header"> diff --git a/workshop_app/templates/workshop_app/manage.html b/workshop_app/templates/workshop_app/manage.html index a390c8a..9aac809 100644 --- a/workshop_app/templates/workshop_app/manage.html +++ b/workshop_app/templates/workshop_app/manage.html @@ -10,6 +10,7 @@ <li ><a href="{{ URL_ROOT }}/create_workshop/">Create Workshop</a></li> <li ><a href="{{ URL_ROOT }}/view_workshoptype_list/"> Workshop List</a></li> <li ><a href="{{ URL_ROOT }}/my_workshops/">My Workshops</a></li> + <li><a href="{{ URL_ROOT }}/scheduled_workshops/">Scheduled Workshops</a></li> </ul> <ul class="nav navbar-nav navbar-right"> <li><a href="{{ URL_ROOT }}/view_profile/"><span class="glyphicon glyphicon-user"></span> Profile </a></li> diff --git a/workshop_app/templates/workshop_app/my_workshops.html b/workshop_app/templates/workshop_app/my_workshops.html index 92dc20f..16eefec 100644 --- a/workshop_app/templates/workshop_app/my_workshops.html +++ b/workshop_app/templates/workshop_app/my_workshops.html @@ -49,6 +49,7 @@ <li><a href="{{ URL_ROOT }}/create_workshop/">Create Workshop</a></li> <li><a href="{{ URL_ROOT }}/view_workshoptype_list/">Workshop List</a></li> <li class="active"><a href="{{ URL_ROOT }}/my_workshops/">My Workshops</a></li> + <li><a href="{{ URL_ROOT }}/scheduled_workshops/">Scheduled Workshops</a></li> </ul> {% else %} <div class="navbar-header"> diff --git a/workshop_app/templates/workshop_app/profile_updated.html b/workshop_app/templates/workshop_app/profile_updated.html index 610770a..e0aa3ad 100644 --- a/workshop_app/templates/workshop_app/profile_updated.html +++ b/workshop_app/templates/workshop_app/profile_updated.html @@ -15,6 +15,7 @@ <li><a href="{{ URL_ROOT }}/create_workshop/">Create Workshop</a></li> <li><a href="{{ URL_ROOT }}/view_workshoptype_details/"> Workshop List</a></li> <li><a href="{{ URL_ROOT }}/my_workshops/">My Workshops</a></li> + <li><a href="{{ URL_ROOT }}/scheduled_workshops/">Scheduled Workshops</a></li> </ul> {% else %} <div class="navbar-header"> diff --git a/workshop_app/templates/workshop_app/scheduled_workshops.html b/workshop_app/templates/workshop_app/scheduled_workshops.html new file mode 100644 index 0000000..7fcd2f7 --- /dev/null +++ b/workshop_app/templates/workshop_app/scheduled_workshops.html @@ -0,0 +1,63 @@ +{% extends 'workshop_app/base.html' %} + +{% block header %} + <nav class="navbar navbar-default navbar-custom"> + <div class="container-fluid"> + <div class="navbar-header"> + <a class="navbar-brand" href="{{ URL_ROOT }}/manage/">Home</a> + </div> + <ul class="nav navbar-nav"> + <li ><a href="{{ URL_ROOT }}/create_workshop/">Create Workshop</a></li> + <li ><a href="{{ URL_ROOT }}/view_workshoptype_list/"> Workshop List</a></li> + <li ><a href="{{ URL_ROOT }}/my_workshops/">My Workshops</a></li> + <li><a href="{{ URL_ROOT }}/scheduled_workshops/">Scheduled Workshops</a></li> + </ul> + <ul class="nav navbar-nav navbar-right"> + <li><a href="{{ URL_ROOT }}/view_profile/"><span class="glyphicon glyphicon-user"></span> Profile </a></li> + <li><a href="{{ URL_ROOT }}/logout/"><span class="glyphicon glyphicon-log-out"></span> Logout</a></li> + </ul> + </div> + </nav> +{% endblock %} + + +{% block content %} + + <div class="container"> + {% if scheduled_workshops %} + <h3>This Table Shows Scheduled Workshops Proposed By Coordinators</h3> + <br> + <table class="table table-hover"> + <thead> + <tr> + <th>Coordinator Name</th> + <th>Instructor Name</th> + <th>Workshop Name</th> + <th>Workshop Date</th> + </tr> + </thead> + {% csrf_token %} + {% for workshop in accepted_workshops %} + {% if workshop.status == 'ACCEPTED' %} + <tbody> + <tr> + + <td>{{ workshop.proposed_workshop_coordinator }}</td> + <td>{{ workshop.proposed_workshop_instructor }}</td> + <td>{{ workshop.proposed_workshop_title }}</td> + <td>{{ workshop.proposed_workshop_date | date}}</td> + </tr> + </tbody> + {% endif %} + {% endfor %} + </table> + {% else %} + <div class="jumbotron"> + <h2>Permission to View Scheduled Workshops is set to False</h2> + </div> + {% endif %} + </div> + } + + +{% endblock %}
\ No newline at end of file diff --git a/workshop_app/templates/workshop_app/view_profile.html b/workshop_app/templates/workshop_app/view_profile.html index 5f01f83..d960f45 100644 --- a/workshop_app/templates/workshop_app/view_profile.html +++ b/workshop_app/templates/workshop_app/view_profile.html @@ -15,6 +15,7 @@ <li><a href="{{ URL_ROOT }}/create_workshop/">Create Workshop</a></li> <li><a href="{{ URL_ROOT }}/view_workshoptype_list/">Workshop List</a></li> <li><a href="{{ URL_ROOT }}/my_workshops/">My Workshops</a></li> + <li><a href="{{ URL_ROOT }}/scheduled_workshops/">Scheduled Workshops</a></li> </ul> {% else %} <div class="navbar-header"> diff --git a/workshop_app/templates/workshop_app/view_workshoptype_list.html b/workshop_app/templates/workshop_app/view_workshoptype_list.html index b053305..53d32ce 100644 --- a/workshop_app/templates/workshop_app/view_workshoptype_list.html +++ b/workshop_app/templates/workshop_app/view_workshoptype_list.html @@ -15,6 +15,7 @@ <ul class="nav navbar-nav"> {% if request.user.profile.position == 'instructor'%} <li><a href="{{ URL_ROOT }}/create_workshop/">Create Workshop</a></li> + <li><a href="{{ URL_ROOT }}/scheduled_workshops/">Scheduled Workshops</a></li> {% else %} <li><a href="{{ URL_ROOT }}/book/">Book</a></li> <li><a href="{{ URL_ROOT }}/propose_workshop/">Propose a Workshop</a></li> diff --git a/workshop_app/urls.py b/workshop_app/urls.py index 65b53e3..6c2a04d 100644 --- a/workshop_app/urls.py +++ b/workshop_app/urls.py @@ -44,6 +44,7 @@ urlpatterns = [ url(r'^view_workshoptype_details/$', views.view_workshoptype_details), url(r'^create_workshop/$', views.create_workshop), url(r'^propose_workshop/$', views.propose_workshop), + url(r'^scheduled_workshops/$', views.scheduled_workshops), url(r'^testimonials/$', views.testimonials), url(r'^file_view/(?P<workshop_title>[\w|\W]+)$', views.file_view), url(r'^jsi18n/$', django.views.i18n.javascript_catalog, js_info_dict), diff --git a/workshop_app/views.py b/workshop_app/views.py index 3446995..1dad51a 100644 --- a/workshop_app/views.py +++ b/workshop_app/views.py @@ -26,8 +26,8 @@ from django.http import HttpResponse, HttpResponseRedirect from textwrap import dedent from django.conf import settings from os import listdir, path, sep -import datetime as dt from zipfile import ZipFile +import datetime as dt try: from StringIO import StringIO as string_io except ImportError: @@ -36,7 +36,8 @@ except ImportError: __author__ = "Akshen Doke" __credits__ = ["Mahesh Gudi", "Aditya P.", "Ankit Javalkar", "Prathamesh Salunke", "Kiran Kishore", - "KhushalSingh Rajput", "Prabhu Ramachandran"] + "KhushalSingh Rajput", "Prabhu Ramachandran", + "Arun KP"] def is_email_checked(user): @@ -329,7 +330,7 @@ def book_workshop(request): user_position='instructor', workshop_date=workshop_date, workshop_title=workshop.workshop_title.workshoptype_name, - user_name=str(request.user), + user_name=str(request.user.get_full_name()), other_email=workshop.workshop_instructor.email ) phone_number = workshop.workshop_instructor.profile.phone_number @@ -337,7 +338,7 @@ def book_workshop(request): send_email(request, call_on='Booking', workshop_date=workshop_date, workshop_title=workshop.workshop_title.workshoptype_name, - user_name=workshop.workshop_instructor.username, + user_name=workshop.workshop_instructor.profile.user.get_full_name(), other_email=workshop.workshop_instructor.email, phone_number=phone_number) @@ -353,6 +354,7 @@ def book_workshop(request): @login_required def manage(request): user = request.user + if user.is_authenticated() and is_email_checked(user): #Move user to the group via admin if user.groups.filter(name='instructor').count() > 0: @@ -448,13 +450,13 @@ def my_workshops(request): booked_workshop_obj = BookedWorkshop() booked_workshop_obj.booked_workshop_requested = workshop_status booked_workshop_obj.save() - - cmail = workshop_status.requested_workshop_coordinator.email - cname = workshop_status.requested_workshop_coordinator.username - cnum = workshop_status.requested_workshop_coordinator.profile.phone_number - cinstitute = workshop_status.requested_workshop_coordinator.profile.institute + ws = workshop_status + cmail = ws.requested_workshop_coordinator.email + cname = ws.requested_workshop_coordinator.profile.user.get_full_name() + cnum = ws.requested_workshop_coordinator.profile.phone_number + cinstitute = ws.requested_workshop_coordinator.profile.institute inum = request.user.profile.phone_number - wtitle = workshop_status.requested_workshop_title.workshoptype_name + wtitle = ws.requested_workshop_title.workshoptype_name #For Instructor send_email(request, call_on='Booking Confirmed', @@ -530,13 +532,13 @@ def my_workshops(request): booked_workshop_obj = BookedWorkshop() booked_workshop_obj.booked_workshop_proposed = workshop_status booked_workshop_obj.save() - - cmail = workshop_status.proposed_workshop_coordinator.email - cname = workshop_status.proposed_workshop_coordinator.username - cnum = workshop_status.proposed_workshop_coordinator.profile.phone_number - cinstitute = workshop_status.proposed_workshop_coordinator.profile.institute + ws = workshop_status + cmail = ws.proposed_workshop_coordinator.email + cname = ws.proposed_workshop_coordinator.profile.user.get_full_name() + cnum = ws.proposed_workshop_coordinator.profile.phone_number + cinstitute = ws.proposed_workshop_coordinator.profile.institute inum = request.user.profile.phone_number - wtitle = workshop_status.proposed_workshop_title.workshoptype_name + wtitle = ws.proposed_workshop_title.workshoptype_name #For Instructor send_email(request, call_on='Booking Confirmed', @@ -570,12 +572,12 @@ def my_workshops(request): ) workshop_status.status = client_data[-1] workshop_status.save() - - wtitle = workshop_status.requested_workshop_title.workshoptype_name - cmail = workshop_status.requested_workshop_coordinator.email - cname = workshop_status.requested_workshop_coordinator.username - cnum = workshop_status.requested_workshop_coordinator.profile.phone_number - cinstitute = workshop_status.requested_workshop_coordinator.profile.institute + ws = workshop_status + wtitle = ws.requested_workshop_title.workshoptype_name + cmail = ws.requested_workshop_coordinator.email + cname = ws.requested_workshop_coordinator.profile.user.get_full_name() + cnum = ws.requested_workshop_coordinator.profile.phone_number + cinstitute = ws.requested_workshop_coordinator.profile.institute #For Instructor send_email(request, call_on='Booking Request Rejected', @@ -674,13 +676,16 @@ def propose_workshop(request): form_data = form.save(commit=False) form_data.proposed_workshop_coordinator = user #Avoiding Duplicate workshop entries for same date and workshop_title - if ProposeWorkshopDate.objects.filter(proposed_workshop_date=form_data.proposed_workshop_date, + if ProposeWorkshopDate.objects.filter( + proposed_workshop_date=form_data.proposed_workshop_date, proposed_workshop_title=form_data.proposed_workshop_title, - proposed_workshop_coordinator=form_data.proposed_workshop_coordinator).exists(): + proposed_workshop_coordinator=form_data.proposed_workshop_coordinator + ).exists(): return redirect('/my_workshops/') else: form_data.proposed_workshop_coordinator.save() form_data.save() + return redirect('/my_workshops/') else: form = ProposeWorkshopDateForm() @@ -872,3 +877,15 @@ def testimonials(request): messages = paginator.page(paginator.num_pages) return render(request, 'workshop_app/testimonals.html', {"messages":messages}) +@login_required +def scheduled_workshops(request): + user = request.user + if is_instructor(user) and is_email_checked(user): + accepted_workshops = ProposeWorkshopDate.objects.all().order_by('-id')[:15] + return render(request, 'workshop_app/scheduled_workshops.html', + { + "accepted_workshops": accepted_workshops, + "scheduled_workshops": settings.SCHEDULED_WORKSHOPS + }) + else: + redirect('/book/')
\ No newline at end of file diff --git a/workshop_portal/settings.py b/workshop_portal/settings.py index 5379985..0ec34bb 100644 --- a/workshop_portal/settings.py +++ b/workshop_portal/settings.py @@ -152,12 +152,14 @@ EMAIL_TIMEOUT = 300 SENDER_EMAIL = SENDER_EMAIL -#EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' #Temp Solution +#EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' #Change this to the production url PRODUCTION_URL = 'your_production_url' ADMIN_EMAIL = 'your admin email' +SCHEDULED_WORKSHOPS = False #Set True or False to view/hide + LOGIN_REDIRECT_URL = '/profile' SESSION_EXPIRE_AT_BROWSER_CLOSE = True |