From 8844e2f6b4b230d90b3fbf98cc2c0a49232f71b6 Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Wed, 16 Mar 2011 08:40:36 +0000 Subject: [PATCH] Convert update-directors into a full command --- app/settings.py | 5 +- .../management/commands/update-directors.py | 61 ++++++------------- 2 files changed, 24 insertions(+), 42 deletions(-) diff --git a/app/settings.py b/app/settings.py index 644e553..12afe7b 100755 --- a/app/settings.py +++ b/app/settings.py @@ -160,11 +160,14 @@ FULL_API_CHARACTER_ID = 246102445 BANNED_EMAIL_DOMAINS = ['att.net'] - ## Eve Proxy settings EVE_PROXY_KEEP_LOGS = 30 +## Director management settings + +IGNORE_CORP_GROUPS = [29] + # try and import local settings try: from conf.settingslocal import * diff --git a/app/tools/management/commands/update-directors.py b/app/tools/management/commands/update-directors.py index 1bc6277..9a29d10 100755 --- a/app/tools/management/commands/update-directors.py +++ b/app/tools/management/commands/update-directors.py @@ -1,50 +1,29 @@ -#!/usr/bin/env python -"""Executes a Django cronjob""" - -PACS = 29 - -import os, sys - -# Set niceness -os.nice(20) - -# Activate the virtualenv -path = os.path.dirname(os.path.realpath( __file__ )) -os.chdir(path) -activate_this = os.path.join(path, 'env/bin/activate_this.py') -execfile(activate_this, dict(__file__=activate_this)) - -from django.core.management import setup_environ -import settings -setup_environ(settings) - -from eve_api.models import EVEPlayerCharacter +from django.conf import settings +from django.core.management.base import NoArgsCommand from django.contrib.auth.models import Group, User - +from eve_api.models import EVEPlayerCharacter from sso.tasks import update_user_access -g = Group.objects.get(name="Alliance Directors") +class Command(NoArgsCommand): + help = "Updates the members of the alliance director group" -users = [] -for char in EVEPlayerCharacter.objects.filter(corporation__alliance__name="Test Alliance Please Ignore",director=True): - if char.eveaccount_set.count() and char.eveaccount_set.all()[0].user and not (char.corporation.group and char.corporation.group.id == PACS): - users.append(char.eveaccount_set.all()[0].user) + def handle_noargs(self, **options): + g = Group.objects.get(name="Alliance Directors") -add = set(users) - set(g.user_set.all()) -rem = set(g.user_set.all()) - set(users) + users = [] + for char in EVEPlayerCharacter.objects.filter(corporation__alliance__name="Test Alliance Please Ignore",roles__name="roleDirector"): + if char.eveaccount_set.count() and char.eveaccount_set.all()[0].user and not (char.corporation.group and char.corporation.group.id in settings.IGNORE_CORP_GROUPS): + users.append(char.eveaccount_set.all()[0].user) -print "Add:", add -print "Rem:", rem + add = set(users) - set(g.user_set.all()) + rem = set(g.user_set.all()) - set(users) + print g.user_set.all() -for m in rem: - m.groups.remove(g) - update_user_access.delay(m.id) + for m in rem: + m.groups.remove(g) + update_user_access.delay(m.id) -for m in add: - m.groups.add(g) - update_user_access.delay(m.id) - -#for u in set(users): -# print "Updating %s" % u -# update_user_access.delay(u.id) + for m in add: + m.groups.add(g) + update_user_access.delay(m.id)