changeset 747:2f89beda06a1 beta

Added icons with numbers of followers and number of forks
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 23 Nov 2010 23:49:12 +0100
parents 18a3ca35d501
children 88338675a0f7
files rhodecode/lib/base.py rhodecode/model/scm.py rhodecode/public/css/style.css rhodecode/templates/base/base.html
diffstat 4 files changed, 54 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/lib/base.py	Tue Nov 23 22:33:59 2010 +0100
+++ b/rhodecode/lib/base.py	Tue Nov 23 23:49:12 2010 +0100
@@ -22,14 +22,19 @@
         c.backends = BACKENDS.keys()
 
         if c.repo_name:
-            cached_repo = ScmModel().get(c.repo_name)
+            scm_model = ScmModel()
+            cached_repo = scm_model.get(c.repo_name)
 
             if cached_repo:
                 c.repository_tags = cached_repo.tags
                 c.repository_branches = cached_repo.branches
+                c.repository_followers = scm_model.get_followers(cached_repo.dbrepo.repo_id)
+                c.repository_forks = scm_model.get_forks(cached_repo.dbrepo.repo_id)
             else:
                 c.repository_tags = {}
                 c.repository_branches = {}
+                c.repository_followers = 0
+                c.repository_forks = 0
 
         self.sa = meta.Session()
 
--- a/rhodecode/model/scm.py	Tue Nov 23 22:33:59 2010 +0100
+++ b/rhodecode/model/scm.py	Tue Nov 23 23:49:12 2010 +0100
@@ -52,8 +52,8 @@
 class RepoTemp(object):
     def __init__(self, repo_id):
         self.repo_id = repo_id
-        
-           
+
+
 class ScmModel(object):
     """
     Mercurial Model
@@ -236,13 +236,13 @@
             .filter(UserFollowing.user_id == user_id).scalar()
 
         if f is not None:
-                    
+
             try:
                 self.sa.delete(f)
                 self.sa.commit()
                 action_logger(UserTemp(user_id),
                               'stopped_following_repo',
-                              RepoTemp(follow_repo_id))                
+                              RepoTemp(follow_repo_id))
                 return
             except:
                 log.error(traceback.format_exc())
@@ -258,7 +258,7 @@
             self.sa.commit()
             action_logger(UserTemp(user_id),
                           'started_following_repo',
-                          RepoTemp(follow_repo_id))             
+                          RepoTemp(follow_repo_id))
         except:
             log.error(traceback.format_exc())
             self.sa.rollback()
@@ -310,6 +310,13 @@
 
         return f is not None
 
+    def get_followers(self, repo_id):
+        return self.sa.query(UserFollowing)\
+                .filter(UserFollowing.follows_repo_id == repo_id).count()
+
+    def get_forks(self, repo_id):
+        return self.sa.query(Repository)\
+                .filter(Repository.fork_id == repo_id).count()
 
     def _should_invalidate(self, repo_name):
         """
--- a/rhodecode/public/css/style.css	Tue Nov 23 22:33:59 2010 +0100
+++ b/rhodecode/public/css/style.css	Tue Nov 23 23:49:12 2010 +0100
@@ -302,6 +302,10 @@
 padding:0;
 }
 
+#header #header-inner #quick li span.short {
+padding:9px 6px 8px 6px;
+}
+
 #header #header-inner #quick li span {
 top:0;
 right:0;
@@ -328,6 +332,15 @@
 padding:8px 8px 4px;
 }
 
+#header #header-inner #quick li span.icon_short {
+top:0;
+left:0;
+border-left:none;
+background:url("../../images/quick_l.png") no-repeat top left;
+border-right:1px solid #2e5c89;
+padding:9px 4px 4px;
+}
+
 #header #header-inner #quick li a:hover {
 background:#4e4e4e url("../../images/quick_l_selected.png") no-repeat top left;
 }
@@ -337,12 +350,13 @@
 background:url("../../images/quick_r_selected.png") no-repeat top right;
 }
 
-#header #header-inner #quick li a:hover span.icon {
+#header #header-inner #quick li a:hover span.icon,#header #header-inner #quick li a:hover span.icon_short {
 border-left:none;
 border-right:1px solid #464646;
 background:url("../../images/quick_l_selected.png") no-repeat top left;
 }
 
+
 #header #header-inner #quick ul {
 top:29px;
 right:0;
--- a/rhodecode/templates/base/base.html	Tue Nov 23 22:33:59 2010 +0100
+++ b/rhodecode/templates/base/base.html	Tue Nov 23 23:49:12 2010 +0100
@@ -212,19 +212,30 @@
                             <li class="last">${h.link_to(_('settings'),h.url('admin_settings'),class_='settings')}</li>        
                         </ul>
                     </li>
-                    %endif                    
+                    %endif
 
-                
-##                   %if h.HasRepoPermissionAll('repository.admin')(c.repo_name):
-##                   	<li class="last">
-##                   	${h.link_to(_('delete'),'#',class_='delete')}
-##	                  ${h.form(url('repo_settings_delete', repo_name=c.repo_name),method='delete')}
-##	                    ${h.submit('remove_%s' % c.repo_name,'delete',class_="delete_icon action_button",onclick="return confirm('Confirm to delete this repository');")}
-##	                  ${h.end_form()}
-##                   	</li>
-##                   	%endif
                    </ul>             
                 </li>
+                
+                <li>
+                    <a title="${_('Followers')}" href="#">
+                    <span class="icon_short">
+                        <img src="/images/icons/heart.png" alt="${_('Followers')}" />
+                    </span>
+                    <span class="short">${c.repository_followers}</span>
+                    </a>
+                </li>
+                <li>
+                    <a title="${_('Forks')}" href="#">
+                    <span class="icon_short">
+                        <img src="/images/icons/arrow_divide.png" alt="${_('Forks')}" />
+                    </span>
+                    <span class="short">${c.repository_forks}</span>
+                    </a>
+                </li>                
+                
+                
+                
 	        </ul>
 		%else:
 		    ##ROOT MENU