From 7a5ecc5f874e378445fc94e948ffe38173866c2f Mon Sep 17 00:00:00 2001
From: TuringTux <53300311+TuringTux@users.noreply.github.com>
Date: Tue, 19 Nov 2019 21:55:45 +0100
Subject: [PATCH 1/7] Adapt UI to show unsubscribe link, start making backend
adjustments
---
muesli/web/templates/lecture/view.pt | 7 +++++--
muesli/web/viewsLecture.py | 6 ++++--
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/muesli/web/templates/lecture/view.pt b/muesli/web/templates/lecture/view.pt
index d8db0977..3f5da9d1 100644
--- a/muesli/web/templates/lecture/view.pt
+++ b/muesli/web/templates/lecture/view.pt
@@ -48,9 +48,12 @@
Details
-
- ${'Wechseln' if subscribed else 'Beitreten'}
+ ${'Wechseln' if subscribed_to_any_tutorial else 'Beitreten'}
+
+
+ Austreten
|
diff --git a/muesli/web/viewsLecture.py b/muesli/web/viewsLecture.py
index f6bcb69d..52f5f8f6 100644
--- a/muesli/web/viewsLecture.py
+++ b/muesli/web/viewsLecture.py
@@ -84,9 +84,11 @@ def __init__(self, request):
def __call__(self):
lecture = self.db.query(models.Lecture).options(undefer('tutorials.student_count')).get(self.lecture_id)
times = lecture.prepareTimePreferences(user=self.request.user)
- subscribed = self.request.user.id in [s.id for s in lecture.students]
+ subscribed_to_any_tutorial = self.request.user.id in [s.id for s in lecture.students]
+ subscribed_tutorial_id = None # TODO Determine the ID of the tutorial to which the student is subscribed
return {'lecture': lecture,
- 'subscribed': subscribed,
+ 'subscribed_to_any_tutorial': subscribed_to_any_tutorial,
+ 'subscribed_tutorial_id': subscribed_tutorial_id,
'times': times,
'prefs': utils.preferences}
From c9643a3c387e719a208aa93c478234be185431ed Mon Sep 17 00:00:00 2001
From: TuringTux <53300311+TuringTux@users.noreply.github.com>
Date: Wed, 20 Nov 2019 11:05:43 +0100
Subject: [PATCH 2/7] Remove unneeded variable, thanks @tynsh
---
muesli/web/templates/lecture/view.pt | 6 +++---
muesli/web/viewsLecture.py | 6 ++----
2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/muesli/web/templates/lecture/view.pt b/muesli/web/templates/lecture/view.pt
index 3f5da9d1..6807d525 100644
--- a/muesli/web/templates/lecture/view.pt
+++ b/muesli/web/templates/lecture/view.pt
@@ -48,11 +48,11 @@
Details
-
- ${'Wechseln' if subscribed_to_any_tutorial else 'Beitreten'}
+ ${'Wechseln' if not subscribed_tutorial else 'Beitreten'}
-
+
Austreten
|
diff --git a/muesli/web/viewsLecture.py b/muesli/web/viewsLecture.py
index 52f5f8f6..9a956f05 100644
--- a/muesli/web/viewsLecture.py
+++ b/muesli/web/viewsLecture.py
@@ -84,11 +84,9 @@ def __init__(self, request):
def __call__(self):
lecture = self.db.query(models.Lecture).options(undefer('tutorials.student_count')).get(self.lecture_id)
times = lecture.prepareTimePreferences(user=self.request.user)
- subscribed_to_any_tutorial = self.request.user.id in [s.id for s in lecture.students]
- subscribed_tutorial_id = None # TODO Determine the ID of the tutorial to which the student is subscribed
+ subscribed_tutorial = None # TODO Determine the tutorial the student is subscribed to, if any
return {'lecture': lecture,
- 'subscribed_to_any_tutorial': subscribed_to_any_tutorial,
- 'subscribed_tutorial_id': subscribed_tutorial_id,
+ 'subscribed_tutorial': subscribed_tutorial,
'times': times,
'prefs': utils.preferences}
From fdc490d4022e4ffec5e94b5dff190806aa12e9b3 Mon Sep 17 00:00:00 2001
From: TuringTux <53300311+TuringTux@users.noreply.github.com>
Date: Wed, 20 Nov 2019 12:16:01 +0100
Subject: [PATCH 3/7] Add TODO comment for later
---
muesli/web/templates/lecture/view.pt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/muesli/web/templates/lecture/view.pt b/muesli/web/templates/lecture/view.pt
index 6807d525..a55ed361 100644
--- a/muesli/web/templates/lecture/view.pt
+++ b/muesli/web/templates/lecture/view.pt
@@ -50,7 +50,7 @@
- ${'Wechseln' if not subscribed_tutorial else 'Beitreten'}
+ ${'Wechseln' if not subscribed_tutorial else 'Beitreten'}
Austreten
From 1d8e6b78f06e0bfc2f57eec7fd4be587387e3f66 Mon Sep 17 00:00:00 2001
From: TuringTux <53300311+TuringTux@users.noreply.github.com>
Date: Thu, 21 Nov 2019 21:06:20 +0100
Subject: [PATCH 4/7] Fix front-end side logic
---
muesli/web/templates/lecture/view.pt | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/muesli/web/templates/lecture/view.pt b/muesli/web/templates/lecture/view.pt
index a55ed361..b8323a9b 100644
--- a/muesli/web/templates/lecture/view.pt
+++ b/muesli/web/templates/lecture/view.pt
@@ -48,11 +48,12 @@
Details
|
-
- ${'Wechseln' if not subscribed_tutorial else 'Beitreten'}
+ ${'Beitreten' if not subscribed_tutorial else 'Wechseln'}
-
+
Austreten
|
From 4fea9589ce00d28521a53e78d249ba7244b95fe7 Mon Sep 17 00:00:00 2001
From: TuringTux <53300311+TuringTux@users.noreply.github.com>
Date: Sun, 24 Nov 2019 18:40:25 +0100
Subject: [PATCH 5/7] Make database query work
---
muesli/web/viewsLecture.py | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/muesli/web/viewsLecture.py b/muesli/web/viewsLecture.py
index 9a956f05..339334a5 100644
--- a/muesli/web/viewsLecture.py
+++ b/muesli/web/viewsLecture.py
@@ -83,8 +83,14 @@ def __init__(self, request):
self.lecture_id = request.matchdict['lecture_id']
def __call__(self):
lecture = self.db.query(models.Lecture).options(undefer('tutorials.student_count')).get(self.lecture_id)
+ print(lecture)
times = lecture.prepareTimePreferences(user=self.request.user)
- subscribed_tutorial = None # TODO Determine the tutorial the student is subscribed to, if any
+ subscribed_tutorial = self.db.query(models.Tutorial).filter(
+ Tutorial.lecture_students.any(
+ LectureStudent.student_id == self.request.user.id and LectureStudent.lecture_id == self.lecture_id
+ )
+ ).first()
+ print(subscribed_tutorial)
return {'lecture': lecture,
'subscribed_tutorial': subscribed_tutorial,
'times': times,
From a4d01dd4bb7c35734b490d4795305405a8652e56 Mon Sep 17 00:00:00 2001
From: TuringTux <53300311+TuringTux@users.noreply.github.com>
Date: Mon, 25 Nov 2019 10:08:40 +0100
Subject: [PATCH 6/7] Remove unneeded print statements
I'm sorry for forgetting to remove them in the first place.
---
muesli/web/viewsLecture.py | 2 --
1 file changed, 2 deletions(-)
diff --git a/muesli/web/viewsLecture.py b/muesli/web/viewsLecture.py
index 339334a5..64da625b 100644
--- a/muesli/web/viewsLecture.py
+++ b/muesli/web/viewsLecture.py
@@ -83,14 +83,12 @@ def __init__(self, request):
self.lecture_id = request.matchdict['lecture_id']
def __call__(self):
lecture = self.db.query(models.Lecture).options(undefer('tutorials.student_count')).get(self.lecture_id)
- print(lecture)
times = lecture.prepareTimePreferences(user=self.request.user)
subscribed_tutorial = self.db.query(models.Tutorial).filter(
Tutorial.lecture_students.any(
LectureStudent.student_id == self.request.user.id and LectureStudent.lecture_id == self.lecture_id
)
).first()
- print(subscribed_tutorial)
return {'lecture': lecture,
'subscribed_tutorial': subscribed_tutorial,
'times': times,
From 67cf08cb02cf2955cc24c8f9a35f7c96e9fa0bff Mon Sep 17 00:00:00 2001
From: TuringTux <53300311+TuringTux@users.noreply.github.com>
Date: Mon, 25 Nov 2019 20:30:27 +0100
Subject: [PATCH 7/7] Shorten query to get subscribed_tutorial
---
muesli/web/viewsLecture.py | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/muesli/web/viewsLecture.py b/muesli/web/viewsLecture.py
index a87b7ad9..fd94b660 100644
--- a/muesli/web/viewsLecture.py
+++ b/muesli/web/viewsLecture.py
@@ -84,11 +84,7 @@ def __init__(self, request):
def __call__(self):
lecture = self.db.query(models.Lecture).options(undefer('tutorials.student_count')).get(self.lecture_id)
times = lecture.prepareTimePreferences(user=self.request.user)
- subscribed_tutorial = self.db.query(models.Tutorial).filter(
- Tutorial.lecture_students.any(
- LectureStudent.student_id == self.request.user.id and LectureStudent.lecture_id == self.lecture_id
- )
- ).first()
+ subscribed_tutorial = self.request.user.tutorials.filter(LectureStudent.lecture_id == self.lecture_id).first()
return {'lecture': lecture,
'subscribed_tutorial': subscribed_tutorial,
'times': times,