88from ci_program .models import Program
99from openedx .core .djangoapps .bookmarks .models import Bookmark
1010from django .http import Http404
11+ from django .http import HttpResponseRedirect
1112
1213
1314@login_required
@@ -46,9 +47,13 @@ def show_program_bookmarks(request, program_name):
4647 page_size = int (request .GET .get ('page_size' , 10 ))
4748
4849 program = Program .objects .get (marketing_slug = program_name )
49- bookmarks = Bookmark .objects .filter (
50- # course_key__in=program.get_course_locators(),
51- user = request .user )
50+ bookmark_sort_by_desc = request .COOKIES .get ('bookmark_sort_by_desc' , 'false' )
51+
52+ if bookmark_sort_by_desc == 'true' :
53+ bookmarks = Bookmark .objects .filter (user = request .user ).order_by ('-created' )
54+ else :
55+ bookmarks = Bookmark .objects .filter (user = request .user )
56+
5257 page_data = bookmarks [(page - 1 ) * page_size : page * page_size ]
5358
5459 return render_to_response ('programs/program_bookmarks.html' , {
@@ -57,4 +62,22 @@ def show_program_bookmarks(request, program_name):
5762 "page_size" : page_size ,
5863 "total_pages" : math .ceil (len (bookmarks ) / page_size ),
5964 "program_name" : program_name ,
65+ "bookmark_sort_by_desc" : bookmark_sort_by_desc ,
6066 })
67+
68+
69+ @login_required
70+ def set_bookmark_preference (request , program_name ):
71+ """
72+ Set the bookmark preference for sort by date desc
73+ """
74+ sort_by_desc = request .POST .get ('bookmark_preference' , 'false' )
75+
76+ response = HttpResponseRedirect (reverse ('show_program_bookmarks' , args = [program_name ]))
77+
78+ if sort_by_desc == 'true' :
79+ response .set_cookie ('bookmark_sort_by_desc' , 'true' , max_age = 30 * 24 * 60 * 60 ) # Expires in 30 days
80+ else :
81+ response .set_cookie ('bookmark_sort_by_desc' , 'false' , max_age = 30 * 24 * 60 * 60 )
82+
83+ return response
0 commit comments