Commit faca66b9 by Robert Raposa

Fix refresh_course_metadata for subjects and lang.

parent 10678589
......@@ -141,6 +141,10 @@ class SubjectMarketingSiteDataLoader(AbstractMarketingSiteDataLoader):
def process_node(self, data):
slug = data['field_subject_url_slug']
if ('language' not in data) or (data['language'] == 'und'):
language_code = 'en'
else:
language_code = data['language']
defaults = {
'uuid': data['uuid'],
'name': data['title'],
......@@ -149,17 +153,17 @@ class SubjectMarketingSiteDataLoader(AbstractMarketingSiteDataLoader):
'card_image_url': self._get_nested_url(data.get('field_subject_card_image')),
# NOTE (CCB): This is not a typo. Yes, the banner image for subjects is in a field with xseries in the name.
'banner_image_url': self._get_nested_url(data.get('field_xseries_banner_image'))
}
# There is a bug with django-parler when using django's update_or_create() so we manually update or create.
try:
subject = Subject.objects.get(slug=slug, partner=self.partner)
subject.set_current_language(language_code)
for key, value in defaults.items():
setattr(subject, key, value)
subject.save()
except Subject.DoesNotExist:
new_values = {'slug': slug, 'partner': self.partner}
new_values = {'slug': slug, 'partner': self.partner, '_current_language': language_code}
new_values.update(defaults)
subject = Subject(**new_values)
subject.save()
......
......@@ -945,6 +945,7 @@ MARKETING_SITE_API_SUBJECT_BODIES = [
'field_subject_card_image': {
'url': 'https://www.edx.org/sites/default/files/subject/image/card/math.jpg',
},
'language': 'en', # language is intentionally added to only one of these.
'type': 'subject',
'title': 'Math',
'url': 'https://www.edx.org/course/subject/math',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment