def single_item(id): item = get_object_or_404(Item.select(), Item.hash == id) tags = (Tag .select() .join(ItemTag) .join(Item) .where(Item.hash == item.hash) .order_by(Tag.name)) all_tags = join_tags(x.name for x in tags) # Get the prev/next item in this group. if item.group is not None: prev_item = (Item .select() .where(Item.group == item.group, Item.group_index == item.group_index - 1) .first()) next_item = (Item .select() .where(Item.group == item.group, Item.group_index == item.group_index + 1) .first()) else: prev_item = next_item = None return render_template('item.html', item=item, tags=tags, prev_item=prev_item, next_item=next_item, all_tags=all_tags)
def single_item_data(id): item = get_object_or_404(Item.select(), Item.hash == id) fp = image_store.get_file_object(id) if item.is_animated_gif: return send_file(fp, mimetype='image/gif') return send_file(fp, mimetype='image/png')
def edit_item_tags(id): item = get_object_or_404(Item.select(), Item.hash == id) tags = request.form.get('tags') if tags is not None: update_tags(item, split_tags(tags)) flash('Tags updated successfully', 'info') else: flash('No tags given', 'warning') return redirect(url_for('single_item', id=id))
def delete_item(id): item = get_object_or_404(Item.select(), Item.hash == id) image_store.delete(item.hash) thumb_store.delete(item.hash) # TODO: cascade delete ItemTags item.delete_instance() flash('Item was successfully deleted', 'info') return redirect(url_for('all_items'))
def single_tag(id): tag = get_object_or_404(Tag.select(), Tag.id == id) items = (Item .select() .join(ItemTag) .join(Tag) .where(Tag.id == id) .order_by(Item.created_on.desc())) return object_list('items.html', items, banner="Items with tag '%s'" % (tag.name,), paginate_by=app.config['ITEMS_PER_PAGE'])
def edit_item_group(id): item = get_object_or_404(Item.select(), Item.hash == id) group = request.form.get('group') if group is not None and len(group) > 0: update_group(group) flash('Group updated successfully', 'info') else: flash('No group given - nothing done', 'warning') return redirect(url_for('single_item', id=id))
def render_event(event_id): _event = get_object_or_404(Event.select(), Event.id == event_id) if _event.members_only and not (g.user or g.user.is_authenticated()): abort(404) ts = _event.timestamp end = (ts - EPOCH).total_seconds() + (60**2) * _event.duration event = _event.as_dict() event['start'] = ts.strftime("%I:%M %p %m/%d/%Y") event['end'] = datetime.datetime.utcfromtimestamp(end).strftime( "%I:%M %p %m/%d/%Y") return render_template_with_user("event.html", event=event)
def delete_group(id): group = get_object_or_404(Group.select(), Group.id == id) group.delete_instance() # TODO: cascade delete flash('Group was successfully deleted', 'info') return redirect(url_for('groups'))
def single_group(id): group = get_object_or_404(Group.select(), Group.id == id) items = Item.select().join(Group).where(Group.id == id) return object_list('items.html', items, banner="Items in group '%s'" % (group.name,), paginate_by=app.config['ITEMS_PER_PAGE'])
def delete_tag(id): tag = get_object_or_404(Tag.select(), Tag.id == id) tag.delete_instance() # TODO: cascade delete flash('Tag was successfully deleted', 'info') return redirect(url_for('tags'))
def single_item_thumb(id): item = get_object_or_404(Item.select(), Item.hash == id) fp = thumb_store.get_file_object(id) return send_file(fp, mimetype='image/png')
def render_documents_minute(minute_id): minute = get_object_or_404(Minute.select(), Minute.id == minute_id) minute = minute.as_dict() minute['content'] = Markup(markdown(minute['content'])) return render_template_with_user("documents_minute.html", minute=minute)