changeset 962:72f008ed9b18 beta

implemented #84 downloads can be enabled/disabled per each repository from now.
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 26 Jan 2011 18:37:42 +0100
parents 840ca7492dbe
children 1707aae3f985 84bb5b8b498d
files rhodecode/controllers/files.py rhodecode/controllers/summary.py rhodecode/model/db.py rhodecode/model/forms.py rhodecode/templates/admin/repos/repo_edit.html rhodecode/templates/summary/summary.html
diffstat 6 files changed, 23 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/controllers/files.py	Wed Jan 26 18:35:13 2011 +0100
+++ b/rhodecode/controllers/files.py	Wed Jan 26 18:37:42 2011 +0100
@@ -164,6 +164,10 @@
 
         try:
             repo = ScmModel().get_repo(repo_name)
+
+            if repo.dbrepo.enable_downloads is False:
+                return _('downloads disabled')
+
             cs = repo.get_changeset(revision)
             content_type = ARCHIVE_SPECS[fileformat][0]
         except ChangesetDoesNotExistError:
--- a/rhodecode/controllers/summary.py	Wed Jan 26 18:35:13 2011 +0100
+++ b/rhodecode/controllers/summary.py	Wed Jan 26 18:37:42 2011 +0100
@@ -142,7 +142,9 @@
             c.trending_languages = json.dumps({})
             c.no_data = True
 
-        c.download_options = self._get_download_links(c.repo_info)
+        c.enable_downloads = c.repo_info.dbrepo.enable_downloads
+        if c.enable_downloads:
+            c.download_options = self._get_download_links(c.repo_info)
 
         return render('summary/summary.html')
 
--- a/rhodecode/model/db.py	Wed Jan 26 18:35:13 2011 +0100
+++ b/rhodecode/model/db.py	Wed Jan 26 18:37:42 2011 +0100
@@ -184,6 +184,7 @@
     user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=False, default=None)
     private = Column("private", Boolean(), nullable=True, unique=None, default=None)
     enable_statistics = Column("statistics", Boolean(), nullable=True, unique=None, default=True)
+    enable_downloads = Column("downloads", Boolean(), nullable=True, unique=None, default=True)
     description = Column("description", String(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
     fork_id = Column("fork_id", Integer(), ForeignKey('repositories.repo_id'), nullable=True, unique=False, default=None)
     group_id = Column("group_id", Integer(), ForeignKey('groups.group_id'), nullable=True, unique=False, default=None)
--- a/rhodecode/model/forms.py	Wed Jan 26 18:35:13 2011 +0100
+++ b/rhodecode/model/forms.py	Wed Jan 26 18:37:42 2011 +0100
@@ -447,6 +447,7 @@
         description = UnicodeString(strip=True, min=1, not_empty=True)
         private = StringBoolean(if_missing=False)
         enable_statistics = StringBoolean(if_missing=False)
+        enable_downloads = StringBoolean(if_missing=False)
         repo_type = OneOf(supported_backends)
         if edit:
             user = All(Int(not_empty=True), ValidRepoUser)
--- a/rhodecode/templates/admin/repos/repo_edit.html	Wed Jan 26 18:35:13 2011 +0100
+++ b/rhodecode/templates/admin/repos/repo_edit.html	Wed Jan 26 18:37:42 2011 +0100
@@ -67,7 +67,15 @@
                 <div class="checkboxes">
                     ${h.checkbox('enable_statistics',value="True")}
                 </div>
-            </div>             
+            </div>     
+            <div class="field">
+                <div class="label label-checkbox">
+                    <label for="enable_downloads">${_('Enable downloads')}:</label>
+                </div>
+                <div class="checkboxes">
+                    ${h.checkbox('enable_downloads',value="True")}
+                </div>
+            </div>                      
             <div class="field">
                 <div class="label">
                     <label for="user">${_('Owner')}:</label>
--- a/rhodecode/templates/summary/summary.html	Wed Jan 26 18:35:13 2011 +0100
+++ b/rhodecode/templates/summary/summary.html	Wed Jan 26 18:37:42 2011 +0100
@@ -130,6 +130,11 @@
 			  <div class="input-short">
 		        %if len(c.repo_info.revisions) == 0:
 		          ${_('There are no downloads yet')}
+		        %elif c.enable_downloads is False:
+		          ${_('Downloads are disabled for this repository')}
+                    %if h.HasPermissionAll('hg.admin')('enable stats on from summary'):
+                        [${h.link_to(_('enable'),h.url('edit_repo',repo_name=c.repo_name))}]
+                    %endif  		          
 		        %else:
 			        ${h.select('download_options',c.repo_info.get_changeset().raw_id,c.download_options)}
 			        %for cnt,archive in enumerate(c.repo_info._get_archives()):