diff --git a/pylons_app/controllers/admin.py b/pylons_app/controllers/admin.py --- a/pylons_app/controllers/admin.py +++ b/pylons_app/controllers/admin.py @@ -43,7 +43,7 @@ class AdminController(BaseController): except formencode.Invalid, error: c.form_result = error.value c.form_errors = error.error_dict or {} - html = render('/admin.html') + html = render('admin/admin.html') return htmlfill.render( html, @@ -57,10 +57,10 @@ class AdminController(BaseController): .order_by(UserLogs.action_date.desc()) p = int(request.params.get('page', 1)) c.users_log = Page(users_log, page=p, items_per_page=10) - c.log_data = render('admin_log.html') + c.log_data = render('admin/admin_log.html') if request.params.get('partial'): return c.log_data - return render('/admin.html') + return render('admin/admin.html') def hgrc(self, dirname): filename = os.path.join(dirname, '.hg', 'hgrc') diff --git a/pylons_app/controllers/branches.py b/pylons_app/controllers/branches.py --- a/pylons_app/controllers/branches.py +++ b/pylons_app/controllers/branches.py @@ -1,16 +1,22 @@ import logging -from pylons import request, response, session, tmpl_context as c, url +from pylons import tmpl_context as c, app_globals as g, session, request, config, url from pylons.controllers.util import abort, redirect from pylons_app.lib.base import BaseController, render +from pylons_app.lib.utils import get_repo_slug +from pylons_app.model.hg_model import HgModel +log = logging.getLogger(__name__) -log = logging.getLogger(__name__) class BranchesController(BaseController): + def __before__(self): + c.repos_prefix = config['repos_name'] + c.repo_name = get_repo_slug(request) def index(self): - # Return a rendered template - #return render('/branches.mako') - # or, return a string - return 'Hello World' + hg_model = HgModel() + c.repo_info = hg_model.get_repo(c.repo_name) + c.repo_branches = c.repo_info.branches + + return render('branches/branches.html') diff --git a/pylons_app/controllers/changelog.py b/pylons_app/controllers/changelog.py --- a/pylons_app/controllers/changelog.py +++ b/pylons_app/controllers/changelog.py @@ -13,17 +13,15 @@ log = logging.getLogger(__name__) class ChangelogController(BaseController): def __before__(self): c.repos_prefix = config['repos_name'] - c.repo_name = get_repo_slug(request) - def index(self): hg_model = HgModel() p = int(request.params.get('page', 1)) repo = hg_model.get_repo(c.repo_name) c.repo_changesets = Page(repo, page=p, items_per_page=20) - c.shortlog_data = render('shortlog_data.html') + c.shortlog_data = render('shortlog/shortlog_data.html') if request.params.get('partial'): return c.shortlog_data - r = render('/shortlog.html') + r = render('shortlog/shortlog.html') return r diff --git a/pylons_app/controllers/repos.py b/pylons_app/controllers/repos.py --- a/pylons_app/controllers/repos.py +++ b/pylons_app/controllers/repos.py @@ -31,7 +31,7 @@ class ReposController(BaseController): hg_model = HgModel() c.repos_list = list(hg_model.get_repos()) c.repos_list.sort(key=itemgetter('name')) - return render('/repos.html') + return render('admin/repos/repos.html') def create(self): """POST /repos: Create a new item""" diff --git a/pylons_app/controllers/shortlog.py b/pylons_app/controllers/shortlog.py --- a/pylons_app/controllers/shortlog.py +++ b/pylons_app/controllers/shortlog.py @@ -13,17 +13,15 @@ log = logging.getLogger(__name__) class ShortlogController(BaseController): def __before__(self): c.repos_prefix = config['repos_name'] - c.repo_name = get_repo_slug(request) - def index(self): hg_model = HgModel() p = int(request.params.get('page', 1)) repo = hg_model.get_repo(c.repo_name) c.repo_changesets = Page(repo, page=p, items_per_page=20) - c.shortlog_data = render('shortlog_data.html') + c.shortlog_data = render('shortlog/shortlog_data.html') if request.params.get('partial'): return c.shortlog_data - r = render('/shortlog.html') + r = render('shortlog/shortlog.html') return r diff --git a/pylons_app/controllers/summary.py b/pylons_app/controllers/summary.py --- a/pylons_app/controllers/summary.py +++ b/pylons_app/controllers/summary.py @@ -11,7 +11,6 @@ log = logging.getLogger(__name__) class SummaryController(BaseController): def __before__(self): c.repos_prefix = config['repos_name'] - c.repo_name = get_repo_slug(request) def index(self): diff --git a/pylons_app/controllers/tags.py b/pylons_app/controllers/tags.py --- a/pylons_app/controllers/tags.py +++ b/pylons_app/controllers/tags.py @@ -1,16 +1,22 @@ import logging -from pylons import request, response, session, tmpl_context as c, url +from pylons import tmpl_context as c, app_globals as g, session, request, config, url from pylons.controllers.util import abort, redirect from pylons_app.lib.base import BaseController, render +from pylons_app.lib.utils import get_repo_slug +from pylons_app.model.hg_model import HgModel +log = logging.getLogger(__name__) -log = logging.getLogger(__name__) class TagsController(BaseController): - + def __before__(self): + c.repos_prefix = config['repos_name'] + c.repo_name = get_repo_slug(request) + def index(self): - # Return a rendered template - #return render('/tags.mako') - # or, return a string - return 'Hello World' + hg_model = HgModel() + c.repo_info = hg_model.get_repo(c.repo_name) + c.repo_tags = c.repo_info.tags + + return render('tags/tags.html') diff --git a/pylons_app/controllers/users.py b/pylons_app/controllers/users.py --- a/pylons_app/controllers/users.py +++ b/pylons_app/controllers/users.py @@ -30,7 +30,7 @@ class UsersController(BaseController): # url('users') c.users_list = self.sa.query(Users).all() - return render('/users.html') + return render('admin/users/users.html') def create(self): """POST /users: Create a new item""" @@ -54,7 +54,7 @@ class UsersController(BaseController): def new(self, format='html'): """GET /users/new: Form to create a new item""" # url('new_user') - return render('/user_add.html') + return render('admin/users/user_add.html') def update(self, id): """PUT /users/id: Update an existing item""" @@ -107,7 +107,7 @@ class UsersController(BaseController): c.user = self.sa.query(Users).get(id) defaults = c.user.__dict__ return htmlfill.render( - render('/user_edit.html'), + render('admin/users/user_edit.html'), defaults=defaults, encoding="UTF-8", force_defaults=False diff --git a/pylons_app/templates/add.html b/pylons_app/templates/admin/add.html rename from pylons_app/templates/add.html rename to pylons_app/templates/admin/add.html diff --git a/pylons_app/templates/admin.html b/pylons_app/templates/admin/admin.html rename from pylons_app/templates/admin.html rename to pylons_app/templates/admin/admin.html --- a/pylons_app/templates/admin.html +++ b/pylons_app/templates/admin/admin.html @@ -1,5 +1,5 @@ ## -*- coding: utf-8 -*- -<%inherit file="base/base.html"/> +<%inherit file="/base/base.html"/> <%def name="get_form_error(element)"> %if hasattr(c,'form_errors'): %if type(c.form_errors) == dict: diff --git a/pylons_app/templates/admin_log.html b/pylons_app/templates/admin/admin_log.html rename from pylons_app/templates/admin_log.html rename to pylons_app/templates/admin/admin_log.html diff --git a/pylons_app/templates/repo_edit.html b/pylons_app/templates/admin/repos/repo_edit.html rename from pylons_app/templates/repo_edit.html rename to pylons_app/templates/admin/repos/repo_edit.html diff --git a/pylons_app/templates/repos.html b/pylons_app/templates/admin/repos/repos.html rename from pylons_app/templates/repos.html rename to pylons_app/templates/admin/repos/repos.html --- a/pylons_app/templates/repos.html +++ b/pylons_app/templates/admin/repos/repos.html @@ -1,4 +1,4 @@ -<%inherit file="base/base.html"/> +<%inherit file="/base/base.html"/> <%def name="title()"> ${_('Repository managment')} @@ -27,7 +27,7 @@ %for cnt,repo in enumerate(c.repos_list): - +
${repo['name']}${h.link_to(repo['name'],h.url('summary_home',repo_name=repo['name']))} r${repo['rev']}:${repo['tip']} ${h.form(url('repo', id=repo['name']),method='delete')} diff --git a/pylons_app/templates/user_add.html b/pylons_app/templates/admin/users/user_add.html rename from pylons_app/templates/user_add.html rename to pylons_app/templates/admin/users/user_add.html --- a/pylons_app/templates/user_add.html +++ b/pylons_app/templates/admin/users/user_add.html @@ -1,4 +1,4 @@ -<%inherit file="base/base.html"/> +<%inherit file="/base/base.html"/> <%def name="title()"> ${_('User')} - ${_('add new')} diff --git a/pylons_app/templates/user_edit.html b/pylons_app/templates/admin/users/user_edit.html rename from pylons_app/templates/user_edit.html rename to pylons_app/templates/admin/users/user_edit.html --- a/pylons_app/templates/user_edit.html +++ b/pylons_app/templates/admin/users/user_edit.html @@ -1,4 +1,4 @@ -<%inherit file="base/base.html"/> +<%inherit file="/base/base.html"/> <%def name="title()"> ${_('User')} - ${c.user.username} diff --git a/pylons_app/templates/users.html b/pylons_app/templates/admin/users/users.html rename from pylons_app/templates/users.html rename to pylons_app/templates/admin/users/users.html --- a/pylons_app/templates/users.html +++ b/pylons_app/templates/admin/users/users.html @@ -1,4 +1,4 @@ -<%inherit file="base/base.html"/> +<%inherit file="/base/base.html"/> <%def name="title()"> ${_('Repository managment')} diff --git a/pylons_app/templates/branches/branches.html b/pylons_app/templates/branches/branches.html new file mode 100644 --- /dev/null +++ b/pylons_app/templates/branches/branches.html @@ -0,0 +1,46 @@ +<%inherit file="/base/base.html"/> +<%! from pylons_app.lib import filters %> +<%def name="title()"> + ${_('Branches')} + +<%def name="breadcrumbs()"> + ${h.link_to(u'Home',h.url('/'))} + / + ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))} + / + ${_('branches')} + +<%def name="page_nav()"> +
+ +
+ + ${self.menu('branches')} + +<%def name="main()"> + + + + + %for cnt,branch in enumerate(c.repo_branches): + + + + + + + %endfor +
${branch._ctx.date()|n,filters.age} + + ${h.link_to(branch.branch,h.url('changeset_home',repo_name=c.repo_name,revision=branch._short))} + + + ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=branch._short))} + | + ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=branch._short))} +
+ + \ No newline at end of file diff --git a/pylons_app/templates/graph.html b/pylons_app/templates/graph.html --- a/pylons_app/templates/graph.html +++ b/pylons_app/templates/graph.html @@ -1,4 +1,4 @@ -<%inherit file="base/base.html"/> +<%inherit file="/base/base.html"/> <%def name="title()"> ${_('Repository managment')} diff --git a/pylons_app/templates/shortlog.html b/pylons_app/templates/shortlog/shortlog.html rename from pylons_app/templates/shortlog.html rename to pylons_app/templates/shortlog/shortlog.html --- a/pylons_app/templates/shortlog.html +++ b/pylons_app/templates/shortlog/shortlog.html @@ -1,4 +1,4 @@ -<%inherit file="base/base.html"/> +<%inherit file="/base/base.html"/> <%def name="title()"> ${_('Repository managment')} diff --git a/pylons_app/templates/shortlog_data.html b/pylons_app/templates/shortlog/shortlog_data.html rename from pylons_app/templates/shortlog_data.html rename to pylons_app/templates/shortlog/shortlog_data.html diff --git a/pylons_app/templates/summary.html b/pylons_app/templates/summary.html --- a/pylons_app/templates/summary.html +++ b/pylons_app/templates/summary.html @@ -1,4 +1,4 @@ -<%inherit file="base/base.html"/> +<%inherit file="/base/base.html"/> <%! from pylons_app.lib import filters %> diff --git a/pylons_app/templates/tags/tags.html b/pylons_app/templates/tags/tags.html new file mode 100644 --- /dev/null +++ b/pylons_app/templates/tags/tags.html @@ -0,0 +1,48 @@ +<%inherit file="/base/base.html"/> +<%! +from pylons_app.lib import filters +%> +<%def name="title()"> + ${_('Tags')} + +<%def name="breadcrumbs()"> + ${h.link_to(u'Home',h.url('/'))} + / + ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))} + / + ${_('tags')} + +<%def name="page_nav()"> +
+ +
+ + ${self.menu('tags')} + +<%def name="main()"> + + + + + %for cnt,tag in enumerate(c.repo_tags): + + + + + + + %endfor +
${tag._ctx.date()|n,filters.age} + + ${h.link_to(tag.tags[-1],h.url('changeset_home',repo_name=c.repo_name,revision=tag._short))} + + + ${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=tag._short))} + | + ${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=tag._short))} +
+ + \ No newline at end of file diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -6,29 +6,29 @@ except ImportError: from setuptools import setup, find_packages setup( - name = 'pylons_app', - version = '1.0', - description = '', - author = 'marcin kuzminski', - author_email = 'marcin@python-blog.com', - url = '', - install_requires = [ - "Pylons>=0.9.7,<=0.9.7.99", - "SQLAlchemy>=0.5,<=0.5.99", - "Mako>=0.2.2,<=0.2.99", + name='pylons_app', + version='1.0', + description='', + author='marcin kuzminski', + author_email='marcin@python-blog.com', + url='', + install_requires=[ + "Pylons>=1.0.0", + "SQLAlchemy>=0.6", + "Mako>=0.3.2", ], - setup_requires = ["PasteScript>=1.6.3"], - packages = find_packages(exclude = ['ez_setup']), - include_package_data = True, - test_suite = 'nose.collector', - package_data = {'pylons_app': ['i18n/*/LC_MESSAGES/*.mo']}, - message_extractors = {'pylons_app': [ + setup_requires=["PasteScript>=1.6.3"], + packages=find_packages(exclude=['ez_setup']), + include_package_data=True, + test_suite='nose.collector', + package_data={'pylons_app': ['i18n/*/LC_MESSAGES/*.mo']}, + message_extractors={'pylons_app': [ ('**.py', 'python', None), ('templates/**.mako', 'mako', {'input_encoding': 'utf-8'}), ('public/**', 'ignore', None)]}, - zip_safe = False, - paster_plugins = ['PasteScript', 'Pylons'], - entry_points = """ + zip_safe=False, + paster_plugins=['PasteScript', 'Pylons'], + entry_points=""" [paste.app_factory] main = pylons_app.config.middleware:make_app