#!/usr/bin/env python
# coding=utf-8
# @author roowe
# Mail bestluoliwe@gmail.com
# Time-stamp: <2011-08-08 13:00:50 Monday by roowe>
from bottle import run, route, get, post, request, response
from bottle import static_file
from bottle import template, TEMPLATE_PATH ,redirect
from db import *
import os
import logging
from bottle import debug
debug(True)
FORMAT = '%(asctime)s %(message)s'
logging.basicConfig(format=FORMAT)
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
hg=fortel_hg()
HG_TEM="/home/roowe/work/Mercurial/templates/"
HG_STATIC="{0}static/".format(HG_TEM)
HG_REPO="/home/roowe/work/Mercurial/hg-repo/"
TEMPLATE_PATH.append(HG_TEM)
@route('/static/:filename')
def server_static(filename):
return static_file(filename, root=HG_STATIC)
@route('/template/:filename')
def server_static(filename):
return static_file(filename, root=HG_TEM)
@route('/project/static/:filename')
def server_static(filename):
redirect('/static/{0}'.format(filename))
def check_signin():
user_name = str(request.get_cookie("account", secret="some-secret-key")).lower()
return user_name
@route('/index')
def index():
info = ""
info += '''
所有項目信息
Project Name
Description
Contact
Last change
'''
Flag = 1
for root, dirs, files in os.walk(HG_REPO):
for d in dirs:
if os.path.exists(os.path.join(os.path.join(root, d), ".hg")):
ans = hg.info_project(d)
if Flag:
Flag = 0
info += '''
'''
return template('index', all_Project_info = info)
@get('/new_project')
def new_project_page():
user_name = check_signin()
if not user_name:
return template("login_page_after", title="首頁", message="請先登錄")
res = '''
Allow_push'''
for user in session.query(User).order_by(User.id):
if user.name == user_name:
res += ''''''.format(user.name)
else:
res += ''''''.format(user.name)
res += '''
'''
return template("new_project", allname=res)
@post('/new_project')
def new_project():
user_name = check_signin()
project_name = str(request.forms.get('project_name'))
description = str(request.forms.get('description'))
logger.debug("description is %s", description)
allow_read = "*"
allow_push = ""
Flag = 0
for user in session.query(User).order_by(User.id):
tmp_name = request.forms.get(user.name)
if tmp_name:
if Flag:
allow_push += ", "
allow_push += str(tmp_name)
Flag = 1
logger.debug("%s %s %s %s", project_name, description, user_name, allow_push)
hg.create_project(project_name, description, user_name, allow_read, allow_push);
return template("message", title="首頁", message="創建成功")
@route('/manage_project')
def manage_project():
user_name = check_signin()
info = ""
info += '''
你的項目信息
Project Name
Description
Contact
Last change
'''
Flag = 1
No_Project = 1
for root, dirs, files in os.walk(HG_REPO):
for d in dirs:
if os.path.exists(os.path.join(os.path.join(root, d), ".hg")):
query = session.query(Project).filter_by(project_name=d).first()
if query and query.project_owner == user_name:
No_Project = 0
ans = hg.info_project(d)
if Flag:
Flag = 0
info += '''