From 0fcf9d662c4768729f5d11553cc07659bd7f97a7 Mon Sep 17 00:00:00 2001 From: pnshiralkar Date: Wed, 6 May 2020 12:37:25 +0530 Subject: Refractored workshopstatus views --- workshop_app/static/workshop_app/js/datepicker.js | 53 ++++++ .../templates/workshop_app/my_workshops.html | 82 --------- .../templates/workshop_app/workshop_status.html | 190 --------------------- .../workshop_app/workshop_status_coordinator.html | 81 +++++++++ .../workshop_app/workshop_status_instructor.html | 134 +++++++++++++++ workshop_app/urls.py | 8 +- workshop_app/views.py | 22 +-- 7 files changed, 281 insertions(+), 289 deletions(-) create mode 100644 workshop_app/static/workshop_app/js/datepicker.js delete mode 100644 workshop_app/templates/workshop_app/my_workshops.html delete mode 100644 workshop_app/templates/workshop_app/workshop_status.html create mode 100644 workshop_app/templates/workshop_app/workshop_status_coordinator.html create mode 100644 workshop_app/templates/workshop_app/workshop_status_instructor.html diff --git a/workshop_app/static/workshop_app/js/datepicker.js b/workshop_app/static/workshop_app/js/datepicker.js new file mode 100644 index 0000000..f419f86 --- /dev/null +++ b/workshop_app/static/workshop_app/js/datepicker.js @@ -0,0 +1,53 @@ +//ToolTip popup function on-hover +$(document).ready(function () { + $('[data-toggle="popover"]').popover({ + placement: 'top', + trigger: 'hover' + }); +}); + +//ToolTip popup function on-hover +$(document).ready(function () { + $('[data-toggle="popinfo"]').popover({ + placement: 'top', + trigger: 'hover' + }); +}); + +// Change date modal +function changeDate(date) { + let previous_date = new Date(date); + let dateToday = new Date(); + let upto = new Date(); + + previous_date.setDate(previous_date.getDate() + 1); + upto.setFullYear(dateToday.getFullYear() + 1); + + let counter = date.split(" "); + const id = counter.slice(-1).pop(); + if (date[0] === 'P') { + counter = '.pDate' + id + $(counter).datepicker({ + changeMonth: true, + changeYear: true, + minDate: dateToday, + maxDate: upto, + dateFormat: "yy-mm-dd", + }); + $(".ui-dialog-content").dialog("close"); + $('.myDialogP' + id).dialog(); + + } else { + counter = '.rDate' + id; + $(counter).datepicker({ + changeMonth: true, + changeYear: true, + minDate: dateToday, + maxDate: upto, + dateFormat: "yy-mm-dd", + }); + $(".ui-dialog-content").dialog("close"); + $('.myDialogR' + id).dialog(); + + } +}; \ No newline at end of file diff --git a/workshop_app/templates/workshop_app/my_workshops.html b/workshop_app/templates/workshop_app/my_workshops.html deleted file mode 100644 index b5b4add..0000000 --- a/workshop_app/templates/workshop_app/my_workshops.html +++ /dev/null @@ -1,82 +0,0 @@ -{% extends "workshop_app/base.html" %} - -{% block title %} - My Workshops -{% endblock %} - -{% block content %} - {% if workshops %} -

The status of your workshops

-
- - - -
-
-

Workshops Accepted

- - - - - - - - - - - {% for workshop in workshops %} - - - {% if workshop.status %} - - - - - {% endif %} - - - {% endfor %} - -
Instructor NameWorkshop NameWorkshop DayStatus
{{ workshop.instructor.get_full_name }}{{ workshop.workshop_type |capfirst }}{{ workshop.date | date }}{{ workshop.get_status }}
-
- - - -
-
-

Workshops Proposed By Me

- - - - - - - - - {% for workshop in workshops %} - - - {% if not workshop.status and workshop.tnc_accepted %} - - - - {% endif %} - - - - {% endfor %} -
Workshop NameWorkshop DayStatus
{{ workshop.workshop_type }}{{ workshop.date | date }}{{ workshop.get_status }}
-
- - {% else %} -
-
-

Welcome {{ user.first_name }}

-

Information Related to your workshops will be shown here, you can also - propose a Workshop as per your available date in Workshops > Propose a Workshop - tab .

