summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpnshiralkar2020-05-05 13:12:07 +0530
committerpnshiralkar2020-05-05 13:12:07 +0530
commitd0d6c70c3fb7d4c2f9d2a15da1564288b39251e1 (patch)
tree310da06666b9f282af69a91ff9ac12c6818d3250
parent1c4a9a7e1c0c08de08e6e95ea4fd403eab78a913 (diff)
downloadworkshop_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.html12
-rw-r--r--workshop_app/urls.py2
-rw-r--r--workshop_app/views.py64
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):