Uppladdning av foton
This commit is contained in:
parent
5bef7182f9
commit
0cdc75f1f9
@ -103,12 +103,22 @@
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
Ladda upp foto
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<form class="form-inline">
|
||||
<div class="form-group">
|
||||
<input type="file">
|
||||
<form method="post" action="{{url_for('upload')}}" class="form-inline" enctype="multipart/form-data">
|
||||
<div class="input-group">
|
||||
<label class="input-group-btn">
|
||||
<span class="btn btn-primary">
|
||||
<span class="glyphicon glyphicon-folder-open"></span>
|
||||
<span class="glyphicon glyphicon-option-horizontal"></span>
|
||||
<input name="photo" type="file" style="display: none;" id="photo-upload">
|
||||
</span>
|
||||
</label>
|
||||
<input type="text" class="form-control" readonly id="photo-name">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-default">Ladda upp foto</button>
|
||||
<button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-upload"></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@ -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)
|
||||
});
|
||||
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
37
app/views.py
37
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/<parent>')
|
||||
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/<id>')
|
||||
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'))
|
||||
|
Loading…
x
Reference in New Issue
Block a user