diff --git a/app/templates/admin.html b/app/templates/admin.html
index 2a463e3..2351a4f 100644
--- a/app/templates/admin.html
+++ b/app/templates/admin.html
@@ -103,12 +103,22 @@
+
+ Ladda upp foto
+
@@ -149,5 +159,13 @@ $('#deletemodal').on('show.bs.modal', function (event) {
modal.find('.modal-body p').text(message)
modal.find('.modal-footer a').attr('href', href)
})
+
+$('#photo-upload').on('change', function (event) {
+ var filename = $(this).val()
+ filename = filename.replace(/\\/g, "/")
+ filename = filename.replace(/.*\//, "")
+ $('#photo-name').val(filename)
+});
+
{% endblock %}
diff --git a/app/views.py b/app/views.py
index f30d559..f1f4c39 100644
--- a/app/views.py
+++ b/app/views.py
@@ -1,4 +1,6 @@
+import os
from flask import render_template, send_from_directory, redirect, url_for, request, render_template_string
+from werkzeug.utils import secure_filename
from . import app, db
from .models import Page, Photo
from .forms import PageForm
@@ -47,7 +49,6 @@ def admin_page(id):
return redirect(url_for('admin'))
else:
return render_template('admin_page.html', page=page, form=form)
-
@app.route('/admin/newpage/
')
def admin_newpage(parent):
parent = Page.query.filter_by(id=parent).first_or_404()
@@ -57,7 +58,6 @@ def admin_newpage(parent):
db.session.commit()
return redirect(url_for('admin'))
-
@app.route('/admin/delpage/')
def admin_delpage(id):
page = Page.query.filter_by(id=id).first_or_404()
@@ -65,7 +65,38 @@ def admin_delpage(id):
db.session.delete(page)
db.session.commit()
return redirect(url_for('admin'))
-
@app.route('/admin/markdown', methods=['POST'])
def markdown():
return render_template_string('{{ md | markdown }}', md=request.form['md'])
+
+@app.route('/admin/upload', methods=['POST'])
+def upload():
+ from PIL import Image, ImageOps
+ def genimg(img, imgout, size):
+ img.thumbnail(size)
+ hpad = int((size[0]-img.size[0])/2)
+ vpad = int((size[1]-img.size[1])/2)
+ thumb = Image.new(mode='RGBA', size=size, color=(255,255,255,0))
+ thumb.paste(img, (hpad, vpad))
+ thumb.save(imgout)
+ if 'photo' in request.files:
+ file = request.files['photo']
+ photo = Photo(alt="Nytt foto")
+ db.session.add(photo)
+ db.session.commit()
+ id = photo.id
+ tempname = os.path.join('app/photos', secure_filename(file.filename))
+ file.save(tempname)
+
+ img = Image.open(tempname)
+ filename = '{}.jpg'.format(id)
+ imgpath = os.path.join('app', 'photos', filename)
+ thumb = os.path.join('app', 'photos', 'thumbs', filename)
+ slide = os.path.join('app', 'photos', 'slides', filename)
+ img.save(imgpath, 'JPEG')
+ genimg(img, imgpath, img.size)
+ genimg(img, thumb, (171, 180))
+ genimg(img, slide, (550, 400))
+ os.remove(tempname)
+
+ return redirect(url_for('admin'))