Customizing course completion certificates (on Olive)

Hello everyone. I’m a longtime-listener (lurker, really), first-time caller!

I’m trying to customize the certificates on my Open edX instance, but have been unsuccessful so far.

There’s a lot of forum posts about this (but apparently as a newbie I’m only allowed to add 5 links, so I deleted them from here!), but most of them are either old enough to not be relevant anymore (e.g. ironwood release), aren’t applicable to tutor, or are just incomplete with no answers.

So let me break down what I’ve tried so far:


Customization via customized tutor indigo theme + overrides

I made sure to create a plugin, named “$(tutor plugins printroot)/custom_certs.py”, which is set as follows (in following the https://docs.tutor.overhang.io/plugins/examples.html example from the tutor examples page:

from tutor import hooks

hooks.Filters.ENV_PATCHES.add_item(
    (
        "lms-env-features",
        """
"CUSTOM_CERTIFICATE_TEMPLATES_ENABLED": true
"""
    )
)

And then per this thread I do

$ tutor local run lms ./manage.py lms shell
>>> from django.conf import settings
>>> settings.FEATURES["CUSTOM_CERTIFICATE_TEMPLATES_ENABLED"]
True

to confirm it’s really set.

I then made a custom indigo theme following these instructions. (I just named mine indigo_custom, and confirmed it applied successfully.)

I thought the way things worked with themes, is that whatever files you put into them would ultimately just overwrite whatever files were in the tutor docker containers? (Am I incorrect here?)

So as a test, I wanted to change the wording of the certificate from "successfully completed, received a passing grade, and was awarded this " to just "was awarded this ".

That text is found in edx-platform/lms/djangoapps/certificates/views/webview.py

So I cloned edx-platform, checked out the open-release/olive.3 branch, and did

cd ~/indigo_custom/tutorindigo/templates/indigo_custom/lms/
mkdir djangoapps; mkdir djangoapps/certificates; mkdir djangoapps/certificates/views
cp ~/edx-platform/lms/djangoapps/certificates/views/webview.py  ./djangoapps/certificates/views/webview.py

Then I edited webview.py to change the text to my liking. (Note: I’m ultimately trying to do CSS changes, so this is just a simple sanity check test.)

Then I did

tutor config save
tutor images build openedx
tutor local launch

However, no change appeared in the text :frowning:

So, why am I not seeing any change to the text from custom_certs.py in my site’s certificates?

Did I place the webview.py in the wrong directory? Am I enabling CUSTOM_CERTIFICATE_TEMPLATES_ENABLED incorrectly? Do I need to rebuild some other container other than openedx?

Thanks in advance y’all!

1 Like

Hi @JS777 ,

I have the same problem. I recently installed Open edX tutor (Olive) and would need to customize the certificate template. Unfortunately I only found old or incomplete posts from other versions of Open edX (usually the native or Ironwood version).

Please, any progress you make let me know. In the same way, I will try to help if I discover something useful.

Thank you.

After you set the flag, you can override your template by /admin enviroment

  1. Set the flag as on the lms common settings and rebuild your application

    (
    “openedx-lms-common-settings”,
    “FEATURES[‘CUSTOM_CERTIFICATE_TEMPLATES_ENABLED’] = True”
    )
    )

  2. Then go to the /admin environment with your super user and you can override the template
    ourAplication/admin/certificates/certificatetemplate/

1 Like

(I have the same question)

also how to set this in tutor?

1 Like

No, just de flag.

Does anyone know what to do if certificates is not in Django admin? I’ve followed the setup per @Elis_Zoche comment, and no errors, but the option just doesn’t show in admin

The only thing related to certificates is [CONTENTSTORE] [‘clean_stale_certificate_availability_dates’]

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.