Skip to content
This repository was archived by the owner on Nov 15, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions common/djangoapps/nodebb/signals/handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
"""
Expand Down
8 changes: 8 additions & 0 deletions common/lib/nodebb_client/users.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 4 additions & 4 deletions lms/djangoapps/onboarding/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
Expand All @@ -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]
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<% if (roomID[teamID]) { print('<p class="meta-detail team-group"><a href="' + nodeBBUrl + '/chats/' + roomID[teamID] + '">Team Discussion</a></p>'); } %>
<% if (roomID[teamID]) { print('<p class="meta-detail team-group"><a class="link" href="' + nodeBBUrl + '/chats/' + roomID[teamID] + '">Team Discussion</a></p>'); } %>
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
data-user-create-comment="<%- !readOnly %>"
data-user-create-subcomment="<%- !readOnly %>">
<a id="discussion-link" href="#">
<h3>Click Here to Engage in Team Discussion</h3>
<h3 class="link">Click Here to Engage in Team Discussion</h3>
</a>
</div>
</div>
Expand Down