From ecb052125c99ef0cbc5b0e458e528943b12bf39c Mon Sep 17 00:00:00 2001
From: Cali Stenson <cstenson@edx.org>
Date: Fri, 16 Nov 2018 13:11:17 -0500
Subject: [PATCH] Move get_user_partition_groups to partition_services to call
 from multiple contexts.

---
 .../xmodule/partitions/partitions_service.py  | 27 ++++++++++++++++
 .../transformers/user_partitions.py           | 31 ++-----------------
 2 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/common/lib/xmodule/xmodule/partitions/partitions_service.py b/common/lib/xmodule/xmodule/partitions/partitions_service.py
index d7320773637..3b67e15a9e4 100644
--- a/common/lib/xmodule/xmodule/partitions/partitions_service.py
+++ b/common/lib/xmodule/xmodule/partitions/partitions_service.py
@@ -41,6 +41,33 @@ def get_all_partitions_for_course(course, active_only=False):
         all_partitions = [partition for partition in all_partitions if partition.active]
     return all_partitions
 
+def get_user_partition_groups(course_key, user):
+        """
+        Collect group ID for each partition in this course for this user.
+
+        Arguments:
+            course_key (CourseKey)
+            user_partitions (list[UserPartition])
+            user (User)
+
+        Returns:
+            dict[int: Group]: Mapping from user partitions to the group to
+                which the user belongs in each partition. If the user isn't
+                in a group for a particular partition, then that partition's
+                ID will not be in the dict.
+        """
+        user_partitions = get_all_partitions_for_course(course)
+        partition_groups = {}
+        for partition in user_partitions:
+            group = partition.scheme.get_group_for_user(
+                course_key,
+                user,
+                partition,
+            )
+            if group is not None:
+                partition_groups[partition.id] = group
+        return partition_groups
+
 
 def _get_dynamic_partitions(course):
     """
diff --git a/lms/djangoapps/course_blocks/transformers/user_partitions.py b/lms/djangoapps/course_blocks/transformers/user_partitions.py
index 69df9e62013..c296812bab9 100644
--- a/lms/djangoapps/course_blocks/transformers/user_partitions.py
+++ b/lms/djangoapps/course_blocks/transformers/user_partitions.py
@@ -6,7 +6,7 @@ from openedx.core.djangoapps.content.block_structure.transformer import (
     BlockStructureTransformer,
     FilteringTransformerMixin
 )
-from xmodule.partitions.partitions_service import get_all_partitions_for_course
+from xmodule.partitions.partitions_service import get_user_partition_groups
 
 from .split_test import SplitTestTransformer
 from .utils import get_field_on_block
@@ -78,7 +78,7 @@ class UserPartitionTransformer(FilteringTransformerMixin, BlockStructureTransfor
         if not user_partitions:
             return [block_structure.create_universal_filter()]
 
-        user_groups = _get_user_partition_groups(usage_info.course_key, user_partitions, user)
+        user_groups = get_user_partition_groups(usage_info.course_key, user_partitions, user)
 
         group_access_filter = block_structure.create_removal_filter(
             lambda block_key: not (
@@ -239,30 +239,3 @@ class _MergedGroupAccess(object):
 
         # The user has access for every partition, grant access.
         return True
-
-
-def _get_user_partition_groups(course_key, user_partitions, user):
-    """
-    Collect group ID for each partition in this course for this user.
-
-    Arguments:
-        course_key (CourseKey)
-        user_partitions (list[UserPartition])
-        user (User)
-
-    Returns:
-        dict[int: Group]: Mapping from user partitions to the group to
-            which the user belongs in each partition. If the user isn't
-            in a group for a particular partition, then that partition's
-            ID will not be in the dict.
-    """
-    partition_groups = {}
-    for partition in user_partitions:
-        group = partition.scheme.get_group_for_user(
-            course_key,
-            user,
-            partition,
-        )
-        if group is not None:
-            partition_groups[partition.id] = group
-    return partition_groups
-- 
GitLab