From 194ee67048b80655f3da6be1f5018fdc278ffc58 Mon Sep 17 00:00:00 2001
From: ankitjavalkar
Date: Wed, 25 Sep 2019 15:46:43 +0530
Subject: Multiple Changes: - Add teams - Fix bug that causes todays booked
workshops to disappear from queue - Add a graph to display viz for accepted
workshops in a team - Remove unnecessary loops
---
.../templates/statistics_app/team_stats.html | 124 +++++++++++++++++++++
statistics_app/urls.py | 5 +-
statistics_app/views.py | 26 +++++
teams/__init__.py | 0
teams/admin.py | 5 +
teams/apps.py | 5 +
teams/models.py | 9 ++
teams/tests.py | 3 +
teams/views.py | 3 +
.../templates/workshop_app/my_workshops.html | 32 ++++++
workshop_app/views.py | 33 ++++--
workshop_portal/settings.py | 1 +
12 files changed, 232 insertions(+), 14 deletions(-)
create mode 100644 statistics_app/templates/statistics_app/team_stats.html
create mode 100644 teams/__init__.py
create mode 100644 teams/admin.py
create mode 100644 teams/apps.py
create mode 100644 teams/models.py
create mode 100644 teams/tests.py
create mode 100644 teams/views.py
diff --git a/statistics_app/templates/statistics_app/team_stats.html b/statistics_app/templates/statistics_app/team_stats.html
new file mode 100644
index 0000000..4e3e870
--- /dev/null
+++ b/statistics_app/templates/statistics_app/team_stats.html
@@ -0,0 +1,124 @@
+{% extends 'workshop_app/base.html' %}
+
+{% block title %}
+ Workshop Statistics
+{% endblock %}
+
+
+{% block extra %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
+
+{% block content %}
+
+
+ {% if request.user.profile.position == 'instructor'%}
+
Team Member Requests
+
+
+
+
+ Coordinator Name |
+ Team Member |
+ Workshop Name |
+ Workshop Day |
+
+
+
+ {% for workshop in team_workshops %}
+
+
+ {{ workshop.proposed_workshop_coordinator.get_full_name }}
+ |
+
+ {{ workshop.proposed_workshop_instructor.get_full_name }}
+ |
+
+ {{ workshop.proposed_workshop_title }}
+ |
+
+ {{ workshop.proposed_workshop_date | date }}
+ |
+
+ {% endfor %}
+
+
+ {% endif %}
{% if request.user.profile.position == 'instructor' %}
Requests for Me
{% else %}
diff --git a/workshop_app/views.py b/workshop_app/views.py
index bdb5580..772615b 100644
--- a/workshop_app/views.py
+++ b/workshop_app/views.py
@@ -10,6 +10,7 @@ from .models import (
BookedWorkshop, ProposeWorkshopDate,
Testimonial, ProfileComments
)
+from teams.models import Team
from datetime import datetime, date
from django.contrib.auth import login, logout, authenticate
from django.contrib.auth.decorators import login_required
@@ -658,26 +659,36 @@ def my_workshops(request):
today = datetime.today().date()
workshop_occurence_list = RequestedWorkshop.objects.filter(
requested_workshop_instructor=user.id,
- requested_workshop_date__gt=today,
+ requested_workshop_date__gte=today,
).order_by('-requested_workshop_date')
- for w in workshop_occurence_list:
- workshops.append(w)
proposed_workshop = ProposeWorkshopDate.objects.filter(
proposed_workshop_instructor=user.id,
- proposed_workshop_date__gt=today,
+ proposed_workshop_date__gte=today,
).order_by('-proposed_workshop_date')
- for p in proposed_workshop:
- workshops.append(p)
proposed_workshop_pending = ProposeWorkshopDate.objects.filter(
status='Pending'
).order_by('-proposed_workshop_date')
- for p in proposed_workshop_pending:
- workshops.append(p)
+
+ workshops = list(workshop_occurence_list) + list(proposed_workshop) + list(proposed_workshop_pending)
+
+ # team_members = list(set(user.profile.team_set.all().values_list('members', flat=True)))
+ teams = Team.objects.filter(members=user.profile)
+ team_workshops = []
+
+ if teams:
+ team_members = Profile.objects.filter(team__in=teams).exclude(id=user.profile.id).distinct()
+ team_member_ids = team_members.values_list('user__id')
+ team_workshops = ProposeWorkshopDate.objects.filter(
+ proposed_workshop_date__gte=today,
+ proposed_workshop_instructor_id__in=team_member_ids,
+ )
+ print(team_workshops)
return render(request, 'workshop_app/my_workshops.html',
{ "workshops" :workshops,
+ "team_workshops": team_workshops,
"today": today})
else:
@@ -685,14 +696,12 @@ def my_workshops(request):
workshop_occurence_list = RequestedWorkshop.objects.filter(
requested_workshop_coordinator=user.id
).order_by('-requested_workshop_date')
- for w in workshop_occurence_list:
- workshops.append(w)
proposed_workshop = ProposeWorkshopDate.objects.filter(
proposed_workshop_coordinator=user.id
).order_by('-proposed_workshop_date')
- for p in proposed_workshop:
- workshops.append(p)
+
+ workshops = list(workshop_occurence_list) + list(proposed_workshop) + list(proposed_workshop_pending)
return render(request, 'workshop_app/my_workshops.html',
{"workshops": workshops})
diff --git a/workshop_portal/settings.py b/workshop_portal/settings.py
index e7f9adb..46dc9b7 100644
--- a/workshop_portal/settings.py
+++ b/workshop_portal/settings.py
@@ -48,6 +48,7 @@ INSTALLED_APPS = [
'workshop_app',
'recurrence',
'statistics_app',
+ 'teams',
]
MIDDLEWARE_CLASSES = [
--
cgit