44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
"""
|
|
A tiny app that checks for a status message.
|
|
"""
|
|
|
|
from django.conf import settings
|
|
import json
|
|
import logging
|
|
import os
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
|
|
def get_site_status_msg(course_id):
|
|
"""
|
|
Look for a file settings.STATUS_MESSAGE_PATH. If found, read it,
|
|
parse as json, and do the following:
|
|
|
|
* if there is a key 'global', include that in the result list.
|
|
* if course is not None, and there is a key for course.id, add that to the result list.
|
|
* return "<br/>".join(result)
|
|
|
|
Otherwise, return None.
|
|
|
|
If something goes wrong, returns None. ("is there a status msg?" logic is
|
|
not allowed to break the entire site).
|
|
"""
|
|
try:
|
|
if os.path.isfile(settings.STATUS_MESSAGE_PATH):
|
|
with open(settings.STATUS_MESSAGE_PATH) as f:
|
|
content = f.read()
|
|
else:
|
|
return None
|
|
|
|
status_dict = json.loads(content)
|
|
msg = status_dict.get('global', None)
|
|
if course_id in status_dict:
|
|
msg = msg + "<br>" if msg else ''
|
|
msg += status_dict[course_id]
|
|
|
|
return msg
|
|
except:
|
|
log.exception("Error while getting a status message.")
|
|
return None
|