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>
--- a/setup.py	Wed Jun 30 17:16:12 2010 +0200
+++ b/setup.py	Wed Jun 30 22:48:08 2010 +0200
@@ -12,7 +12,7 @@
     description='',
     author='marcin kuzminski',
     author_email='marcin@python-works.com',
-    url='',
+    url='http://hg.python-works.com',
     install_requires=[
         "Pylons>=1.0.0",
         "SQLAlchemy>=0.6",