def all_images(self, tag=None): c.tag = tag if tag: c.galleries = list(Gallery.by_tag( self.db, descending=True, startkey=[tag,{}], endkey=[tag[:-1] + unichr(ord(tag[-1]) - 1)], )) else: c.galleries = list(Gallery.by_date(self.db, descending=True)) return render('/gallery/all_images.mako')
def list(self, page): try: int(page) except ValueError: abort(404) c.pages = list(self.db.view('galleries/count'))[0].value if c.pages % self.entries_per_page: c.pages += 1 if int(page) <= c.pages: c.galleries = list(Gallery.by_date( self.db, descending=True, limit=self.entries_per_page, skip=self.entries_per_page * (int(page) - 1) )) c.pages = list(self.db.view('galleries/count'))[0].value / self.entries_per_page if c.pages % self.entries_per_page == 0: c.pages += 1 c.page = int(page) c.base_url = url(controller='gallery', action='list', page=0)[:-1] return render('/gallery/gallery_list.mako') else: abort(404)
def images_order(self, id): gallery = Gallery.load(self.db, id) gallery.images = json.loads(request.POST['images_order']) gallery.store(self.db); return 'OK'
def delete_image(self, id): gallery = Gallery.load(self.db, id) gallery.images.remove(request.GET['image']) gallery.store(self.db) return 'OK'
def upload_image(self, id): error = None image = request.POST['Filedata'] if hasattr(image, 'file'): gallery = Gallery.load(self.db, id) im_filename = store_image(image.file) gallery.images.append(im_filename) gallery.store(self.db) im_obj = PILImage.open(image_path(im_filename)) ret = { 'status': '1', 'name': image.filename, 'width': im_obj.size[0], 'height': im_obj.size[1], 'mime': im_obj.format, } else: ret = { 'status': '0', 'error': 'Invalid Upload', } return json.dumps(ret)
def delete_gallery(self, id): gallery = Gallery.load(self.db, id) gallery.delete(self.db) flash("Gallery successfully deleted.") redirect(url(controller='admin', action='galleries'))
def show(self, slug): c.gallery = list(Gallery.by_slug(self.db, key=slug, limit=1)) if not c.gallery or c.gallery[0].slug != slug: abort(404) else: c.gallery = c.gallery[0] return render('/gallery/show.mako')
def tag(self, tag, page=0): try: int(page) except ValueError: abort(404) c.pages = list(self.db.view('galleries/tag_count', group=True, key=tag)) if c.pages: c.pages = c.pages[0].value c.pages = (c.pages % self.entries_per_page == 0) and \ list(self.db.view('galleries/tag_count', group=True, key=tag))[0].value / self.entries_per_page or \ list(self.db.view('galleries/tag_count', group=True, key=tag))[0].value / self.entries_per_page + 1 page = int(page) if page <= c.pages: if page == 0: redirect(url(controller='gallery', action='tag', tag=tag, page=1)) else: c.galleries = list(Gallery.by_tag( self.db, descending=True, startkey=[tag,{}], endkey=[tag[:-1] + unichr(ord(tag[-1]) - 1)], skip=self.entries_per_page * (int(page) - 1), limit=self.entries_per_page, )) c.page = page c.base_url = url(controller='gallery', action='tag', tag=tag, page=0)[:-1] c.tag = tag return render('/gallery/gallery_list.mako') else: abort(404) else: abort(404)
def do_edit_gallery(self, id=None, redirect_to_gallery=False): if not id: gallery = Gallery() else: gallery = Gallery.load(self.db, id) gallery.name = request.POST['name'] gallery.text = request.POST['text'] gallery.tags = [tag.strip().lower() for tag in request.POST['tags'].split(',')] gallery.tags = filter(lambda t: t != '', gallery.tags) # cover image if hasattr(request.POST['cover_image'], 'file'): if gallery.cover: remove_image(gallery.cover) gallery.cover = store_image(request.POST['cover_image'].file) # Video stuff for video in request.POST.getall('delete_video'): gallery.videos.remove(video) videos = [video.strip() for video in request.POST['videos'].split(',')] videos = filter(lambda v: v != '', videos) if gallery.videos: gallery.videos.extend(videos) else: gallery.videos = videos gallery.date = date(int(request.POST['year']), int(request.POST['month']), 1) gallery.store(self.db) flash("Gallery successfully edited.") if redirect_to_gallery: redirect(url(controller='admin', action='edit_gallery', id=gallery.id)) else: redirect(url(controller='admin', action='galleries'))
def edit_gallery(self, id): c.gallery = Gallery.load(self.db, id) return render('/admin/edit_gallery.mako')
def galleries(self): c.galleries = Gallery.by_created(self.db, descending=True) return render('/admin/galleries.mako')
def images_delete_list(self, id): c.gallery = Gallery.load(self.db, id) return render('/admin/images_list.mako')