-
-
- {% endif %} - -{% endblock %} diff --git a/workshop_app/templates/workshop_app/workshop_status.html b/workshop_app/templates/workshop_app/workshop_status.html deleted file mode 100644 index b2b17ee..0000000 --- a/workshop_app/templates/workshop_app/workshop_status.html +++ /dev/null @@ -1,190 +0,0 @@ -{% extends "workshop_app/base.html" %} - -{% block title %} - Workshop Status -{% endblock %} - -{% block extra-dependencies %} - - - -{% endblock %} -{% block extra-custom-scripts %} - -{% endblock %} - - -{% block content %} - {% if workshops %} -

The status of your workshops

-
- - -
-
-

Workshops Accepted

- - - - - - - - - - - {% for workshop in workshops %} - - - {% if workshop.status %} - - - - - - {% endif %} - - - - {% endfor %} - -
Coordinator NameInstituteWorkshop NameWorkshop DayStatus
- - {{ workshop.coordinator.get_full_name }} - {{ workshop.coordinator.profile.institute }}{{ workshop.workshop_type |capfirst }}{{ workshop.date | date }} - - {% if workshop.date > today %} - event - - {% endif %} - {{ workshop.get_status }}
-
- - - -
-
-

Workshops Proposed By Coordinators -

- - - - - - - - - - - - {% csrf_token %} - {% for workshop in workshops %} - - - {% if not workshop.status and workshop.tnc_accepted %} - - - - - - - {% endif %} - - - - {% endfor %} -
Coordinator NameInstituteWorkshop NameWorkshop DayStatusAction
- - {{ workshop.coordinator.get_full_name }} - {{ workshop.coordinator.profile.institute }}{{ workshop.workshop_type }}{{ workshop.date | date }}{{ workshop.get_status }} - - - -
-
- - - {% else %} -
-
-

Welcome {{ user.first_name }}

-

Your workshop related information will be shown here, Please navigate to Workshop list and - depending upon - your expertise and availability create a workshop by going to - Create Workshop.

-
-
- {% endif %} - -{% endblock %} diff --git a/workshop_app/templates/workshop_app/workshop_status_coordinator.html b/workshop_app/templates/workshop_app/workshop_status_coordinator.html new file mode 100644 index 0000000..07045de --- /dev/null +++ b/workshop_app/templates/workshop_app/workshop_status_coordinator.html @@ -0,0 +1,81 @@ +{% extends "workshop_app/base.html" %} + +{% block title %} + My Workshops +{% endblock %} + +{% block content %} + {% if not workshops %} +
+
+

Welcome {{ user.first_name }}

+

Information Related to your workshops will be shown here, you can also + propose a Workshop as per your available date in Workshops > Propose a Workshop + tab .

+
+
+ {% else %} +

The status of your workshops

+
+ + + +
+
+

Workshops Accepted

+ + + + + + + + + + + {% for workshop in workshops %} + + + {% if workshop.status %} + + + + + {% endif %} + + + {% endfor %} + +
Instructor NameWorkshop NameWorkshop DayStatus
{{ workshop.instructor.get_full_name }}{{ workshop.workshop_type |capfirst }}{{ workshop.date | date }}{{ workshop.get_status }}
+
+ + + +
+
+

Workshops Proposed By Me

+ + + + + + + + + {% for workshop in workshops %} + + + {% if not workshop.status and workshop.tnc_accepted %} + + + + {% endif %} + + + + {% endfor %} +
Workshop NameWorkshop DayStatus
{{ workshop.workshop_type }}{{ workshop.date | date }}{{ workshop.get_status }}
+
+ {% endif %} + +{% endblock %} diff --git a/workshop_app/templates/workshop_app/workshop_status_instructor.html b/workshop_app/templates/workshop_app/workshop_status_instructor.html new file mode 100644 index 0000000..0a246b3 --- /dev/null +++ b/workshop_app/templates/workshop_app/workshop_status_instructor.html @@ -0,0 +1,134 @@ +{% extends "workshop_app/base.html" %} + +{% block title %} + Workshop Status +{% endblock %} + +{% block extra-dependencies %} + + + +{% endblock %} +{% block extra-custom-scripts %} + {% load static %} + +{% endblock %} + + +{% block content %} + {% if not workshops %} +
+
+

Welcome {{ user.first_name }}

+

Your workshop related information will be shown here, Please navigate to Workshop list and + depending upon + your expertise and availability create a workshop by going to + Create Workshop.

+
+
+ {% else %} +

The status of your workshops

+
+ + +
+
+

Workshops Accepted

+ + + + + + + + + + + {% for workshop in workshops %} + + + {% if workshop.status %} + + + + + + {% endif %} + + + + {% endfor %} + +
Coordinator NameInstituteWorkshop NameWorkshop DayStatus
+ + {{ workshop.coordinator.get_full_name }} + {{ workshop.coordinator.profile.institute }}{{ workshop.workshop_type |capfirst }}{{ workshop.date | date }} + + {% if workshop.date > today %} + event + + {% endif %} + {{ workshop.get_status }}
+
+ + + +
+
+

