From 16fda2322d582836a1654114248cf6ee0fe97c7c Mon Sep 17 00:00:00 2001 From: Awais Jibran Date: Tue, 27 Mar 2018 14:24:18 +0500 Subject: [PATCH] Use get or create rather than create --- openedx/core/djangoapps/course_groups/cohorts.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/openedx/core/djangoapps/course_groups/cohorts.py b/openedx/core/djangoapps/course_groups/cohorts.py index f287d18458..9b166c98ce 100644 --- a/openedx/core/djangoapps/course_groups/cohorts.py +++ b/openedx/core/djangoapps/course_groups/cohorts.py @@ -256,10 +256,17 @@ def get_cohort(user, course_key, assign=True, use_cached=False): else: course_user_group = get_random_cohort(course_key) - membership = CohortMembership.objects.create( + membership, created = CohortMembership.objects.get_or_create( user=user, course_user_group=course_user_group, ) + if not created: + # EDUCATOR-2549: Adding temporary log to test if we hit a situation where user already has + # a member ship group. + log.info( + "COHORT_MEMBERSHIP_FOUND: Membership found %s for course %s and user %s", + membership.course_user_group, course_key, user.id + ) return cache.setdefault(cache_key, membership.course_user_group) except IntegrityError as integrity_error: