From a60fbcfd1cd3641bdb132023cb0c4ea33e87f1d3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Stefan=20K=C3=B6gl?= Date: Thu, 23 Feb 2012 21:18:26 +0000 Subject: [PATCH] update cleanup-unused-users management command --- .../management/commands/cleanup-unused-users.py | 17 ------------ .../maintenance/_design/views/deleted_users/map.js | 10 +++++++ .../_design/views/deleted_users/reduce.js | 1 + .../management/commands/cleanup-unused-users.py | 31 ++++++++++++++++++++++ 4 files changed, 42 insertions(+), 17 deletions(-) delete mode 100644 mygpo/data/management/commands/cleanup-unused-users.py create mode 100644 mygpo/maintenance/_design/views/deleted_users/map.js create mode 100644 mygpo/maintenance/_design/views/deleted_users/reduce.js create mode 100644 mygpo/maintenance/management/commands/cleanup-unused-users.py diff --git a/mygpo/data/management/commands/cleanup-unused-users.py b/mygpo/data/management/commands/cleanup-unused-users.py deleted file mode 100644 index 3f9c3fbd..00000000 --- a/mygpo/data/management/commands/cleanup-unused-users.py +++ /dev/null @@ -1,17 +0,0 @@ -from django.core.management.base import BaseCommand - -from mygpo.users.models import User - - -class Command(BaseCommand): - - def handle(self, *args, **options): - - for user in User.all_users(): - - if not user.activation_key_expired(): - continue - - if not user.is_active and user.deleted: - print 'deleting ', user - #user.delete() diff --git a/mygpo/maintenance/_design/views/deleted_users/map.js b/mygpo/maintenance/_design/views/deleted_users/map.js new file mode 100644 index 00000000..779b087d --- /dev/null +++ b/mygpo/maintenance/_design/views/deleted_users/map.js @@ -0,0 +1,10 @@ +function(doc) +{ + if(doc.doc_type == "User") + { + if(doc.deleted == true) + { + emit(null, null); + } + } +} diff --git a/mygpo/maintenance/_design/views/deleted_users/reduce.js b/mygpo/maintenance/_design/views/deleted_users/reduce.js new file mode 100644 index 00000000..c866cd72 --- /dev/null +++ b/mygpo/maintenance/_design/views/deleted_users/reduce.js @@ -0,0 +1 @@ +_count diff --git a/mygpo/maintenance/management/commands/cleanup-unused-users.py b/mygpo/maintenance/management/commands/cleanup-unused-users.py new file mode 100644 index 00000000..50b0f63e --- /dev/null +++ b/mygpo/maintenance/management/commands/cleanup-unused-users.py @@ -0,0 +1,31 @@ +from django.core.management.base import BaseCommand + +from mygpo.users.models import User + +from mygpo.utils import progress + + +class Command(BaseCommand): + + def handle(self, *args, **options): + + users = User.view('maintenance/deleted_users', + include_docs = True, + reduce = False, + ) + + total = User.view('maintenance/deleted_users', + reduce = True, + ) + + total = total['value'] if total else 0 + + for n, user in enumerate(users): + + if user.is_active or not user.deleted: + print 'skipping', user.username + + print 'deleting', user.username + user.delete() + + progress(n+1, total) -- 2.11.4.GIT