Skip to content

Commit 301946d

Browse files
committed
Move backup theme images to their own folder to avoid clobbering
1 parent 768ad5f commit 301946d

File tree

3 files changed

+17
-9
lines changed

3 files changed

+17
-9
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ esp/public/media/email_images/*
1111
esp/public/media/uploaded/*
1212
esp/public/media/styles
1313
esp/public/media/images
14+
esp/public/media/default_images/backups
1415
esp/public/media/default_images/histograms
1516
esp/public/media/default_images/theme
1617
esp/public/media/default_images/favicon.ico

esp/esp/themes/views.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -97,42 +97,44 @@ def selector(request, keep_files=None):
9797
def logos(request):
9898
context = {}
9999
tc = ThemeController()
100+
if not os.path.exists(settings.MEDIA_ROOT + 'images/backups'):
101+
os.makedirs(settings.MEDIA_ROOT + 'images/backups')
100102

101103
if request.POST:
102104
if 'new_logo' in request.FILES:
103105
f = request.FILES['new_logo']
104106
with open(settings.MEDIA_ROOT + 'images/theme/logo.png', 'wb+') as destination:
105107
for chunk in f.chunks():
106108
destination.write(chunk)
107-
with open(settings.MEDIA_ROOT + 'images/theme/logo.' + datetime.now().strftime("%Y%m%d-%H%M%S") + '.png', 'wb+') as destination:
109+
with open(settings.MEDIA_ROOT + 'images/backups/logo.' + datetime.now().strftime("%Y%m%d-%H%M%S") + '.png', 'wb+') as destination:
108110
for chunk in f.chunks():
109111
destination.write(chunk)
110112
elif 'new_header' in request.FILES:
111113
f = request.FILES['new_header']
112114
with open(settings.MEDIA_ROOT + 'images/theme/header.png', 'wb+') as destination:
113115
for chunk in f.chunks():
114116
destination.write(chunk)
115-
with open(settings.MEDIA_ROOT + 'images/theme/header.' + datetime.now().strftime("%Y%m%d-%H%M%S") + '.png', 'wb+') as destination:
117+
with open(settings.MEDIA_ROOT + 'images/backups/header.' + datetime.now().strftime("%Y%m%d-%H%M%S") + '.png', 'wb+') as destination:
116118
for chunk in f.chunks():
117119
destination.write(chunk)
118120
elif 'new_favicon' in request.FILES:
119121
f = request.FILES['new_favicon']
120122
with open(settings.MEDIA_ROOT + 'images/favicon.ico', 'wb+') as destination:
121123
for chunk in f.chunks():
122124
destination.write(chunk)
123-
with open(settings.MEDIA_ROOT + 'images/favicon.' + datetime.now().strftime("%Y%m%d-%H%M%S") + '.ico', 'wb+') as destination:
125+
with open(settings.MEDIA_ROOT + 'images/backups/favicon.' + datetime.now().strftime("%Y%m%d-%H%M%S") + '.ico', 'wb+') as destination:
124126
for chunk in f.chunks():
125127
destination.write(chunk)
126128
elif 'logo_select' in request.POST:
127-
shutil.copyfile(settings.MEDIA_ROOT + 'images/theme/' + request.POST['logo_select'], settings.MEDIA_ROOT + 'images/theme/logo.png')
129+
shutil.copyfile(settings.MEDIA_ROOT + 'images/backups/' + request.POST['logo_select'], settings.MEDIA_ROOT + 'images/theme/logo.png')
128130
elif 'header_select' in request.POST:
129-
shutil.copyfile(settings.MEDIA_ROOT + 'images/theme/' + request.POST['header_select'], settings.MEDIA_ROOT + 'images/theme/header.png')
131+
shutil.copyfile(settings.MEDIA_ROOT + 'images/backups/' + request.POST['header_select'], settings.MEDIA_ROOT + 'images/theme/header.png')
130132
elif 'favicon_select' in request.POST:
131-
shutil.copyfile(settings.MEDIA_ROOT + 'images/' + request.POST['favicon_select'], settings.MEDIA_ROOT + 'images/favicon.ico')
133+
shutil.copyfile(settings.MEDIA_ROOT + 'images/backups/' + request.POST['favicon_select'], settings.MEDIA_ROOT + 'images/favicon.ico')
132134

133-
context['logo_files'] = [(path.split('public')[1], path.split('images/theme/')[1]) for path in tc.list_filenames(settings.MEDIA_ROOT + 'images/theme', "logo\..*\.png")]
134-
context['header_files'] = [(path.split('public')[1], path.split('images/theme/')[1]) for path in tc.list_filenames(settings.MEDIA_ROOT + 'images/theme', "header\..*\.png")]
135-
context['favicon_files'] = [(path.split('public')[1], path.split('images/')[1]) for path in tc.list_filenames(settings.MEDIA_ROOT + 'images', "favicon\..*\.ico")]
135+
context['logo_files'] = [(path.split('public')[1], path.split('images/backups/')[1]) for path in tc.list_filenames(settings.MEDIA_ROOT + 'images/backups', "logo\..*\.png")]
136+
context['header_files'] = [(path.split('public')[1], path.split('images/backups/')[1]) for path in tc.list_filenames(settings.MEDIA_ROOT + 'images/backups', "header\..*\.png")]
137+
context['favicon_files'] = [(path.split('public')[1], path.split('images/backups/')[1]) for path in tc.list_filenames(settings.MEDIA_ROOT + 'images/backups', "favicon\..*\.ico")]
136138
context['has_header'] = os.path.exists(settings.MEDIA_ROOT + 'images/theme/header.png')
137139

138140
return render_to_response('themes/logos.html', request, context)

esp/templates/themes/logos.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,11 @@
4848

4949
<h1>Logo Editor</h1>
5050

51+
<div class="alert alert-warning">
52+
<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
53+
You may need to hard refresh the page (Shift + Refresh) after changing any of these theme images for the changes to take effect locally.
54+
</div>
55+
5156
<div class="row-fluid">
5257
<div class="well">
5358
<center>

0 commit comments

Comments
 (0)