From baf14633cbd8af6413290ccae5765aefd2a278a5 Mon Sep 17 00:00:00 2001 From: bnewbold Date: Mon, 20 Jun 2016 16:37:07 -0400 Subject: remove old django folder --- bn_django/photos/views.py | 185 ---------------------------------------------- 1 file changed, 185 deletions(-) delete mode 100644 bn_django/photos/views.py (limited to 'bn_django/photos/views.py') diff --git a/bn_django/photos/views.py b/bn_django/photos/views.py deleted file mode 100644 index a6459f6..0000000 --- a/bn_django/photos/views.py +++ /dev/null @@ -1,185 +0,0 @@ -# Create your views here. - -# django imports -from django.conf import settings -from django import forms, http, template -from django.contrib.auth.decorators import login_required -from django.shortcuts import get_object_or_404, render_to_response -from django.http import HttpResponse - -# other imports -import zipfile -import os -import stat -import shutil -from datetime import datetime -from tempfile import NamedTemporaryFile, mkdtemp -import Image -try: - from cStringIO import StringIO -except ImportError: - from StringIO import StringIO - -# Handling settings here -try: - STOCKPHOTO_BASE = settings.STOCKPHOTO_BASE.strip('/') -except AttributeError: - STOCKPHOTO_BASE = 'photos' - -# models -from bn_django.photos.models import Gallery, Photo - -# views - -class ImportForm(forms.Form): - zipfile = forms.FileField() - photographer = forms.CharField() - date = forms.DateField() - - def valid_zipfile(self, field_data, all_data): - zip_file = StringIO(field_data['content']) - zip = zipfile.ZipFile(zip_file) - return not zip.testzip() - -@login_required -def import_photos(request, thegallery): - """Import a batch of photographs uploaded by the user. - - Import a batch of photographs uploaded by the user, all with - the same information for gallery, photographer and date. The - title will be set from the filename, and the description will be - blank. Self-respecting photographers will edit the fields for - each photograph; this is just a way to get a bunch of photographs - uploaded quickly. - - The photographs should be wrapped up in a zip archive. The - archive will be unpacked (and flattened) in a temporary directory, - and all image files will be identified and imported into the - gallery. Other files in the archive will be silently ignored. - - After importing the images, the view will display a page which may - contain the number of images imported, and a link to the gallery - into which the images were imported. - """ - # Check if the gallery is valid - gallery = get_object_or_404(Gallery, pk=thegallery) - # And that the user has permission to add photos - if not request.user.has_perm('gallery.add_photo'): - return http.HttpResponseForbidden("No permission to add photos") - - if request.POST: - #new_data = request.POST.copy() - #new_data.update(request.FILES) - form = ImportForm(request.POST, request.FILES) - if not form.is_valid(): - return render_to_response('photos/import_form.html', - dict(form=form, gallery=gallery)) - # So now everything is okay - f = request.FILES['zipfile'] # the zip"file" - zip = zipfile.ZipFile(f) - date = request.POST['date'] - if not date: - date = datetime.date(datetime.now()) - destdir= os.path.join(settings.MEDIA_ROOT, STOCKPHOTO_BASE, - datetime.strftime(datetime.now(), "%Y/%m/%d/")) - - if not os.path.isdir(destdir): - os.makedirs(destdir, 0775) - for filename in zip.namelist(): - photopath = os.path.join(destdir, os.path.basename(filename)) - data = zip.read(filename) - file_data = StringIO(data) - try: - Image.open(file_data) - except: - # don't save and process non Image files - continue - photo = file(photopath, "wb") - photo.write(data) - f = photo - - # Create the object - if photopath.startswith(os.path.sep): - photopath = photopath[len(settings.MEDIA_ROOT):] - photo = Photo(image=photopath, date=date, - photographer=request.POST['photographer'], - title = 'untitled', - gallery_id = thegallery) - - # Save it -- the thumbnails etc. get created. - photo.save() - - # Try to harvest EXIF data - try: - import EXIF - tags = EXIF.process_file(open(photo.image.path)) - try: - if tags.has_key('Image DateTime'): - exifdate = tags['Image DateTime'].printable - photo.date = apply(datetime, map(int, exifdate.split(' ')[0].split(':'))) - except Exception, E: - print E - pass - try: - if tags.has_key('EXIF UserComment'): - exiftitle = tags['EXIF UserComment'].printable - if not exiftitle == []: - photo.title = exiftitle - - except Exception, E: - print E - pass - try: - if tags.has_key('Image Orientation'): - exifrot = tags['EXIF UserComment'].printable - if exifrot == 'Rotated 90 CCW': - #DO ROTATION - pass - except Exception, E: - print E - pass - except Exception, E: - print E - pass - finally: - photo.save() - - # And jump to the directory for this gallery - response = http.HttpResponseRedirect(gallery.get_absolute_url()) - response['Pragma'] = 'no cache' - response['Cache-Control'] = 'no-cache' - return response - else: - form = ImportForm() - return render_to_response('photos/import_form.html', - dict(form=form, gallery=gallery)) - # request, - -#@login_required -#def export(request, thegallery): - #"""Export a gallery to a zip file and send it to the user. - #""" - ## Check if the gallery is valid - #gallery = get_object_or_404(Gallery, pk=thegallery) - # - ## gather up the photos into a new directory - #tmpdir = mkdtemp() - #for photo in gallery.photo_set.all(): - #shutil.copy(photo.get_image_filename(), - #tmpdir) - #files = [ os.path.join(tmpdir, ff) for ff in os.listdir(tmpdir) ] - #outfile = NamedTemporaryFile() - #zf = zipfile.ZipFile(outfile, "w", - #compression=zipfile.ZIP_DEFLATED) - #for filename in files: - #zf.write(filename, arcname=os.path.basename(filename)) - #zf.close() - ##outfile.flush() - #outfile.seek(0) - #shutil.rmtree(tmpdir) - #response = HttpResponse(outfile) - #response['Content-Type'] = "application/zip" - #response['Content-Length'] = str(os.stat(outfile.name)[stat.ST_SIZE]) - #response['Content-Disposition'] = "attachment; filename=photos.zip" - #return response - # -- cgit v1.2.3