Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
2.5.1
====================
* Add another Django 5.2 fix

2.5.0 (2025-12-08)
====================
* Adds compatibility with Django 5.2
Expand Down
2 changes: 1 addition & 1 deletion courseaffils/lib.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ def in_course_or_404(username, group_or_course):
raise Http404(response_body)


ANONYMIZE_KEY = 'ccnmtl.courseaffils.anonymize'
ANONYMIZE_KEY = 'ctl.courseaffils.anonymize'


def handle_public_name(user, request):
Expand Down
4 changes: 2 additions & 2 deletions courseaffils/middleware.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
except ImportError:
pass

SESSION_KEY = 'ccnmtl.courseaffils.course'
SESSION_KEY = 'ctl.courseaffils.course'


def has_anonymous_path(current_path):
Expand Down Expand Up @@ -178,7 +178,7 @@ def process_request(self, request, override_view=None):

if chosen_course and \
(chosen_course in available_courses or request.user.is_staff):
request.session[SESSION_KEY] = chosen_course
request.session[SESSION_KEY] = chosen_course.pk
self.decorate_request(request, chosen_course)
return None

Expand Down
36 changes: 21 additions & 15 deletions courseaffils/tests/test_middleware.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,24 +9,30 @@
from django.test import TestCase


class StubRequest(object):
COOKIES = dict()
GET = dict()
POST = dict()
environ = dict()

def __init__(self, c):
self.path = "/foo/bar"
class StubRequest:
def __init__(self, c=None, path='/foo/bar', method='GET'):
self.path = path
self.method = method
self.COOKIES = {}
self.GET = {}
self.POST = {}
self.environ = {}
self.session = {}

if c:
self.session = {'ccnmtl.courseaffils.course': c}
else:
self.session = dict()
if hasattr(c, 'pk'):
self.session = {'ctl.courseaffils.course': c.pk}
else:
self.session = {'ctl.courseaffils.course': c}

def get_full_path(self):
return self.path

def is_secure(self):
return False


class StubResponse(object):
class StubResponse:
content = ""


Expand Down Expand Up @@ -62,12 +68,12 @@ def test_is_anonymous_path(self):
assert is_anonymous_path("/static/")

def test_already_selected_course(self):
assert already_selected_course(StubRequest(True))
assert not already_selected_course(StubRequest(False))
assert already_selected_course(StubRequest(1))
assert not already_selected_course(StubRequest(0))

def test_cmm_process_response(self):
c = CourseManagerMiddleware(self)
assert c.process_response(StubRequest(True), "foo") == "foo"
assert c.process_response(StubRequest(1), "foo") == "foo"

def test_cmm_process_response_anon(self):
c = CourseManagerMiddleware(self)
Expand Down
2 changes: 1 addition & 1 deletion courseaffils/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from django.utils.http import urlquote as quote


SESSION_KEY = 'ccnmtl.courseaffils.course'
SESSION_KEY = 'ctl.courseaffils.course'


def get_courses_for_user(user):
Expand Down