Mercurial > kallithea
changeset 2503:d04243e932cc beta
Added filtering on inbox by comments
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 25 Jun 2012 22:40:04 +0200 |
parents | 9374eecac156 |
children | 4cf9af8ee623 |
files | rhodecode/controllers/admin/notifications.py rhodecode/model/notification.py rhodecode/templates/admin/notifications/notifications.html |
diffstat | 3 files changed, 12 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/controllers/admin/notifications.py Sat Jun 23 11:43:07 2012 +0200 +++ b/rhodecode/controllers/admin/notifications.py Mon Jun 25 22:40:04 2012 +0200 @@ -61,10 +61,12 @@ # url('notifications') c.user = self.rhodecode_user notif = NotificationModel().get_for_user(self.rhodecode_user.user_id, - filter_=request.GET) + filter_=request.GET.getall('type')) p = int(request.params.get('page', 1)) c.notifications = Page(notif, page=p, items_per_page=10) c.pull_request_type = Notification.TYPE_PULL_REQUEST + c.comment_type = [Notification.TYPE_CHANGESET_COMMENT, + Notification.TYPE_PULL_REQUEST_COMMENT] return render('admin/notifications/notifications.html') def mark_all_read(self): @@ -72,11 +74,11 @@ nm = NotificationModel() # mark all read nm.mark_all_read_for_user(self.rhodecode_user.user_id, - filter_=request.GET) + filter_=request.GET.getall('type')) Session.commit() c.user = self.rhodecode_user notif = nm.get_for_user(self.rhodecode_user.user_id, - filter_=request.GET) + filter_=request.GET.getall('type')) c.notifications = Page(notif, page=1, items_per_page=10) return render('admin/notifications/notifications_data.html')
--- a/rhodecode/model/notification.py Sat Jun 23 11:43:07 2012 +0200 +++ b/rhodecode/model/notification.py Mon Jun 25 22:40:04 2012 +0200 @@ -27,7 +27,6 @@ import os import logging import traceback -import datetime from pylons.i18n.translation import _ @@ -35,7 +34,6 @@ from rhodecode.lib import helpers as h from rhodecode.model import BaseModel from rhodecode.model.db import Notification, User, UserNotification -from sqlalchemy.orm import joinedload log = logging.getLogger(__name__) @@ -152,7 +150,7 @@ Notification.notification_id)) if filter_: - q = q.filter(Notification.type_ == filter_.get('type')) + q = q.filter(Notification.type_.in_(filter_)) return q.all() @@ -164,7 +162,7 @@ .join((Notification, UserNotification.notification_id == Notification.notification_id)) if filter_: - q = q.filter(Notification.type_ == filter_.get('type')) + q = q.filter(Notification.type_.in_(filter_)) # this is a little inefficient but sqlalchemy doesn't support # update on joined tables :(
--- a/rhodecode/templates/admin/notifications/notifications.html Sat Jun 23 11:43:07 2012 +0200 +++ b/rhodecode/templates/admin/notifications/notifications.html Mon Jun 25 22:40:04 2012 +0200 @@ -24,15 +24,17 @@ ## </li> ##</ul> </div> - %if c.notifications: + <div style="padding:14px 18px;text-align: right;float:left"> <span id='all' class="ui-btn"><a href="${h.url.current()}">${_('All')}</a></span> + <span id='pull_request' class="ui-btn"><a href="${h.url.current(type=c.comment_type)}">${_('Comments')}</a></span> <span id='pull_request' class="ui-btn"><a href="${h.url.current(type=c.pull_request_type)}">${_('Pull requests')}</a></span> </div> + %if c.notifications: <div style="padding:14px 18px;text-align: right;float:right"> <span id='mark_all_read' class="ui-btn">${_('Mark all read')}</span> </div> - %endif + %endif <div id='notification_data'> <%include file='notifications_data.html'/> </div> @@ -44,12 +46,8 @@ deleteNotification(url_del,notification_id) }) YUE.on('mark_all_read','click',function(e){ - var url = "${h.url('notifications_mark_all_read', **request.GET)}"; + var url = "${h.url('notifications_mark_all_read', **request.GET.mixed())}"; ypjax(url,'notification_data',function(){ - var notification_counter = YUD.get('notification_counter'); - if(notification_counter){ - notification_counter.innerHTML=0; - } YUE.on(YUQ('.delete-notification'),'click',function(e){ var notification_id = e.currentTarget.id; deleteNotification(url_del,notification_id)