changeset 3404:7854097b189c beta

Hide closed pull requests on my page.
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 25 Feb 2013 23:17:33 +0100
parents 07f4193083fd
children a9adca4ba3c9
files rhodecode/controllers/admin/settings.py rhodecode/templates/admin/users/user_edit_my_account.html rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html
diffstat 3 files changed, 30 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/controllers/admin/settings.py	Mon Feb 25 23:16:36 2013 +0100
+++ b/rhodecode/controllers/admin/settings.py	Mon Feb 25 23:17:33 2013 +0100
@@ -474,18 +474,23 @@
 
     @NotAnonymous()
     def my_account_my_pullrequests(self):
-        c.my_pull_requests = PullRequest.query()\
+        c.show_closed = request.GET.get('pr_show_closed')
+
+        def _filter(pr):
+            s = sorted(pr, key=lambda o: o.created_on, reverse=True)
+            if not c.show_closed:
+                s = filter(lambda p: p.status != PullRequest.STATUS_CLOSED, s)
+            return s
+
+        c.my_pull_requests = _filter(PullRequest.query()\
                                 .filter(PullRequest.user_id ==
                                         self.rhodecode_user.user_id)\
-                                .order_by(PullRequest.created_on.desc())\
-                                .all()
+                                .all())
 
-        c.participate_in_pull_requests = sorted(
-            [x.pull_request for x in PullRequestReviewers.query()\
-                                    .filter(PullRequestReviewers.user_id ==
-                                            self.rhodecode_user.user_id)\
-                                    .all()],
-                                    key=lambda o: o.created_on, reverse=True)
+        c.participate_in_pull_requests = _filter([
+                    x.pull_request for x in PullRequestReviewers.query()\
+                    .filter(PullRequestReviewers.user_id ==
+                            self.rhodecode_user.user_id).all()])
 
         return render('admin/users/user_edit_my_account_pullrequests.html')
 
--- a/rhodecode/templates/admin/users/user_edit_my_account.html	Mon Feb 25 23:16:36 2013 +0100
+++ b/rhodecode/templates/admin/users/user_edit_my_account.html	Mon Feb 25 23:17:33 2013 +0100
@@ -102,6 +102,7 @@
 </div>
 
 <script type="text/javascript">
+pyroutes.register('admin_settings_my_pullrequests', "${url('admin_settings_my_pullrequests')}", []);
 
 var show_perms = function(e){
     YUD.addClass('show_perms', 'current');
@@ -145,8 +146,15 @@
     YUD.setStyle('pullrequests_container','display','');
     YUD.setStyle('q_filter','display','none');
 
-    var url = "${h.url('admin_settings_my_pullrequests')}";
-    ypjax(url, 'pullrequests_container');
+    var url = pyroutes.url('admin_settings_my_pullrequests');
+    if(YUD.get('show_closed') && YUD.get('show_closed').checked) {
+    	var url = pyroutes.url('admin_settings_my_pullrequests', {'pr_show_closed': '1'});
+    }
+    ypjax(url, 'pullrequests_container', function(){
+        YUE.on('show_closed','change',function (e) {
+            show_pullrequests(e);
+        });    	
+    });
 }
 YUE.on('show_pullrequests','click',function(e){
     show_pullrequests(e)
@@ -270,6 +278,7 @@
           clearTimeout(filterTimeout);
           filterTimeout = setTimeout(updateFilter,600);
       });
+
     }
 </script>
 </%def>
--- a/rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html	Mon Feb 25 23:16:36 2013 +0100
+++ b/rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html	Mon Feb 25 23:17:33 2013 +0100
@@ -1,4 +1,8 @@
-
+%if c.show_closed:
+  ${h.checkbox('show_closed',checked="checked", label=_('Show closed pull requests'))}
+%else:
+  ${h.checkbox('show_closed',label=_('Show closed pull requests'))}
+%endif
 <div class="pullrequests_section_head">${_('Opened by me')}</div>
 <ul>
     %if c.my_pull_requests: