def environment_needs_upgrade(self, db): url_projects_path = self.env.config.get('multiproject', 'url_projects_path', '') url_projects_path = url_projects_path.rstrip('/') home_path = '{0}/{1}'.format( url_projects_path, self.env.config.get('multiproject', 'sys_home_project_name', 'home')) self.env.project_identifier = env_name = os.path.split( self.env.path)[-1] env_path = '{0}/{1}'.format(url_projects_path, env_name) self.env.home_href = Href(home_path) domain_name = self.env.config.get('multiproject', 'domain_name', '') if not domain_name: self.env.abs_home_href = self.env.home_href self.env._abs_href = Href(env_path) else: default_http_scheme = self.env.config.get('multiproject', 'default_http_scheme', 'https') url_service = '{0}://{1}'.format(default_http_scheme, domain_name) self.env.abs_home_href = Href('{0}{1}'.format( url_service, home_path)) self.env._abs_href = Href('{0}{1}'.format(url_service, env_path)) return False
def process_request(self, req): api = TrackerApi context = Context.from_request(req) db = self.env.get_db_cnx() context.cursor = db.cursor() actions = self._get_actions(context) if req.args.get('fromDMY') and req.args.get('toDMY') and req.args.get('username'): username = req.args.get('username') fromDMY = int(time.mktime(time.strptime(req.args.get('fromDMY'), '%d-%m-%Y'))).__str__() toDMY = int(time.mktime(time.strptime(req.args.get('toDMY'), '%d-%m-%Y'))).__str__() DEFAULT_TIME_VALUE = 10 screenshots = self._get_users_screenshots(username, fromDMY, toDMY) summaryWorkedTimeInMinutes = len(screenshots) * DEFAULT_TIME_VALUE temp_tasks = {} for screenshot in screenshots: if screenshot['ticketId'] in temp_tasks.keys(): temp_tasks[screenshot['ticketId']]['minutes'] += DEFAULT_TIME_VALUE else: temp_tasks[screenshot['ticketId']] = {'minutes': DEFAULT_TIME_VALUE, 'name': screenshot['summary'], 'id': screenshot['ticketId']} tasks = [] for key, temp_task in temp_tasks.iteritems(): href = Href(req.base_path) task = { 'hours': int(temp_task['minutes'] / 60), 'minutes': temp_task['minutes'] % 60, 'name': temp_task['name'], 'id': temp_task['id'], 'href': href.ticket(temp_task['id']) } tasks.append(task) req.data = { 'screenshots': screenshots, 'tasks': tasks, 'summaryWorkedTimeHours': int(summaryWorkedTimeInMinutes / 60), 'summaryWorkedTimeMinutes': summaryWorkedTimeInMinutes % 60, 'fromDMY': req.args.get('fromDMY'), 'toDMY': req.args.get('toDMY'), 'username': req.args.get('username') } add_stylesheet(req, 'trac/css/tracker.css') return "user_report.html", req.data, None else: add_script(req, 'common/js/jquery-ui.js') add_stylesheet(req, 'common/css/jquery-ui/jquery-ui.css') add_script(req, 'common/js/jquery-ui-addons.js') add_stylesheet(req, 'common/css/jquery-ui-addons.css') req.data = { 'users': api.get_users(TrackerApi(), context) } add_stylesheet(req, 'trac/css/tracker.css') return "user_report_date_picker.html", req.data, None
def setUp(self, enabled=None, create_req=False, enable_security=False): if not enabled: enabled = ['trac.*', 'bhsearch.*'] if not enable_security: disabled = ['bhsearch.security.*'] else: disabled = [] self.env = EnvironmentStub(enable=enabled, disable=disabled) self.env.path = tempfile.mkdtemp('bhsearch-tempenv') self.env.config.set('bhsearch', 'silence_on_error', "False") if create_req: self.req = Mock( perm=MockPerm(), chrome={ 'logo': {}, 'links': {} }, href=Href("/main"), base_path=BASE_PATH, path_info='/bhsearch', args=arg_list_to_args([]), authname='x', ) self.context = Mock(req=self.req) # Test without multiproduct. if hasattr(self.env, 'parent'): del self.env.parent
def setUp(self): self.req = Mock( perm=MockPerm(), chrome={'logo': {}}, href=Href("/main"), base_path=BASE_PATH, args=arg_list_to_args([]), )
def test_run_html_formatter(self): wiki_content = "!WikiSyntax" page = self.create_wiki("Dummy wiki", wiki_content) from trac.mimeview.api import RenderingContext context = RenderingContext( page.resource, href=Href('/'), perm=MockPerm(), ) context.req = None # 1.0 FIXME .req shouldn't be required by formatter format_to_html(self.env, context, wiki_content)
def __init__(self): self.args = {'action': '', 'tag': 'test tag'} class DummyPerm(object): def require(self, rights): pass self.perm = DummyPerm() self.method = 'POST' self.base_path = 'path' self.href = Href('/tmp') #@UndefinedVariable self.chrome = {}
def icon_url(self): """ Returns the URL path to project icon, or default if not set :return: Path of the icon URL """ # Load default icon URL from configuration icon_url = conf.get('multiproject-projects', 'icon_default_url', '') # If project has icon set, show it instead if self.icon_name: icon_url = Href(conf.get('multiproject-projects', 'icon_url', ''))(self.icon_name) return icon_url
def setUp(self): self.env = EnvironmentStub(enable=['bhsearch.*']) current_current_dir = os.getcwd() real_env_path = os.path.join( current_current_dir, "../../../installer/bloodhound/environments/main") self.env.path = real_env_path self.whoosh_backend = WhooshBackend(self.env) self.req = Mock( perm=MockPerm(), chrome={'logo': {}}, href=Href("/main"), args=arg_list_to_args([]), )
def href(self): return Href(self.url)