|
a/Allura/allura/lib/macro.py |
|
b/Allura/allura/lib/macro.py |
|
... |
|
... |
136 |
category=None,
|
136 |
category=None,
|
137 |
display_mode='grid',
|
137 |
display_mode='grid',
|
138 |
sort='last_updated',
|
138 |
sort='last_updated',
|
139 |
show_total=False,
|
139 |
show_total=False,
|
140 |
limit=100,
|
140 |
limit=100,
|
141 |
labels=''):
|
141 |
labels='',
|
|
|
142 |
award=''):
|
142 |
from allura.lib.widgets.project_list import ProjectList
|
143 |
from allura.lib.widgets.project_list import ProjectList
|
143 |
from allura import model as M
|
144 |
from allura import model as M
|
144 |
q = dict(
|
145 |
q = dict(
|
145 |
neighborhood_id=c.project.neighborhood_id,
|
146 |
neighborhood_id=c.project.neighborhood_id,
|
146 |
deleted=False,
|
147 |
deleted=False,
|
|
... |
|
... |
148 |
if labels:
|
149 |
if labels:
|
149 |
or_labels = labels.split('|')
|
150 |
or_labels = labels.split('|')
|
150 |
q['$or'] = [{'labels': {'$all': l.split(',')}} for l in or_labels]
|
151 |
q['$or'] = [{'labels': {'$all': l.split(',')}} for l in or_labels]
|
151 |
if category is not None:
|
152 |
if category is not None:
|
152 |
category = M.ProjectCategory.query.get(name=category)
|
153 |
category = M.ProjectCategory.query.get(name=category)
|
|
|
154 |
if award:
|
|
|
155 |
aw = M.Award.query.find(dict(created_by_neighborhood_id=c.project.neighborhood_id, short=award)).first()
|
|
|
156 |
if aw:
|
|
|
157 |
q['_id'] = {'$in': [grant.granted_to_project_id for grant in M.AwardGrant.query.find(dict(
|
|
|
158 |
granted_by_neighborhood_id=c.project.neighborhood_id,
|
|
|
159 |
award_id=aw._id))]}
|
153 |
if category is not None:
|
160 |
if category is not None:
|
154 |
q['category_id'] = category._id
|
161 |
q['category_id'] = category._id
|
155 |
pq = M.Project.query.find(q).limit(int(limit))
|
162 |
pq = M.Project.query.find(q).limit(int(limit))
|
156 |
if sort == 'alpha':
|
163 |
if sort == 'alpha':
|
157 |
pq.sort('name')
|
164 |
pq.sort('name')
|