Exemple #1
0
def tutorialbin_rss_view(context, request):
    tutorialbin_url = resource_url(context, request)
    tutorials = get_tutorials(context, request, sys.maxint)
    if tutorials:
        last_date=tutorials[0]['date']
    else:
        last_date=None
    for tutorial in tutorials:
        tutorial['text'] = nl_to_br(tutorial['text'])
    response = dict(
        tutorials = tutorials,
        last_date = last_date,
        tutorialbin_url = tutorialbin_url,
        )
    request.response_content_type = 'application/rss+xml'
    return response
Exemple #2
0
def tutorial_view(context, request):
    text = context.text or u''
    try:
        if context.language:
            l = lexers.get_lexer_by_name(context.language)
        else:
            l = lexers.guess_lexer(context.code)
    except util.ClassNotFound:
        # couldn't guess lexer
        l = lexers.TextLexer()

    formatted_tutorial = highlight(context.code, l, formatter)
    tutorials = get_tutorials(context, request, 10)
    can_edit = has_permission('edit', context, request)
    
    attachment_url = None
    if context.attachment_name is not None:
        attachment_url = request.url + '/download_attachment'

    return dict(
        api = API(context, request),
        author = context.author_name,
        url = context.url,
        date = context.date.strftime('%x at %X'),
        style_defs = style_defs,
        lexer_name = l.name,
        code = formatted_tutorial,
        text = text,
        tutorials = tutorials,
        message = None,
        title = context.title,
        can_edit = can_edit,
        edit_url = resource_url(context, request, 'edit'),
        delete_url = resource_url(context, request, 'delete'),
        tutorialbin_url = resource_url(context.__parent__, request),
        attachment_url = attachment_url,
        attachment_mimetype = context.attachment_mimetype,
        attachment_name = context.attachment_name,
        )
Exemple #3
0
def tutorialbin_view(context,request):
    tutorialbin_url = resource_url(context, request)
    tutorials = get_tutorials(context, request, sys.maxint)
    if tutorials:
        last_date = tutorials[0]['date']
        latest_obj = context[tutorials[0]['name']]
        try:
            if latest_obj.language:
                l = lexers.get_lexer_by_name(latest_obj.language)
            else:
                l = lexers.guess_lexer(latest_obj.code)
        except util.ClassNotFound:
            l = lexers.TextLexer()
        formatted_code= highlight(latest_obj.code, l, formatter)
        latest = {'author_name':latest_obj.author_name,
                  'date':latest_obj.date,
                  'title':latest_obj.title,
                  'text':latest_obj.text,
                  'formatted_code':formatted_code,
                  'url':latest_obj.url}
    else:
        last_date = None
        latest = None
    user = authenticated_userid(request)
    can_manage = has_permission('manage', context, request)
    return dict(
        api = API(context, request),
        tutorials = tutorials,
        style_defs = style_defs,
        last_date = last_date,
        latest = latest,
        message = None,
        tutorialbin_url = tutorialbin_url,
        user = user,
        can_manage = can_manage,
        manage_url = resource_url(context, request, 'manage'),
        )
Exemple #4
0
def tutorialbin_manage_view(context, request):
    params = request.params
    message = params.get('message', u'')

    if params.has_key('form.submitted'):
        form = marshal(request.environ, request.body_file)
        checkboxes = form.get('delete', [])
        for checkbox in checkboxes:
            del context[checkbox]
        message = '%s tutorials deleted' % len(checkboxes)
        url = resource_url(context, request, 'manage',
                           query={'message':message})
        response = HTTPFound(location=url)
        return response

    tutorials = get_tutorials(context, request, sys.maxint)
    tutorialbin_url = resource_url(context, request)

    return dict(
        api = API(context, request),
        message = message,
        tutorials = tutorials,
        tutorialbin_url = tutorialbin_url,
        )
Exemple #5
0
def index_view(context, request):
    tutorials = get_tutorials(context['tutorialbin'], request, 5)
    return {'api' :API(context, request), 'tutorials':tutorials}
Exemple #6
0
            if hasattr(attachment, 'filename'):
                file_name = attachment.filename
                mime_type = attachment.type
                stream = attachment.file
            pobj = Tutorial(title, user, text, url, code, language, 
                            stream, file_name, mime_type)
            acl = context.__acl__[:]
            acl.extend([(Allow, user, 'edit'), (Allow, 'admin', 'edit')])
            pobj.__acl__ = acl
            tutorialid = context.add_item(pobj)
            response = HTTPFound(location = '%s%s' % (tutorialbin_url,
                                                      tutorialid))
            response.set_cookie(COOKIE_LANGUAGE, language)
            return response

    tutorials = get_tutorials(context, request, 10)

    return dict(
        api = API(context, request),
        url = url,
        title = title,
        text = text,
        code = code,
        lexers = lexer_info,
        message = message,
        tutorials = tutorials,
        tutorialbin_url = tutorialbin_url,
        user = user,
        can_manage = can_manage,
        pagetitle = 'Add a Tutorial',
        form_url = resource_url(context, request, 'add'),