# HG changeset patch # User Brian Neal # Date 1379636696 18000 # Node ID e0e79451339d027341a38b87cd35b80c261b36f8 # Parent cc8de231df5a78947393c5687f26046eb0085924 Modify user_photos admin delete to delete from S3 bucket. diff -r cc8de231df5a -r e0e79451339d user_photos/admin.py --- a/user_photos/admin.py Thu Sep 19 18:57:47 2013 -0500 +++ b/user_photos/admin.py Thu Sep 19 19:24:56 2013 -0500 @@ -2,6 +2,7 @@ from django.contrib import admin from user_photos.models import Photo +from user_photos.s3 import delete_photos IMG_TAG = """thumbnail""" @@ -11,9 +12,37 @@ raw_id_fields = ['user'] search_fields = ['user__username', 'user__email'] list_display = ['__unicode__', 'thumbnail'] + actions = ['custom_delete'] def thumbnail(self, obj): return IMG_TAG.format(url=obj.url, thumb_url=obj.thumb_url) thumbnail.allow_tags = True + def custom_delete(self, request, qs): + """Custom delete in order to remove images from the S3 bucket in + addition to removing from the database. + + """ + delete_photos(qs) + count = len(qs) + qs.delete() + + if count == 1: + msg_bit = "1 photo was" + else: + msg_bit = "{} photos were".format(count) + + self.message_user(request, "{} successfully deleted.".format(msg_bit)) + custom_delete.short_description = "Delete selected photos from DB & S3" + + def get_actions(self, request): + """Remove the default delete selected action because we have installed + our own. + + """ + actions = super(PhotoAdmin, self).get_actions(request) + del actions['delete_selected'] + return actions + + admin.site.register(Photo, PhotoAdmin) diff -r cc8de231df5a -r e0e79451339d user_photos/tests.py --- a/user_photos/tests.py Thu Sep 19 18:57:47 2013 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ -""" -This file demonstrates writing tests using the unittest module. These will pass -when you run "manage.py test". - -Replace this with more appropriate tests for your application. -""" - -from django.test import TestCase - - -class SimpleTest(TestCase): - def test_basic_addition(self): - """ - Tests that 1 + 1 always equals 2. - """ - self.assertEqual(1 + 1, 2)