Rensat i koden

This commit is contained in:
Thomas Lovén 2017-05-18 11:58:37 +02:00
parent d2fc9d6349
commit 5bef7182f9
4 changed files with 15 additions and 28 deletions

View File

@ -1,7 +1,8 @@
from flask_wtf import FlaskForm
from wtforms import StringField, BooleanField, TextAreaField, SelectField, SelectMultipleField, SubmitField
from wtforms import StringField, BooleanField, TextAreaField, SubmitField
from wtforms import widgets
from wtforms.validators import DataRequired
from wtforms.ext.sqlalchemy.fields import QuerySelectField, QuerySelectMultipleField
class PageForm(FlaskForm):
@ -9,6 +10,9 @@ class PageForm(FlaskForm):
title = StringField('Title', validators=[DataRequired()])
description = TextAreaField('Beskrivning')
endpoint = BooleanField('Produkt')
thumbnail = SelectField('Bild')
photos = SelectMultipleField('Galleri', option_widget=widgets.CheckboxInput(), widget=widgets.ListWidget(prefix_label=False))
thumbnail = QuerySelectField('Bild', get_label='alt')
photos = QuerySelectMultipleField('Galleri',
option_widget=widgets.CheckboxInput(),
widget=widgets.ListWidget(prefix_label=False),
get_label = lambda p: '<img src="/thumbnail/{}">'.format(p.id))
submit = SubmitField('Ok')

View File

@ -30,7 +30,6 @@ class Page(db.Model):
description = db.Column(db.Text(), index=True, default="")
thumbnail = db.relationship('Photo', secondary=thumbnails, uselist=False)
photos = db.relationship('Photo', secondary=photos)
endpoint = db.Column(db.Boolean)

View File

@ -25,11 +25,9 @@
<div class="form-group">
<label class="control-label col-lg-2" for="thumbnail">Bild</label>
<div class="col-lg-8">
<div class="col-lg-9 thumbnail">
{{ form.thumbnail(class_="form-control") }}
</div>
<div class="col-lg-2">
<img src="{{url_for('thumbnail', id=form.thumbnail.data)}}" class="thumbnail img-responsive">
<img src="{{url_for('thumbnail', id=form.thumbnail.data.id)}}" class="thumbnail img-responsive" id="thumbnail-display">
</div>
</div>
@ -71,6 +69,9 @@ $('#description').change(function() {
$.post("/admin/markdown", {md: $('#description').val()}).done(function(data) {
$('#preview').html(data);
});
});
$('#thumbnail').change(function() {
$('#thumbnail-display').attr('src', '/thumbnail/'+$(this).val());
});
</script>
{% endblock %}

View File

@ -38,31 +38,14 @@ def admin():
@app.route('/admin/page/<id>', methods=['GET', 'POST'])
def admin_page(id):
page = Page.query.filter_by(id=id).first_or_404()
form = PageForm()
photos = Photo.query.all()
form.photos.choices = [('{}'.format(p.id), '<img src="/thumbnail/{}">'.format(p.id)) for p in photos]
form.thumbnail.choices = [('{}'.format(p.id), p.alt) for p in photos]
form = PageForm(obj=page)
form.thumbnail.query = form.photos.query = Photo.query.all()
if form.validate_on_submit():
page.name = form.name.data
page.title = form.title.data
page.description = form.description.data
page.endpoint = form.endpoint.data
page.thumbnail = Photo.query.filter_by(id=form.thumbnail.data).first()
page.photos = [Photo.query.filter_by(id=int(p)).first() for p in form.photos.data]
db.session.add(page)
form.populate_obj(page)
db.session.commit()
return redirect(url_for('admin'))
else:
form.name.data = page.name
form.title.data = page.title
form.description.data = page.description
form.endpoint.data = page.endpoint
print(page.thumbnail)
form.thumbnail.data = str(page.thumbnail.id) if page.thumbnail else '1'
form.photos.data = [str(p.id) for p in page.photos]
return render_template('admin_page.html', page=page, form=form)
@app.route('/admin/newpage/<parent>')