Commit faca66b9 by Robert Raposa

Fix refresh_course_metadata for subjects and lang.

parent 10678589
...@@ -141,6 +141,10 @@ class SubjectMarketingSiteDataLoader(AbstractMarketingSiteDataLoader): ...@@ -141,6 +141,10 @@ class SubjectMarketingSiteDataLoader(AbstractMarketingSiteDataLoader):
def process_node(self, data): def process_node(self, data):
slug = data['field_subject_url_slug'] slug = data['field_subject_url_slug']
if ('language' not in data) or (data['language'] == 'und'):
language_code = 'en'
else:
language_code = data['language']
defaults = { defaults = {
'uuid': data['uuid'], 'uuid': data['uuid'],
'name': data['title'], 'name': data['title'],
...@@ -149,17 +153,17 @@ class SubjectMarketingSiteDataLoader(AbstractMarketingSiteDataLoader): ...@@ -149,17 +153,17 @@ class SubjectMarketingSiteDataLoader(AbstractMarketingSiteDataLoader):
'card_image_url': self._get_nested_url(data.get('field_subject_card_image')), '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. # 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')) '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. # There is a bug with django-parler when using django's update_or_create() so we manually update or create.
try: try:
subject = Subject.objects.get(slug=slug, partner=self.partner) subject = Subject.objects.get(slug=slug, partner=self.partner)
subject.set_current_language(language_code)
for key, value in defaults.items(): for key, value in defaults.items():
setattr(subject, key, value) setattr(subject, key, value)
subject.save() subject.save()
except Subject.DoesNotExist: 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) new_values.update(defaults)
subject = Subject(**new_values) subject = Subject(**new_values)
subject.save() subject.save()
......
...@@ -945,6 +945,7 @@ MARKETING_SITE_API_SUBJECT_BODIES = [ ...@@ -945,6 +945,7 @@ MARKETING_SITE_API_SUBJECT_BODIES = [
'field_subject_card_image': { 'field_subject_card_image': {
'url': 'https://www.edx.org/sites/default/files/subject/image/card/math.jpg', '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', 'type': 'subject',
'title': 'Math', 'title': 'Math',
'url': 'https://www.edx.org/course/subject/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