Rensat i koden
This commit is contained in:
parent
d2fc9d6349
commit
5bef7182f9
10
app/forms.py
10
app/forms.py
@ -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')
|
||||
|
@ -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)
|
||||
|
@ -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 %}
|
||||
|
23
app/views.py
23
app/views.py
@ -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>')
|
||||
|
Loading…
x
Reference in New Issue
Block a user