Serve branded footer JSON/HTML/CSS/JS from an API endpoint in the branding app. Refactor OpenEdX and EdX.org footer templates to use the Python version of the API, ensuring that the API values are consistent with the footer included in main.html. Detailed changes: * Added footer API end-point to the branding app. * Footer API allows the language to be set with querystring parameters. * Footer API allows showing/hiding of the OpenEdX logo using querystring parameters. * Deprecate ENABLE_FOOTER_V3 in favor of the branding API configuration flag. * Move no referrer script into main.html from the edx footer template. * Rename rwd_header_footer.js to rwd_header.js * Cache API responses. Authors: Awais Qureshi, Aamir Khan, Will Daly
58 lines
1.5 KiB
Python
58 lines
1.5 KiB
Python
"""
|
|
Model used by Video module for Branding configuration.
|
|
|
|
Includes:
|
|
BrandingInfoConfig: A ConfigurationModel for managing how Video Module will
|
|
use Branding.
|
|
"""
|
|
import json
|
|
from django.db.models import TextField
|
|
from django.core.exceptions import ValidationError
|
|
from config_models.models import ConfigurationModel
|
|
|
|
|
|
class BrandingInfoConfig(ConfigurationModel):
|
|
"""
|
|
Configuration for Branding.
|
|
|
|
Example of configuration that must be stored:
|
|
{
|
|
"CN": {
|
|
"url": "http://www.xuetangx.com",
|
|
"logo_src": "http://www.xuetangx.com/static/images/logo.png",
|
|
"logo_tag": "Video hosted by XuetangX.com"
|
|
}
|
|
}
|
|
"""
|
|
configuration = TextField(
|
|
help_text="JSON data of Configuration for Video Branding."
|
|
)
|
|
|
|
def clean(self):
|
|
"""
|
|
Validates configuration text field.
|
|
"""
|
|
try:
|
|
json.loads(self.configuration)
|
|
except ValueError:
|
|
raise ValidationError('Must be valid JSON string.')
|
|
|
|
@classmethod
|
|
def get_config(cls):
|
|
"""
|
|
Get the Video Branding Configuration.
|
|
"""
|
|
info = cls.current()
|
|
return json.loads(info.configuration) if info.enabled else {}
|
|
|
|
|
|
class BrandingApiConfig(ConfigurationModel):
|
|
"""Configure Branding api's
|
|
|
|
Enable or disable api's functionality.
|
|
When this flag is disabled, the api will return 404.
|
|
|
|
When the flag is enabled, the api will returns the valid reponse.
|
|
"""
|
|
pass
|