Exemplo n.º 1
0
    def explore(self, username, path, **data):

        user = models.User.get_by(username=username)
        if not user:
            cherrypy.response.status = 404
            return template.render_html('user/not_found.html',
                                        {'username': username})

        repo = models.GitRepository.get_by(owner=user, name=reponame)
        if not repo:
            cherrypy.response.status = 404
            return template.render_html('repository/not_found.html',
                                        {'reponame': reponame})

        d = repo.list_dir()
        return json_response(d)
Exemplo n.º 2
0
    def index(self, **kw):
        title = u'Ma Cherie'
        content = 'Picture navigator'
        images = File.all()
        if 'search' in kw.keys():
            images = [i for i in images if kw['search'].lower() in i.name.lower()]

        return render_html('index.html', dict(title=title, content=content, images=images))
Exemplo n.º 3
0
    def repository_page(self, username, path, **data):
        path = path.split("/")
        reponame = path.pop(0)
        files = []

        user = models.User.get_by(username=username)
        repository = models.GitRepository.get_by(name=reponame,
                                                 owner=user)
        if not repository:
            return template.render_html('repository/not_found.html',
                                        {'reponame': reponame})

        code = style = ""
        if len(path) == 2 and len(path[-1]) == 40:
            ohash = path[-1]
            if path[0] == 'tree':
                files = repository.list_dir(ohash)

            elif path[0] == 'blob':
                raw = repository.get_blob(ohash)
                try:
                    lexer = lexers.guess_lexer(raw)
                except ValueError:
                    lexer = lexers.TextLexer()

                formatter = pygments.formatters.HtmlFormatter(style='colorful')
                code = pygments.highlight(raw, lexer, formatter)
                style = formatter.get_style_defs()
        else:
            files = repository.list_dir()


        localhost = cherrypy.config['server.socket_host']
        return template.render_html('repository/page.html',
                                    {'repository': repository,
                                     'files': files,
                                     'code': code,
                                     'style': style,
                                     'os_user': os.getenv('USER'),
                                     'local_address': localhost})
Exemplo n.º 4
0
def test_render_html():
    got = template.render_html('test1.html', dict(title='foo', header='bar'), template_path=templates)
    assert '<title>My title: foo</title>' in got
    assert '<h1>My header: bar</h1>' in got
Exemplo n.º 5
0
 def dashboard(self, user):
     return template.render_html('dashboard.html', {'user': user})
Exemplo n.º 6
0
 def manage_account(self, user, **data):
     return template.render_html('user/account.html', {'user': user})
Exemplo n.º 7
0
        return ajax_error('missing repository name')

    @route('/login')
    def login(self, **data):
        context = {}
        email = data.get('email')
        password = data.get('password')
        redirect_to = data.get('redirect', '/')

        context['not_registered'] = False
        context['wrong_password'] = False
        context['email'] = email or ''

        if email and password:
            try:
                user = models.User.authenticate(email, password)
                cherrypy.session['user_id'] = user.id
                raise cherrypy.HTTPRedirect(redirect_to)

            except models.User.NotFound, e:
                context['not_registered'] = unicode(email)

            except models.User.WrongPassword, e:
                context['wrong_password'] = unicode(e)

        return template.render_html('user/login.html', context)

    @authenticated_route('/dashboard')
    def dashboard(self, user):
        return template.render_html('dashboard.html', {'user': user})
def test_render_html():
    got = template.render_html('test1.html',
                               dict(title='foo', header='bar'),
                               template_path=templates)
    assert '<title>My title: foo</title>' in got
    assert '<h1>My header: bar</h1>' in got