##// END OF EJS Templates
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.

File last commit:

r248:fb7f0661 default
r250:be4621c6 default
Show More
repos.py
103 lines | 3.9 KiB | text/x-python | PythonLexer
Moved repo creation to admin/repos, as part of crud controller. Now repo creation is based on a form, which can be auto filled with data from 404 page. Fixed the error controller to properly give the repo name.
r215 from pylons import request, response, session, tmpl_context as c, url, \
app_globals as g
from pylons.controllers.util import abort, redirect
Fixed access to repos and users.
r235 from pylons_app.lib.auth import LoginRequired
Added support for repository located in subdirectories.
r248 from pylons.i18n.translation import _
from pylons_app.lib import helpers as h
Moved repo creation to admin/repos, as part of crud controller. Now repo creation is based on a form, which can be auto filled with data from 404 page. Fixed the error controller to properly give the repo name.
r215 from pylons_app.lib.base import BaseController, render
Fixed access to repos and users.
r235 from pylons_app.lib.filters import clean_repo
Moved repo creation to admin/repos, as part of crud controller. Now repo creation is based on a form, which can be auto filled with data from 404 page. Fixed the error controller to properly give the repo name.
r215 from pylons_app.lib.utils import check_repo, invalidate_cache
Fixed bug in repos, added dependencies and bumped version
r246 from pylons_app.model.hg_model import HgModel
Marcin Kuzminski
Added rest controllers for repos and users,...
r47 import logging
Marcin Kuzminski
Added hg model,implemented removal of repos, added HgModel for fetching repos(with generator)
r58 import os
import shutil
Fixed bug in repos, added dependencies and bumped version
r246 from operator import itemgetter
Marcin Kuzminski
Added rest controllers for repos and users,...
r47 log = logging.getLogger(__name__)
class ReposController(BaseController):
"""REST Controller styled on the Atom Publishing Protocol"""
# To properly map this controller, ensure your config/routing.py
# file has a resource setup:
# map.resource('repo', 'repos')
Fixed access to repos and users.
r235 @LoginRequired()
Marcin Kuzminski
Added rest controllers for repos and users,...
r47 def __before__(self):
c.admin_user = session.get('admin_user')
c.admin_username = session.get('admin_username')
Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user....
r191 super(ReposController, self).__before__()
Marcin Kuzminski
Added sqlalchemy support...
r49
Marcin Kuzminski
Added rest controllers for repos and users,...
r47 def index(self, format='html'):
"""GET /repos: All items in the collection"""
# url('repos')
Fixed bug in repos, added dependencies and bumped version
r246 cached_repo_list = HgModel().get_repos()
proper sorting fix
r247 c.repos_list = sorted(cached_repo_list, key=itemgetter('name_sort'))
Html changes and cleanups, made folders for html templates, implemented tags and branches pages
r127 return render('admin/repos/repos.html')
Marcin Kuzminski
Added rest controllers for repos and users,...
r47
def create(self):
"""POST /repos: Create a new item"""
# url('repos')
Moved repo creation to admin/repos, as part of crud controller. Now repo creation is based on a form, which can be auto filled with data from 404 page. Fixed the error controller to properly give the repo name.
r215 name = request.POST.get('name')
try:
self._create_repo(name)
#clear our cached list for refresh with new repo
invalidate_cache('cached_repo_list')
Added support for repository located in subdirectories.
r248 h.flash(_('created repository %s') % name, category='success')
Moved repo creation to admin/repos, as part of crud controller. Now repo creation is based on a form, which can be auto filled with data from 404 page. Fixed the error controller to properly give the repo name.
r215 except Exception as e:
log.error(e)
return redirect('repos')
def _create_repo(self, repo_name):
repo_path = os.path.join(g.base_path, repo_name)
if check_repo(repo_name, g.base_path):
log.info('creating repo %s in %s', repo_name, repo_path)
from vcs.backends.hg import MercurialRepository
MercurialRepository(repo_path, create=True)
Marcin Kuzminski
Added rest controllers for repos and users,...
r47
def new(self, format='html'):
"""GET /repos/new: Form to create a new item"""
Moved repo creation to admin/repos, as part of crud controller. Now repo creation is based on a form, which can be auto filled with data from 404 page. Fixed the error controller to properly give the repo name.
r215 new_repo = request.GET.get('repo', '')
c.new_repo = clean_repo(new_repo)
return render('admin/repos/repo_add.html')
Marcin Kuzminski
Added rest controllers for repos and users,...
r47
def update(self, id):
"""PUT /repos/id: Update an existing item"""
# Forms posted to this method should contain a hidden field:
# <input type="hidden" name="_method" value="PUT" />
# Or using helpers:
# h.form(url('repo', id=ID),
# method='put')
# url('repo', id=ID)
def delete(self, id):
"""DELETE /repos/id: Delete an existing item"""
# Forms posted to this method should contain a hidden field:
# <input type="hidden" name="_method" value="DELETE" />
# Or using helpers:
# h.form(url('repo', id=ID),
# method='delete')
# url('repo', id=ID)
Marcin Kuzminski
Added hg model,implemented removal of repos, added HgModel for fetching repos(with generator)
r58 from datetime import datetime
path = g.paths[0][1].replace('*', '')
rm_path = os.path.join(path, id)
log.info("Removing %s", rm_path)
shutil.move(os.path.join(rm_path, '.hg'), os.path.join(rm_path, 'rm__.hg'))
shutil.move(rm_path, os.path.join(path, 'rm__%s-%s' % (datetime.today(), id)))
moved cache invalidating to utils, as seperate function. Implemented invalidating in
r140
#clear our cached list for refresh with new repo
added long term caching of repo_list to the base controller. changed hg and repos to use that cached list.
r169 invalidate_cache('cached_repo_list')
Added support for repository located in subdirectories.
r248 h.flash(_('deleted repository %s') % rm_path, category='success')
Marcin Kuzminski
Added hg model,implemented removal of repos, added HgModel for fetching repos(with generator)
r58 return redirect(url('repos'))
Marcin Kuzminski
Added rest controllers for repos and users,...
r47
def show(self, id, format='html'):
"""GET /repos/id: Show a specific item"""
# url('repo', id=ID)
repo edit
r220
Marcin Kuzminski
Added rest controllers for repos and users,...
r47 def edit(self, id, format='html'):
"""GET /repos/id/edit: Form to edit an existing item"""
# url('edit_repo', id=ID)
repo edit
r220 c.new_repo = id
return render('admin/repos/repo_edit.html')