From 806815ba0cbbaaf307496c42a192b29ee8366a5b Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Tue, 20 Dec 2011 21:45:50 +0000 Subject: [PATCH] Removed EDK API extract, added Assign Groups command --- app/tools/management/commands/assigngroup.py | 49 +++++++++++++++++++ .../management/commands/edkapiextract.py | 22 --------- 2 files changed, 49 insertions(+), 22 deletions(-) create mode 100644 app/tools/management/commands/assigngroup.py delete mode 100644 app/tools/management/commands/edkapiextract.py diff --git a/app/tools/management/commands/assigngroup.py b/app/tools/management/commands/assigngroup.py new file mode 100644 index 0000000..c3e5061 --- /dev/null +++ b/app/tools/management/commands/assigngroup.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python + +import unicodedata +import re +from optparse import make_option +from django.core.management.base import BaseCommand, CommandError +from eve_api.models import EVEPlayerCharacter +from eve_api.app_defines import API_STATUS_OK + +class Command(BaseCommand): + help = ("Assigns a group to corporation or alliance.") + + option_list = BaseCommand.option_list + ( + make_option('-a', '--alli', action='store', dest='alliance', help='Alliance ID'), + make_option('-c', '--corp', action='store', dest='corporation', help='Corp ID'), + make_option('-g', '--group', action='store', dest='group', help='Group ID to assign to the corp/alliance') + ) + + requires_model_validation = False + + def handle(self, **options): + + if not options.get('alliance', None) and not options.get('corporation', None): + raise CommandError("Please provide either a corporation or alliance") + + if options.get('alliance', None) and options.get('corporation', None): + raise CommandError("Use either alliance or corporation, not both") + + if not options.get('group', None): + raise CommandError("You need to specify a domain") + + alliance = options.get('alliance', None) + corporation = options.get('corporation', None) + group = Group.objects.get(id=options.get('group')) + + args = {'eveaccount__api_status': API_STATUS_OK} + + if alliance: + args['eveaccount__characters__corporation__alliance__id'] = alliance + elif corporation: + args['eveaccount__characters__corporation__id'] = corporation + + users = User.objects.filter(**args).distinct() + print "%s user(s) to update." % users.count() + for user in users: + user.groups.add(group) + print "Done." + + diff --git a/app/tools/management/commands/edkapiextract.py b/app/tools/management/commands/edkapiextract.py deleted file mode 100644 index 7f840f7..0000000 --- a/app/tools/management/commands/edkapiextract.py +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env python2.5 - -from django.core.management.base import NoArgsCommand -from eve_api.models import EVEPlayerCharacter -from eve_api.app_defines import * - -class Command(NoArgsCommand): - help = "Extracts a list of director's full API keys in CSV format for uploading to EDK" - - def handle_noargs(self, **options): - chars = EVEPlayerCharacter.objects.filter(roles__name='roleDirector', eveaccount__api_keytype=API_KEYTYPE_FULL, eveaccount__api_status=API_STATUS_OK, corporation__alliance__ticker="TEST") - donekeys = [] - - i = 0 - for c in chars: - i = i + 1 - print "\"TEST\",\"API_CharID_%s\",\"%s\"" % (i, c.id) - print "\"TEST\",\"API_UserID_%s\",\"%s\"" % (i, c.eveaccount_set.all()[0].pk) - print "\"TEST\",\"API_Key_%s\",\"%s\"" % (i, c.eveaccount_set.all()[0].api_key) - print "\"TEST\",\"API_Name_%s\",\"%s - %s\"" % (i, c.corporation.name, c.name) - print "\"TEST\",\"API_Type_%s\",\"corp\"" % (i) - print "\"TEST\",\"API_Key_count\",\"%s\"" % i