##// END OF EJS Templates
Added empty changeset to use in newly created repository, and used this inside a hg model in repos list
Added empty changeset to use in newly created repository, and used this inside a hg model in repos list

File last commit:

r127:20dc7a5e default
r136:36102488 default
Show More
repos.py
76 lines | 2.8 KiB | text/x-python | PythonLexer
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
Marcin Kuzminski
Added rest controllers for repos and users,...
r47 from pylons import request, response, session, tmpl_context as c, url, app_globals as g
from pylons.controllers.util import abort, redirect
from pylons_app.lib import auth
from pylons_app.lib.base import BaseController, render
Marcin Kuzminski
Added sqlalchemy support...
r49 from pylons_app.model import meta
from pylons_app.model.db import Users, UserLogs
implemented autentication
r52 from pylons_app.lib.auth import authenticate
Marcin Kuzminski
Added hg model,implemented removal of repos, added HgModel for fetching repos(with generator)
r58 from pylons_app.model.hg_model import HgModel
from operator import itemgetter
import shutil
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')
implemented autentication
r52
@authenticate
Marcin Kuzminski
Added rest controllers for repos and users,...
r47 def __before__(self):
statics moved to pylons.
r101
Marcin Kuzminski
Added rest controllers for repos and users,...
r47 c.admin_user = session.get('admin_user')
c.admin_username = session.get('admin_username')
Marcin Kuzminski
Added sqlalchemy support...
r49 self.sa = meta.Session
Marcin Kuzminski
Added rest controllers for repos and users,...
r47 def index(self, format='html'):
"""GET /repos: All items in the collection"""
# url('repos')
Marcin Kuzminski
Added hg model,implemented removal of repos, added HgModel for fetching repos(with generator)
r58 hg_model = HgModel()
c.repos_list = list(hg_model.get_repos())
c.repos_list.sort(key=itemgetter('name'))
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')
def new(self, format='html'):
"""GET /repos/new: Form to create a new item"""
# url('new_repo')
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)))
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)
Marcin Kuzminski
Css fixes, implemented removal of users, and display draft
r48 return render('/repos_show.html')
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)