def list_records(key): sitemap.register('catalog.list_records', _('List positions'), child_of='catalog.list_categories', args={'key': key}) category = yield Category.get_async(key) records, pager = Record.paginate(Record.for_category(key), page_size=10) raise tasklets.Return({ 'records': records, 'pager': pager, 'category': category })
def tagged_records(tag): sitemap.register('catalog.tagged_records', _('With tag "%(tag)s"', tag=tag), child_of='catalog.filtered_records', args={'tag': tag}) categories = User2Category.get_for_user(user=g.user).map_async( lambda u2c: u2c.category) categories = yield categories records = Record.for_categories(categories).filter(Record.tags.value == tag) tags, pager = Tag.paginate() records, pager = Record.paginate(records) raise tasklets.Return({ 'tags': tags, 'records': records, 'pager': pager, 'page_title': _("Records for tag: %(tag)s", tag=tag)})
def create_record(key=None): sitemap.register('catalog.create_record', _('Create position'), child_of='catalog.list_records', args={'key': key}) upload_url = blobstore.create_upload_url(url_for('.create_record')) form = RecordForm(len(request.form) and request.form or None, category=key) if request.method == 'POST' and form.validate(): file_info = len(request.files) and request.files['attachment'] or None if file_info is not None: file_info = file_info.mimetype_params['blob-key'] form.save(file_info) return redirect(url_for('.list_records', key=form.category.data)) else: category = Category.get(key) return {'form': form, 'category': category, 'upload_url': upload_url}
elif key is not None and session.pop('uuid', None) == key: return {'finished': True} form = SignUpForm(len(request.form) and request.form or None) if request.method == 'POST' and form.validate(): user = form.save() session['uuid'] = str(uuid.uuid1()) email.send(rcpt=user.username, subject=_("[%s] Account activation" % SITE_TITLE), template='auth/email/activate.html', context={'user': user, 'hostname': HOSTNAME}) return redirect(url_for('.sign_up', key=session['uuid'])) return {'form': form} sitemap.register('auth.sign_up', _('Sign Up')) @auth.route('/sign_up/activate') @render_to() def activate(): token = request.args.get('token') user = User.validate_token(token) if token is not None and user: user.is_active = True login(user) return redirect(url_for('.view_profile')) return {} sitemap.register('auth.activate', _('Activate account'),
from . import catalog from .forms import CategoryForm, RecordForm from .models import Category, Record, User2Category, User2Record, Tag @catalog.route('/cats/create', methods=['GET', 'POST']) @login_required @render_to() def create_category(): form = CategoryForm(len(request.form) and request.form or None) if request.method == 'POST' and form.validate(): form.save() return redirect(url_for('.list_categories')) return {'form': form} sitemap.register('catalog.create_category', _('Create category'), child_of='catalog.list_categories') @catalog.route('/cats') @login_required @render_to() def list_categories(): cats, pager = Category.paginate() return {'pager': pager, 'categories': cats} sitemap.register('catalog.list_categories', _('Categories list')) @catalog.route('/cats/<key>/records/create', methods=['GET']) @catalog.route('/records/create', methods=['POST']) @login_required
from core.decorators import render_to from core.sitemap import sitemap from .. import auth from ..decorators import login_required from ..forms import ProfileForm @auth.route('/profile') @login_required @render_to('auth/profile_view.html') def view_profile(): return {'user': g.user} sitemap.register('auth.view_profile', _('Profile')) @auth.route('/profile/edit', methods=['GET', 'POST']) @login_required @render_to('auth/profile_edit.html') def edit_profile(): form = ProfileForm(len(request.form) and request.form or None, obj=g.user) if request.method == 'POST' and form.validate(): form.populate_obj(g.user) g.user.put() return redirect(url_for('.view_profile')) return {'user': g.user, 'form': form} sitemap.register('auth.edit_profile', _('Edit'), child_of='auth.view_profile')