|
a/Allura/allura/model/notification.py |
|
b/Allura/allura/model/notification.py |
|
... |
|
... |
236 |
if artifact is None:
|
236 |
if artifact is None:
|
237 |
artifact_title = 'All artifacts'
|
237 |
artifact_title = 'All artifacts'
|
238 |
artifact_url = None
|
238 |
artifact_url = None
|
239 |
artifact_index_id = None
|
239 |
artifact_index_id = None
|
240 |
else:
|
240 |
else:
|
|
|
241 |
if cls.query.get(
|
|
|
242 |
user_id=user_id, project_id=project_id, app_config_id=app_config_id,
|
|
|
243 |
artifact_index_id=None):
|
|
|
244 |
# don't subscribe to individual artifacts when already
|
|
|
245 |
# subscribed to tool
|
|
|
246 |
return
|
241 |
i = artifact.index()
|
247 |
i = artifact.index()
|
242 |
artifact_title = i['title_s']
|
248 |
artifact_title = i['title_s']
|
243 |
artifact_url = artifact.url()
|
249 |
artifact_url = artifact.url()
|
244 |
artifact_index_id = i['id']
|
250 |
artifact_index_id = i['id']
|
245 |
d = dict(user_id=user_id, project_id=project_id, app_config_id=app_config_id,
|
251 |
d = dict(user_id=user_id, project_id=project_id, app_config_id=app_config_id,
|
|
... |
|
... |
258 |
mbox.artifact_title = artifact_title
|
264 |
mbox.artifact_title = artifact_title
|
259 |
mbox.artifact_url = artifact_url
|
265 |
mbox.artifact_url = artifact_url
|
260 |
mbox.type = type
|
266 |
mbox.type = type
|
261 |
mbox.frequency.n = n
|
267 |
mbox.frequency.n = n
|
262 |
mbox.frequency.unit = unit
|
268 |
mbox.frequency.unit = unit
|
|
|
269 |
sess.flush(mbox)
|
|
|
270 |
if not artifact_index_id:
|
|
|
271 |
# Unsubscribe from individual artifacts when subscribing to the tool
|
|
|
272 |
for other_mbox in cls.query.find(dict(
|
|
|
273 |
user_id=user_id, project_id=project_id, app_config_id=app_config_id)):
|
|
|
274 |
if other_mbox is not mbox:
|
|
|
275 |
other_mbox.delete()
|
263 |
|
276 |
|
264 |
@classmethod
|
277 |
@classmethod
|
265 |
def unsubscribe(
|
278 |
def unsubscribe(
|
266 |
cls,
|
279 |
cls,
|
267 |
user_id=None, project_id=None, app_config_id=None,
|
280 |
user_id=None, project_id=None, app_config_id=None,
|