def studentpage(request, homepage):
# NB! In the following view function, user and request.user is not necessarily
# the same user. This should become more clear in the next refactoring
try:
# The homepage is given by the (Feide) username
user = User.objects\
.select_related('options', 'contributor')\
.prefetch_related('options__self_chosen_courses__links')\
.get(username=homepage)
except User.DoesNotExist:
raise Http404(_('Fant ingen studieprogram eller brukerside med navnet "%s"') % homepage)
if request.user.is_authenticated \
and isinstance(request.user, DataportenUser) \
and request.user.username == homepage:
# We ensure normalization between dataporten and the database,
# since we have an authenticated dataporten user which tries to acces
# his/her own homepage.
reconcile_dataporten_data(request.user)
user.refresh_from_db()
# Save homepage in session for automatic redirect on next visit
request.session['homepage'] = homepage
return render(request, 'semesterpage/userpage-courses.html', {
'semester': user.options,
'courses': user.options.courses,
'study_programs': StudyProgram.objects.filter(published=True),
'calendar_name': get_calendar_name(request),
'user': request.user,
'header_text': f' / {user.username}',
'student_page': True,
}
)
评论列表
文章目录