import logging from cherrypy import request, response, session from turbogears import identity, redirect from turbogears import error_handler from turbogears import controllers, expose, flash from turbogears import (validate, validators, flash, i18n) from transifex.util import wrap, fit_text, get_modules, get_branches log = logging.getLogger(__name__) class People(controllers.Controller): # /user @expose(template="genshi:transifex.templates.people") def index(self, tg_errors=None, *args, **kw): if tg_errors: message = ', '.join([str(value) for value in tg_errors.values()]) flash(message) log.error(message) from transifex.model import User allUsers = User.select(orderBy=User.q.display_name) return dict(users=allUsers) # /user/username @validate(validators={"name": validators.PlainText(not_empty=True)}) @error_handler(index) @expose(template="genshi:transifex.templates.person") def info(self, name=None, tg_errors=None, *args, **kw): from transifex.model import User, ActionLog from transifex.util import SubmitEntries if tg_errors: message = ', '.join([str(value) for value in tg_errors.values()]) flash(message) log.error(message) try: person = User.select(User.q.user_name==name)[0] except: flash(_('No such person')) return self.index() submit_entries = SubmitEntries(user=person) return dict(person=person, logEntries=submit_entries.entries, logEntries_grid=submit_entries.datagrid, ) # all rest @validate(validators={"name": validators.PlainText(not_empty=True)}) @error_handler(index) @expose(template="genshi:transifex.templates.people") def default(self, name=None, action=None, *args, **kw): if name: if not action or action == 'info': return self.info(name=name, *args, **kw) else: flash(_("The path %s cannot be found") % cherrypy.request.path) return self.index()