changeset 2603:370ed7829168 beta

Readme renderer now uses landing_rev parameter to render the readme based on given revision, rather than tip
author Marcin Kuzminski <marcin@python-works.com>
date Sat, 14 Jul 2012 19:09:35 +0200
parents 17083006a33d
children dfa5180cf02f
files rhodecode/controllers/admin/repos.py rhodecode/controllers/summary.py rhodecode/model/db.py rhodecode/templates/summary/summary.html
diffstat 4 files changed, 18 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/controllers/admin/repos.py	Sat Jul 14 18:53:39 2012 +0200
+++ b/rhodecode/controllers/admin/repos.py	Sat Jul 14 19:09:35 2012 +0200
@@ -211,6 +211,10 @@
         self.__load_defaults()
         repo_model = RepoModel()
         changed_name = repo_name
+        #override the choices with extracted revisions !
+        choices, c.landing_revs = ScmModel().get_repo_landing_revs(repo_name)
+        c.landing_revs_choices = choices
+
         _form = RepoForm(edit=True, old_data={'repo_name': repo_name},
                          repo_groups=c.repo_groups_choices,
                          landing_revs=c.landing_revs_choices)()
--- a/rhodecode/controllers/summary.py	Sat Jul 14 18:53:39 2012 +0200
+++ b/rhodecode/controllers/summary.py	Sat Jul 14 19:09:35 2012 +0200
@@ -180,12 +180,12 @@
         if c.enable_downloads:
             c.download_options = self._get_download_links(c.rhodecode_repo)
 
-        c.readme_data, c.readme_file = self.__get_readme_data(
-            c.rhodecode_db_repo.repo_name, c.rhodecode_repo
-        )
+        c.readme_data, c.readme_file = \
+            self.__get_readme_data(c.rhodecode_db_repo)
         return render('summary/summary.html')
 
-    def __get_readme_data(self, repo_name, repo):
+    def __get_readme_data(self, db_repo):
+        repo_name = db_repo.repo_name
 
         @cache_region('long_term')
         def _get_readme_from_cache(key):
@@ -193,7 +193,8 @@
             readme_file = None
             log.debug('Fetching readme file')
             try:
-                cs = repo.get_changeset()  # fetches TIP
+                # get's the landing revision! or tip if fails
+                cs = db_repo.get_landing_changeset()
                 renderer = MarkupRenderer()
                 for f in README_FILES:
                     try:
--- a/rhodecode/model/db.py	Sat Jul 14 18:53:39 2012 +0200
+++ b/rhodecode/model/db.py	Sat Jul 14 19:09:35 2012 +0200
@@ -777,6 +777,13 @@
     def get_changeset(self, rev=None):
         return get_changeset_safe(self.scm_instance, rev)
 
+    def get_landing_changeset(self):
+        """
+        Returns landing changeset, or if that doesn't exist returns the tip
+        """
+        cs = self.get_changeset(self.landing_rev) or self.get_changeset()
+        return cs
+
     @property
     def tip(self):
         return self.get_changeset('tip')
--- a/rhodecode/templates/summary/summary.html	Sat Jul 14 18:53:39 2012 +0200
+++ b/rhodecode/templates/summary/summary.html	Sat Jul 14 19:09:35 2012 +0200
@@ -226,7 +226,7 @@
 
 %if c.readme_data:
 <div id="readme" class="box header-pos-fix" style="background-color: #FAFAFA">
-    <div id="readme" class="title">
+    <div id="readme" class="title" title="${_("Readme file at revision '%s'" % c.rhodecode_db_repo.landing_rev)}">
         <div class="breadcrumbs"><a href="${h.url('files_home',repo_name=c.repo_name,revision='tip',f_path=c.readme_file)}">${c.readme_file}</a></div>
     </div>
     <div id="readme" class="readme">