Skip to content
This repository was archived by the owner on May 1, 2024. It is now read-only.

Commit 54a8016

Browse files
dmitry-viskovthallada
authored andcommitted
Support multi-leaf tagging (#160)
1 parent c44f8f5 commit 54a8016

2 files changed

Lines changed: 12 additions & 6 deletions

File tree

analytics_data_api/v0/tests/views/test_courses.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -667,6 +667,9 @@ def test_get(self, course_id):
667667
G(models.ProblemsAndTags, course_id=course_id, module_id=module_id,
668668
tag_name='difficulty', tag_value=tags['difficulty'][0],
669669
total_submissions=11, correct_submissions=4, created=created)
670+
G(models.ProblemsAndTags, course_id=course_id, module_id=module_id,
671+
tag_name='difficulty', tag_value=tags['difficulty'][1],
672+
total_submissions=11, correct_submissions=4, created=created)
670673
G(models.ProblemsAndTags, course_id=course_id, module_id=module_id,
671674
tag_name='learning_outcome', tag_value=tags['learning_outcome'][1],
672675
total_submissions=11, correct_submissions=4, created=alt_created)
@@ -680,8 +683,8 @@ def test_get(self, course_id):
680683
'total_submissions': 11,
681684
'correct_submissions': 4,
682685
'tags': {
683-
u'difficulty': u'Easy',
684-
u'learning_outcome': u'Learned a few things',
686+
u'difficulty': [u'Easy', u'Medium'],
687+
u'learning_outcome': [u'Learned a few things'],
685688
},
686689
'created': alt_created.strftime(settings.DATETIME_FORMAT)
687690
},
@@ -690,7 +693,7 @@ def test_get(self, course_id):
690693
'total_submissions': 4,
691694
'correct_submissions': 0,
692695
'tags': {
693-
u'learning_outcome': u'Learned everything',
696+
u'learning_outcome': [u'Learned everything'],
694697
},
695698
'created': created.strftime(settings.DATETIME_FORMAT)
696699
}

analytics_data_api/v0/views/courses.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -714,7 +714,7 @@ class ProblemsAndTagsListView(BaseCourseView):
714714
* module_id: The ID of the problem.
715715
* total_submissions: Total number of submissions.
716716
* correct_submissions: Total number of *correct* submissions.
717-
* tags: Dictionary that contains pairs "tag key: tag value".
717+
* tags: Dictionary that contains pairs "tag key: [tag value 1, tag value 2, ..., tag value N]".
718718
"""
719719
serializer_class = serializers.ProblemsAndTagsSerializer
720720
allow_empty = False
@@ -729,7 +729,10 @@ def get_queryset(self):
729729

730730
for v in items:
731731
if v.module_id in result:
732-
result[v.module_id]['tags'][v.tag_name] = v.tag_value
732+
if v.tag_name not in result[v.module_id]['tags']:
733+
result[v.module_id]['tags'][v.tag_name] = []
734+
result[v.module_id]['tags'][v.tag_name].append(v.tag_value)
735+
result[v.module_id]['tags'][v.tag_name].sort()
733736
if result[v.module_id]['created'] < v.created:
734737
result[v.module_id]['created'] = v.created
735738
else:
@@ -738,7 +741,7 @@ def get_queryset(self):
738741
'total_submissions': v.total_submissions,
739742
'correct_submissions': v.correct_submissions,
740743
'tags': {
741-
v.tag_name: v.tag_value
744+
v.tag_name: [v.tag_value]
742745
},
743746
'created': v.created
744747
}

0 commit comments

Comments
 (0)