Changeset - 757c7eef0dcd
[Not reviewed]
default
0 3 0
Marcin Kuzminski - 16 years ago 2010-08-08 13:05:56
marcin@python-works.com
implemented gravatars into main bar.
Readme update
3 files changed with 33 insertions and 10 deletions:
0 comments (0 inline, 0 general)
README.rst
Show inline comments
 
@@ -5,41 +5,42 @@ Pylons based replacement for hgwebdir
 
Fully customizable, with authentication, permissions. Based on vcs library.
 

	
 
**Overview**
 

	
 
- 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 application.
 
- diffs annotations and source code all colored by pygments.
 
- mercurial branch graph and yui-flot powered graphs
 
- admin interface for performing user/permission managments as well as repository
 
  managment. 
 
- Additionall settings for mercurial web, (hooks editable from admin
 
  panel !) also paths,archive,remote messages  
 
- Additional settings for mercurial web, (hooks editable from admin
 
  panel !) also manage paths, archive, remote messages  
 
- 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
 
  always upto date data. 
 
- rss /atom feed customizable
 
- rss / atom feeds, gravatar support
 
- based on pylons 1.0 / sqlalchemy 0.6
 

	
 
**Incoming**
 

	
 
- code review based on hg-review (when it's stable)
 
- git support (when vcs can handle it)
 
- full text search of source codes with indexing daemons using whoosh
 
  (no external search servers required all in one application)
 
- manage hg ui() per repo, add hooks settings, per repo, and not globally
 
- other cools stuff that i can figure out
 
- full text search of source codes
 
- manage hg ui() per repo, add hooks settings, per repo, and not globally
 

	
 
.. note::
 
   This software is still in beta mode. 
 
   I don't guarantee that it'll work correctly.
 
   
 

	
 
-------------
 
Installation
 
-------------
 
.. note::
 
   I recomend to install tip version of vcs while the app is in beta mode.
 
   
 
@@ -47,14 +48,14 @@ Installation
 
- create new virtualenv and activate it - highly recommend that you use separate
 
  virtual-env for whole application
 
- download hg app from default (not demo) branch from bitbucket and run 
 
  'python setup.py install' this will install all required dependencies needed
 
- run paster setup-app production.ini it should create all needed tables 
 
  and an admin account. 
 
- remember that the given path for mercurial repositories must be write 
 
  accessible for the application
 
- run paster serve development.ini - or you can use manage-hg_app script.
 
  the app should be available at the 127.0.0.1:5000
 
- use admin account you created to login.
 
- default permissions on each repository is read, and owner is admin. So remember
 
  to update those.
 
  to update these.
 
     
 
\ No newline at end of file
pylons_app/public/css/style.css
Show inline comments
 
@@ -204,26 +204,33 @@ div.options a:hover
 
#header ul#logged-user li
 
{
 
	margin: 0;
 
	padding: 10px 12px 10px 12px;
 
	list-style: none;
 
	float: left;
 
	border-left: 1px solid #bbbbbb;
 
	border-right: 1px solid #a5a5a5;
 
}
 
 
#header ul#logged-user li.first
 
{
 
	border-left: none;	
 
}
 
	border-left: none;
 
	margin:-6px;	
 
}
 
#header ul#logged-user li.first div.account
 
{
 
	padding-top: 4px;
 
	float: left;
 
}
 
 
 
#header ul#logged-user li.last
 
{
 
	border-right: none;	
 
}
 
 
#header ul#logged-user li a
 
{
 
	color: #4e4e4e;
 
	font-weight: bold;
 
	text-decoration: none;
 
}
pylons_app/templates/base/base.html
Show inline comments
 
@@ -8,25 +8,31 @@
 
    <meta name="robots" content="index, nofollow"/>
 
    <!-- stylesheets -->
 
    ${self.css()}
 
    <!-- scripts -->
 
    ${self.js()}
 
</head>
 
<body>
 
    <!-- header -->
 
    <div id="header">
 
        <!-- user -->
 
        <ul id="logged-user">
 
            <li class="first">
 
            ${h.link_to('%s %s (%s)'%(c.hg_app_user.name,c.hg_app_user.lastname,c.hg_app_user.username),h.url('admin_settings_my_account'))}
 
	            <div class="gravatar">
 
	            	<img alt="gravatar" src="${h.gravatar_url(c.hg_app_user.email,24)}" />
 
	            </div>
 
	            <div class="account">
 
	            	${h.link_to('%s %s'%(c.hg_app_user.name,c.hg_app_user.lastname),h.url('admin_settings_my_account'))}<br/>
 
	            	${h.link_to(c.hg_app_user.username,h.url('admin_settings_my_account'))}
 
	            </div>	
 
            </li>
 
            <li class="last highlight">${h.link_to(u'Logout',h.url('logout_home'))}</li>
 
        </ul>
 
        <!-- end user -->
 
        <div id="header-inner">
 
            <div id="home">
 
                <a href="${h.url('hg_home')}"></a>
 
            </div>
 
            <!-- logo -->
 
            <div id="logo">
 
                <h1><a href="${h.url('hg_home')}">${c.hg_app_name}</a></h1>
 
            </div>
 
@@ -183,25 +189,34 @@
 
	        </ul>
 
		%else:
 
		    ##ROOT MENU
 
            <ul id="quick">
 
                <li>
 
                    <a title="${_('Home')}"  href="${h.url('hg_home')}">
 
                    <span class="icon">
 
                        <img src="/images/icons/home_16.png" alt="${_('Home')}" />
 
                    </span>
 
                    <span>${_('Home')}</span>                 
 
                    </a>        
 
                </li>
 

	
 
                
 
                <li>
 
                    <a title="${_('Search')}"  href="${h.url('search')}">
 
                    <span class="icon">
 
                        <img src="/images/icons/search_16.png" alt="${_('Search')}" />
 
                    </span>
 
                    <span>${_('Search')}</span>                 
 
                    </a>        
 
                </li>
 
                
 
				%if h.HasPermissionAll('hg.admin')('access admin main page'):
 
                <li ${is_current('admin')}>
 
                   <a title="${_('Admin')}" href="${h.url('admin_home')}">
 
                   <span class="icon">
 
                       <img src="/images/icons/cog_edit.png" alt="${_('Admin')}" />
 
                   </span>
 
                   <span>${_('Admin')}</span>                 
 
                   </a>    
 
				    <ul>
 
				        <li>${h.link_to(_('repositories'),h.url('repos'),class_='repos')}</li>
 
				        <li>${h.link_to(_('users'),h.url('users'),class_='users')}</li>
 
				        <li>${h.link_to(_('permissions'),h.url('permissions'),class_='permissions')}</li>
0 comments (0 inline, 0 general)