Switch to unified view

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,