Esempio n. 1
0
def enable_auto_certificate_generation(apps, schema_editor):
    """ add an enabled CertificateGenerationConfiguration and
        enable student-generated certificates on all courses
        by setting the enabled bit
    """
    # not sure why I'm not getting the certificates app, so we'll force it
    from certificates.models import CertificateGenerationConfiguration, CertificateGenerationCourseSetting
    apps.load_app('certificates')
    apps.register_models('certificates', CertificateGenerationConfiguration)
    apps.register_models('certificates', CertificateGenerationCourseSetting)
    CertificateGenerationConfiguration = apps.get_model(
        "certificates", "CertificateGenerationConfiguration")
    ccg = CertificateGenerationConfiguration(
        enabled=1)  # configuration model.  just add a new one
    ccg.save()

    CertificateGenerationCourseSetting = apps.get_model(
        "certificates", "CertificateGenerationCourseSetting")
    courses = modulestore().get_courses()
    for course in courses:
        key = course.location.course_key
        ccs, created = CertificateGenerationCourseSetting.objects.get_or_create(
            course_key=key, enabled=1)
        if not created:
            ccs.enabled = 1
            ccs.save()
Esempio n. 2
0
    def test_view_certificate_link(self):
        """
        If certificate web view is enabled then certificate web view button should appear for user who certificate is
        available/generated
        """
        certificate = GeneratedCertificateFactory.create(
            user=self.user,
            course_id=self.course.id,
            status=CertificateStatuses.downloadable,
            download_url="http://www.example.com/certificate.pdf",
            mode='honor'
        )

        # Enable the feature, but do not enable it for this course
        CertificateGenerationConfiguration(enabled=True).save()

        # Enable certificate generation for this course
        certs_api.set_cert_generation_enabled(self.course.id, True)

        #course certificate configurations
        certificates = [
            {
                'id': 1,
                'name': 'Name 1',
                'description': 'Description 1',
                'course_title': 'course_title_1',
                'signatories': [],
                'version': 1,
                'is_active': True
            }
        ]

        self.course.certificates = {'certificates': certificates}
        self.course.cert_html_view_enabled = True
        self.course.save()
        self.store.update_item(self.course, self.user.id)

        resp = views.progress(self.request, course_id=unicode(self.course.id))
        self.assertContains(resp, u"View Certificate")

        self.assertContains(resp, u"You can keep working for a higher grade")
        cert_url = certs_api.get_certificate_url(
            user_id=self.user.id,
            course_id=self.course.id
        )
        self.assertContains(resp, cert_url)

        # when course certificate is not active
        certificates[0]['is_active'] = False
        self.store.update_item(self.course, self.user.id)

        resp = views.progress(self.request, course_id=unicode(self.course.id))
        self.assertNotContains(resp, u"View Your Certificate")
        self.assertNotContains(resp, u"You can now view your certificate")
        self.assertContains(resp, u"We're creating your certificate.")
Esempio n. 3
0
    def test_generate_cert_config(self):
        resp = views.progress(self.request, course_id=unicode(self.course.id))
        self.assertNotContains(resp, 'Request Certificate')

        # Enable the feature, but do not enable it for this course
        CertificateGenerationConfiguration(enabled=True).save()
        resp = views.progress(self.request, course_id=unicode(self.course.id))
        self.assertNotContains(resp, 'Request Certificate')

        # Enable certificate generation for this course
        certs_api.set_cert_generation_enabled(self.course.id, True)
        resp = views.progress(self.request, course_id=unicode(self.course.id))
        self.assertNotContains(resp, 'Request Certificate')
Esempio n. 4
0
    def test_view_certificate_link_hidden(self):
        """
        If certificate web view is disabled then certificate web view button should not appear for user who certificate
        is available/generated
        """
        GeneratedCertificateFactory.create(
            user=self.user,
            course_id=self.course.id,
            status=CertificateStatuses.downloadable,
            download_url="http://www.example.com/certificate.pdf",
            mode='honor'
        )

        # Enable the feature, but do not enable it for this course
        CertificateGenerationConfiguration(enabled=True).save()

        # Enable certificate generation for this course
        certs_api.set_cert_generation_enabled(self.course.id, True)

        resp = views.progress(self.request, course_id=unicode(self.course.id))
        self.assertContains(resp, u"Download Your Certificate")
Esempio n. 5
0
 def test_resp_with_generate_cert_config_enabled(self):
     CertificateGenerationConfiguration(enabled=True).save()
     resp = views.progress(self.request, course_id=unicode(self.course.id))
     self.assertEqual(resp.status_code, 200)