def add_image(gallery_id): gallery = Gallery.get_by_id(gallery_id) if not gallery: return render_template('empty.html') image_form = AddImageForm() if image_form.validate_on_submit(): upload_files = get_uploads(request, 'image') if len(upload_files): blob_info = upload_files[0] if blob_info.size and GalleryImage.is_image_type(blob_info.content_type): img = GalleryImage.create( blob_info.key(), size=blob_info.size, filename=os.path.basename(blob_info.filename.replace('\\','/')), content_type=blob_info.content_type) if not len(gallery.images): img.is_master = True if img.get_cached_url(): gallery.images.append(img) gallery.put() else: blob_info.delete() else: return render_template('empty.html') return redirect(url_for('gallery.admin_edit', key_id=gallery_id))
def get_gallery(gallery_id): gallery = Gallery.get_by_id(gallery_id) if not gallery or not gallery.is_public or not gallery.images: return redirect(url_for('gallery.index')) return render_template( 'gallery/get_gallery.html', html_class='gallery_page', gallery=gallery)
def del_image(gallery_id, img_id): gallery = Gallery.get_by_id(gallery_id) if gallery: for i, k in enumerate(gallery.images): if k.uid == img_id: k.delete_blob() del gallery.images[i] gallery.put() break return redirect(url_for('gallery.admin_edit', key_id=gallery_id))
def edit_gallery(key_id): gallery = Gallery.get_by_id(key_id) form = EditGalleryForm(obj=gallery) image_form = AddImageForm() add_img_url = blobstore.create_upload_url(url_for('gallery.admin_add_image', gallery_id=gallery.key.id())) if request.method == 'POST' and form.validate(): gallery.name = form.name.data gallery.is_public = form.is_public.data gallery.description = form.description.data gallery.put() return redirect(url_for('gallery.admin')) return render_template('gallery/admin/edit.html', title=u'Редактирование галереи', gallery=gallery, form=form, image_form=image_form, add_img_url=add_img_url)
def edit_image(gallery_id, img_id): gallery = Gallery.get_by_id(gallery_id) image = None for i, img in enumerate(gallery.images): if img.uid == img_id: image = i if image is None: return redirect(url_for('gallery.admin_edit', key_id=gallery_id)) form = EditImageForm(obj=gallery.images[image]) if request.method == 'POST' and form.validate(): form.populate_obj(gallery.images[image]) gallery.put() return redirect(url_for('gallery.admin_edit', key_id=gallery_id)) return render_template('gallery/admin/edit_image.html', image=gallery.images[image], gallery=gallery, form=form)
def del_gallery(gallery_id): gallery = Gallery.get_by_id(gallery_id) if gallery: gallery.key.delete() return redirect(url_for('gallery.admin'))