diff --git a/users/templates/users/data.html b/users/templates/users/data.html
index 100dfaed..28ac7264 100644
--- a/users/templates/users/data.html
+++ b/users/templates/users/data.html
@@ -160,6 +160,28 @@
+
+
diff --git a/users/urls.py b/users/urls.py
index f8c8c999..638b148f 100644
--- a/users/urls.py
+++ b/users/urls.py
@@ -9,6 +9,7 @@ urlpatterns = [
path('data/', data, name='data'),
path('data/export_reviews', export_reviews, name='export_reviews'),
path('data/export_marks', export_marks, name='export_marks'),
+ path('data/sync_mastodon', sync_mastodon, name='sync_mastodon'),
path('preferences/', preferences, name='preferences'),
path('logout/', logout, name='logout'),
path('delete/', delete, name='delete'),
diff --git a/users/views.py b/users/views.py
index e1a748c4..297d0420 100644
--- a/users/views.py
+++ b/users/views.py
@@ -838,8 +838,9 @@ def manage_report(request):
# Utils
########################################
-def refresh_mastodon_data_task(user, token):
- user.mastodon_token = token
+def refresh_mastodon_data_task(user, token=None):
+ if token:
+ user.mastodon_token = token
if user.refresh_mastodon_data():
user.save()
print(f"{user} mastodon data refreshed")
@@ -901,3 +902,10 @@ def export_marks(request):
response = HttpResponse(fh.read(), content_type="application/vnd.ms-excel")
response['Content-Disposition'] = 'attachment;filename="marks.xlsx"'
return response
+
+
+@login_required
+def sync_mastodon(request):
+ if request.method == 'POST':
+ django_rq.get_queue('mastodon').enqueue(refresh_mastodon_data_task, request.user)
+ return redirect(reverse("users:data"))