def semester_view(request, study_program, main_profile=None, semester_number=None, save_location=True):
"""
Generates the link portal for a given semester in a given program code
"""
try:
semester = Semester.get(study_program, main_profile, semester_number)
except Semester.DoesNotExist:
if not main_profile and not semester_number:
# This URL might refer to a userpage instead
return studentpage(request, study_program)
raise Http404(
_('%s. semester ved hovedprofilen "%s" knyttet til studieprogrammet "%s" eksisterer ikke')
% ((semester_number or 'Et'), main_profile or 'felles', study_program)
)
if save_location:
# Save the deliberate change of location by user in the session, as the semester has been found successfully
request.session['semester_pk'] = semester.pk
request.session['study_program_slug'] = semester.study_program.slug
# Delete studentpage slug in order to prevent redirection to it
request.session['homepage'] = ''
if semester.main_profile:
request.session['main_profile_slug'] = semester.main_profile.slug
else:
request.session['main_profile_slug'] = ''
request.session['semester_number_slug'] = semester.number
request.session['homepage'] = '' # Delete saved homepage
# Where to send users if the semester has electives
electives_url = ''
if semester.has_electives:
if request.user.is_authenticated:
electives_url = request.user.options.get_admin_url()
else:
electives_url = '/accounts/dataporten/login'
return render(
request,
'semesterpage/courses.html',
{
'semester': semester,
'courses': semester.courses.all(),
'study_programs': StudyProgram.objects.filter(published=True),
'calendar_name': get_calendar_name(request),
'electives_url': electives_url,
'user': request.user,
'student_page': False,
},
)
评论列表
文章目录