Mercurial > public > src > rhodecode
changeset 343:3f50e44b41b4 demo
Merge with d8d471cfa09355f1ba6da89b3169f28814d7a726
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 30 Jun 2010 22:48:08 +0200 |
parents | 920efb8af63d (current diff) d8d471cfa093 (diff) |
children | e4076a1f7b82 |
files | |
diffstat | 7 files changed, 44 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/README.rst Wed Jun 30 17:16:12 2010 +0200 +++ b/README.rst Wed Jun 30 22:48:08 2010 +0200 @@ -8,11 +8,13 @@ - has it's own middleware to handle mercurial protocol request each request can be logged and authenticated + threaded performance unlikely to hgweb +- full permissions per project read/write/admin access even on mercurial request - mako templates let's you cusmotize look and feel of appplication. - diffs annotations and source code all colored by pygments. - mercurial branch graph - admin interface for performing user/permission managments as well as repository managment +- backup scripts can do backup of whole app and send it over scp to desired location - setup project descriptions and info inside built in db for easy, non file-system operations - added cache with invalidation on push/repo managment for high performance and @@ -23,8 +25,9 @@ **Incoming** -- full permissions per project +- code review based on hg-review (when it's stable) - git support (when vcs can handle it) +- other cools stuff that i can figure out .. note:: This software is still in beta mode. I don't guarantee that it'll work. @@ -33,14 +36,22 @@ ------------- Installation ------------- +.. note:: + I recomend to install tip version of vcs while the app is in beta mode. + + - create new virtualenv and activate it -- download hg app and run python setup.py install -- goto build/ directory +- download hg app from default (not demo) branch from bitbucket and run + 'python setup.py install' this will install all required dependencies needed - goto pylons_app/lib and run python db_manage.py it should create all - needed tables and an admin account. + needed tables and an admin account. You can play with this file if you wish to + use different db than sqlite - edit file repositories.config and change the [paths] where you keep your mercurial repositories, remember about permissions for accessing this dir by hg app. - run paster serve development.ini the app should be available at the 127.0.0.1:5000 -- use admin account you created to login. \ No newline at end of file +- use admin account you created to login. +- default permissions on each repository is read, and owner is admin. So remember + to update those. + \ No newline at end of file
--- a/pylons_app/model/hg_model.py Wed Jun 30 17:16:12 2010 +0200 +++ b/pylons_app/model/hg_model.py Wed Jun 30 22:48:08 2010 +0200 @@ -2,7 +2,6 @@ # encoding: utf-8 # Model for hg app # Copyright (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com> -from sqlalchemy.orm import joinedload # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -31,6 +30,7 @@ from vcs.exceptions import RepositoryError, VCSError from pylons_app.model.meta import Session from pylons_app.model.db import Repository +from sqlalchemy.orm import joinedload import logging import os import sys
--- a/pylons_app/public/css/monoblue_custom.css Wed Jun 30 17:16:12 2010 +0200 +++ b/pylons_app/public/css/monoblue_custom.css Wed Jun 30 22:48:08 2010 +0200 @@ -420,6 +420,13 @@ padding-top: 0px; text-align: left; } +ul.submenu .settings { + background: url("/images/icons/cog.png") no-repeat scroll 3px; + height: 16px; + padding-left: 20px; + padding-top: 0px; + text-align: left; +} ul.submenu .current_submenu { border-bottom: 2px solid #556CB5;
--- a/pylons_app/templates/admin/repos/repos.html Wed Jun 30 17:16:12 2010 +0200 +++ b/pylons_app/templates/admin/repos/repos.html Wed Jun 30 22:48:08 2010 +0200 @@ -24,7 +24,13 @@ </tr> %for cnt,repo in enumerate(c.repos_list): <tr class="parity${cnt%2}"> - <td>${h.link_to(repo['name'],h.url('edit_repo',repo_name=repo['name']))}</td> + <td> + %if repo['repo'].dbrepo.private: + <img alt="${_('private')}" src="/images/icons/lock.png"> + %else: + <img alt="${_('public')}" src="/images/icons/lock_open.png"> + %endif + ${h.link_to(repo['name'],h.url('edit_repo',repo_name=repo['name']))}</td> <td>r${repo['rev']}:${repo['tip']}</td> <td> ${h.form(url('repo', repo_name=repo['name']),method='delete')}
--- a/pylons_app/templates/base/base.html Wed Jun 30 17:16:12 2010 +0200 +++ b/pylons_app/templates/base/base.html Wed Jun 30 22:48:08 2010 +0200 @@ -131,9 +131,10 @@ %if current != None: <div> <ul class="submenu"> - <li ${is_current('repos')}>${h.link_to(u'repos',h.url('repos'),class_='repos')}</li> - <li ${is_current('users')}>${h.link_to(u'users',h.url('users'),class_='users')}</li> - ##comented for now<li ${is_current('permissions')}>${h.link_to(u'permissions',h.url('permissions'),class_='permissions')}</li> + <li ${is_current('repos')}>${h.link_to(_('repositories'),h.url('repos'),class_='repos')}</li> + <li ${is_current('users')}>${h.link_to(_('users'),h.url('users'),class_='users')}</li> + ##commented<li ${is_current('permissions')}>${h.link_to(_('permissions'),h.url('permissions'),class_='permissions')}</li> + ##commented<li ${is_current('settings')}>${h.link_to(_('settings'),h.url('hgapp_settings'),class_='settings')}</li> </ul> </div> %endif
--- a/pylons_app/templates/index.html Wed Jun 30 17:16:12 2010 +0200 +++ b/pylons_app/templates/index.html Wed Jun 30 22:48:08 2010 +0200 @@ -32,8 +32,15 @@ </tr> %for cnt,repo in enumerate(c.repos_list): %if h.HasRepoPermissionAny('repository.write','repository.read','repository.admin')(repo['name'],'main page check'): + <tr class="parity${cnt%2}"> - <td>${h.link_to(repo['name'], + <td> + %if repo['repo'].dbrepo.private: + <img alt="${_('private')}" src="/images/icons/lock.png"> + %else: + <img alt="${_('public')}" src="/images/icons/lock_open.png"> + %endif + ${h.link_to(repo['name'], h.url('summary_home',repo_name=repo['name']))}</td> <td title="${repo['description']}">${h.truncate(repo['description'],60)}</td> <td>${h.age(repo['last_change'])}</td>