Example #1
0
def generate_report(request):
    report_type = request.POST["type"]
    course_handle = request.POST["course_handle"]
    course_handle_pretty = course_handle.replace('--','-')
    
    email_message = "The report is attached. You can also download it by going to the reports page under Course Administration->Reports, or by visiting https://class.stanford.edu/%s/browse_reports." % course_handle.replace('--', '/')
    attach_reports_to_email = True
    
    if report_type == 'dashboard':
        email_title = "[Class2Go] Dashboard Report for %s" % course_handle_pretty
        req_reports = [{'type': 'dashboard'}]
        
    elif report_type == 'video_full':
        slug = request.POST["slug"]
        email_title = "[Class2Go] Video Full Report for %s %s" % (course_handle_pretty, slug)
        # TODO: Remove the following message and attachment flag override after report email attachment is fixed
        attach_reports_to_email = False
        email_message = "The report has been generated. You can download it by going to the reports page under Course Administration->Reports, or by visiting https://class.stanford.edu/%s/browse_reports." % course_handle.replace('--', '/')
        req_reports = [{'type': 'video_full', 'slug': slug}]
        
    elif report_type == 'video_summary':
        slug = request.POST["slug"]
        email_title = "[Class2Go] Video Summary Report for %s %s" % (course_handle_pretty, slug)
        req_reports = [{'type': 'video_summary', 'slug': slug}]
        
    elif report_type == 'class_roster':
        email_title = "[Class2Go] Class Roster for %s" % (course_handle_pretty)
        req_reports = [{'type': 'class_roster'}]
    
    #Reports for the new assessments
    elif report_type == 'course_assessments':
        email_title = "[Class2Go] Course Assessments Report for %s" % course_handle_pretty
        req_reports = [{'type': 'course_assessments'}]
    
    elif report_type == 'assessment_full':
        slug = request.POST["slug"]
        email_title = "[Class2Go] Assessment Full Report for %s %s" % (course_handle_pretty, slug)
        # TODO: Remove the following message  and attachment flag override after report email attachment is fixed
        attach_reports_to_email = False
        email_message = "The report has been generated. You can download it by going to the reports page under Course Administration->Reports, or by visiting https://class.stanford.edu/%s/browse_reports." % course_handle.replace('--', '/')
        req_reports = [{'type': 'assessment_full', 'slug': slug}]
    
    elif report_type == 'assessment_summary':
        slug = request.POST["slug"]
        email_title = "[Class2Go] Assessment Summary Report for %s %s" % (course_handle_pretty, slug)
        req_reports = [{'type': 'assessment_summary', 'slug': slug}]
        
    elif report_type == 'survey_summary':
        slug = request.POST["slug"]
        email_title = "[Class2Go] Survey Summary Report for %s %s" % (course_handle_pretty, slug)
        req_reports = [{'type': 'survey_summary', 'slug': slug}]
    
    elif report_type == 'assessment_student_scores':
        email_title = "[Class2Go] Assessment Student Scores Report for %s" % (course_handle_pretty)
        req_reports = [{'type': 'assessment_student_scores'}]    
    
    generate_and_email_reports(request.user.username, course_handle, req_reports, email_title, email_message, attach_reports_to_email)
    
    return redirect(request.META.get('HTTP_REFERER', None))
 def handle(self, *args, **options):
     now = datetime.now()
     active_courses = Course.objects.filter(mode='ready', calendar_end__gt=now)
     
     for ready_course in active_courses:
         email_title = "[Class2Go] Daily %s Reports" % ready_course.handle.replace('--', '-')
         email_message = "To generate or download any of Class2Go's report types, please visit your course's reports page from Course Administration->Reports, or by visiting https://class.stanford.edu/%s/browse_reports." % ready_course.handle.replace('--', '/')
         params = [{'type':'dashboard'}, {'type':'course_quizzes'}]
         if settings.AWS_ACCESS_KEY_ID == 'local':
             # do right here (note missing "delay" in next line)
             generate_and_email_reports('c2g_daily_report_mailer',
                     ready_course.handle, params, email_title, email_message)
         else:
             # queue and run on util machine
             generate_and_email_reports.delay('c2g_daily_report_mailer', 
                     ready_course.handle, params, email_title, email_message)
Example #3
0
    def handle(self, *args, **options):
        now = datetime.now()
        active_courses = Course.objects.filter(mode='ready',
                                               calendar_end__gt=now)

        for ready_course in active_courses:
            email_title = "[Class2Go] Daily %s Reports" % ready_course.handle.replace(
                '--', '-')
            email_message = "To generate or download any of Class2Go's report types, please visit your course's reports page from Course Administration->Reports, or by visiting https://class.stanford.edu/%s/browse_reports." % ready_course.handle.replace(
                '--', '/')
            params = [{'type': 'dashboard'}, {'type': 'course_quizzes'}]
            if settings.AWS_ACCESS_KEY_ID == 'local':
                # do right here (note missing "delay" in next line)
                generate_and_email_reports('c2g_daily_report_mailer',
                                           ready_course.handle, params,
                                           email_title, email_message)
            else:
                # queue and run on util machine
                generate_and_email_reports.delay('c2g_daily_report_mailer',
                                                 ready_course.handle, params,
                                                 email_title, email_message)