summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--workshop_app/data/Basics_of_Python/Basics_of_Python.pdfbin55260 -> 70333 bytes
-rw-r--r--workshop_app/data/ISCP/Basics_of_Python.pdfbin55260 -> 0 bytes
-rw-r--r--workshop_app/data/ISCP/instructions-for-coordinators.pdfbin0 -> 36506 bytes
-rw-r--r--workshop_app/data/ISCP/instructions-for-participants.pdfbin51627 -> 68177 bytes
-rw-r--r--workshop_app/send_mails.py33
-rw-r--r--workshop_app/templates/workshop_app/create_workshop.html1
-rw-r--r--workshop_app/templates/workshop_app/edit_profile.html1
-rw-r--r--workshop_app/templates/workshop_app/manage.html1
-rw-r--r--workshop_app/templates/workshop_app/my_workshops.html1
-rw-r--r--workshop_app/templates/workshop_app/profile_updated.html1
-rw-r--r--workshop_app/templates/workshop_app/scheduled_workshops.html63
-rw-r--r--workshop_app/templates/workshop_app/view_profile.html1
-rw-r--r--workshop_app/templates/workshop_app/view_workshoptype_list.html1
-rw-r--r--workshop_app/urls.py1
-rw-r--r--workshop_app/views.py78
-rw-r--r--workshop_portal/settings.py4
16 files changed, 156 insertions, 30 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
index 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
Binary files differ
diff --git a/workshop_app/data/ISCP/Basics_of_Python.pdf b/workshop_app/data/ISCP/Basics_of_Python.pdf
deleted file mode 100644
index 00401d0..0000000
--- a/workshop_app/data/ISCP/Basics_of_Python.pdf
+++ /dev/null
Binary files differ
diff --git a/workshop_app/data/ISCP/instructions-for-coordinators.pdf b/workshop_app/data/ISCP/instructions-for-coordinators.pdf
new file mode 100644
index 0000000..7601616
--- /dev/null
+++ b/workshop_app/data/ISCP/instructions-for-coordinators.pdf
Binary files differ
diff --git a/workshop_app/data/ISCP/instructions-for-participants.pdf b/workshop_app/data/ISCP/instructions-for-participants.pdf
index 93a3e5d..25a03a7 100644
--- a/workshop_app/data/ISCP/instructions-for-participants.pdf
+++ b/workshop_app/data/ISCP/instructions-for-participants.pdf
Binary files differ
diff --git a/workshop_app/send_mails.py b/workshop_app/send_mails.py
index 15fc1d5..f76a7c2 100644
--- a/workshop_app/send_mails.py
+++ b/workshop_app/send_mails.py
@@ -242,12 +242,12 @@ def send_email( request, call_on,
elif call_on == "Booking Request Rejected":
if user_position == "instructor":
message = dedent("""\
- Coordinator name:{0}
+ Coordinator name: {0}
Coordinator email: {1}
- Contact number:{2}
- Institute:{3}
- Workshop date:{4}
- Workshop title:{4}
+ Contact number: {2}
+ Institute: {3}
+ Workshop date: {4}
+ Workshop title: {5}
You have rejected this booking. The coordinator has
been notified.""".format(user_name, other_email,
@@ -303,3 +303,26 @@ def send_email( request, call_on,
format(workshop_date), message=message,
other_email=request.user.email
)
+
+ elif call_on == 'Proposed Workshop':
+ if user_position == "instructor":
+ message = dedent("""\
+ A coordinator has proposed a workshop below are the
+ details:
+
+ Coordinator name: {0}
+ Coordinator email: {1}
+ Contact number: {2}
+ Institute: {3}
+ Workshop date: {4}
+ Workshop title: {5}
+
+ Please Accept only if you are willing to take the workshop.
+ {6}/my_workshops/ """
+ .format(user_name, request.user.email,
+ phone_number, institute,
+ workshop_date, workshop_title,
+ PRODUCTION_URL))
+ send_mail("Proposed Workshop on {0}".
+ format(workshop_date), message, SENDER_EMAIL,
+ [other_email], fail_silently=False) \ No newline at end of file
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..7cf1c84 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,26 @@ 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()
+ instructors = Profile.objects.filter(position='instructor')
+ for i in instructors:
+ send_email(request, call_on='Proposed Workshop',
+ user_position='instructor',
+ workshop_date=str(form_data.proposed_workshop_date),
+ workshop_title=form_data.proposed_workshop_title,
+ user_name=str(user.get_full_name()),
+ other_email=i.user.email,
+ phone_number=user.profile.phone_number,
+ institute=user.profile.institute
+ )
return redirect('/my_workshops/')
else:
form = ProposeWorkshopDateForm()
@@ -872,3 +887,18 @@ 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):
+ try:
+ accepted_workshops = ProposeWorkshopDate.objects.all().order_by('-id')[:15]
+ except:
+ accepted_workshops = None
+ 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