|
a/Allura/allura/lib/macro.py |
|
b/Allura/allura/lib/macro.py |
|
... |
|
... |
40 |
if '=' not in t:
|
40 |
if '=' not in t:
|
41 |
return '[-%s: missing =-]' % ' '.join(parts)
|
41 |
return '[-%s: missing =-]' % ' '.join(parts)
|
42 |
args = dict(t.split('=', 1) for t in parts[1:])
|
42 |
args = dict(t.split('=', 1) for t in parts[1:])
|
43 |
response = macro(**h.encode_keys(args))
|
43 |
response = macro(**h.encode_keys(args))
|
44 |
return response
|
44 |
return response
|
45 |
except (ValueError, TypeError), ex:
|
45 |
except (ValueError, TypeError) as ex:
|
46 |
msg = cgi.escape(u'[[%s]] (%s)' % (s, repr(ex)))
|
46 |
msg = cgi.escape(u'[[%s]] (%s)' % (s, repr(ex)))
|
|
|
47 |
log.warn('macro error', exc_info=True)
|
47 |
return '\n<div class="error"><pre><code>%s</code></pre></div>' % msg
|
48 |
return '\n<div class="error"><pre><code>%s</code></pre></div>' % msg
|
48 |
except Exception, ex:
|
49 |
except Exception, ex:
|
49 |
raise
|
50 |
raise
|
50 |
return '[[Error parsing %s: %s]]' % (s, ex)
|
51 |
return '[[Error parsing %s: %s]]' % (s, ex)
|
51 |
|
52 |
|
52 |
def _lookup_macro(self, s):
|
53 |
def _lookup_macro(self, s):
|
53 |
macro, context = _macros.get(s, None)
|
54 |
macro, context = _macros.get(s, (None, None))
|
54 |
if context is None or context == self._context:
|
55 |
if context is None or context == self._context:
|
55 |
return macro
|
56 |
return macro
|
56 |
else:
|
57 |
else:
|
57 |
return None
|
58 |
return None
|
58 |
|
59 |
|
|
... |
|
... |
238 |
def projects(category=None, display_mode='grid', sort='last_updated',
|
239 |
def projects(category=None, display_mode='grid', sort='last_updated',
|
239 |
show_total=False, limit=100, labels='', award='', private=False,
|
240 |
show_total=False, limit=100, labels='', award='', private=False,
|
240 |
columns=1, show_proj_icon=True, show_download_button=True, show_awards_banner=True,
|
241 |
columns=1, show_proj_icon=True, show_download_button=True, show_awards_banner=True,
|
241 |
grid_view_tools=''):
|
242 |
grid_view_tools=''):
|
242 |
initial_q = dict(neighborhood_id=c.project.neighborhood_id)
|
243 |
initial_q = dict(neighborhood_id=c.project.neighborhood_id)
|
243 |
return get_projects_for_macro(category=category, display_mode=display_mode, sort=sort,
|
244 |
return get_projects_for_macro(category=category, display_mode=display_mode, sort=sort,
|
244 |
show_total=show_total, limit=limit, labels=labels, award=award, private=private,
|
245 |
show_total=show_total, limit=limit, labels=labels, award=award, private=private,
|
245 |
columns=columns, show_proj_icon=show_proj_icon, show_download_button=show_download_button,
|
246 |
columns=columns, show_proj_icon=show_proj_icon, show_download_button=show_download_button,
|
246 |
show_awards_banner=show_awards_banner, grid_view_tools=grid_view_tools,
|
247 |
show_awards_banner=show_awards_banner, grid_view_tools=grid_view_tools,
|
247 |
initial_q=initial_q)
|
248 |
initial_q=initial_q)
|
248 |
|
249 |
|
|
... |
|
... |
259 |
ids = []
|
260 |
ids = []
|
260 |
for p in myproj_user.my_projects():
|
261 |
for p in myproj_user.my_projects():
|
261 |
ids.append(p._id)
|
262 |
ids.append(p._id)
|
262 |
|
263 |
|
263 |
initial_q = dict(_id={'$in': ids})
|
264 |
initial_q = dict(_id={'$in': ids})
|
264 |
return get_projects_for_macro(category=category, display_mode=display_mode, sort=sort,
|
265 |
return get_projects_for_macro(category=category, display_mode=display_mode, sort=sort,
|
265 |
show_total=show_total, limit=limit, labels=labels, award=award, private=private,
|
266 |
show_total=show_total, limit=limit, labels=labels, award=award, private=private,
|
266 |
columns=columns, show_proj_icon=show_proj_icon, show_download_button=show_download_button,
|
267 |
columns=columns, show_proj_icon=show_proj_icon, show_download_button=show_download_button,
|
267 |
show_awards_banner=show_awards_banner, grid_view_tools=grid_view_tools,
|
268 |
show_awards_banner=show_awards_banner, grid_view_tools=grid_view_tools,
|
268 |
initial_q=initial_q)
|
269 |
initial_q=initial_q)
|
269 |
|
270 |
|