def dashboard_course(request): course_instance_id = request.LTI.get('lis_course_offering_sourcedid') # list of permissions to determine tool visibility tools = { 'class_roster': { 'visible': lti_permission_required_check(request, settings.CUSTOM_LTI_PERMISSIONS['class_roster'])}, 'isites_migration': { 'visible': lti_permission_required_check(request, settings.CUSTOM_LTI_PERMISSIONS['isites_migration'])}, 'manage_people': { 'visible': lti_permission_required_check(request, settings.CUSTOM_LTI_PERMISSIONS['manage_people'])}, 'manage_sections': { 'visible': _lti_role_allowed(request, manage_sections_lti_roles_permitted)}, } # django template tags can't do dict lookups, so create a *_visible context # variable for each tool tool_visibility = { '{}_visible'.format(tool): tools[tool]['visible'] for tool in tools.keys()} view_context = tool_visibility # are all tools hidden? no_tools_visible = len(filter(lambda x: x, tool_visibility.values())) == 0 view_context['no_tools_visible'] = no_tools_visible # Check to see if we have any iSites that are available for migration to # this Canvas course icm_active = len(get_previous_isites(course_instance_id)) > 0 view_context['isites_migration_active'] = icm_active return render(request, 'canvas_course_admin_tools/dashboard_course.html', view_context)
def dashboard_course(request): course_instance_id = request.LTI.get('lis_course_offering_sourcedid') tool_access_permission_names = [ 'class_roster', 'im_import_files', # isites_migration 'manage_people', 'manage_sections', 'custom_fas_card_1'] # Verify current user permissions to see the apps on the dashboard allowed = {tool: lti_permission_required_check(request, tool) for tool in tool_access_permission_names} no_tools_allowed = not any(allowed.values()) view_context = { 'allowed': allowed, 'no_tools_allowed': no_tools_allowed} if no_tools_allowed: view_context['custom_error_title'] = u'Not available' view_context['custom_error_message'] = \ u"You do not currently have access to any of the tools available " \ u"in this view. If you think you should have access, please " \ u"use \"Help\" to contact Canvas support from Harvard." # Check to see if we have any iSites that are available for migration to # this Canvas course icm_active = len(get_previous_isites(course_instance_id)) > 0 view_context['isites_migration_active'] = icm_active return render(request, 'canvas_manage_course/dashboard_course.html', view_context)
def index(request): course_instance_id = request.LTI.get('lis_course_offering_sourcedid') canvas_course_id = request.LTI.get('custom_canvas_course_id') audit_user_id = request.LTI.get('custom_canvas_user_login_id') if request.method == 'POST': keyword = request.POST.get('keyword') title = request.POST.get('title') term = request.POST.get('term') Process.enqueue( migrate_files, settings.ISITES_MIGRATION_QUEUE_NAME, keyword=keyword, canvas_course_id=canvas_course_id, term=term, title=title, audit_user=audit_user_id, ) # try to get the school. # if we have a course instance id, try that first. school = get_school(course_instance_id, canvas_course_id) logger.info(u'"migration started" %s %s "%s" "%s" %s %s %s' % (request.user.username, keyword, title, term, course_instance_id, canvas_course_id, school)) return redirect('isites_migration:index') processes = Process.objects.filter( name='isites_migration.jobs.migrate_files', details__canvas_course_id=canvas_course_id ).order_by('-date_created') has_active_process = len([p for p in processes if p.state != Process.COMPLETE]) > 0 return render(request, 'isites_migration/index.html', { 'isites': get_previous_isites(course_instance_id), 'processes': processes, 'link_to_files_page': settings.CANVAS_URL + '/courses/%s/files' % canvas_course_id, 'has_active_process': has_active_process, # Harcode to EST for now, but eventually set based on the launch user's profile setting 'user_timezone': 'America/New_York', })