diff kallithea/controllers/changelog.py @ 4363:7ad20e8f16bd

redirect: don't redirect on error - it is better to have clear error messages and stable and meaningful URLs
author Mads Kiilerich <madski@unity3d.com>
date Fri, 18 Jul 2014 19:22:01 +0200
parents 42bc65838fd1
children 0111c18298a0
line wrap: on
line diff
--- a/kallithea/controllers/changelog.py	Fri Jul 18 19:21:56 2014 +0200
+++ b/kallithea/controllers/changelog.py	Fri Jul 18 19:22:01 2014 +0200
@@ -71,12 +71,10 @@
         super(ChangelogController, self).__before__()
         c.affected_files_cut_off = 60
 
-    def __get_cs_or_redirect(self, rev, repo, redirect_after=True,
-                             partial=False):
+    @staticmethod
+    def __get_cs(rev, repo):
         """
-        Safe way to get changeset if error occur it redirects to changeset with
-        proper message. If partial is set then don't do redirect raise Exception
-        instead
+        Safe way to get changeset. If error occur fail with error message.
 
         :param rev: revision to fetch
         :param repo: repo instance
@@ -85,18 +83,12 @@
         try:
             return c.db_repo_scm_instance.get_changeset(rev)
         except EmptyRepositoryError, e:
-            if not redirect_after:
-                return None
             h.flash(h.literal(_('There are no changesets yet')),
-                    category='warning')
-            redirect(url('changelog_home', repo_name=repo.repo_name))
-
+                    category='error')
         except RepositoryError, e:
             log.error(traceback.format_exc())
-            h.flash(safe_str(e), category='warning')
-            if not partial:
-                redirect(h.url('changelog_home', repo_name=repo.repo_name))
-            raise HTTPBadRequest()
+            h.flash(safe_str(e), category='error')
+        raise HTTPBadRequest()
 
     @LoginRequired()
     @HasRepoPermissionAnyDecorator('repository.read', 'repository.write',
@@ -136,7 +128,7 @@
                 except (NodeDoesNotExistError, ChangesetError):
                     #this node is not present at tip !
                     try:
-                        cs = self.__get_cs_or_redirect(revision, repo_name)
+                        cs = self.__get_cs(revision, repo_name)
                         collection = cs.get_file_history(f_path)
                     except RepositoryError, e:
                         h.flash(safe_str(e), category='warning')