From e2324e8a1686ea5654dc94a973ff07aaa216aeaf Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Tue, 31 May 2011 11:29:34 +0100 Subject: [PATCH] Allows API keys added via Admin to be updated, fixes issue #64 --- app/conf/development.py | 3 +++ app/eve_api/admin.py | 12 +++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/conf/development.py b/app/conf/development.py index 4ce4e66..69af8a5 100644 --- a/app/conf/development.py +++ b/app/conf/development.py @@ -48,3 +48,6 @@ ADMINS = ( ) MANAGERS = ADMINS +CELERY_ALWAYS_EAGER = True +CELERY_EAGER_PROPAGATES_EXCEPTIONS = True + diff --git a/app/eve_api/admin.py b/app/eve_api/admin.py index 00e158c..1316fbf 100644 --- a/app/eve_api/admin.py +++ b/app/eve_api/admin.py @@ -24,9 +24,19 @@ char_api_update.short_description = "Update character information from the EVE A class EVEAccountAdmin(admin.ModelAdmin): list_display = ('api_user_id', 'user', 'api_keytype', 'api_status', 'api_last_updated') search_fields = ['api_user_id', 'user__username'] - readonly_fields = ('api_keytype', 'api_user_id', 'api_key', 'api_status', 'characters', 'api_last_updated', 'characters') + readonly_fields = ('api_keytype', 'api_status', 'characters', 'api_last_updated', 'characters') actions = [account_api_update] + def save_model(self, request, obj, form, change): + admin.ModelAdmin.save_model(self, request, obj, form, change) + task = import_apikey.delay(api_key=obj.api_key, api_userid=obj.api_user_id) + try: + task.wait(10) + except celery.exceptions.TimeoutError: + self.message_user(request, "The API key is queued for update." % obj.api_user_id) + except: + self.message_user(request, "An error was encountered why updating the API Key") + admin.site.register(EVEAccount, EVEAccountAdmin) class EVEPlayerCharacterAdmin(admin.ModelAdmin):