diff options
author | pnshiralkar | 2020-05-05 13:12:07 +0530 |
---|---|---|
committer | pnshiralkar | 2020-05-05 13:12:07 +0530 |
commit | d0d6c70c3fb7d4c2f9d2a15da1564288b39251e1 (patch) | |
tree | 310da06666b9f282af69a91ff9ac12c6818d3250 | |
parent | 1c4a9a7e1c0c08de08e6e95ea4fd403eab78a913 (diff) | |
download | workshop_booking-d0d6c70c3fb7d4c2f9d2a15da1564288b39251e1.tar.gz workshop_booking-d0d6c70c3fb7d4c2f9d2a15da1564288b39251e1.tar.bz2 workshop_booking-d0d6c70c3fb7d4c2f9d2a15da1564288b39251e1.zip |
Splitting my_workshop view done
-rw-r--r-- | workshop_app/templates/workshop_app/workshop_status.html | 12 | ||||
-rw-r--r-- | workshop_app/urls.py | 2 | ||||
-rw-r--r-- | workshop_app/views.py | 64 |
3 files changed, 66 insertions, 12 deletions
diff --git a/workshop_app/templates/workshop_app/workshop_status.html b/workshop_app/templates/workshop_app/workshop_status.html index 28d95b7..b2b17ee 100644 --- a/workshop_app/templates/workshop_app/workshop_status.html +++ b/workshop_app/templates/workshop_app/workshop_status.html @@ -108,12 +108,9 @@ onclick="changeDate('R,{{ workshop.date| safe }}, {{ forloop.counter }}')">event</span> <div class="myDialogR{{ forloop.counter }}" style="display: none;" title="Select New Date"> - <form method="post"> + <form method="post" action="{% url 'change_workshop_date' workshop.id %}"> <input type="text" placeholder="New date" name="new_date" class="rDate{{ forloop.counter }}"/><br> - <input type="hidden" name="action" value="change_date"> - <input type="hidden" name="workshop_id" value="{{ workshop.id }}"> - <input type="hidden" name="cid" value="{{ workshop.coordinator.id }}"> {% csrf_token %} <button class="btn btn-primary btn-xs" type="submit">Save</button> </form> @@ -161,16 +158,13 @@ <td>{{ workshop.date | date }}</td> <td><span class="badge badge-warning">{{ workshop.get_status }}</span></td> <td> - <form method="post"> - <input type="hidden" name="action" value="accept"> - <input type="hidden" name="workshop_id" value="{{ workshop.id }}"> - {% csrf_token %} + <a href="{% url 'accept_workshop' workshop.id %}"> <button class="btn btn-primary btn-sm" id="book-btn" data-toggle="popover" title="Please Note" data-content="Once Accepted you can't Reject, you have to personally contact the Coordinator if the workshop is to be cancelled"> Accept </button> - </form> + </a> </td> {% endif %} </tr> diff --git a/workshop_app/urls.py b/workshop_app/urls.py index 92fded1..32378fd 100644 --- a/workshop_app/urls.py +++ b/workshop_app/urls.py @@ -31,6 +31,8 @@ urlpatterns = [ url(r'^edit_profile/$', views.edit_profile), url(r'^my_workshops/$', views.my_workshops, name='my_workshops'), # Coordinator url(r'^workshop_status/$', views.workshop_status, name='workshop_status'), # Instructor + url(r'^accept_workshop/([1-9][0-9]*)$', views.accept_workshop, name='accept_workshop'), + url(r'^change_workshop_date/([1-9][0-9]*)$', views.change_workshop_date, name='change_workshop_date'), url(r'^propose_workshop/$', views.propose_workshop), url(r'^workshop_types/$', views.workshop_type_list), url(r'^workshop_type_details/([1-9][0-9]*)$', views.workshop_type_details), diff --git a/workshop_app/views.py b/workshop_app/views.py index cd58326..7a053e5 100644 --- a/workshop_app/views.py +++ b/workshop_app/views.py @@ -196,9 +196,7 @@ def edit_profile(request): # Workshop views - - - +@login_required def my_workshops(request): """ Workshops proposed by Coordinator """ user = request.user @@ -211,6 +209,7 @@ def my_workshops(request): {"workshops": workshops}) +@login_required def workshop_status(request): """ Workshops to accept and accepted by Instructor """ user = request.user @@ -232,6 +231,65 @@ def workshop_status(request): "today": today}) +@login_required +def accept_workshop(request, workshop_id): + user = request.user + workshop = Workshop.objects.get(id=workshop_id) + # Change Status of the selected workshop + workshop.status = 1 + workshop.instructor = user + workshop.save() + + coordinator_profile = workshop.coordinator.profile + + # For Instructor + send_email(request, call_on='Booking Confirmed', + user_position='instructor', + workshop_date=str(workshop.date), + workshop_title=workshop.workshop_type.name, + user_name=str(coordinator_profile.user.get_full_name()), + other_email=workshop.coordinator.email, + phone_number=coordinator_profile.phone_number, + institute=coordinator_profile.institute + ) + + # For Coordinator + send_email(request, call_on='Booking Confirmed', + workshop_date=str(workshop.date), + workshop_title=workshop.workshop_type.name, + other_email=workshop.coordinator.email, + phone_number=request.user.profile.phone_number + ) + return redirect(reverse('workshop_status')) + + +@login_required +def change_workshop_date(request, workshop_id): + if request.method == 'POST': + client_data = request.POST + new_workshop_date = datetime.strptime(client_data.get('new_date'), "%Y-%m-%d") + today = datetime.today() + if today <= new_workshop_date: + workshop = Workshop.objects.filter(id=workshop_id) + workshop_date = workshop.first().date + workshop.update(date=new_workshop_date) + + # For Instructor + send_email(request, call_on='Change Date', + user_position='instructor', + workshop_date=str(workshop_date), + new_workshop_date=str(new_workshop_date.date()) + ) + + # For Coordinator + send_email(request, call_on='Change Date', + new_workshop_date=str(new_workshop_date.date()), + workshop_date=str(workshop_date), + other_email=workshop.first().coordinator.email + ) + return redirect(reverse('workshop_status')) + + # TODO: Show terms n conditions of selected ws type @login_required def propose_workshop(request): |