Esempio n. 1
0
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
    })
Esempio n. 2
0
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)})
Esempio n. 3
0
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}
Esempio n. 4
0
    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'),
Esempio n. 5
0
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
Esempio n. 6
0
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')