Workshops Proposed By Coordinators +

+ + + + + + + + + + + + {% csrf_token %} + {% for workshop in workshops %} + + + {% if not workshop.status and workshop.tnc_accepted %} + + + + + + + {% endif %} + + + + {% endfor %} +
Coordinator NameInstituteWorkshop NameWorkshop DayStatusAction
+ + {{ workshop.coordinator.get_full_name }} + {{ workshop.coordinator.profile.institute }}{{ workshop.workshop_type }}{{ workshop.date | date }}{{ workshop.get_status }} + + + +
+
+ {% endif %} + +{% endblock %} diff --git a/workshop_app/urls.py b/workshop_app/urls.py index 32378fd..d18b8a9 100644 --- a/workshop_app/urls.py +++ b/workshop_app/urls.py @@ -16,10 +16,6 @@ Including another URLconf from django.conf.urls import url from workshop_app import views -js_info_dict = { - 'packages': ('recurrence',), -} - urlpatterns = [ url(r'^$', views.index, name='index'), url(r'^register/$', views.user_register), @@ -29,8 +25,8 @@ urlpatterns = [ url(r'^logout/$', views.user_logout), url(r'^view_profile/$', views.view_profile), 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'^workshop_status$', views.workshop_status_coordinator, name='workshop_status_coordinator'), + url(r'^dashboard$', views.workshop_status_instructor, 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), diff --git a/workshop_app/views.py b/workshop_app/views.py index 9f077a3..2eba2e0 100644 --- a/workshop_app/views.py +++ b/workshop_app/views.py @@ -44,8 +44,8 @@ def is_instructor(user): def get_landing_page(user): # For now, landing pages of both instructor and coordinator are same if is_instructor(user): - return reverse('workshop_status') - return reverse('my_workshops') + return reverse('workshop_status_instructor') + return reverse('workshop_status_coordinator') # View functions @@ -152,7 +152,7 @@ def user_register(request): ) else: if request.user.is_authenticated and is_email_checked(request.user): - return redirect('/my_workshops/') + return redirect(get_landing_page(request.user)) elif request.user.is_authenticated: return render(request, 'workshop_app/activation.html') form = UserRegistrationForm() @@ -197,7 +197,7 @@ def edit_profile(request): # Workshop views @login_required -def my_workshops(request): +def workshop_status_coordinator(request): """ Workshops proposed by Coordinator """ user = request.user if is_instructor(user): @@ -205,12 +205,12 @@ def my_workshops(request): workshops = Workshop.objects.filter( coordinator=user.id ).order_by('-date') - return render(request, 'workshop_app/my_workshops.html', + return render(request, 'workshop_app/workshop_status_coordinator.html', {"workshops": workshops}) @login_required -def workshop_status(request): +def workshop_status_instructor(request): """ Workshops to accept and accepted by Instructor """ user = request.user if not is_instructor(user): @@ -226,7 +226,7 @@ def workshop_status(request): ).order_by('-date') workshops = list(proposed_workshop) + list(proposed_workshop_pending) - return render(request, 'workshop_app/workshop_status.html', + return render(request, 'workshop_app/workshop_status_instructor.html', {"workshops": workshops, "today": today}) @@ -262,7 +262,7 @@ def accept_workshop(request, workshop_id): other_email=workshop.coordinator.email, phone_number=request.user.profile.phone_number ) - return redirect(reverse('workshop_status')) + return redirect(reverse('workshop_status_instructor')) @login_required @@ -292,7 +292,7 @@ def change_workshop_date(request, workshop_id): workshop_date=str(workshop_date), other_email=workshop.first().coordinator.email ) - return redirect(reverse('workshop_status')) + return redirect(reverse('workshop_status_instructor')) # TODO: Show terms n conditions of selected ws type @@ -318,7 +318,7 @@ def propose_workshop(request): workshop_type=form_data.workshop_type, coordinator=form_data.coordinator ).exists(): - return redirect('/my_workshops/') + return redirect(get_landing_page(user)) else: form_data.save() instructors = Profile.objects.filter(position='instructor') @@ -332,7 +332,7 @@ def propose_workshop(request): phone_number=user.profile.phone_number, institute=user.profile.institute ) - return redirect('/my_workshops/') + return redirect(get_landing_page(user)) # GET request return render( request, 'workshop_app/propose_workshop.html', -- cgit