diff --git a/common/djangoapps/nodebb/signals/handlers.py b/common/djangoapps/nodebb/signals/handlers.py index 9d7563b26999..b685e919eab3 100644 --- a/common/djangoapps/nodebb/signals/handlers.py +++ b/common/djangoapps/nodebb/signals/handlers.py @@ -90,6 +90,17 @@ def update_user_profile_on_nodebb(sender, instance, created, **kwargs): log_action_response(instance, status_code, response_body) +@receiver(post_delete, sender=User) +def delete_user_from_nodebb(sender, **kwargs): + """ + Delete User from NodeBB when deleted at edx (either deleted via admin-panel OR user is under age) + """ + instance = kwargs['instance'] + + status_code, response_body = NodeBBClient().users.delete_user(instance.username, kwargs={}) + log_action_response(instance, status_code, response_body) + + @receiver(pre_save, sender=User, dispatch_uid='activate_deactivate_user_on_nodebb') def activate_deactivate_user_on_nodebb(sender, instance, **kwargs): """ diff --git a/common/lib/nodebb_client/users.py b/common/lib/nodebb_client/users.py index b472f41f346e..6115cbf9b8f2 100644 --- a/common/lib/nodebb_client/users.py +++ b/common/lib/nodebb_client/users.py @@ -34,6 +34,14 @@ def update_profile(self, username, **kwargs): kwargs['kwargs']['username'] = username return self.client.post('/api/v2/users/update', **kwargs['kwargs']) + def delete_user(self, username, kwargs): + """ + Delete user from NodBB database + """ + kwargs['username'] = username + kwargs['_uid'] = 1 + return self.client.delete('/api/v2/user/delete', **kwargs) + def update_onboarding_surveys_status(self, username): """ Update NodeBB when user successfully completed all required onboarding surveys diff --git a/lms/djangoapps/onboarding/models.py b/lms/djangoapps/onboarding/models.py index 4444036c377d..7d9f21679fda 100644 --- a/lms/djangoapps/onboarding/models.py +++ b/lms/djangoapps/onboarding/models.py @@ -210,7 +210,7 @@ def admin_info(self): def get_active_partners(self): """ Return list of active organization partners""" - return self.organization_partners.filter(end_date__gt=datetime.utcnow().date()).values_list('partner', flat=True) + return self.organization_partners.filter(end_date__gt=datetime.utcnow()).values_list('partner', flat=True) def __str__(self): return self.label @@ -233,8 +233,8 @@ def update_organization_partners(cls, organization, partners, removed_partners): # Set unchecked partners end date to today cls.objects.filter(organization=organization, - partner__in=removed_partners, end_date__gt=datetime.utcnow().date()).update( - end_date=datetime.now(utc).date()) + partner__in=removed_partners, end_date__gt=datetime.utcnow()).update( + end_date=datetime.now(utc)) # Mark removed partner affliation flag to False if not selected in any organization _removed_partners = PartnerNetwork.objects.filter(code__in=removed_partners) @@ -246,7 +246,7 @@ def update_organization_partners(cls, organization, partners, removed_partners): # Get already added partners for an organization no_updated_selections = cls.objects.filter(organization=organization, - partner__in=partners, end_date__gt=datetime.utcnow().date()).values_list('partner', flat=True) + partner__in=partners, end_date__gt=datetime.utcnow()).values_list('partner', flat=True) # Filter out new/reselected Partners new_selections = [p for p in partners if p not in no_updated_selections] diff --git a/lms/djangoapps/teams/static/teams/templates/group.underscore b/lms/djangoapps/teams/static/teams/templates/group.underscore index ac8207d80570..4d77424acc18 100644 --- a/lms/djangoapps/teams/static/teams/templates/group.underscore +++ b/lms/djangoapps/teams/static/teams/templates/group.underscore @@ -1 +1 @@ -<% if (roomID[teamID]) { print('
'); } %> +<% if (roomID[teamID]) { print(''); } %> diff --git a/lms/djangoapps/teams/static/teams/templates/team-profile.underscore b/lms/djangoapps/teams/static/teams/templates/team-profile.underscore index 9b8316a083fc..cab0a561d764 100644 --- a/lms/djangoapps/teams/static/teams/templates/team-profile.underscore +++ b/lms/djangoapps/teams/static/teams/templates/team-profile.underscore @@ -5,7 +5,7 @@ data-user-create-comment="<%- !readOnly %>" data-user-create-subcomment="<%- !readOnly %>"> -