improved Modal with zoom and pagination. also implementing thumbnail generation
This commit is contained in:
+42
-6
@@ -30,11 +30,22 @@ def index():
|
||||
@main.route('/gallery')
|
||||
@login_required
|
||||
def gallery():
|
||||
recent_images = 21
|
||||
per_page = 35
|
||||
page = request.args.get('page', 1, type=int)
|
||||
|
||||
images = ImageRecord.query.order_by(
|
||||
desc(func.coalesce(ImageRecord.taken_at, ImageRecord.imported_at))
|
||||
).limit(recent_images).all()
|
||||
return render_template('gallery.html', images=images)
|
||||
).paginate(page=page, per_page=per_page)
|
||||
|
||||
return render_template(
|
||||
'gallery.html',
|
||||
images=images,
|
||||
has_next=images.has_next,
|
||||
next_page_url=url_for('main.gallery', page=images.next_num) if images.has_next else '',
|
||||
has_prev=images.has_prev,
|
||||
prev_page_url=url_for('main.gallery', page=images.prev_num) if images.has_prev else ''
|
||||
)
|
||||
|
||||
|
||||
@main.route('/images/<path:filename>')
|
||||
def serve_image(filename):
|
||||
@@ -43,12 +54,21 @@ def serve_image(filename):
|
||||
@main.route('/artist/<artist_name>')
|
||||
@login_required
|
||||
def artist_gallery(artist_name):
|
||||
per_page=49
|
||||
per_page = 35
|
||||
page = request.args.get('page', 1, type=int)
|
||||
images = ImageRecord.query.filter_by(artist=artist_name).order_by(
|
||||
desc(func.coalesce(ImageRecord.taken_at, ImageRecord.imported_at))
|
||||
).paginate(page=page, per_page=per_page)
|
||||
return render_template('artist_gallery.html', images=images, artist=artist_name)
|
||||
|
||||
return render_template(
|
||||
'artist_gallery.html',
|
||||
images=images,
|
||||
artist=artist_name,
|
||||
has_next=images.has_next,
|
||||
next_page_url=url_for('main.artist_gallery', artist_name=artist_name, page=images.next_num) if images.has_next else '',
|
||||
has_prev=images.has_prev,
|
||||
prev_page_url=url_for('main.artist_gallery', artist_name=artist_name, page=images.prev_num) if images.has_prev else ''
|
||||
)
|
||||
|
||||
@main.route('/artists')
|
||||
@login_required
|
||||
@@ -82,12 +102,28 @@ def settings():
|
||||
abort(403)
|
||||
return render_template('settings.html')
|
||||
|
||||
@main.route('/trigger-thumbnail-generation', methods=['POST'])
|
||||
@login_required
|
||||
def trigger_thumbnail_generation():
|
||||
if not current_user.is_admin:
|
||||
flash("You do not have permission to perform this action.", "danger")
|
||||
return redirect(url_for('main.settings'))
|
||||
|
||||
try:
|
||||
with open('/import/thumbnail.flag', 'w') as f:
|
||||
f.write("trigger")
|
||||
flash("Thumbnail regeneration has been triggered.", "success")
|
||||
except Exception as e:
|
||||
flash(f"Failed to trigger thumbnail regeneration: {e}", "danger")
|
||||
|
||||
return redirect(url_for('main.settings'))
|
||||
|
||||
@main.route('/import-images')
|
||||
@login_required
|
||||
def trigger_image_import():
|
||||
with open('/import/trigger.flag', 'w') as f:
|
||||
f.write('start')
|
||||
flash("Image import triggered.")
|
||||
flash("Image import triggered.", "success")
|
||||
return redirect(url_for('main.settings'))
|
||||
|
||||
@main.route('/reset-db', methods=['POST'])
|
||||
|
||||
Reference in New Issue
Block a user