diff options
18 files changed, 229 insertions, 129 deletions
diff --git a/workshop_app/models.py b/workshop_app/models.py index e5f6306..a7ce494 100644 --- a/workshop_app/models.py +++ b/workshop_app/models.py @@ -1,4 +1,4 @@ -#from __future__ import unicode_literals + from django.db import models from django.contrib.auth.models import User from django.core.validators import RegexValidator diff --git a/workshop_app/send_mails.py b/workshop_app/send_mails.py index a4bbc0b..6566041 100644 --- a/workshop_app/send_mails.py +++ b/workshop_app/send_mails.py @@ -1,4 +1,7 @@ +__author__ = "Akshen Doke" + from django.core.mail import send_mail +from textwrap import dedent from workshop_portal.settings import ( EMAIL_HOST, EMAIL_PORT, @@ -10,7 +13,7 @@ from workshop_portal.settings import ( def send_email(request, call_on, user_position=None, workshop_date=None, workshop_title=None, user_name=None, - other_email=None + other_email=None, phone_number=None ): ''' Email sending function while registration and @@ -19,21 +22,32 @@ def send_email(request, call_on, if call_on == "Registration": if user_position == "instructor": - message = "Thank You for Registering on this platform. \n \ - Since you have ask for Instructor Profile, \n \ - we will get back to you soon after verifying your \n \ - profile. \ - In case if you don\t get any response within 3days, \ - Please contact us at " + message = dedent("""\ + Thank You for Registering on this platform. + Since you have ask for Instructor Profile, + we will get back to you soon after verifying your + profile. + In case if you don\t get any response within 3days, + Please contact us at workshops@fossee.in""") send_mail( "Welcome to FOSSEE", message, EMAIL_HOST_USER, [request.user.email], fail_silently=False ) + #Send a mail to admin as well as a notification. + message = dedent("""\ + There is a Request for instructor profile on Workshop + Booking Website from {0} Please get check the profile + and get back to the user within 2days. + """.format(request.user)) + send_mail("Instructor Request", message, EMAIL_HOST_USER, + ['workshops@fossee.in'], fail_silently=False) + else: - message = "Thank You for Registering on this platform.\n \ - Rules. \n \ If you face any issue during \ - your session please contact fossee." + message = dedent("""\ + Thank You for Registering on this platform. + If you face any issue during your session please + contact us a workshops@fossee.in""") send_mail( "Welcome to FOSSEE", message, EMAIL_HOST_USER, [request.user.email], fail_silently=False @@ -41,17 +55,31 @@ def send_email(request, call_on, elif call_on == "Booking": if user_position == "instructor": - message = "You got a workshop booking request from "+user_name+" for "+workshop_title+" on "+workshop_date+" please respond." + message = dedent("""\ + You got a workshop booking request from user:{0}, email:{1}, + phone_number:{2} for workshop_title:{3} on date:{4} + please respond at the earliest""".format( + user_name, request.user.email, + request.user.profile.phone_number, + workshop_title, workshop_date + ) + ) send_mail( "Python Workshop Booking | FOSSEE", message, EMAIL_HOST_USER, [other_email], fail_silently=False ) - else: - message = "Thank You for Booking on this platform.\ - Here are your workshop details " +workshop_title+ "\ - If you face any issue during your session please contact \ - fossee." + message = dedent("""\ + Thank You for Booking on this platform. + Here are your workshop details workshop_title:{0} + workshop_date:{1}, instructor_email:{2}, + instructor phone_number:{3} + If you face any issue during your session please contact + respective instructor or fossee at workshops@fossee.in""".format( + workshop_title, workshop_date, + other_email, phone_number + ) + ) send_mail( "Python Workshop Booking | FOSSEE", message, EMAIL_HOST_USER, [request.user.email], fail_silently=False @@ -59,31 +87,48 @@ def send_email(request, call_on, elif call_on == "Booking Confirmed": if user_position == "instructor": - message = "You have confirmed the booking" + message = dedent("""\ + You have confirmed the booking on workshop_date:{0} for + workshop_title:{1} by coordinator:{2} coordinator_email:{3}, + coordinator_phone_number:{4}""" + .format(workshop_date, workshop_title, user_name, other_email, + phone_number)) send_mail("Python Workshop Booking Confirmation", message, EMAIL_HOST_USER, [request.user.email], fail_silently=False) else: - message = "Your workshop for "+workshop_date+"request has been confirmed" + message = dedent("""\ + Your workshop on {0} for {1} has been confirmed by the + instructor please get in touch with the + instructor {2} - {3} for further assistance""".format( + workshop_date, workshop_title, + request.user.email, phone_number)) send_mail("Python Workshop Booking Confirmation", message, EMAIL_HOST_USER, [other_email], fail_silently=False) elif call_on == "Booking Request Rejected": if user_position == "instructor": - message = "You have reject the booking on "+workshop_date+" for "+workshop_title - send_mail("Python Workshop Booking Rejected", message, EMAIL_HOST_USER, - [request.user.email], fail_silently=False) + message = dedent("""\ + You have reject the booking on {0} for {1} by {2}""" + .format(workshop_date, workshop_title, user_name)) + send_mail("Python Workshop Booking Rejected", message, + EMAIL_HOST_USER, [request.user.email], fail_silently=False) else: - message = "Your workshop request for "+workshop_date+" has been rejected by the instructor,\ - please try for some other day." - send_mail("Python Workshop Booking Request Rejected", message, EMAIL_HOST_USER, - [other_email], fail_silently=False) + message = dedent("""\ + Your workshop request on {0} + has been rejected by the instructor, + please try for some other day.""".format(workshop_date)) + send_mail("Python Workshop Booking Request Rejected", message, + EMAIL_HOST_USER, [other_email], fail_silently=False) elif call_on =='Workshop Deleted': - message = "You have deleted a Workshop, scheduled on "+workshop_date+"." + message = dedent("""\ + You have deleted a Workshop, scheduled on {0}, + workshop title: {1}""" + .format(workshop_date, workshop_title)) send_mail("Python Workshop Deleted", message, EMAIL_HOST_USER, [request.user.email], fail_silently=False) else: message = "Issue at Workshop Booking App please check" - send_mail("Issue At Workshop Booking App", message, EMAIL_HOST_USER, + send_mail("Issue At Workshop Booking App Mailing", message, EMAIL_HOST_USER, [doke.akshen@gmail.com, mahesh.p.gudi@gmail.com, aditya94palaparthy@gmail.com], fail_silently=False) diff --git a/workshop_app/templates/workshop_app/base.html b/workshop_app/templates/workshop_app/base.html index 37b6d6a..0e702e5 100644 --- a/workshop_app/templates/workshop_app/base.html +++ b/workshop_app/templates/workshop_app/base.html @@ -33,8 +33,8 @@ <li class="active"><a href="#">Home</a></li> </ul> <ul class="nav navbar-nav navbar-right"> - <li><a href="{{ URL_ROOT }}/register"><span class="glyphicon glyphicon-user"></span> Register</a></li> - <li><a href="{{ URL_ROOT }}/login"><span class="glyphicon glyphicon-log-in"></span> Login</a></li> + <li><a href="{{ URL_ROOT }}/register/"><span class="glyphicon glyphicon-user"></span> Register</a></li> + <li><a href="{{ URL_ROOT }}/login/"><span class="glyphicon glyphicon-log-in"></span> Login</a></li> </ul> </div> </nav> diff --git a/workshop_app/templates/workshop_app/booking.html b/workshop_app/templates/workshop_app/booking.html index 9321e33..4d2f03c 100644 --- a/workshop_app/templates/workshop_app/booking.html +++ b/workshop_app/templates/workshop_app/booking.html @@ -11,26 +11,44 @@ <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> <script> + // Button function function sendData(d){ - console.log(d); + var check_count; + //For queue + var URL = "{{ URL_ROOT }}/book_workshop/"; + c = d + ',0'; + $.ajax({ + url: URL, + datatype: 'json', + async: false, + type: "POST", + data: { + c, + csrfmiddlewaretoken: $("input[name=csrfmiddlewaretoken]").val() + }, + success:function(response){ + check_count = response; + } + }); var $dialog = $('<div></div').html( '<form id="myform" action="">\ <input type="checkbox" id="one"\ name="one" value="one"/> I will give minimum 50 participants for the workshop.<br/>\ - <input type="checkbox" id="two" name="two" value="two" /> I agree that this booking won\'t be cancelled(if you want to cancel please contact the instructor 2days before the event).<br/>\ + <input type="checkbox" id="two" name="two" value="two" /> I agree that this booking won\'t be cancelled without prior notice to the instructor and fossee.<br/>\ + <input type="checkbox" id="three" name="three" value="three"/> I am '+ check_count +' in the queue.\ </form> ') .dialog({ autoOpen: false, title: 'Terms & Condition', buttons: { "Confirm": function(){ - if($('#one').is(":checked") && $('#two').is(":checked")){ + if($('#one').is(":checked") && $('#two').is(":checked") && $('#three').is(":checked")){ booking_confirmed(d); $(this).dialog("close"); } else { - alert("Please select both the checkboxes"); + alert("Please select all the checkboxes."); } }, "Cancel": function(){ @@ -70,12 +88,12 @@ <a class="navbar-brand" href="#">WebSiteName</a> </div> <ul class="nav navbar-nav"> - <li class="active"><a href="{{ URL_ROOT}}/my_workshops">My Workshops</a></li> - <li class="active"><a href="{{ URL_ROOT }}/view_course_list">View Course List</a></li> + <li class="active"><a href="{{ URL_ROOT}}/my_workshops/">My Workshops</a></li> + <li class="active"><a href="{{ URL_ROOT }}/view_course_list/">View Course List</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-in"></span> Logout</a></li> + <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-in"></span> Logout</a></li> </ul> </div> </nav> diff --git a/workshop_app/templates/workshop_app/create_workshop.html b/workshop_app/templates/workshop_app/create_workshop.html index 301512a..bec8745 100644 --- a/workshop_app/templates/workshop_app/create_workshop.html +++ b/workshop_app/templates/workshop_app/create_workshop.html @@ -18,12 +18,12 @@ <a class="navbar-brand" href="{{ URL_ROOT}}/manage/">WebSiteName</a> </div> <ul class="nav navbar-nav"> - <li class="active"><a href="{{ URL_ROOT }}/view_course_list">View Course List</a></li> - <li class="active"><a href="{{ URL_ROOT }}/my_workshops">My Workshops</a></li> + <li class="active"><a href="{{ URL_ROOT }}/view_course_list/">View Course List</a></li> + <li class="active"><a href="{{ URL_ROOT }}/my_workshops/">My 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-in"></span> Logout</a></li> + <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-in"></span> Logout</a></li> </ul> </div> </nav> diff --git a/workshop_app/templates/workshop_app/edit_profile.html b/workshop_app/templates/workshop_app/edit_profile.html index 7f8bfef..6c07c6f 100644 --- a/workshop_app/templates/workshop_app/edit_profile.html +++ b/workshop_app/templates/workshop_app/edit_profile.html @@ -12,19 +12,19 @@ </div> {% if request.user.profile.position == 'instructor' %} <ul class="nav navbar-nav"> - <li class="active"><a href="{{ URL_ROOT }}/create_workshop">Create Event</a></li> - <li class="active"><a href="{{ URL_ROOT }}/view_course_list">View Course List</a></li> - <li class="active"><a href="{{ URL_ROOT }}/my_workshops">My Workshops</a></li> + <li class="active"><a href="{{ URL_ROOT }}/create_workshop/">Create Event</a></li> + <li class="active"><a href="{{ URL_ROOT }}/view_course_list/">View Course List</a></li> + <li class="active"><a href="{{ URL_ROOT }}/my_workshops/">My Workshops</a></li> </ul> {% else %} <ul class="nav navbar-nav"> - <li class="active"><a href="{{ URL_ROOT }}/book">Home</a></li> - <li class="active"><a href="{{ URL_ROOT }}/my_workshops">My Workshops</a></li> + <li class="active"><a href="{{ URL_ROOT }}/book/">Home</a></li> + <li class="active"><a href="{{ URL_ROOT }}/my_workshops/">My Workshops</a></li> </ul> {% endif %} <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-in"></span> Logout</a></li> + <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-in"></span> Logout</a></li> </ul> </div> </nav> diff --git a/workshop_app/templates/workshop_app/index.html b/workshop_app/templates/workshop_app/index.html index 10ba623..363922e 100644 --- a/workshop_app/templates/workshop_app/index.html +++ b/workshop_app/templates/workshop_app/index.html @@ -16,8 +16,8 @@ </div> <ul class="nav navbar-nav navbar-right"> - <li><a href="{{ URL_ROOT }}/register"><span class="glyphicon glyphicon-user"></span> Register</a></li> - <li><a href="{{ URL_ROOT }}/login"><span class="glyphicon glyphicon-log-in"></span> Login</a></li> + <li><a href="{{ URL_ROOT }}/register/"><span class="glyphicon glyphicon-user"></span> Register</a></li> + <li><a href="{{ URL_ROOT }}/login/"><span class="glyphicon glyphicon-log-in"></span> Login</a></li> </ul> </div> </nav> diff --git a/workshop_app/templates/workshop_app/login.html b/workshop_app/templates/workshop_app/login.html index 6c4b82b..300a9d4 100644 --- a/workshop_app/templates/workshop_app/login.html +++ b/workshop_app/templates/workshop_app/login.html @@ -12,8 +12,8 @@ </div> <ul class="nav navbar-nav navbar-right"> - <li><a href="{{ URL_ROOT }}/register"><span class="glyphicon glyphicon-user"></span> Register</a></li> - <li><a href="{{ URL_ROOT }}/login"><span class="glyphicon glyphicon-log-in"></span> Login</a></li> + <li><a href="{{ URL_ROOT }}/register/"><span class="glyphicon glyphicon-user"></span> Register</a></li> + <li><a href="{{ URL_ROOT }}/login/"><span class="glyphicon glyphicon-log-in"></span> Login</a></li> </ul> </div> </nav> diff --git a/workshop_app/templates/workshop_app/logout.html b/workshop_app/templates/workshop_app/logout.html index 492f914..ba33d61 100644 --- a/workshop_app/templates/workshop_app/logout.html +++ b/workshop_app/templates/workshop_app/logout.html @@ -12,8 +12,8 @@ </div> <ul class="nav navbar-nav navbar-right"> - <li><a href="{{ URL_ROOT }}/register"><span class="glyphicon glyphicon-user"></span> Register</a></li> - <li><a href="{{ URL_ROOT }}/login"><span class="glyphicon glyphicon-log-in"></span> Login</a></li> + <li><a href="{{ URL_ROOT }}/register/"><span class="glyphicon glyphicon-user"></span> Register</a></li> + <li><a href="{{ URL_ROOT }}/login/"><span class="glyphicon glyphicon-log-in"></span> Login</a></li> </ul> </div> </nav> diff --git a/workshop_app/templates/workshop_app/manage.html b/workshop_app/templates/workshop_app/manage.html index 302f715..a3f328f 100644 --- a/workshop_app/templates/workshop_app/manage.html +++ b/workshop_app/templates/workshop_app/manage.html @@ -7,13 +7,13 @@ <a class="navbar-brand" href="#">Instructor Profile</a> </div> <ul class="nav navbar-nav"> - <li class="active"><a href="{{ URL_ROOT }}/create_workshop">Create Event</a></li> - <li class="active"><a href="{{ URL_ROOT }}/view_course_list">View Course List</a></li> - <li class="active"><a href="{{ URL_ROOT }}/my_workshops">My Workshops</a></li> + <li class="active"><a href="{{ URL_ROOT }}/create_workshop/">Create Event</a></li> + <li class="active"><a href="{{ URL_ROOT }}/view_course_list/">View Course List</a></li> + <li class="active"><a href="{{ URL_ROOT }}/my_workshops/">My 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-in"></span> Logout</a></li> + <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-in"></span> Logout</a></li> </ul> </div> </nav> diff --git a/workshop_app/templates/workshop_app/my_workshops.html b/workshop_app/templates/workshop_app/my_workshops.html index 672f9f9..f7b75c9 100644 --- a/workshop_app/templates/workshop_app/my_workshops.html +++ b/workshop_app/templates/workshop_app/my_workshops.html @@ -43,23 +43,23 @@ <div class="container-fluid"> <div class="navbar-header"> {% if request.user.profile.position == 'instructor' %} - <a class="navbar-brand" href="{{ URL_ROOT}}/manage">WebSiteName</a> + <a class="navbar-brand" href="{{ URL_ROOT}}/manage/">WebSiteName</a> {% endif %} </div> {% if request.user.profile.position == 'instructor' %} <ul class="nav navbar-nav"> - <li class="active"><a href="{{ URL_ROOT }}/create_workshop">Create Event</a></li> - <li class="active"><a href="{{ URL_ROOT }}/view_course_list">View Course List</a></li> + <li class="active"><a href="{{ URL_ROOT }}/create_workshop/">Create Event</a></li> + <li class="active"><a href="{{ URL_ROOT }}/view_course_list/">View Course List</a></li> </ul> {% else %} <ul class="nav navbar-nav"> - <li class="active"><a href="{{ URL_ROOT }}/book">Home</a></li> + <li class="active"><a href="{{ URL_ROOT }}/book/">Home</a></li> </ul> {% endif %} <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-in"></span> Logout</a></li> + <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-in"></span> Logout</a></li> </ul> </div> </nav> diff --git a/workshop_app/templates/workshop_app/profile_updated.html b/workshop_app/templates/workshop_app/profile_updated.html index c41f6a7..19c3fb1 100644 --- a/workshop_app/templates/workshop_app/profile_updated.html +++ b/workshop_app/templates/workshop_app/profile_updated.html @@ -12,15 +12,15 @@ </div> <ul class="nav navbar-nav"> {% if request.user.profile.position == 'instructor' %} - <li class="active"><a href="{{ URL_ROOT }}/manage">Home</a></li> + <li class="active"><a href="{{ URL_ROOT }}/manage/">Home</a></li> {% else %} - <li class="active"><a href="{{ URL_ROOT }}/book">Home</a></li> + <li class="active"><a href="{{ URL_ROOT }}/book/">Home</a></li> {% endif %} - <li class="active"><a href="{{ URL_ROOT }}/my_workshops">My Workshops</a></li> + <li class="active"><a href="{{ URL_ROOT }}/my_workshops/">My 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-in"></span> Logout</a></li> + <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-in"></span> Logout</a></li> </ul> </div> </nav> diff --git a/workshop_app/templates/workshop_app/register.html b/workshop_app/templates/workshop_app/register.html index db69118..1798f57 100644 --- a/workshop_app/templates/workshop_app/register.html +++ b/workshop_app/templates/workshop_app/register.html @@ -12,8 +12,8 @@ </div> <ul class="nav navbar-nav navbar-right"> - <li><a href="{{ URL_ROOT }}/register"><span class="glyphicon glyphicon-user"></span> Register</a></li> - <li><a href="{{ URL_ROOT }}/login"><span class="glyphicon glyphicon-log-in"></span> Login</a></li> + <li><a href="{{ URL_ROOT }}/register/"><span class="glyphicon glyphicon-user"></span> Register</a></li> + <li><a href="{{ URL_ROOT }}/login/"><span class="glyphicon glyphicon-log-in"></span> Login</a></li> </ul> </div> </nav> diff --git a/workshop_app/templates/workshop_app/registeration_error.html b/workshop_app/templates/workshop_app/registeration_error.html index d460fe6..ad1e73b 100644 --- a/workshop_app/templates/workshop_app/registeration_error.html +++ b/workshop_app/templates/workshop_app/registeration_error.html @@ -8,6 +8,6 @@ <div class="container" > <br> <h1>Error Occurred While registration</h1> - <h3>Please try to <a href="{{ URL_ROOT }}/register"> register again</a> using different username or email and see to it that you fill all the fields.</h3> + <h3>Please try to <a href="{{ URL_ROOT }}/register/"> register again</a> using different username or email and see to it that you fill all the fields.</h3> </div> {% endblock %}
\ No newline at end of file diff --git a/workshop_app/templates/workshop_app/view_course_details.html b/workshop_app/templates/workshop_app/view_course_details.html index aca59a0..a0e46c7 100644 --- a/workshop_app/templates/workshop_app/view_course_details.html +++ b/workshop_app/templates/workshop_app/view_course_details.html @@ -14,8 +14,8 @@ <li class="active"><a href="#">Home</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-in"></span> Logout</a></li> + <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-in"></span> Logout</a></li> </ul> </div> </nav> diff --git a/workshop_app/templates/workshop_app/view_course_list.html b/workshop_app/templates/workshop_app/view_course_list.html index bd2bcea..7e38d10 100644 --- a/workshop_app/templates/workshop_app/view_course_list.html +++ b/workshop_app/templates/workshop_app/view_course_list.html @@ -13,21 +13,20 @@ </div> <ul class="nav navbar-nav"> {% if request.user.profile.position == 'instructor'%} - <li class="active"><a href="{{ URL_ROOT }}/create_workshop">Create Workshop</a></li> + <li class="active"><a href="{{ URL_ROOT }}/create_workshop/">Create Workshop</a></li> {% endif %} - <li class="active"><a href="{{ URL_ROOT }}/my_workshops">My Workshops</a></li> + <li class="active"><a href="{{ URL_ROOT }}/my_workshops/">My 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-in"></span> Logout</a></li> + <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-in"></span> Logout</a></li> </ul> </div> </nav> {% endblock %} {% block extra %} - <!-- <script src="{{ URL_ROOT }}/static/workshop_app/js/overlay.js"></script> --> <!-- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> --> diff --git a/workshop_app/templates/workshop_app/view_profile.html b/workshop_app/templates/workshop_app/view_profile.html index f3f0652..e758c59 100644 --- a/workshop_app/templates/workshop_app/view_profile.html +++ b/workshop_app/templates/workshop_app/view_profile.html @@ -11,21 +11,21 @@ </div> {% if request.user.profile.position == 'instructor' %} <ul class="nav navbar-nav"> - <li class="active"><a href="{{ URL_ROOT }}/manage">Home</a></li> - <li class="active"><a href="{{ URL_ROOT }}/create_workshop">Create Event</a></li> - <li class="active"><a href="{{ URL_ROOT }}/view_course_list">View Course List</a></li> - <li class="active"><a href="{{ URL_ROOT }}/my_workshops">My Workshops</a></li> + <li class="active"><a href="{{ URL_ROOT }}/manage/">Home</a></li> + <li class="active"><a href="{{ URL_ROOT }}/create_workshop/">Create Event</a></li> + <li class="active"><a href="{{ URL_ROOT }}/view_course_list/">View Course List</a></li> + <li class="active"><a href="{{ URL_ROOT }}/my_workshops/">My Workshops</a></li> </ul> {% else %} <ul class="nav navbar-nav"> - <li class="active"><a href="{{ URL_ROOT }}/book">Home</a></li> - <li class="active"><a href="{{ URL_ROOT }}/my_workshops">My Workshops</a></li> + <li class="active"><a href="{{ URL_ROOT }}/book/">Home</a></li> + <li class="active"><a href="{{ URL_ROOT }}/my_workshops/">My Workshops</a></li> </ul> {% endif %} <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-in"></span> Logout</a></li> + <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-in"></span> Logout</a></li> </ul> </div> </nav> diff --git a/workshop_app/views.py b/workshop_app/views.py index 526e865..326da9d 100644 --- a/workshop_app/views.py +++ b/workshop_app/views.py @@ -20,31 +20,33 @@ from collections import OrderedDict from dateutil.parser import parse from .send_mails import send_email from django.http import HttpResponse, HttpResponseRedirect +from textwrap import dedent +__author__ = "Akshen Doke" +__credits__ = ["Mahesh Gudi", "Aditya P.", "Ankit Javalkar", + "Prathamesh Salunke", "Akshen Doke"] def index(request): '''Landing Page''' user = request.user if user.is_authenticated(): - if user.groups.filter(name='instructor').count() > 0: + if user.profile.position == 'instructor': return redirect('/manage/') return redirect('/book/') - return render(request, "workshop_app/index.html") def is_instructor(user): '''Check if the user is having instructor rights''' - if user.groups.filter(name='instructor').exists(): - return True - + return True if user.profile.position == 'instructor' else False + def user_login(request): - '''Login''' + '''User Login''' user = request.user if user.is_authenticated(): - if user.groups.filter(name='instructor').count() > 0: + if user.profile.position == 'instructor': return redirect('/manage/') return redirect('/book/') @@ -53,7 +55,7 @@ def user_login(request): if form.is_valid(): user = form.cleaned_data login(request, user) - if user.groups.filter(name='instructor').count() > 0: + if user.profile.position == 'instructor': return redirect('/manage/') return redirect('/book/') else: @@ -85,7 +87,7 @@ def user_register(request): user_position=user_position ) return redirect('/view_profile/') - except IntegrityError as e: + except: return render( request, "workshop_app/registeration_error.html" @@ -104,7 +106,7 @@ def user_register(request): def book(request): user = request.user if user.is_authenticated(): - if user.groups.filter(name='instructor').count() > 0: + if user.profile.position == 'instructor': return redirect('/manage/') workshop_details = Workshop.objects.all() @@ -130,7 +132,6 @@ def book(request): workshop_occurence_list.append(workshop_occurence) del workshop_occurence - #Gives you the objects of BookedWorkshop bookedworkshop = BookedWorkshop.objects.all() for b in bookedworkshop: @@ -145,7 +146,7 @@ def book(request): workshop_occurence_list.remove(a) del x, y - #Gives you the objects of RequestedWorkshop for that particular coordinator + #Objects of RequestedWorkshop for that particular coordinator rW_obj = RequestedWorkshop.objects.filter( requested_workshop_coordinator=request.user ) @@ -188,8 +189,17 @@ def book_workshop(request): client_data = request.body.decode("utf-8").split("&") client_data = client_data[0].split("%2C") workshop_date = client_data[0][2:] - instructor_profile = Profile.objects.filter(user=client_data[1]) + if client_data[-1] == '0': + queue = RequestedWorkshop.objects.filter( + requested_workshop_instructor=client_data[1], + requested_workshop_date=datetime.strptime( + client_data[0][2:], "%d-%m-%Y" + ), + requested_workshop_title=client_data[-2] + ).count() + 1 + + return HttpResponse(str(queue)) workshops_list = Workshop.objects.filter( workshop_instructor=client_data[1], @@ -213,20 +223,30 @@ def book_workshop(request): requested_workshop_title=client_data[-1] ).count() > 0: - return HttpResponse("You already have a booking for this workshop \ - please check the instructors response in My Workshops tab and \ - also check your email.") + return HttpResponse(dedent("""You already have a booking + for this workshop please check the + instructors response in My Workshops tab and + also check your email.""")) else: - for d in workshop_recurrence_list: - if workshop_date == (d.strftime("%d-%m-%Y")): + for w in workshop_recurrence_list: + if workshop_date == (w.strftime("%d-%m-%Y")): + print(workshop_date) rW_obj.requested_workshop_instructor = workshop.workshop_instructor rW_obj.requested_workshop_coordinator = request.user rW_obj.requested_workshop_date = datetime.strptime( - client_data[0][2:], "%d-%m-%Y" - ) + workshop_date,"%d-%m-%Y" + ) rW_obj.requested_workshop_title = workshop.workshop_title rW_obj.save() + queue = RequestedWorkshop.objects.filter( + requested_workshop_instructor=workshop.workshop_instructor, + requested_workshop_date=datetime.strptime( + workshop_date, "%d-%m-%Y", + ), + requested_workshop_title=client_data[-1] + ).count() + # Mail to instructor send_email(request, call_on='Booking', user_position='instructor', @@ -235,14 +255,19 @@ def book_workshop(request): user_name=str(request.user), other_email=workshop.workshop_instructor.email ) - + phone_number = workshop.workshop_instructor.profile.phone_number #Mail to coordinator send_email(request, call_on='Booking', - workshop_date=workshop_date, - workshop_title=workshop.workshop_title.course_name, - user_name=workshop.workshop_instructor.username) + workshop_date=workshop_date, + workshop_title=workshop.workshop_title.course_name, + user_name=workshop.workshop_instructor.username, + other_email=workshop.workshop_instructor.email, + phone_number=phone_number) - return HttpResponse("Thank You, Please check your email for further information.") + return HttpResponse(dedent("""\ + Thank You, Please check + your email for further information. Your number on the + queue for this book is {0}""".format(str(queue)))) else: return HttpResponse("Some Error Occurred.") @@ -330,32 +355,42 @@ def my_workshops(request): ) coordinator_obj = User.objects.get(username=client_data[0][2:]) + workshop_status = RequestedWorkshop.objects.get( - requested_workshop_instructor=user.id, - requested_workshop_date=workshop_date, - requested_workshop_coordinator=coordinator_obj.id, - requested_workshop_title=client_data[2] - ) + requested_workshop_instructor=user.id, + requested_workshop_date=workshop_date, + requested_workshop_coordinator=coordinator_obj.id, + requested_workshop_title=client_data[2] + ) + workshop_status.status = client_data[-1] workshop_status.save() booked_workshop_obj = BookedWorkshop() booked_workshop_obj.booked_workshop = 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 + inum = request.user.profile.phone_number + wtitle = workshop_status.requested_workshop_title.course_name #For Instructor send_email(request, call_on='Booking Confirmed', user_position='instructor', workshop_date=str(client_data[1]), - workshop_title=workshop_status.requested_workshop_title.course_name, - user_name=str(request.user), + workshop_title=wtitle, + user_name=str(cname), + other_email=cmail, + phone_number=cnum ) #For Coordinator send_email(request, call_on='Booking Confirmed', workshop_date=str(client_data[1]), - workshop_title=workshop_status.requested_workshop_title.course_name, - other_email=workshop_status.requested_workshop_coordinator.email + workshop_title=wtitle, + other_email=cmail, + phone_number=inum ) elif client_data[-1] == 'DELETED': @@ -387,6 +422,7 @@ def my_workshops(request): #For instructor send_email(request, call_on='Workshop Deleted', workshop_date=str(client_data[1]), + workshop_title=workshop.workshop_title ) return HttpResponse("Workshop Deleted") @@ -406,19 +442,23 @@ def my_workshops(request): workshop_status.status = client_data[-1] workshop_status.save() + wtitle = workshop_status.requested_workshop_title.course_name + cmail = workshop_status.requested_workshop_coordinator.email + cname = workshop_status.requested_workshop_coordinator.username + #For Instructor send_email(request, call_on='Booking Request Rejected', user_position='instructor', workshop_date=str(client_data[1]), - workshop_title=workshop_status.requested_workshop_title.course_name, - user_name=str(request.user), + workshop_title=wtitle, + user_name=str(cname), ) #For Coordinator send_email(request, call_on='Booking Request Rejected', workshop_date=str(client_data[1]), - workshop_title=workshop_status.requested_workshop_title.course_name, - other_email=workshop_status.requested_workshop_coordinator.email + workshop_title=wtitle, + other_email=cmail ) workshop_occurence_list = RequestedWorkshop.objects.filter( @@ -564,8 +604,6 @@ def view_course_details(request): user = request.user if is_instructor(user): - return redirect('/') - else: return redirect('/book/') |