changeset 8996:439bc130e093 i18n

Merge from stable
author Mads Kiilerich <mads@kiilerich.com>
date Sun, 14 May 2023 21:19:38 +0200
parents 3fff648ffdd4 (current diff) 36a36ebdf4bb (diff)
children 66fcd3993563
files kallithea/i18n/be/LC_MESSAGES/kallithea.po kallithea/i18n/bg/LC_MESSAGES/kallithea.po kallithea/i18n/cs/LC_MESSAGES/kallithea.po kallithea/i18n/da/LC_MESSAGES/kallithea.po kallithea/i18n/de/LC_MESSAGES/kallithea.po kallithea/i18n/el/LC_MESSAGES/kallithea.po kallithea/i18n/es/LC_MESSAGES/kallithea.po kallithea/i18n/fr/LC_MESSAGES/kallithea.po kallithea/i18n/hu/LC_MESSAGES/kallithea.po kallithea/i18n/ja/LC_MESSAGES/kallithea.po kallithea/i18n/kallithea.pot kallithea/i18n/lb/LC_MESSAGES/kallithea.po kallithea/i18n/nb_NO/LC_MESSAGES/kallithea.po kallithea/i18n/nl_BE/LC_MESSAGES/kallithea.po kallithea/i18n/pl/LC_MESSAGES/kallithea.po kallithea/i18n/pt/LC_MESSAGES/kallithea.po kallithea/i18n/pt_BR/LC_MESSAGES/kallithea.po kallithea/i18n/ru/LC_MESSAGES/kallithea.po kallithea/i18n/sk/LC_MESSAGES/kallithea.po kallithea/i18n/tr/LC_MESSAGES/kallithea.po kallithea/i18n/uk/LC_MESSAGES/kallithea.po kallithea/i18n/zh_CN/LC_MESSAGES/kallithea.po kallithea/i18n/zh_TW/LC_MESSAGES/kallithea.po kallithea/templates/admin/repo_groups/repo_group_edit_perms.html
diffstat 48 files changed, 1801 insertions(+), 1814 deletions(-) [+]
line wrap: on
line diff
--- a/CONTRIBUTORS	Tue Feb 14 15:22:17 2023 +0100
+++ b/CONTRIBUTORS	Sun May 14 21:19:38 2023 +0200
@@ -1,9 +1,11 @@
 List of contributors to Kallithea project:
 
-    Mads Kiilerich <mads@kiilerich.com> 2016-2022
+    Mads Kiilerich <mads@kiilerich.com> 2016-2023
+    Manuel Jacob <me@manueljacob.de> 2019-2020 2022-2023
+    Mathias De Mare <mathias.de_mare@nokia.com> 2023
     Asterios Dimitriou <steve@pci.gr> 2016-2017 2020 2022
-    Manuel Jacob <me@manueljacob.de> 2019-2020 2022
     Jaime Marquínez Ferrándiz <weblate@jregistros.fastmail.net> 2022
+    Louis Bertrand <louis.bertrand@durhamcollege.ca> 2022
     toras9000 <toras9000@gmail.com> 2022
     yzqzss <yzqzss@othing.xyz> 2022
     МАН69К <weblate@mah69k.net> 2022
--- a/Jenkinsfile	Tue Feb 14 15:22:17 2023 +0100
+++ b/Jenkinsfile	Sun May 14 21:19:38 2023 +0200
@@ -28,7 +28,7 @@
         def virtualenvscript = """$createvirtualenv
             $activatevirtualenv
             python -m pip install --upgrade pip
-            pip install --upgrade setuptools
+            pip install --upgrade "setuptools<67"
             pip install --upgrade pylint
             pip install --upgrade pytest-cov
             """
--- a/docs/api/api.rst	Tue Feb 14 15:22:17 2023 +0100
+++ b/docs/api/api.rst	Sun May 14 21:19:38 2023 +0200
@@ -23,7 +23,7 @@
 Clients must send JSON encoded JSON-RPC requests::
 
     {
-        "id: "<id>",
+        "id": "<id>",
         "api_key": "<api_key>",
         "method": "<method_name>",
         "args": {"<arg_key>": "<arg_val>"}
@@ -489,7 +489,7 @@
 add_user_to_user_group
 ^^^^^^^^^^^^^^^^^^^^^^
 
-Adds a user to a user group. If the user already is in that group, success will be
+Add a user to a user group. If the user already is in that group, success will be
 ``false``.
 This command can only be executed using the api_key of a user with admin rights.
 
@@ -540,6 +540,167 @@
              }
     error : null
 
+get_repo_group
+^^^^^^^^^^^^^^
+
+Get an existing repository group.
+This command can only be executed using the api_key of a user with admin rights.
+
+INPUT::
+
+    id : <id_for_response>
+    api_key : "<api_key>"
+    method :  "get_repo_group"
+    args :    {
+                "repogroupid" : "<repo group id or name>"
+              }
+
+OUTPUT::
+
+    id : <id_given_in_input>
+    result :
+               {
+               "group_id" :          "<id>",
+               "group_name" :        "<groupname>",
+               "group_description" : "<groupdescription>",
+               "parent_group" :      "<groupid>"|null,
+               "repositories" :      "<list_of_all_repo_names_in_group>",
+               "owner" :             "<owner>",
+               "members" :           [
+                                       {
+                                         "name" : "<name>",
+                                         "type" : "user",
+                                         "permission" : "group.(none|read|write|admin)"
+                                       },
+                                       {
+                                         "name" : "<name>",
+                                         "type" : "user_group",
+                                         "permission" : "group.(none|read|write|admin)"
+                                       },
+                                       …
+                                     ]
+
+               },
+    error : null
+
+get_repo_groups
+^^^^^^^^^^^^^^^
+
+List all existing repository groups.
+This command can only be executed using the api_key of a user with admin rights.
+
+INPUT::
+
+    id : <id_for_response>
+    api_key : "<api_key>"
+    method :  "get_repo_groups"
+    args :    { }
+
+OUTPUT::
+
+    id : <id_given_in_input>
+    result : [
+               {
+               "group_id" :          "<id>",
+               "group_name" :        "<groupname>",
+               "group_description" : "<groupdescription>",
+               "parent_group" :      "<groupid>"|null,
+               "repositories" :      "<list_of_all_repo_names_in_group>",
+               "owner" :             "<owner>"
+               },
+               …
+              ]
+    error : null
+
+create_repo_group
+^^^^^^^^^^^^^^^^^
+
+Create a new repository group.
+This command can only be executed using the api_key of a user with admin rights.
+
+INPUT::
+
+    id : <id_for_response>
+    api_key : "<api_key>"
+    method :  "create_repo_group"
+    args :    {
+                "group_name" :       "<group_name>",
+                "description" :      "<description> = Optional("")",
+                "owner" :            "<username or user_id> = Optional(None)",
+                "parent" :           "<reponame or id> = Optional(None)",
+                "copy_permissions" : "<bool> = Optional(False)"
+              }
+
+OUTPUT::
+
+    id : <id_given_in_input>
+    result : {
+                "msg" : "created new repo group `<group_name>`",
+                "repo_group" : {
+                                 "group_id" :          <id>,
+                                 "group_name" :        "<parent_group>/<group_name>",
+                                 "group_description" : "<description>",
+                                 "parent_group" :      <id>|null,
+                                 "repositories" :      <list of repositories>,
+                                 "owner" :             "<user_name>"
+                                }
+
+update_repo_group
+^^^^^^^^^^^^^^^^^
+
+Update a repository group.
+This command can only be executed using the api_key of a user with admin rights.
+
+INPUT::
+
+    id : <id_for_response>
+    api_key : "<api_key>"
+    method :  "update_repo_group"
+    args :    {
+                "repogroupid" :         "<id>",
+                "group_name" :       "<group_name> = Optional(None)",
+                "description" :      "<description> = Optional(None)",
+                "owner" :            "<username or user_id> = Optional(None)",
+                "parent" :           "<reponame or id> = Optional(None)"
+              }
+
+OUTPUT::
+
+    id : <id_given_in_input>
+    result : {
+                "msg" : "updated repository group ID:<id> <group_name>",
+                "repo_group" : {
+                                 "group_id" :          <id>,
+                                 "group_name" :        "<parent_group>/<group_name>",
+                                 "group_description" : "<description>",
+                                 "parent_group" :      <id>|null,
+                                 "repositories" :      <list of repositories>,
+                                 "owner" :             "<user_name>"
+                                }
+
+delete_repo_group
+^^^^^^^^^^^^^^^^^
+
+Delete a repository group.
+This command can only be executed using the api_key of a user with admin rights.
+
+INPUT::
+
+    id : <id_for_response>
+    api_key : "<api_key>"
+    method :  "delete_repo_group"
+    args :    {
+                "repogroupid" : "<id>"
+              }
+
+OUTPUT::
+
+    id : <id_given_in_input>
+    result : {
+                "msg" : "deleted repo group ID:<id> <group_name>",
+                "repo_group" : null
+              }
+
 get_repo
 ^^^^^^^^
 
--- a/docs/conf.py	Tue Feb 14 15:22:17 2023 +0100
+++ b/docs/conf.py	Sun May 14 21:19:38 2023 +0200
@@ -47,7 +47,7 @@
 
 # General information about the project.
 project = 'Kallithea'
-copyright = '2010-2022 by various authors, licensed as GPLv3.'
+copyright = '2010-2023 by various authors, licensed as GPLv3.'
 
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
--- a/docs/contributing.rst	Tue Feb 14 15:22:17 2023 +0100
+++ b/docs/contributing.rst	Sun May 14 21:19:38 2023 +0200
@@ -33,7 +33,7 @@
         cd kallithea
         python3 -m venv venv
         . venv/bin/activate
-        pip install --upgrade pip setuptools
+        pip install --upgrade pip "setuptools<67"
         pip install --upgrade -e . -r dev_requirements.txt python-ldap python-pam
         kallithea-cli config-create my.ini
         kallithea-cli db-create -c my.ini --user=user --email=user@example.com --password=password --repos=/tmp
--- a/docs/installation.rst	Tue Feb 14 15:22:17 2023 +0100
+++ b/docs/installation.rst	Sun May 14 21:19:38 2023 +0200
@@ -55,7 +55,7 @@
         cd kallithea
         python3 -m venv venv
         . venv/bin/activate
-        pip install --upgrade pip setuptools
+        pip install --upgrade pip "setuptools<67"
         pip install --upgrade -e .
         python3 setup.py compile_catalog   # for translation of the UI
 
@@ -98,7 +98,7 @@
   bash shell::
 
     . /srv/kallithea/venv/bin/activate
-    pip install --upgrade pip setuptools
+    pip install --upgrade pip "setuptools<67"
 
 .. note:: You can't use UNIX ``sudo`` to source the ``activate`` script; it
    will "activate" a shell that terminates immediately.
--- a/docs/installation_win.rst	Tue Feb 14 15:22:17 2023 +0100
+++ b/docs/installation_win.rst	Sun May 14 21:19:38 2023 +0200
@@ -104,7 +104,7 @@
 
   cd C:\Kallithea\Env\Scripts
   activate
-  pip install --upgrade pip setuptools
+  pip install --upgrade pip "setuptools<67"
 
 The prompt will change into "(Env) C:\\Kallithea\\Env\\Scripts" or similar
 (depending of your folder structure). Then type::
--- a/docs/installation_win_old.rst	Tue Feb 14 15:22:17 2023 +0100
+++ b/docs/installation_win_old.rst	Sun May 14 21:19:38 2023 +0200
@@ -170,7 +170,7 @@
 
   cd C:\Kallithea\Env\Scripts (or similar)
   activate
-  pip install --upgrade pip setuptools
+  pip install --upgrade pip "setuptools<67"
 
 The prompt will change into "(Env) C:\\Kallithea\\Env\\Scripts" or similar
 (depending of your folder structure). Then type::
--- a/kallithea/config/app_cfg.py	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/config/app_cfg.py	Sun May 14 21:19:38 2023 +0200
@@ -78,6 +78,10 @@
 
     # Set the default i18n source language so TG doesn't search beyond 'en' in Accept-Language.
     'i18n.lang': 'en',
+
+    # For TurboGears 2.4.3, define the native language for translations to
+    # prevent fall-through to languages requested with lower priority.
+    'i18n.native': ['en', 'en_US', 'en_GB'],
 })
 
 # DebugBar, a debug toolbar for TurboGears2.
--- a/kallithea/controllers/admin/repo_groups.py	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/controllers/admin/repo_groups.py	Sun May 14 21:19:38 2023 +0200
@@ -90,13 +90,6 @@
 
         return data
 
-    def _revoke_perms_on_yourself(self, form_result):
-        _up = [u for u in form_result['perms_updates'] if request.authuser.username == u[0]]
-        _new = [u for u in form_result['perms_new'] if request.authuser.username == u[0]]
-        if _new and _new[0][1] != 'group.admin' or _up and _up[0][1] != 'group.admin':
-            return True
-        return False
-
     def index(self, format='html'):
         _list = db.RepoGroup.query(sorted=True).all()
         group_iter = RepoGroupList(_list, perm_level='admin')
@@ -349,11 +342,6 @@
         c.repo_group = db.RepoGroup.guess_instance(group_name)
         valid_recursive_choices = ['none', 'repos', 'groups', 'all']
         form_result = RepoGroupPermsForm(valid_recursive_choices)().to_python(request.POST)
-        if not request.authuser.is_admin:
-            if self._revoke_perms_on_yourself(form_result):
-                msg = _('Cannot revoke permission for yourself as admin')
-                webutils.flash(msg, category='warning')
-                raise HTTPFound(location=url('edit_repo_group_perms', group_name=group_name))
         recursive = form_result['recursive']
         # iterate over all members(if in recursive mode) of this groups and
         # set the permissions !
@@ -379,11 +367,6 @@
             elif obj_type == 'user_group':
                 obj_id = safe_int(request.POST.get('user_group_id'))
 
-            if not request.authuser.is_admin:
-                if obj_type == 'user' and request.authuser.user_id == obj_id:
-                    msg = _('Cannot revoke permission for yourself as admin')
-                    webutils.flash(msg, category='warning')
-                    raise Exception('revoke admin permission on self')
             recursive = request.POST.get('recursive', 'none')
             if obj_type == 'user':
                 RepoGroupModel().delete_permission(repo_group=group_name,
--- a/kallithea/controllers/api/api.py	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/controllers/api/api.py	Sun May 14 21:19:38 2023 +0200
@@ -65,8 +65,6 @@
 def get_user_or_error(userid):
     """
     Get user by id or name or return JsonRPCError if not found
-
-    :param userid:
     """
     user = UserModel().get_user(userid)
     if user is None:
@@ -77,8 +75,6 @@
 def get_repo_or_error(repoid):
     """
     Get repo by id or name or return JsonRPCError if not found
-
-    :param repoid:
     """
     repo = RepoModel().get_repo(repoid)
     if repo is None:
@@ -89,8 +85,6 @@
 def get_repo_group_or_error(repogroupid):
     """
     Get repo group by id or name or return JsonRPCError if not found
-
-    :param repogroupid:
     """
     repo_group = db.RepoGroup.guess_instance(repogroupid)
     if repo_group is None:
@@ -102,8 +96,6 @@
 def get_user_group_or_error(usergroupid):
     """
     Get user group by id or name or return JsonRPCError if not found
-
-    :param usergroupid:
     """
     user_group = UserGroupModel().get_group(usergroupid)
     if user_group is None:
@@ -114,8 +106,6 @@
 def get_perm_or_error(permid, prefix=None):
     """
     Get permission by id or name or return JsonRPCError if not found
-
-    :param permid:
     """
     perm = db.Permission.get_by_key(permid)
     if perm is None:
@@ -130,8 +120,6 @@
 def get_gist_or_error(gistid):
     """
     Get gist by id or gist_access_id or return JsonRPCError if not found
-
-    :param gistid:
     """
     gist = GistModel().get_gist(gistid)
     if gist is None:
@@ -165,11 +153,6 @@
         automatically keep remote repos up to date. This command can be executed
         only using api_key belonging to user with admin rights
 
-        :param repoid: repository name or repository id
-        :type repoid: str or int
-        :param clone_uri: repository URI to pull from (optional)
-        :type clone_uri: str
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -178,14 +161,6 @@
                 "repository" : "<repository name>"
             }
             error : null
-
-        ERROR OUTPUT::
-
-            id : <id_given_in_input>
-            result : null
-            error :  {
-                "Unable to pull changes from `<reponame>`"
-            }
         """
         repo = get_repo_or_error(repoid)
 
@@ -212,10 +187,6 @@
         aka "clean zombies". This command can be executed only using api_key
         belonging to user with admin rights.
 
-        :param remove_obsolete: deletes repositories from
-            database that are not found on the filesystem
-        :type remove_obsolete: Optional(bool)
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -224,14 +195,6 @@
                 'removed': [<removed repository name>,...]
             }
             error : null
-
-        ERROR OUTPUT::
-
-            id : <id_given_in_input>
-            result : null
-            error :  {
-                'Error occurred during rescan repositories action'
-            }
         """
         try:
             rm_obsolete = remove_obsolete
@@ -250,9 +213,6 @@
         This command can be executed only using api_key belonging to user with admin
         rights or regular user that have write or admin or write access to repository.
 
-        :param repoid: repository name or repository id
-        :type repoid: str or int
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -261,14 +221,6 @@
                 'repository': <repository name>
             }
             error : null
-
-        ERROR OUTPUT::
-
-            id : <id_given_in_input>
-            result : null
-            error :  {
-                'Error occurred during cache invalidation action'
-            }
         """
         repo = get_repo_or_error(repoid)
         if not HasPermissionAny('hg.admin')():
@@ -296,9 +248,6 @@
         This command can be executed only using api_key belonging to user with
         admin rights.
 
-        :param userid: username to show ips for
-        :type userid: Optional(str or int)
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -354,9 +303,6 @@
         belonging to user with admin rights, or regular users that cannot
         specify different userid than theirs
 
-        :param userid: user to get data for
-        :type userid: Optional(str or int)
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -426,25 +372,6 @@
         Creates new user. Returns new user object. This command can
         be executed only using api_key belonging to user with admin rights.
 
-        :param username: new username
-        :type username: str or int
-        :param email: email
-        :type email: str
-        :param password: password
-        :type password: Optional(str)
-        :param firstname: firstname
-        :type firstname: str
-        :param lastname: lastname
-        :type lastname: str
-        :param active: active
-        :type active: Optional(bool)
-        :param admin: admin
-        :type admin: Optional(bool)
-        :param extern_name: name of extern
-        :type extern_name: Optional(str)
-        :param extern_type: extern_type
-        :type extern_type: Optional(str)
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -453,18 +380,6 @@
                       "user" : <user_obj>
                      }
             error : null
-
-        ERROR OUTPUT::
-
-            id : <id_given_in_input>
-            result : null
-            error :  {
-                "user `<username>` already exist"
-                or
-                "email `<email>` already exist"
-                or
-                "failed to create user `<username>`"
-            }
         """
         if db.User.get_by_username(username):
             raise JSONRPCError("user `%s` already exist" % (username,))
@@ -503,27 +418,6 @@
         updates given user if such user exists. This command can
         be executed only using api_key belonging to user with admin rights.
 
-        :param userid: userid to update
-        :type userid: str or int
-        :param username: new username
-        :type username: Optional(str or int)
-        :param email: email
-        :type email: Optional(str)
-        :param password: password
-        :type password: Optional(str)
-        :param firstname: firstname
-        :type firstname: Optional(str)
-        :param lastname: lastname
-        :type lastname: Optional(str)
-        :param active: active
-        :type active: Optional(bool)
-        :param admin: admin
-        :type admin: Optional(bool)
-        :param extern_name:
-        :type extern_name: Optional(str)
-        :param extern_type:
-        :type extern_type: Optional(str)
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -532,14 +426,6 @@
                       "user" : <user_object>
                      }
             error : null
-
-        ERROR OUTPUT::
-
-            id : <id_given_in_input>
-            result : null
-            error :  {
-                "failed to update user `<username>`"
-            }
         """
         user = get_user_or_error(userid)
 
@@ -577,9 +463,6 @@
         deletes given user if such user exists. This command can
         be executed only using api_key belonging to user with admin rights.
 
-        :param userid: user to delete
-        :type userid: str or int
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -588,14 +471,6 @@
                       "user" : null
                      }
             error : null
-
-        ERROR OUTPUT::
-
-            id : <id_given_in_input>
-            result : null
-            error :  {
-                "failed to delete user ID:<userid> <username>"
-            }
         """
         user = get_user_or_error(userid)
 
@@ -619,9 +494,6 @@
         belonging to user with admin rights or user who has at least
         read access to user group.
 
-        :param usergroupid: id of user_group to edit
-        :type usergroupid: str or int
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -670,15 +542,6 @@
         belonging to user with admin rights or an user who has create user group
         permission
 
-        :param group_name: name of new user group
-        :type group_name: str
-        :param description: group description
-        :type description: Optional(str)
-        :param owner: owner of group. If not passed apiuser is the owner
-        :type owner: Optional(str or int)
-        :param active: group is active
-        :type active: Optional(bool)
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -687,16 +550,6 @@
                       "user_group" : <user_group_object>
                      }
             error : null
-
-        ERROR OUTPUT::
-
-            id : <id_given_in_input>
-            result : null
-            error :  {
-                "user group `<group name>` already exist"
-                or
-                "failed to create group `<group name>`"
-            }
         """
         if UserGroupModel().get_by_name(group_name):
             raise JSONRPCError("user group `%s` already exist" % (group_name,))
@@ -725,17 +578,6 @@
         Updates given usergroup.  This command can be executed only using api_key
         belonging to user with admin rights or an admin of given user group
 
-        :param usergroupid: id of user group to update
-        :type usergroupid: str or int
-        :param group_name: name of new user group
-        :type group_name: str
-        :param description: group description
-        :type description: str
-        :param owner: owner of group.
-        :type owner: Optional(str or int)
-        :param active: group is active
-        :type active: Optional(bool)
-
         OUTPUT::
 
           id : <id_given_in_input>
@@ -744,14 +586,6 @@
             "user_group" : <user_group_object>
           }
           error : null
-
-        ERROR OUTPUT::
-
-          id : <id_given_in_input>
-          result : null
-          error :  {
-            "failed to update user group `<user group name>`"
-          }
         """
         user_group = get_user_group_or_error(usergroupid)
         if not HasPermissionAny('hg.admin')():
@@ -785,9 +619,6 @@
         This command can be executed only using api_key
         belonging to user with admin rights or an admin of given user group
 
-        :param usergroupid:
-        :type usergroupid: str or int
-
         OUTPUT::
 
           id : <id_given_in_input>
@@ -795,16 +626,6 @@
             "msg" : "deleted user group ID:<user_group_id> <user_group_name>"
           }
           error : null
-
-        ERROR OUTPUT::
-
-          id : <id_given_in_input>
-          result : null
-          error :  {
-            "failed to delete user group ID:<user_group_id> <user_group_name>"
-            or
-            "RepoGroup assigned to <repo_groups_list>"
-          }
         """
         user_group = get_user_group_or_error(usergroupid)
         if not HasPermissionAny('hg.admin')():
@@ -836,11 +657,6 @@
         `false`. This command can be executed only using api_key
         belonging to user with admin rights or an admin of a given user group
 
-        :param usergroupid:
-        :type usergroupid: str or int
-        :param userid:
-        :type userid: str or int
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -850,14 +666,6 @@
                          User is already in that group"
             }
             error : null
-
-        ERROR OUTPUT::
-
-            id : <id_given_in_input>
-            result : null
-            error :  {
-                "failed to add member to user group `<user_group_name>`"
-            }
         """
         user = get_user_or_error(userid)
         user_group = get_user_group_or_error(usergroupid)
@@ -893,9 +701,6 @@
         be `false`. This command can be executed only
         using api_key belonging to user with admin rights or an admin of given user group
 
-        :param usergroupid:
-        :param userid:
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -938,9 +743,6 @@
         executed only using api_key belonging to user with admin
         rights or regular user that have at least read access to repository.
 
-        :param repoid: repository name or repository id
-        :type repoid: str or int
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -1082,15 +884,6 @@
         `dirs`.  This command can be executed only using api_key belonging to
         user with admin rights or regular user that have at least read access to repository.
 
-        :param repoid: repository name or repository id
-        :type repoid: str or int
-        :param revision: revision for which listing should be done
-        :type revision: str
-        :param root_path: path from which start displaying
-        :type root_path: str
-        :param ret_type: return type 'all|files|dirs' nodes
-        :type ret_type: Optional(str)
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -1144,28 +937,6 @@
         belonging to user with admin rights or regular user that have create
         repository permission. Regular users cannot specify owner parameter
 
-        :param repo_name: repository name
-        :type repo_name: str
-        :param owner: user_id or username
-        :type owner: Optional(str)
-        :param repo_type: 'hg' or 'git'
-        :type repo_type: Optional(str)
-        :param description: repository description
-        :type description: Optional(str)
-        :param private:
-        :type private: bool
-        :param clone_uri:
-        :type clone_uri: str
-        :param landing_rev: <rev_type>:<rev>
-        :type landing_rev: str
-        :param enable_downloads:
-        :type enable_downloads: bool
-        :param enable_statistics:
-        :type enable_statistics: bool
-        :param copy_permissions: Copy permission from group that repository is
-            being created.
-        :type copy_permissions: bool
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -1174,14 +945,6 @@
                       "success" : true
                      }
             error : null
-
-        ERROR OUTPUT::
-
-            id : <id_given_in_input>
-            result : null
-            error :  {
-                'failed to create repository `<repo_name>`
-            }
         """
         group_name = None
         repo_name_parts = repo_name.split('/')
@@ -1257,18 +1020,6 @@
                     enable_downloads=None):
         """
         Updates repo
-
-        :param repoid: repository name or repository id
-        :type repoid: str or int
-        :param name:
-        :param owner:
-        :param group:
-        :param description:
-        :param private:
-        :param clone_uri:
-        :param landing_rev:
-        :param enable_statistics:
-        :param enable_downloads:
         """
         repo = get_repo_or_error(repoid)
         if not HasPermissionAny('hg.admin')():
@@ -1328,15 +1079,6 @@
         user with admin rights or regular user that have fork permission, and at least
         read access to forking repository. Regular users cannot specify owner parameter.
 
-        :param repoid: repository name or repository id
-        :type repoid: str or int
-        :param fork_name:
-        :param owner:
-        :param description:
-        :param copy_permissions:
-        :param private:
-        :param landing_rev:
-
         INPUT::
 
             id : <id_for_response>
@@ -1434,11 +1176,6 @@
         When `forks` param is set it's possible to detach or delete forks of deleting
         repository
 
-        :param repoid: repository name or repository id
-        :type repoid: str or int
-        :param forks: `detach` or `delete`, what do do with attached forks for repo
-        :type forks: Optional(str)
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -1487,12 +1224,6 @@
         if found. This command can be executed only using api_key belonging to user
         with admin rights.
 
-        :param repoid: repository name or repository id
-        :type repoid: str or int
-        :param userid:
-        :param perm: (repository.(none|read|write|admin))
-        :type perm: str
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -1531,10 +1262,6 @@
         Revoke permission for user on given repository. This command can be executed
         only using api_key belonging to user with admin rights.
 
-        :param repoid: repository name or repository id
-        :type repoid: str or int
-        :param userid:
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -1570,13 +1297,6 @@
         existing one if found. This command can be executed only using
         api_key belonging to user with admin rights.
 
-        :param repoid: repository name or repository id
-        :type repoid: str or int
-        :param usergroupid: id of usergroup
-        :type usergroupid: str or int
-        :param perm: (repository.(none|read|write|admin))
-        :type perm: str
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -1585,14 +1305,6 @@
                 "success" : true
             }
             error : null
-
-        ERROR OUTPUT::
-
-            id : <id_given_in_input>
-            result : null
-            error :  {
-                "failed to edit permission for user group: `<usergroup>` in repo `<repo>`'
-            }
         """
         repo = get_repo_or_error(repoid)
         perm = get_perm_or_error(perm)
@@ -1632,10 +1344,6 @@
         Revoke permission for user group on given repository. This command can be
         executed only using api_key belonging to user with admin rights.
 
-        :param repoid: repository name or repository id
-        :type repoid: str or int
-        :param usergroupid:
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -1679,9 +1387,6 @@
         """
         Returns given repo group together with permissions, and repositories
         inside the group
-
-        :param repogroupid: id/name of repository group
-        :type repogroupid: str or int
         """
         repo_group = get_repo_group_or_error(repogroupid)
 
@@ -1729,17 +1434,6 @@
         Creates a repository group. This command can be executed only using
         api_key belonging to user with admin rights.
 
-        :param group_name:
-        :type group_name:
-        :param description:
-        :type description:
-        :param owner:
-        :type owner:
-        :param parent:
-        :type parent:
-        :param copy_permissions:
-        :type copy_permissions:
-
         OUTPUT::
 
           id : <id_given_in_input>
@@ -1748,14 +1442,6 @@
               "repo_group" : <repogroup_object>
           }
           error : null
-
-        ERROR OUTPUT::
-
-          id : <id_given_in_input>
-          result : null
-          error :  {
-            failed to create repo group `<repogroupid>`
-          }
         """
         if db.RepoGroup.get_by_group_name(group_name):
             raise JSONRPCError("repo group `%s` already exist" % (group_name,))
@@ -1790,6 +1476,9 @@
                           description=None,
                           owner=None,
                           parent=None):
+        """
+        TODO
+        """
         repo_group = get_repo_group_or_error(repogroupid)
         parent_repo_group_id = None if parent is None else get_repo_group_or_error(parent).group_id
 
@@ -1814,9 +1503,6 @@
     @HasPermissionAnyDecorator('hg.admin')
     def delete_repo_group(self, repogroupid):
         """
-        :param repogroupid: name or id of repository group
-        :type repogroupid: str or int
-
         OUTPUT::
 
           id : <id_given_in_input>
@@ -1825,14 +1511,6 @@
             'repo_group' : null
           }
           error : null
-
-        ERROR OUTPUT::
-
-          id : <id_given_in_input>
-          result : null
-          error :  {
-            "failed to delete repo group ID:<repogroupid> <repogroupname>"
-          }
         """
         repo_group = get_repo_group_or_error(repogroupid)
 
@@ -1859,14 +1537,6 @@
         to user with admin rights, or user who has admin right to given repository
         group.
 
-        :param repogroupid: name or id of repository group
-        :type repogroupid: str or int
-        :param userid:
-        :param perm: (group.(none|read|write|admin))
-        :type perm: str
-        :param apply_to_children: 'none', 'repos', 'groups', 'all'
-        :type apply_to_children: str
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -1875,14 +1545,6 @@
                       "success" : true
                      }
             error : null
-
-        ERROR OUTPUT::
-
-          id : <id_given_in_input>
-          result : null
-          error :  {
-            "failed to edit permission for user: `<userid>` in repo group: `<repo_group_name>`"
-          }
         """
         repo_group = get_repo_group_or_error(repogroupid)
 
@@ -1920,13 +1582,6 @@
         be executed only using api_key belonging to user with admin rights, or
         user who has admin right to given repository group.
 
-        :param repogroupid: name or id of repository group
-        :type repogroupid: str or int
-        :param userid:
-        :type userid:
-        :param apply_to_children: 'none', 'repos', 'groups', 'all'
-        :type apply_to_children: str
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -1935,14 +1590,6 @@
                       "success" : true
                      }
             error : null
-
-        ERROR OUTPUT::
-
-          id : <id_given_in_input>
-          result : null
-          error :  {
-            "failed to edit permission for user: `<userid>` in repo group: `<repo_group_name>`"
-          }
         """
         repo_group = get_repo_group_or_error(repogroupid)
 
@@ -1981,15 +1628,6 @@
         api_key belonging to user with admin rights, or user who has admin
         right to given repository group.
 
-        :param repogroupid: name or id of repository group
-        :type repogroupid: str or int
-        :param usergroupid: id of usergroup
-        :type usergroupid: str or int
-        :param perm: (group.(none|read|write|admin))
-        :type perm: str
-        :param apply_to_children: 'none', 'repos', 'groups', 'all'
-        :type apply_to_children: str
-
         OUTPUT::
 
           id : <id_given_in_input>
@@ -1998,14 +1636,6 @@
             "success" : true
           }
           error : null
-
-        ERROR OUTPUT::
-
-          id : <id_given_in_input>
-          result : null
-          error :  {
-            "failed to edit permission for user group: `<usergroup>` in repo group: `<repo_group_name>`"
-          }
         """
         repo_group = get_repo_group_or_error(repogroupid)
         perm = get_perm_or_error(perm, prefix='group.')
@@ -2051,12 +1681,6 @@
         executed only using api_key belonging to user with admin rights, or
         user who has admin right to given repository group.
 
-        :param repogroupid: name or id of repository group
-        :type repogroupid: str or int
-        :param usergroupid:
-        :param apply_to_children: 'none', 'repos', 'groups', 'all'
-        :type apply_to_children: str
-
         OUTPUT::
 
             id : <id_given_in_input>
@@ -2065,14 +1689,6 @@
                       "success" : true
                      }
             error : null
-
-        ERROR OUTPUT::
-
-          id : <id_given_in_input>
-          result : null
-          error :  {
-            "failed to edit permission for user group: `<usergroup>` in repo group: `<repo_group_name>`"
-          }
         """
         repo_group = get_repo_group_or_error(repogroupid)
         user_group = get_user_group_or_error(usergroupid)
@@ -2108,9 +1724,6 @@
     def get_gist(self, gistid):
         """
         Get given gist by id
-
-        :param gistid: id of private or public gist
-        :type gistid: str
         """
         gist = get_gist_or_error(gistid)
         if not HasPermissionAny('hg.admin')():
@@ -2122,9 +1735,6 @@
         """
         Get all gists for given user. If userid is empty returned gists
         are for user who called the api
-
-        :param userid: user to get gists for
-        :type userid: Optional(str or int)
         """
         if not HasPermissionAny('hg.admin')():
             # make sure normal user does not pass someone else userid,
@@ -2153,19 +1763,6 @@
         """
         Creates new Gist
 
-        :param files: files to be added to gist
-            {'filename': {'content':'...', 'lexer': null},
-             'filename2': {'content':'...', 'lexer': null}}
-        :type files: dict
-        :param owner: gist owner, defaults to api method caller
-        :type owner: Optional(str or int)
-        :param gist_type: type of gist 'public' or 'private'
-        :type gist_type: Optional(str)
-        :param lifetime: time in minutes of gist lifetime
-        :type lifetime: Optional(int)
-        :param description: gist description
-        :type description: str
-
         OUTPUT::
 
           id : <id_given_in_input>
@@ -2174,14 +1771,6 @@
             "gist" : <gist_object>
           }
           error : null
-
-        ERROR OUTPUT::
-
-          id : <id_given_in_input>
-          result : null
-          error :  {
-            "failed to create gist"
-          }
         """
         try:
             if owner is None:
@@ -2209,9 +1798,6 @@
         """
         Deletes existing gist
 
-        :param gistid: id of gist to delete
-        :type gistid: str
-
         OUTPUT::
 
           id : <id_given_in_input>
@@ -2220,14 +1806,6 @@
             "gist" : null
           }
           error : null
-
-        ERROR OUTPUT::
-
-          id : <id_given_in_input>
-          result : null
-          error :  {
-            "failed to delete gist ID:<gist_id>"
-          }
         """
         gist = get_gist_or_error(gistid)
         if not HasPermissionAny('hg.admin')():
@@ -2249,6 +1827,9 @@
     # permission check inside
     def get_changesets(self, repoid, start=None, end=None, start_date=None,
                        end_date=None, branch_name=None, reverse=False, with_file_list=False, max_revisions=None):
+        """
+        TODO
+        """
         repo = get_repo_or_error(repoid)
         if not HasRepoPermissionLevel('read')(repo.repo_name):
             raise JSONRPCError('Access denied to repo %s' % repo.repo_name)
@@ -2266,7 +1847,10 @@
             raise JSONRPCError('Repository is empty')
 
     # permission check inside
-    def get_changeset(self, repoid, raw_id, with_reviews=False):
+    def get_changeset(self, repoid, raw_id, with_reviews=False, with_comments=False, with_inline_comments=False):
+        """
+        TODO
+        """
         repo = get_repo_or_error(repoid)
         if not HasRepoPermissionLevel('read')(repo.repo_name):
             raise JSONRPCError('Access denied to repo %s' % repo.repo_name)
@@ -2278,9 +1862,19 @@
 
         if with_reviews:
             reviews = ChangesetStatusModel().get_statuses(
-                                repo.repo_name, raw_id)
+                                repo.repo_name, changeset.raw_id)
             info["reviews"] = reviews
 
+        if with_comments:
+            comments = ChangesetCommentsModel().get_comments(
+                                repo.repo_id, changeset.raw_id)
+            info["comments"] = comments
+
+        if with_inline_comments:
+            inline_comments = ChangesetCommentsModel().get_inline_comments(
+                                repo.repo_id, changeset.raw_id)
+            info["inline_comments"] = inline_comments
+
         return info
 
     # permission check inside
--- a/kallithea/controllers/pullrequests.py	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/controllers/pullrequests.py	Sun May 14 21:19:38 2023 +0200
@@ -35,6 +35,7 @@
 from tg.i18n import ugettext as _
 from webob.exc import HTTPBadRequest, HTTPForbidden, HTTPFound, HTTPNotFound
 
+import kallithea
 import kallithea.lib.helpers as h
 from kallithea.controllers import base
 from kallithea.controllers.changeset import create_cs_pr_comment, delete_cs_pr_comment
@@ -494,6 +495,8 @@
         except IndexError: # probably because c.cs_ranges is empty, probably because revisions are missing
             pass
 
+        rev_limit = safe_int(kallithea.CONFIG.get('next_iteration_rev_limit'), 0)
+
         avail_revs = set()
         avail_show = []
         c.cs_branch_name = c.cs_ref_name
@@ -563,6 +566,14 @@
         except ChangesetDoesNotExistError:
             c.update_msg = _('Error: some changesets not found when displaying pull request from %s.') % c.cs_rev
 
+        if rev_limit:
+            if len(avail_revs) - 1 > rev_limit:
+                c.update_msg = _('%d additional changesets are not shown.') % (len(avail_revs) - 1)
+                avail_show = []
+            elif len(avail_show) - 1 > rev_limit:
+                c.update_msg = _('%d changesets available for merging are not shown.') % (len(avail_show) - len(avail_revs))
+                avail_show = sorted(avail_revs, reverse=True)
+
         c.avail_revs = avail_revs
         c.avail_cs = [org_scm_instance.get_changeset(r) for r in avail_show]
         c.avail_jsdata = graph_data(org_scm_instance, avail_show)
--- a/kallithea/i18n/be/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/be/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.3\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2017-08-20 10:44+0000\n"
 "Last-Translator: Viktar Vauchkevich <victorenator@gmail.com>\n"
 "Language-Team: Belarusian <https://hosted.weblate.org/projects/kallithea/"
@@ -28,7 +28,7 @@
 msgstr "Рэпазітар не знойдзены на файлавай сістэме"
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr "Яшчэ не было змен"
 
@@ -254,12 +254,12 @@
 msgstr "Набор змен"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr "Галіны"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr "Тэгі"
 
@@ -344,129 +344,139 @@
 msgid "Successfully updated password"
 msgstr "Пароль абноўлены"
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr "Няслушны рэцэнзент \"%s\""
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr "%s (зачынена)"
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr "Змены"
 
-#: kallithea/controllers/pullrequests.py:173
+#: kallithea/controllers/pullrequests.py:174
 msgid "Special"
 msgstr "Адмысловы"
 
-#: kallithea/controllers/pullrequests.py:174
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr "Галіны ўдзельніка"
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr "Закладкі"
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr "Памылка пры стварэнні pull-запыту: %s"
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr "Адбылася памылка пры стварэнні pull-запыту"
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr "Pull-запыт створаны паспяхова"
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 #, fuzzy
 #| msgid "Pull request update created"
 msgid "New pull request iteration created"
 msgstr "Абнаўленне для pull-запыту створана"
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr "Няма апісання"
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr "Pull-запыт абноўлены"
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr "Pull-запыт паспяхова выдалены"
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, fuzzy, python-format
 #| msgid "Changeset for %s %s not found in %s"
 msgid "Revision %s not found in %s"
 msgstr "Набор змен для %s %s не знойдзены ў %s"
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, fuzzy, python-format
 #| msgid "No changesets found for updating this pull request."
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr "Няма змен для абнаўлення гэтага pull-запыту."
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr "Гэты pull-запыт ужо прыняты на галіну %s."
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr "Гэты pull-запыт быў зачынены і не можа быць абноўлены."
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, fuzzy, python-format
 #| msgid "The following changes are available on %s:"
 msgid "The following additional changes are available on %s:"
 msgstr "Гэтыя змены даступныя на %s:"
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 #, fuzzy
 #| msgid "No changesets found for updating this pull request."
 msgid "No additional changesets found for iterating on this pull request."
 msgstr "Няма змен для абнаўлення гэтага pull-запыту."
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr "Увага: Галіна %s мае яшчэ адну верхавіну: %s."
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 #, fuzzy
 #| msgid "Git pull requests don't support updates yet."
 msgid "Git pull requests don't support iterating yet."
 msgstr "Абнаўленне pull-запытаў git яшчэ не падтрымліваецца."
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, fuzzy, python-format
 #| msgid "No changesets found for updating this pull request."
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
 msgstr "Няма змен для абнаўлення гэтага pull-запыту."
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 
@@ -732,57 +742,51 @@
 msgid "Error occurred during update of permissions"
 msgstr "Адбылася памылка падчас абнаўлення прывілеяў"
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr "Адбылася памылка пры стварэнні групы рэпазітароў %s"
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr "Створаная новая група рэпазітароў %s"
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr "Група рэпазітароў %s абноўленая"
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr "Адбылася памылка пры абнаўленні групы рэпазітароў %s"
 
-#: kallithea/controllers/admin/repo_groups.py:252
+#: kallithea/controllers/admin/repo_groups.py:245
 #, python-format
 msgid "This group contains %s repositories and cannot be deleted"
 msgstr "Група ўтрымлівае %s рэпазітароў і не можа быць выдаленая"
 
-#: kallithea/controllers/admin/repo_groups.py:259
+#: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr "Група ўтрымлівае ў сабе %s падгруп і не можа быць выдаленая"
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr "Група рэпазітароў %s выдаленая"
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr "Памылка пры выдаленні групы рэпазітароў %s"
 
-#: kallithea/controllers/admin/repo_groups.py:354
-#: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr "Адміністратар не можа адклікаць свае прывелеі"
-
-#: kallithea/controllers/admin/repo_groups.py:369
+#: kallithea/controllers/admin/repo_groups.py:357
 msgid "Repository group permissions updated"
 msgstr "Прывілеі групы рэпазітароў абноўленыя"
 
-#: kallithea/controllers/admin/repo_groups.py:401
+#: kallithea/controllers/admin/repo_groups.py:384
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -1002,6 +1006,10 @@
 msgid "User group permissions updated"
 msgstr "Прывілеі групы карыстальнікаў абноўленыя"
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr "Адміністратар не можа адклікаць свае прывелеі"
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1051,12 +1059,12 @@
 msgid "Removed IP address from user whitelist"
 msgstr "Выдалены IP %s з белага спісу карыстальніка"
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr ""
 "Вы павінны быць зарэгістраваным карыстальнікам, каб выканаць гэта дзеянне"
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr "Старонка даступная толькі аўтарызаваным карыстальнікам"
 
@@ -1470,21 +1478,21 @@
 msgid "User registration with automatic account activation"
 msgstr "Рэгістрацыя карыстальніка з аўтаматычнай актывацыяй"
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr "Не прагледжана"
 
-#: kallithea/model/db.py:1944
+#: kallithea/model/db.py:1945
 msgid "Under review"
 msgstr "На разглядзе"
 
-#: kallithea/model/db.py:1945
+#: kallithea/model/db.py:1946
 #, fuzzy
 #| msgid "Approved"
 msgid "Not approved"
 msgstr "Ухвалена"
 
-#: kallithea/model/db.py:1946
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr "Ухвалена"
 
--- a/kallithea/i18n/bg/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/bg/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.4.99\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -27,7 +27,7 @@
 msgstr ""
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr ""
 
@@ -242,12 +242,12 @@
 msgstr ""
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr ""
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr ""
 
@@ -330,119 +330,129 @@
 msgid "Successfully updated password"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:173
-msgid "Special"
-msgstr ""
-
 #: kallithea/controllers/pullrequests.py:174
+msgid "Special"
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 msgid "New pull request iteration created"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 msgid "No additional changesets found for iterating on this pull request."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, python-format
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 
@@ -703,57 +713,51 @@
 msgid "Error occurred during update of permissions"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr ""
 
+#: kallithea/controllers/admin/repo_groups.py:245
+#, python-format
+msgid "This group contains %s repositories and cannot be deleted"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
-msgid "This group contains %s repositories and cannot be deleted"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:259
-#, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:354
+#: kallithea/controllers/admin/repo_groups.py:357
+msgid "Repository group permissions updated"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:369
-msgid "Repository group permissions updated"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:401
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -970,6 +974,10 @@
 msgid "User group permissions updated"
 msgstr ""
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr ""
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1019,11 +1027,11 @@
 msgid "Removed IP address from user whitelist"
 msgstr ""
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr ""
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr ""
 
@@ -1423,19 +1431,19 @@
 msgid "User registration with automatic account activation"
 msgstr ""
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr ""
 
-#: kallithea/model/db.py:1944
-msgid "Under review"
-msgstr ""
-
 #: kallithea/model/db.py:1945
-msgid "Not approved"
+msgid "Under review"
 msgstr ""
 
 #: kallithea/model/db.py:1946
+msgid "Not approved"
+msgstr ""
+
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr ""
 
--- a/kallithea/i18n/cs/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/cs/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.3\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2015-11-12 08:51+0000\n"
 "Last-Translator: Michal Čihař <michal@cihar.com>\n"
 "Language-Team: Czech <https://hosted.weblate.org/projects/kallithea/"
@@ -27,7 +27,7 @@
 msgstr ""
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr ""
 
@@ -247,12 +247,12 @@
 msgstr "Změny"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr "Větve"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr "Tagy"
 
@@ -335,119 +335,129 @@
 msgid "Successfully updated password"
 msgstr "Úspěšně aktualizované heslo"
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr "%s (zavřené)"
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:173
-msgid "Special"
-msgstr ""
-
 #: kallithea/controllers/pullrequests.py:174
+msgid "Special"
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr "Záložky"
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 msgid "New pull request iteration created"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 msgid "No additional changesets found for iterating on this pull request."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, python-format
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 
@@ -709,57 +719,51 @@
 msgid "Error occurred during update of permissions"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr ""
 
+#: kallithea/controllers/admin/repo_groups.py:245
+#, python-format
+msgid "This group contains %s repositories and cannot be deleted"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
-msgid "This group contains %s repositories and cannot be deleted"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:259
-#, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:354
+#: kallithea/controllers/admin/repo_groups.py:357
+msgid "Repository group permissions updated"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:369
-msgid "Repository group permissions updated"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:401
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -978,6 +982,10 @@
 msgid "User group permissions updated"
 msgstr ""
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr ""
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1027,11 +1035,11 @@
 msgid "Removed IP address from user whitelist"
 msgstr ""
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr ""
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr ""
 
@@ -1442,19 +1450,19 @@
 msgid "User registration with automatic account activation"
 msgstr ""
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr ""
 
-#: kallithea/model/db.py:1944
-msgid "Under review"
-msgstr ""
-
 #: kallithea/model/db.py:1945
-msgid "Not approved"
+msgid "Under review"
 msgstr ""
 
 #: kallithea/model/db.py:1946
+msgid "Not approved"
+msgstr ""
+
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr ""
 
--- a/kallithea/i18n/da/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/da/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.3.99\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2019-03-14 01:03+0000\n"
 "Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
 "Language-Team: Danish <https://hosted.weblate.org/projects/kallithea/"
@@ -26,7 +26,7 @@
 msgstr "Repository ikke fundet i filsystemet"
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr "Der er ingen changesets endnu"
 
@@ -251,13 +251,13 @@
 msgstr "Changesets"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 #, fuzzy
 msgid "Branches"
 msgstr "Branches"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr "Tags"
 
@@ -342,117 +342,117 @@
 msgid "Successfully updated password"
 msgstr "Successfuld ændring af adgangskode"
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr "Ugyldig reviewer \"%s\" angivet"
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr "%s (lukket)"
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 #, fuzzy
 msgid "Changeset"
 msgstr "Changeset"
 
-#: kallithea/controllers/pullrequests.py:173
+#: kallithea/controllers/pullrequests.py:174
 msgid "Special"
 msgstr "Speciel"
 
-#: kallithea/controllers/pullrequests.py:174
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr "Bogmærker"
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr "Fejl ved oprettelse af pull-forespørgsel: %s"
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr "Der opstod en fejl under oprettelse af pull-forespørgsel"
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr "Åbnede ny pull-forespørgsel med success"
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 msgid "New pull request iteration created"
 msgstr "Ny pull-forespørgsel iteration oprettet"
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr "I mellemtiden er de følgende reviewers tilføjet: %s"
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr "I mellemtiden er de følgende reviewers fjernet: %s"
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr "Ingen beskrivelse"
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr "Pull-forespørgsel opdateret"
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr "Slettede pull-forespørgsel med success"
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr "Revision %s er ikke fundet i %s"
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr ""
 "Fejl: Changesets ikke fundet, ved visning af pull-forespørgsel fra %s."
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr "Denne pull-forespørgsel er allerede merged til %s."
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr "Denne pull-forespørgsel er lukket og kan ikke opdateres."
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr "Følgende yderligere ændringer er tilgængelige på %s:"
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 msgid "No additional changesets found for iterating on this pull request."
 msgstr ""
 "Ingen yderligere changesets fundet ved iteration på denne pull-"
 "forespørgsel."
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr "Bemærk: Branch %s har et andet head: %s."
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr "Git pull-forespørgsler supportere ej iteration endnu."
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, python-format
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
@@ -460,7 +460,17 @@
 "Fejl: Nogle changesets kunne ikke findes ved visning af pull-forespørgsel "
 "fra %s."
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 "Diff'en kunne ikke vises - pull-forespørgslens revisions kunne ikke "
@@ -728,57 +738,51 @@
 msgid "Error occurred during update of permissions"
 msgstr "Der opstod en fejl under opdatering af tilladelser"
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr "Der opstod en fejl under oprettelse af repository-gruppen %s"
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr "Oprettet repository-gruppen %s"
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr "Opdateret repository-gruppen %s"
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr "Der opstod en fejl under opdatering af repository-gruppen %s"
 
-#: kallithea/controllers/admin/repo_groups.py:252
+#: kallithea/controllers/admin/repo_groups.py:245
 #, python-format
 msgid "This group contains %s repositories and cannot be deleted"
 msgstr "Denne gruppe indeholder %s repositories og kan ikke slettes"
 
-#: kallithea/controllers/admin/repo_groups.py:259
+#: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr "Denne gruppe indeholder %s undergrupper og kan ikke slettes"
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr "Fjernet repository-gruppen %s"
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr "Der opstod en fejl under sletning af repository-gruppen %s"
 
-#: kallithea/controllers/admin/repo_groups.py:354
-#: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr "Kan ikke tilbagekalde tilladelse for én selv som admin"
-
-#: kallithea/controllers/admin/repo_groups.py:369
+#: kallithea/controllers/admin/repo_groups.py:357
 msgid "Repository group permissions updated"
 msgstr "Repository-gruppe tilladelser opdateret"
 
-#: kallithea/controllers/admin/repo_groups.py:401
+#: kallithea/controllers/admin/repo_groups.py:384
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -1000,6 +1004,10 @@
 msgid "User group permissions updated"
 msgstr "Brugergrupper-tilladelser opdateret"
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr "Kan ikke tilbagekalde tilladelse for én selv som admin"
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1049,11 +1057,11 @@
 msgid "Removed IP address from user whitelist"
 msgstr "Fjernet IP-adresse fra bruger-whitelist"
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr "Du skal være registreret bruger for at kunne udføre denne handling"
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr "Du skal være logget ind for at se denne side"
 
@@ -1459,19 +1467,19 @@
 msgid "User registration with automatic account activation"
 msgstr "Brugerregistrering med automatisk kontoaktivering"
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr "Ikke gennemgået"
 
-#: kallithea/model/db.py:1944
+#: kallithea/model/db.py:1945
 msgid "Under review"
 msgstr "Under gennemgang"
 
-#: kallithea/model/db.py:1945
+#: kallithea/model/db.py:1946
 msgid "Not approved"
 msgstr "Ikke godkendt"
 
-#: kallithea/model/db.py:1946
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr "Godkendt"
 
--- a/kallithea/i18n/de/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/de/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.3\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2020-12-21 05:29+0000\n"
 "Last-Translator: J. Lavoie <j.lavoie@net-c.ca>\n"
 "Language-Team: German <https://hosted.weblate.org/projects/kallithea/"
@@ -27,7 +27,7 @@
 msgstr "Das Repository konnte nicht im Filesystem gefunden werden"
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr "Es gibt noch keine Änderungssätze"
 
@@ -264,12 +264,12 @@
 msgstr "Änderungssätze"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr "Entwicklungszweige"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr "Tags"
 
@@ -354,130 +354,140 @@
 msgid "Successfully updated password"
 msgstr "Erfolgreich Kennwort geändert"
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr "Ungültigen Begutachter \"%s\" angegeben"
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr "%s (geschlossen)"
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr "Änderungssatz"
 
-#: kallithea/controllers/pullrequests.py:173
+#: kallithea/controllers/pullrequests.py:174
 msgid "Special"
 msgstr "Spezial"
 
-#: kallithea/controllers/pullrequests.py:174
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr "Branches anderer"
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr "Lesezeichen"
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr "Fehler beim Erstellen des Pull-Requests: %s"
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr "Während des Erstellens des Pull Requests trat ein Fehler auf"
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr "Es wurde erfolgreich ein neuer Pullrequest eröffnet"
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 #, fuzzy
 #| msgid "Pull request update created"
 msgid "New pull request iteration created"
 msgstr "Pull Request Update erstellt"
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr "Es wurden inzwischen folgende Begutachter hinzugefügt: %s"
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr "Es wurden inzwischen folgende Begutachter entfernt: %s"
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr "Keine Beschreibung"
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr "Pull Request aktualisiert"
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr "Erfolgreich Pull-Request gelöscht"
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr "Die Revision %s konnte in %s nicht gefunden werden"
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, fuzzy, python-format
 #| msgid "No changesets found for updating this pull request."
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr "Keine Changesets gefunden, um den Pull Request zu aktualisieren."
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr "Dieser Pull Request wurde bereits in %s integriert."
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr ""
 "Dieser Pull Request wurde geschlossen und kann daher nicht aktualisiert "
 "werden."
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, fuzzy, python-format
 #| msgid "The following changes are available on %s:"
 msgid "The following additional changes are available on %s:"
 msgstr "Die folgenden Änderungen sind verfügbar unter %s:"
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 #, fuzzy
 #| msgid "No changesets found for updating this pull request."
 msgid "No additional changesets found for iterating on this pull request."
 msgstr "Keine Changesets gefunden, um den Pull Request zu aktualisieren."
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr "Hinweis: Branch %s hat einen anderen Head: %s."
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 #, fuzzy
 #| msgid "Git pull requests don't support updates yet."
 msgid "Git pull requests don't support iterating yet."
 msgstr "Git Pull Request unterstützen bisher keine Updates."
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, fuzzy, python-format
 #| msgid "No changesets found for updating this pull request."
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
 msgstr "Keine Changesets gefunden, um den Pull Request zu aktualisieren."
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 "Der diff kann nicht angezeigt werden. Die Pull Request Revisionen konnten "
@@ -746,57 +756,51 @@
 msgid "Error occurred during update of permissions"
 msgstr "Fehler bei der Änderung der globalen Berechtigungen"
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr "Fehler bei der Erstellung der Repositoriumsgruppe %s"
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr "Repositoriumsgruppe %s erstellt"
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr "Repositoriumsgruppe %s aktualisiert"
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr "Fehler bei der Aktualisierung der Repositoriumsgruppe %s"
 
-#: kallithea/controllers/admin/repo_groups.py:252
+#: kallithea/controllers/admin/repo_groups.py:245
 #, python-format
 msgid "This group contains %s repositories and cannot be deleted"
 msgstr "Die Gruppe enthält %s Repositorys und kann nicht gelöscht werden"
 
-#: kallithea/controllers/admin/repo_groups.py:259
+#: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr "Diese Gruppe enthält %s Untergruppen und kann nicht gelöscht werden"
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr "Repositoriumsgruppe %s entfernt"
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr "Fehler beim Löschen der Repositoriumsgruppe %s"
 
-#: kallithea/controllers/admin/repo_groups.py:354
-#: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr "Als Administrator kann man sich keine Berechtigungen entziehen"
-
-#: kallithea/controllers/admin/repo_groups.py:369
+#: kallithea/controllers/admin/repo_groups.py:357
 msgid "Repository group permissions updated"
 msgstr "Berechtigungen der Repositoriumsgruppe aktualisiert"
 
-#: kallithea/controllers/admin/repo_groups.py:401
+#: kallithea/controllers/admin/repo_groups.py:384
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -1033,6 +1037,10 @@
 msgid "User group permissions updated"
 msgstr "Berechtigungen der Benutzergruppe wurden aktualisiert"
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr "Als Administrator kann man sich keine Berechtigungen entziehen"
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1083,12 +1091,12 @@
 msgid "Removed IP address from user whitelist"
 msgstr "IP-Adresse wurde von der Nutzerwhitelist entfernt"
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr ""
 "Sie müssen ein Registrierter Nutzer sein um diese Aktion durchzuführen"
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr "Sie müssen sich anmelden um diese Seite aufzurufen"
 
@@ -1496,21 +1504,21 @@
 msgid "User registration with automatic account activation"
 msgstr "Benutzerregistrierung mit automatischer Kontoaktivierung"
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr "Nicht Begutachtet"
 
-#: kallithea/model/db.py:1944
+#: kallithea/model/db.py:1945
 msgid "Under review"
 msgstr "In Begutachtung"
 
-#: kallithea/model/db.py:1945
+#: kallithea/model/db.py:1946
 #, fuzzy
 #| msgid "Approved"
 msgid "Not approved"
 msgstr "Akzeptiert"
 
-#: kallithea/model/db.py:1946
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr "Akzeptiert"
 
--- a/kallithea/i18n/el/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/el/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.3\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2022-07-21 21:22+0000\n"
 "Last-Translator: Asterios Dimitriou <steve@pci.gr>\n"
 "Language-Team: Greek <https://hosted.weblate.org/projects/kallithea/"
@@ -28,7 +28,7 @@
 msgstr "Το αποθετήριο δε βρέθηκε στο σύστημα αρχείων"
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr "Δεν υπάρχουν σετ αλλαγών ακόμα"
 
@@ -255,12 +255,12 @@
 msgstr "Σετ αλλαγών"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr "Κλάδοι"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr "Ετικέτες"
 
@@ -343,117 +343,117 @@
 msgid "Successfully updated password"
 msgstr "Το συνθηματικό ενημερώθηκε επιτυχώς"
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr "Καθορίστηκε άκυρος σχολιαστής \"%s\""
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr "%s (κλειστό)"
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr "Σετ αλλαγών"
 
-#: kallithea/controllers/pullrequests.py:173
+#: kallithea/controllers/pullrequests.py:174
 msgid "Special"
 msgstr "Ειδικός"
 
-#: kallithea/controllers/pullrequests.py:174
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr "Ομότιμοι κλάδοι"
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr "Σελιδοδείκτες"
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr "Σφάλμα στη δημιουργία αιτήματος έλξης - pull request: %s"
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr "Παρουσιάστηκε σφάλμα κατά τη δημιουργία αίτησης έλξης"
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr "Ένα νέο αίτημα έλξης (pull request) δημιουργήθηκε επιτυχώς"
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 msgid "New pull request iteration created"
 msgstr "Δημιουργήθηκε νέο αίτημα έλξης"
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr "Εντωμεταξύ, οι ακόλουθοι κριτικοί προστέθηκαν: %s"
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr "Εντωμεταξύ, οι ακόλουθοι κριτικοί αφαιρέθηκαν: %s"
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr "Χωρίς περιγραφή"
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr "Ενημερώθηκε η αίτηση έλξης"
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr "Επιτυχής διαγραφή αιτήματος έλξης"
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr "Η αναθεώρηση %s δεν βρέθηκε στο %s"
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr ""
 "Σφάλμα: τα σετ αλλαγών δεν βρέθηκαν όταν εμφανίζεται το αίτημα έλξης από "
 "το %s."
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr "Το αίτημα έλξης έχει ήδη συγχωνευτεί με το %s."
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr "Αυτό το αίτημα έλξης έχει κλείσει και δεν μπορεί να ενημερωθεί."
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr "Οι επιπλέον ακόλουθες αλλαγές είναι διαθέσιμες στο %s:"
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 msgid "No additional changesets found for iterating on this pull request."
 msgstr ""
 "Δεν βρέθηκαν επιπλέον σετ αλλαγών στην προσέγγιση αυτού του αιτήματος "
 "έλξης."
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr "Σημείωση: Ο κλάδος %s έχει άλλη κεφαλή (head): %s."
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr "Αιτήματα έλξης του git δεν υποστηρίζουν ακόμα ενημερώσεις."
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, python-format
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
@@ -461,7 +461,17 @@
 "Σφάλμα: κάποια σετ αλλαγών δεν βρέθηκαν όταν εμφανιζόταν αυτό το αίτημα "
 "έλξης από το %s."
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 "Οι διαφορές δεν μπορούν να εμφανιστούν - οι αναθεωρήσεις δεν βρέθηκαν."
@@ -726,57 +736,51 @@
 msgid "Error occurred during update of permissions"
 msgstr "Παρουσιάστηκε σφάλμα κατά την ενημέρωση δικαιωμάτων"
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr "Συνέβηκε κάποιο λάθος κατά την δημιουργία της ομάδας αποθετηρίου %s"
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr "Δημιουργήθηκε η ομάδα αποθετηρίου %s"
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr "Ενημερώθηκε η ομάδα αποθετηρίου %s"
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr "Παρουσιάστηκε σφάλμα κατά την ενημέρωση της ομάδας αποθετηρίων %s"
 
-#: kallithea/controllers/admin/repo_groups.py:252
+#: kallithea/controllers/admin/repo_groups.py:245
 #, python-format
 msgid "This group contains %s repositories and cannot be deleted"
 msgstr "Αυτή η ομάδα περιέχει %s αποθετήρια και δε μπορεί να διαγραφεί"
 
-#: kallithea/controllers/admin/repo_groups.py:259
+#: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr "Αυτή η ομάδα περιέχει %s υποομάδες και δε μπορεί να διαγραφεί"
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr "Αφαιρέθηκε η ομάδα αποθετηρίου %s"
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr "Παρουσιάστηκε σφάλμα κατά τη διαγραφή της ομάδας αποθετηρίων %s"
 
-#: kallithea/controllers/admin/repo_groups.py:354
-#: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr "Δεν μπορείτε να ανακαλέσετε την άδεια σας ως διαχειριστής"
-
-#: kallithea/controllers/admin/repo_groups.py:369
+#: kallithea/controllers/admin/repo_groups.py:357
 msgid "Repository group permissions updated"
 msgstr "Τα δικαιώματα της ομάδας αποθετηρίου ενημερώθηκαν"
 
-#: kallithea/controllers/admin/repo_groups.py:401
+#: kallithea/controllers/admin/repo_groups.py:384
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -999,6 +1003,10 @@
 msgid "User group permissions updated"
 msgstr "Τα δικαιώματα της ομάδας χρηστών ενημερώθηκαν"
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr "Δεν μπορείτε να ανακαλέσετε την άδεια σας ως διαχειριστής"
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1048,12 +1056,12 @@
 msgid "Removed IP address from user whitelist"
 msgstr "Η IP διεύθυνση αφαιρέθηκε από τη λίστα επιτρεπόμενων του χρήστη"
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr ""
 "Πρέπει να είστε εγγεγραμμένος χρήστης για να εκτελέσετε αυτή την ενέργεια"
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr "Πρέπει να είστε συνδεμένος για να δείτε αυτήν τη σελίδα"
 
@@ -1480,19 +1488,19 @@
 msgid "User registration with automatic account activation"
 msgstr "Εγγραφή χρήστη με αυτόματη ενεργοποίηση λογαριασμού"
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr "Δεν έχει ελεγχθεί"
 
-#: kallithea/model/db.py:1944
+#: kallithea/model/db.py:1945
 msgid "Under review"
 msgstr "Υπό εξέταση"
 
-#: kallithea/model/db.py:1945
+#: kallithea/model/db.py:1946
 msgid "Not approved"
 msgstr "Δεν έχει εγκριθεί"
 
-#: kallithea/model/db.py:1946
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr "Εγκρίθηκε"
 
--- a/kallithea/i18n/es/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/es/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.3\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2022-08-11 22:21+0000\n"
 "Last-Translator: Jaime Marquínez Ferrándiz <weblate@jregistros.fastmail."
 "net>\n"
@@ -27,7 +27,7 @@
 msgstr ""
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr "Aún no hay cambios"
 
@@ -251,12 +251,12 @@
 msgstr "Cambios"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr "Ramas"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr "Etiquetas"
 
@@ -340,129 +340,139 @@
 msgid "Successfully updated password"
 msgstr "Contraseña actualizada correctamente"
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr "El validador \"%s\" no es correcto"
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr "%s (cerrado)"
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr "Cambio"
 
-#: kallithea/controllers/pullrequests.py:173
+#: kallithea/controllers/pullrequests.py:174
 msgid "Special"
 msgstr "Especial"
 
-#: kallithea/controllers/pullrequests.py:174
+#: kallithea/controllers/pullrequests.py:175
 #, fuzzy
 msgid "Peer branches"
 msgstr "Ramas de los pares"
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr "Marcadores"
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr "Error al crear la petición de pull: %s"
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr "Ocurrió un error al crear la petición de pull"
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr "La petición de pull se ha creado correctamente"
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 #, fuzzy
 #| msgid "Pull request update created"
 msgid "New pull request iteration created"
 msgstr "Nueva iteración de la petición pull creada"
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr "No hay descripción"
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr "Petición pull actualizada"
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr "Petición pull eliminada correctamente"
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr "No se ha encontrado la revisión %s en %s"
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, fuzzy, python-format
 #| msgid "No changesets found for updating this pull request."
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr "No se encontraron cambios para actualizar la petición pull."
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr "La petición pull ya ha sido incluida a %s."
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr "La petición pull esta cerrada y no se puede actualizar."
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, fuzzy, python-format
 #| msgid "The following changes are available on %s:"
 msgid "The following additional changes are available on %s:"
 msgstr "Los siguientes cambios están disponibles en %s:"
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 #, fuzzy
 #| msgid "No changesets found for updating this pull request."
 msgid "No additional changesets found for iterating on this pull request."
 msgstr "No se encontraron cambios para actualizar la petición pull."
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, fuzzy, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr "Nota: la rama %s tiene otro head: %s."
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 #, fuzzy
 #| msgid "Git pull requests don't support updates yet."
 msgid "Git pull requests don't support iterating yet."
 msgstr "La peticiones pull de Git aún no soportan actualizaciones."
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, fuzzy, python-format
 #| msgid "No changesets found for updating this pull request."
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
 msgstr "No se encontraron cambios para actualizar la petición pull."
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 
@@ -725,57 +735,51 @@
 msgid "Error occurred during update of permissions"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr ""
 
+#: kallithea/controllers/admin/repo_groups.py:245
+#, python-format
+msgid "This group contains %s repositories and cannot be deleted"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
-msgid "This group contains %s repositories and cannot be deleted"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:259
-#, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:354
+#: kallithea/controllers/admin/repo_groups.py:357
+msgid "Repository group permissions updated"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:369
-msgid "Repository group permissions updated"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:401
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -995,6 +999,10 @@
 msgid "User group permissions updated"
 msgstr ""
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr ""
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1044,11 +1052,11 @@
 msgid "Removed IP address from user whitelist"
 msgstr ""
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr ""
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr ""
 
@@ -1452,19 +1460,19 @@
 msgid "User registration with automatic account activation"
 msgstr ""
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr ""
 
-#: kallithea/model/db.py:1944
-msgid "Under review"
-msgstr ""
-
 #: kallithea/model/db.py:1945
-msgid "Not approved"
+msgid "Under review"
 msgstr ""
 
 #: kallithea/model/db.py:1946
+msgid "Not approved"
+msgstr ""
+
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr ""
 
--- a/kallithea/i18n/fr/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/fr/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.3\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2021-05-15 17:32+0000\n"
 "Last-Translator: Étienne Gilli <etienne@gilli.io>\n"
 "Language-Team: French <https://hosted.weblate.org/projects/kallithea/"
@@ -28,7 +28,7 @@
 msgstr "Dépôt non trouvé sur le système de fichiers"
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr "Il n’y a aucun changement pour le moment"
 
@@ -253,12 +253,12 @@
 msgstr "Changesets"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr "Branches"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr "Tags"
 
@@ -342,117 +342,117 @@
 msgid "Successfully updated password"
 msgstr "Mot de passe mis à jour avec succès"
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr "Reviewer spécifié \"%s\" non valide"
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr "%s (fermé)"
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr "Changements"
 
-#: kallithea/controllers/pullrequests.py:173
+#: kallithea/controllers/pullrequests.py:174
 msgid "Special"
 msgstr "Spécial"
 
-#: kallithea/controllers/pullrequests.py:174
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr "Branches appairées"
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr "Signets"
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr "Erreur de création de la demande de pull : %s"
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr "Une erreur est survenue durant la création de la pull request"
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr "La requête de pull a été ouverte avec succès"
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 msgid "New pull request iteration created"
 msgstr "Nouvelle itération de requête de pull créée"
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr "Entretemps, les relecteurs suivants on été ajoutés : %s"
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr "Entretemps, les relecteurs suivants ont été supprimés : %s"
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr "Aucune description"
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr "Pull request mise à jour"
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr "La requête de pull a été supprimée avec succès"
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr "Révision %s non trouvée dans %s"
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr ""
 "Erreur : Pas de changeset trouvé lors de l'affichage la requête de pull "
 "de %s."
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr "Cette pull request a déjà été fusionnée à %s."
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr "Cette pull request a été fermée et ne peut pas être mise à jour."
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr ""
 "Les modifications additionnelles suivantes sont disponibles sur %s :"
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 msgid "No additional changesets found for iterating on this pull request."
 msgstr "Pas de changeset additionnel trouvé pour cette requête de pull."
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr "Note : La branche %s a une autre tête : %s."
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr ""
 "Les itérations des requêtes de pull Git ne sont pas encore supportées."
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, python-format
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
@@ -460,7 +460,17 @@
 "Erreur : certains changesets n'ont pas été trouvés lors de l'affichage la "
 "requête de pull depuis %s."
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 "Le diff ne peut pas être affiché : révisions des requêtes de pull "
@@ -730,59 +740,53 @@
 msgid "Error occurred during update of permissions"
 msgstr "Une erreur est survenue durant la mise à jour des permissions"
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr "Une erreur est survenue durant la création du groupe de dépôts %s"
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr "Groupe de dépôts %s créé"
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr "Groupe de dépôts %s mis à jour"
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr ""
 "Une erreur est survenue durant la mise à jour du groupe de dépôts %s"
 
-#: kallithea/controllers/admin/repo_groups.py:252
+#: kallithea/controllers/admin/repo_groups.py:245
 #, python-format
 msgid "This group contains %s repositories and cannot be deleted"
 msgstr "Ce groupe contient %s dépôts et ne peut être supprimé"
 
-#: kallithea/controllers/admin/repo_groups.py:259
+#: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr "Ce groupe contient %s sous-groupes et ne peut pas être supprimé"
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr "Groupe de dépôts %s supprimé"
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr ""
 "Une erreur est survenue durant la suppression du groupe de dépôts %s"
 
-#: kallithea/controllers/admin/repo_groups.py:354
-#: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr "Impossible de révoquer votre permission d'administrateur"
-
-#: kallithea/controllers/admin/repo_groups.py:369
+#: kallithea/controllers/admin/repo_groups.py:357
 msgid "Repository group permissions updated"
 msgstr "Permissions du groupe de dépôts mises à jour"
 
-#: kallithea/controllers/admin/repo_groups.py:401
+#: kallithea/controllers/admin/repo_groups.py:384
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -1011,6 +1015,10 @@
 msgid "User group permissions updated"
 msgstr "Permissions du groupe d'utilisateurs mises à jour"
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr "Impossible de révoquer votre permission d'administrateur"
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1060,12 +1068,12 @@
 msgid "Removed IP address from user whitelist"
 msgstr "L'adresse IP a été supprimée de la liste blanche"
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr ""
 "Vous devez être un utilisateur enregistré pour effectuer cette action"
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr "Vous devez être connecté pour visualiser cette page"
 
@@ -1500,19 +1508,19 @@
 msgstr ""
 "Enregistrement des utilisateurs avec activation de compte automatique"
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr "Pas encore relue"
 
-#: kallithea/model/db.py:1944
+#: kallithea/model/db.py:1945
 msgid "Under review"
 msgstr "En cours de relecture"
 
-#: kallithea/model/db.py:1945
+#: kallithea/model/db.py:1946
 msgid "Not approved"
 msgstr "Non approuvée"
 
-#: kallithea/model/db.py:1946
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr "Approuvée"
 
--- a/kallithea/i18n/hu/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/hu/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.3\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2015-04-11 00:59+0200\n"
 "Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
 "Language-Team: Hungarian <https://hosted.weblate.org/projects/kallithea/"
@@ -27,7 +27,7 @@
 msgstr ""
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr ""
 
@@ -242,12 +242,12 @@
 msgstr ""
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr ""
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr ""
 
@@ -330,119 +330,129 @@
 msgid "Successfully updated password"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:173
-msgid "Special"
-msgstr ""
-
 #: kallithea/controllers/pullrequests.py:174
+msgid "Special"
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 msgid "New pull request iteration created"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 msgid "No additional changesets found for iterating on this pull request."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, python-format
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 
@@ -703,57 +713,51 @@
 msgid "Error occurred during update of permissions"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr ""
 
+#: kallithea/controllers/admin/repo_groups.py:245
+#, python-format
+msgid "This group contains %s repositories and cannot be deleted"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
-msgid "This group contains %s repositories and cannot be deleted"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:259
-#, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:354
+#: kallithea/controllers/admin/repo_groups.py:357
+msgid "Repository group permissions updated"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:369
-msgid "Repository group permissions updated"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:401
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -971,6 +975,10 @@
 msgid "User group permissions updated"
 msgstr ""
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr ""
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1020,11 +1028,11 @@
 msgid "Removed IP address from user whitelist"
 msgstr ""
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr ""
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr ""
 
@@ -1426,19 +1434,19 @@
 msgid "User registration with automatic account activation"
 msgstr ""
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr ""
 
-#: kallithea/model/db.py:1944
-msgid "Under review"
-msgstr ""
-
 #: kallithea/model/db.py:1945
-msgid "Not approved"
+msgid "Under review"
 msgstr ""
 
 #: kallithea/model/db.py:1946
+msgid "Not approved"
+msgstr ""
+
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr ""
 
--- a/kallithea/i18n/ja/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/ja/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.3\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2019-08-27 07:23+0000\n"
 "Last-Translator: leela <53352@protonmail.com>\n"
 "Language-Team: Japanese <https://hosted.weblate.org/projects/kallithea/"
@@ -26,7 +26,7 @@
 msgstr "ファイルシステム内にリポジトリが見つかりません"
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr "まだチェンジセットがありません"
 
@@ -256,12 +256,12 @@
 msgstr "チェンジセット"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr "ブランチ"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr "タグ"
 
@@ -346,128 +346,138 @@
 msgid "Successfully updated password"
 msgstr "パスワードを更新しました"
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr "%s (閉鎖済み)"
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr "チェンジセット"
 
-#: kallithea/controllers/pullrequests.py:173
+#: kallithea/controllers/pullrequests.py:174
 msgid "Special"
 msgstr "スペシャル"
 
-#: kallithea/controllers/pullrequests.py:174
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr "相手のブランチ"
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr "ブックマーク"
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr "プルリクエスト作成中にエラーが発生しました: %s"
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr "プルリクエストの作成中にエラーが発生しました"
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr "新しいプルリクエストの作成に成功しました"
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 #, fuzzy
 #| msgid "Pull request update created"
 msgid "New pull request iteration created"
 msgstr "プルリクエストレビュアー"
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr "説明がありません"
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr "プルリクエストを更新しました"
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr "プルリクエストの削除に成功しました"
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, fuzzy, python-format
 #| msgid "No changesets found for updating this pull request."
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr "プルリクエストを更新するためのチェンジセットが見つかりません。"
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr ""
 "このプルリクエストはすでにクローズされていて、更新することはできません。"
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 #, fuzzy
 #| msgid "No changesets found for updating this pull request."
 msgid "No additional changesets found for iterating on this pull request."
 msgstr "プルリクエストを更新するためのチェンジセットが見つかりません。"
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr "ノート: ブランチ%sには別のヘッド%sがあります。"
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 #, fuzzy
 #| msgid "Git pull requests don't support updates yet."
 msgid "Git pull requests don't support iterating yet."
 msgstr "Gitのプルリクエストはまだ更新をサポートしていません。"
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, fuzzy, python-format
 #| msgid "No changesets found for updating this pull request."
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
 msgstr "プルリクエストを更新するためのチェンジセットが見つかりません。"
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 
@@ -731,57 +741,51 @@
 msgid "Error occurred during update of permissions"
 msgstr "権限の更新中にエラーが発生しました"
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr "リポジトリグループ %s の作成中にエラーが発生しました"
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr "リポジトリグループ %s を作成しました"
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr "リポジトリグループ %s を更新しました"
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr "リポジトリグループ %s の更新中にエラーが発生しました"
 
-#: kallithea/controllers/admin/repo_groups.py:252
+#: kallithea/controllers/admin/repo_groups.py:245
 #, python-format
 msgid "This group contains %s repositories and cannot be deleted"
 msgstr "このグループは %s 個のリポジトリを含んでいるため削除できません"
 
-#: kallithea/controllers/admin/repo_groups.py:259
+#: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr "このグループは %s 個のサブグループを含んでいるため削除できません"
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr "リポジトリグループ %s を削除しました"
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr "リポジトリグループ %s の削除中にエラーが発生しました"
 
-#: kallithea/controllers/admin/repo_groups.py:354
-#: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr "自分自身の管理者としての権限を取り消すことはできません"
-
-#: kallithea/controllers/admin/repo_groups.py:369
+#: kallithea/controllers/admin/repo_groups.py:357
 msgid "Repository group permissions updated"
 msgstr "リポジトリグループ権限を更新しました"
 
-#: kallithea/controllers/admin/repo_groups.py:401
+#: kallithea/controllers/admin/repo_groups.py:384
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -1003,6 +1007,10 @@
 msgid "User group permissions updated"
 msgstr "ユーザーグループ権限を更新しました"
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr "自分自身の管理者としての権限を取り消すことはできません"
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1052,12 +1060,12 @@
 msgid "Removed IP address from user whitelist"
 msgstr "ユーザーホワイトリストからIPアドレスを削除しました"
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr ""
 "このアクションを実行するためには登録済みのユーザーである必要があります"
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr "このページを閲覧するためにはサインインが必要です"
 
@@ -1461,21 +1469,21 @@
 msgid "User registration with automatic account activation"
 msgstr "ユーザーの新規登録時に自動でアカウントをアクティベートする"
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr "未レビュー"
 
-#: kallithea/model/db.py:1944
+#: kallithea/model/db.py:1945
 msgid "Under review"
 msgstr "レビュー中"
 
-#: kallithea/model/db.py:1945
+#: kallithea/model/db.py:1946
 #, fuzzy
 #| msgid "Approved"
 msgid "Not approved"
 msgstr "承認"
 
-#: kallithea/model/db.py:1946
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr "承認"
 
--- a/kallithea/i18n/kallithea.pot	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/kallithea.pot	Sun May 14 21:19:38 2023 +0200
@@ -1,14 +1,14 @@
 # Translations template for Kallithea.
-# Copyright (C) 2022 Various authors, licensing as GPLv3
+# Copyright (C) 2023 Various authors, licensing as GPLv3
 # This file is distributed under the same license as the Kallithea project.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
 #
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: Kallithea 0.7.0\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -26,7 +26,7 @@
 msgstr ""
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr ""
 
@@ -239,12 +239,12 @@
 msgid "Changesets"
 msgstr ""
 
-#: kallithea/controllers/files.py:718 kallithea/controllers/pullrequests.py:176
+#: kallithea/controllers/files.py:718 kallithea/controllers/pullrequests.py:177
 #: kallithea/model/scm.py:627
 msgid "Branches"
 msgstr ""
 
-#: kallithea/controllers/files.py:719 kallithea/controllers/pullrequests.py:177
+#: kallithea/controllers/files.py:719 kallithea/controllers/pullrequests.py:178
 #: kallithea/model/scm.py:638
 msgid "Tags"
 msgstr ""
@@ -327,118 +327,128 @@
 msgid "Successfully updated password"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:173
-msgid "Special"
-msgstr ""
-
 #: kallithea/controllers/pullrequests.py:174
+msgid "Special"
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 msgid "New pull request iteration created"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 msgid "No additional changesets found for iterating on this pull request."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, python-format
 msgid "Error: some changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 
@@ -699,57 +709,51 @@
 msgid "Error occurred during update of permissions"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr ""
 
+#: kallithea/controllers/admin/repo_groups.py:245
+#, python-format
+msgid "This group contains %s repositories and cannot be deleted"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
-msgid "This group contains %s repositories and cannot be deleted"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:259
-#, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:354
+#: kallithea/controllers/admin/repo_groups.py:357
+msgid "Repository group permissions updated"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:369
-msgid "Repository group permissions updated"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:401
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -966,6 +970,10 @@
 msgid "User group permissions updated"
 msgstr ""
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr ""
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1015,11 +1023,11 @@
 msgid "Removed IP address from user whitelist"
 msgstr ""
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr ""
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr ""
 
@@ -1416,19 +1424,19 @@
 msgid "User registration with automatic account activation"
 msgstr ""
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr ""
 
-#: kallithea/model/db.py:1944
-msgid "Under review"
-msgstr ""
-
 #: kallithea/model/db.py:1945
-msgid "Not approved"
+msgid "Under review"
 msgstr ""
 
 #: kallithea/model/db.py:1946
+msgid "Not approved"
+msgstr ""
+
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr ""
 
--- a/kallithea/i18n/lb/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/lb/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -3,7 +3,7 @@
 msgid ""
 msgstr ""
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2020-04-13 19:42+0000\n"
 "Last-Translator: Dennis Fink <dennis.fink@c3l.lu>\n"
 "Language: lb\n"
@@ -23,7 +23,7 @@
 msgstr ""
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr "Et sinn nach keng Ännerungen do"
 
@@ -238,12 +238,12 @@
 msgstr "Ännerungen"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr "Äascht"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr ""
 
@@ -326,119 +326,129 @@
 msgid "Successfully updated password"
 msgstr "Passwuert erfollegräich erneiert"
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr "%s (Zou)"
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr "Ännerung"
 
-#: kallithea/controllers/pullrequests.py:173
+#: kallithea/controllers/pullrequests.py:174
 msgid "Special"
 msgstr "Spezial"
 
-#: kallithea/controllers/pullrequests.py:174
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr "Lieszeechen"
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 msgid "New pull request iteration created"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr "Keng Beschreiwung"
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 msgid "No additional changesets found for iterating on this pull request."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, python-format
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 
@@ -699,57 +709,51 @@
 msgid "Error occurred during update of permissions"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr ""
 
+#: kallithea/controllers/admin/repo_groups.py:245
+#, python-format
+msgid "This group contains %s repositories and cannot be deleted"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
-msgid "This group contains %s repositories and cannot be deleted"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:259
-#, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:354
+#: kallithea/controllers/admin/repo_groups.py:357
+msgid "Repository group permissions updated"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:369
-msgid "Repository group permissions updated"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:401
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -966,6 +970,10 @@
 msgid "User group permissions updated"
 msgstr ""
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr ""
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1015,11 +1023,11 @@
 msgid "Removed IP address from user whitelist"
 msgstr ""
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr ""
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr ""
 
@@ -1423,19 +1431,19 @@
 msgid "User registration with automatic account activation"
 msgstr ""
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr ""
 
-#: kallithea/model/db.py:1944
-msgid "Under review"
-msgstr ""
-
 #: kallithea/model/db.py:1945
-msgid "Not approved"
+msgid "Under review"
 msgstr ""
 
 #: kallithea/model/db.py:1946
+msgid "Not approved"
+msgstr ""
+
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr ""
 
--- a/kallithea/i18n/nb_NO/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/nb_NO/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.3.99\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2020-08-11 11:32+0000\n"
 "Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
 "Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
@@ -26,7 +26,7 @@
 msgstr ""
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr "Ingen endringssett enda"
 
@@ -254,12 +254,12 @@
 msgstr "Endringssett"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr "Forgreninger"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr "Etiketter"
 
@@ -346,121 +346,131 @@
 msgid "Successfully updated password"
 msgstr "Passord oppdatert"
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, fuzzy, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr "Ugyldig analytiker \"%s\" angitt"
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr "%s (lukket)"
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr "Endringssett"
 
-#: kallithea/controllers/pullrequests.py:173
+#: kallithea/controllers/pullrequests.py:174
 #, fuzzy
 msgid "Special"
 msgstr "Spesiell"
 
-#: kallithea/controllers/pullrequests.py:174
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr "Likemennsforgreninger"
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr "Bokmerker"
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr "Feil ved opprettelse av ny innsendelsesforespørsel: %s"
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr "Feil inntraff under opprettelse av innsendelsesforespørsel"
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr "Åpnet en ny innsendelsesforespørsel"
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 msgid "New pull request iteration created"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr "Ingen beskrivelse"
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr "Innsendingsforespørsel oppdatert"
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr "Slettet innsendingsforespørsel"
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr "Denne innsendingsforespørselen har allerede blitt flettet inn i %s."
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr ""
 "Denne innsendingsforespørselen har blitt lukket, og kan ikke oppdateres."
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 msgid "No additional changesets found for iterating on this pull request."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr "Merk: Forgreningen %s har et annet hode: %s."
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, python-format
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 
@@ -728,58 +738,51 @@
 msgid "Error occurred during update of permissions"
 msgstr "Feil inntraff under oppdatering av tilganger"
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr "Feil inntraff under opprettelse av pakkebrønnsgruppen %s"
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr "Opprettet pakkebrønnsgruppen %s"
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr "Oppdaterte pakkebrønnsgruppen %s"
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr "Feil inntraff under oppdatering av pakkebrønnsgruppen %s"
 
-#: kallithea/controllers/admin/repo_groups.py:252
+#: kallithea/controllers/admin/repo_groups.py:245
 #, python-format
 msgid "This group contains %s repositories and cannot be deleted"
 msgstr "Denne gruppen inneholder %s pakkebrønner og kan ikke slettes"
 
-#: kallithea/controllers/admin/repo_groups.py:259
+#: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr "Denne grunnen inneholder %s undergrupper og kan ikke slettes"
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr "Fjernet pakkebrønnsgruppen %s"
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr "Feil inntraff under sletting av pakkebrønnsgruppen %s"
 
-#: kallithea/controllers/admin/repo_groups.py:354
-#: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-#, fuzzy
-msgid "Cannot revoke permission for yourself as admin"
-msgstr "Kan ikke tilbakekalle egen administratortilgang"
-
-#: kallithea/controllers/admin/repo_groups.py:369
+#: kallithea/controllers/admin/repo_groups.py:357
 msgid "Repository group permissions updated"
 msgstr "Pakkebrønnsgruppetilganger oppdatert"
 
-#: kallithea/controllers/admin/repo_groups.py:401
+#: kallithea/controllers/admin/repo_groups.py:384
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -1002,6 +1005,11 @@
 msgid "User group permissions updated"
 msgstr ""
 
+#: kallithea/controllers/admin/user_groups.py:288
+#, fuzzy
+msgid "Cannot revoke permission for yourself as admin"
+msgstr "Kan ikke tilbakekalle egen administratortilgang"
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1051,11 +1059,11 @@
 msgid "Removed IP address from user whitelist"
 msgstr "Fjernet IP-adressen fra brukerhvitlisten"
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr ""
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr ""
 
@@ -1468,19 +1476,19 @@
 msgid "User registration with automatic account activation"
 msgstr ""
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr ""
 
-#: kallithea/model/db.py:1944
-msgid "Under review"
-msgstr ""
-
 #: kallithea/model/db.py:1945
+msgid "Under review"
+msgstr ""
+
+#: kallithea/model/db.py:1946
 msgid "Not approved"
 msgstr "Ikke godkjent"
 
-#: kallithea/model/db.py:1946
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr "Godkjent"
 
--- a/kallithea/i18n/nl_BE/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/nl_BE/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.3\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2019-10-05 19:28+0000\n"
 "Last-Translator: Thomas De Schampheleire <patrickdepinguin@gmail.com>\n"
 "Language-Team: Flemish <https://hosted.weblate.org/projects/kallithea/"
@@ -27,7 +27,7 @@
 msgstr ""
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr "Er zijn nog geen changesets"
 
@@ -249,12 +249,12 @@
 msgstr "Changesets"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr "Branches"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr "Tags"
 
@@ -337,119 +337,129 @@
 msgid "Successfully updated password"
 msgstr "Paswoord succesvol aangepast"
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr "Changeset"
 
-#: kallithea/controllers/pullrequests.py:173
+#: kallithea/controllers/pullrequests.py:174
 msgid "Special"
 msgstr "Bijzonder"
 
-#: kallithea/controllers/pullrequests.py:174
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 msgid "New pull request iteration created"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 msgid "No additional changesets found for iterating on this pull request."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, python-format
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 
@@ -710,57 +720,51 @@
 msgid "Error occurred during update of permissions"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr ""
 
+#: kallithea/controllers/admin/repo_groups.py:245
+#, python-format
+msgid "This group contains %s repositories and cannot be deleted"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
-msgid "This group contains %s repositories and cannot be deleted"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:259
-#, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:354
+#: kallithea/controllers/admin/repo_groups.py:357
+msgid "Repository group permissions updated"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:369
-msgid "Repository group permissions updated"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:401
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -977,6 +981,10 @@
 msgid "User group permissions updated"
 msgstr ""
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr ""
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1026,11 +1034,11 @@
 msgid "Removed IP address from user whitelist"
 msgstr ""
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr ""
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr ""
 
@@ -1433,19 +1441,19 @@
 msgid "User registration with automatic account activation"
 msgstr ""
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr ""
 
-#: kallithea/model/db.py:1944
-msgid "Under review"
-msgstr ""
-
 #: kallithea/model/db.py:1945
-msgid "Not approved"
+msgid "Under review"
 msgstr ""
 
 #: kallithea/model/db.py:1946
+msgid "Not approved"
+msgstr ""
+
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr ""
 
--- a/kallithea/i18n/pl/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/pl/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.3\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2021-01-15 18:32+0000\n"
 "Last-Translator: robertus <robertuss12@gmail.com>\n"
 "Language-Team: Polish <https://hosted.weblate.org/projects/kallithea/"
@@ -30,7 +30,7 @@
 msgstr "Nie znaleziono repozytorium w systemie plików"
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr "Brak zestawienia zmian"
 
@@ -254,12 +254,12 @@
 msgstr "Różnice"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr "Gałęzie"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr "Etykiety"
 
@@ -342,121 +342,131 @@
 msgid "Successfully updated password"
 msgstr "Pomyślnie zaktualizowano hasło"
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr "Podano nieprawidłowego recenzenta \"%s\""
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr "%s (zamknięty)"
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr "Grupy zmian"
 
-#: kallithea/controllers/pullrequests.py:173
+#: kallithea/controllers/pullrequests.py:174
 msgid "Special"
 msgstr "Specjalne"
 
-#: kallithea/controllers/pullrequests.py:174
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr "gałęzie"
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr "Zakładki"
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr "Wystąpił błąd podczas prośby o połączenie gałęzi"
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr "Prośba o wykonanie połączenia gałęzi została wykonana prawidłowo"
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 #, fuzzy
 #| msgid "Pull request update created"
 msgid "New pull request iteration created"
 msgstr "Recenzje wniosków połączenia gałęzi"
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr "Tymczasem, dodano następujących recenzentów: %s"
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr "Tymczasem, usunięto następujących recenzentów: %s"
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr "Brak opisu"
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr "Połączone gałęzie zaktualizowane"
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr "Prośba o skasowanie połączenia gałęzi została wykonana prawidłowo"
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr "Wersja %s nie została znaleziona w %s"
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 msgid "No additional changesets found for iterating on this pull request."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, python-format
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 
@@ -719,57 +729,51 @@
 msgid "Error occurred during update of permissions"
 msgstr "Wystąpił błąd podczas aktualizacji uprawnień"
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr "Wystąpił błąd podczas tworzenia grupy repo %s"
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr "Utworzono grupę repo %s"
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr "Zaktualizowano grupę repo %s"
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr "Wystąpił błąd podczas aktualizacji grupy repo %s"
 
-#: kallithea/controllers/admin/repo_groups.py:252
+#: kallithea/controllers/admin/repo_groups.py:245
 #, python-format
 msgid "This group contains %s repositories and cannot be deleted"
 msgstr "Ta grupa zawiera %s repozytorium i nie może być usunięta"
 
-#: kallithea/controllers/admin/repo_groups.py:259
+#: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr "Ta grupa zawiera %s repozytorium i nie może być usunięta"
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr "Usunięto grupę repo %s"
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr "Wystąpił błąd podczas usuwania z repozytorium grupy %s"
 
-#: kallithea/controllers/admin/repo_groups.py:354
-#: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr "Nie można cofnąć zezwolenia dla admina jako admin"
-
-#: kallithea/controllers/admin/repo_groups.py:369
+#: kallithea/controllers/admin/repo_groups.py:357
 msgid "Repository group permissions updated"
 msgstr "Aktualizacja uprawnień grup repozytorium"
 
-#: kallithea/controllers/admin/repo_groups.py:401
+#: kallithea/controllers/admin/repo_groups.py:384
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -990,6 +994,10 @@
 msgid "User group permissions updated"
 msgstr "Aktualizacja uprawnień grupy użytkowników"
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr "Nie można cofnąć zezwolenia dla admina jako admin"
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1039,11 +1047,11 @@
 msgid "Removed IP address from user whitelist"
 msgstr "Usunięto adres ip z listy dozwolonych adresów dla użytkownika"
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr "Musisz być zarejestrowanym użytkownikiem, żeby wykonać to działanie"
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr "Musisz być zalogowany, żeby oglądać stronę"
 
@@ -1477,19 +1485,19 @@
 msgid "User registration with automatic account activation"
 msgstr "Rejestracja użytkownika z automatyczną aktywacją konta"
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr "Brak Korekty"
 
-#: kallithea/model/db.py:1944
+#: kallithea/model/db.py:1945
 msgid "Under review"
 msgstr "Objęty Przeglądem"
 
-#: kallithea/model/db.py:1945
+#: kallithea/model/db.py:1946
 msgid "Not approved"
 msgstr "Niezaakceptowano"
 
-#: kallithea/model/db.py:1946
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr "Zaakceptowano"
 
--- a/kallithea/i18n/pt/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/pt/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.6.1\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2021-05-10 09:32+0000\n"
 "Last-Translator: ssantos <ssantos@web.de>\n"
 "Language-Team: none\n"
@@ -29,7 +29,7 @@
 msgstr ""
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr "Não há nenhum changeset ainda"
 
@@ -248,12 +248,12 @@
 msgstr "Conjuntos de mudanças"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr "Ramos"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr "Etiquetas"
 
@@ -336,119 +336,129 @@
 msgid "Successfully updated password"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr "Conjunto de Mudanças"
 
-#: kallithea/controllers/pullrequests.py:173
+#: kallithea/controllers/pullrequests.py:174
 msgid "Special"
 msgstr "Especial"
 
-#: kallithea/controllers/pullrequests.py:174
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr "Ramos pares"
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr "Marcadores"
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr "Novo pull request criado com sucesso"
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 msgid "New pull request iteration created"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr "Pull request apagado com sucesso"
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 msgid "No additional changesets found for iterating on this pull request."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, python-format
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 
@@ -710,57 +720,51 @@
 msgid "Error occurred during update of permissions"
 msgstr "Ocorreu um erro durante a atualização das permissões"
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr "Ocorreu um erro durante a criação do grupo de repositórios %s"
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr "Grupo de repositórios %s criado"
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr "Grupo de repositórios %s atualizado"
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr "Ocorreu um erro durante a atualização do grupo de repositórios %s"
 
-#: kallithea/controllers/admin/repo_groups.py:252
+#: kallithea/controllers/admin/repo_groups.py:245
 #, python-format
 msgid "This group contains %s repositories and cannot be deleted"
 msgstr "Esse grupo contém %s repositórios e não pode ser apagado"
 
-#: kallithea/controllers/admin/repo_groups.py:259
+#: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr "Este grupo contém %s subgrupos e não pode ser apagado"
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr "Grupo de repositórios %s apagado"
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr "Ocorreu um erro durante a exclusão do grupo de repositórios %s"
 
-#: kallithea/controllers/admin/repo_groups.py:354
-#: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr "Não pode revocar sua própria permissão de administrador"
-
-#: kallithea/controllers/admin/repo_groups.py:369
+#: kallithea/controllers/admin/repo_groups.py:357
 msgid "Repository group permissions updated"
 msgstr "Permissões atualizadas do Grupo de Repositórios"
 
-#: kallithea/controllers/admin/repo_groups.py:401
+#: kallithea/controllers/admin/repo_groups.py:384
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -979,6 +983,10 @@
 msgid "User group permissions updated"
 msgstr "Permissões do Grupo de Utilizadores atualizadas"
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr "Não pode revocar sua própria permissão de administrador"
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1028,11 +1036,11 @@
 msgid "Removed IP address from user whitelist"
 msgstr ""
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr "Precisa ser um utilizador registado para realizar essa ação"
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr "Precisa estar logado para ver essa página"
 
@@ -1438,19 +1446,19 @@
 msgid "User registration with automatic account activation"
 msgstr ""
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr ""
 
-#: kallithea/model/db.py:1944
-msgid "Under review"
-msgstr ""
-
 #: kallithea/model/db.py:1945
-msgid "Not approved"
+msgid "Under review"
 msgstr ""
 
 #: kallithea/model/db.py:1946
+msgid "Not approved"
+msgstr ""
+
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr "Aprovado"
 
--- a/kallithea/i18n/pt_BR/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/pt_BR/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.3\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2014-02-13 14:34+0000\n"
 "Last-Translator: Marcin Kuźmiński <marcin@python-works.com>\n"
 "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
@@ -25,7 +25,7 @@
 msgstr ""
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr "Não há nenhum changeset ainda"
 
@@ -254,12 +254,12 @@
 msgstr "Conjuntos de mudanças"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr "Ramos"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr "Etiquetas"
 
@@ -346,124 +346,134 @@
 msgid "Successfully updated password"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr "Conjunto de Mudanças"
 
-#: kallithea/controllers/pullrequests.py:173
+#: kallithea/controllers/pullrequests.py:174
 msgid "Special"
 msgstr "Especial"
 
-#: kallithea/controllers/pullrequests.py:174
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr "Ramos pares"
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr "Marcadores"
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 #, fuzzy
 msgid "Error occurred while creating pull request"
 msgstr "Ocorreu um erro durante o envio do pull request"
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr "Novo pull request criado com sucesso"
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 #, fuzzy
 #| msgid "Pull request update created"
 msgid "New pull request iteration created"
 msgstr "Revisores do pull request"
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 #, fuzzy
 msgid "No description"
 msgstr "Descrição"
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 #, fuzzy
 msgid "Pull request updated"
 msgstr "Pull requests para %s"
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr "Pull request excluído com sucesso"
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 msgid "No additional changesets found for iterating on this pull request."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, python-format
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 
@@ -731,57 +741,51 @@
 msgid "Error occurred during update of permissions"
 msgstr "Ocorreu um erro durante a atualização das permissões"
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr "Ocorreu um erro durante a criação do grupo de repositórios %s"
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr "Grupo de repositórios %s criado"
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr "Grupo de repositórios %s atualizado"
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr "Ocorreu um erro durante a atualização do grupo de repositórios %s"
 
-#: kallithea/controllers/admin/repo_groups.py:252
+#: kallithea/controllers/admin/repo_groups.py:245
 #, python-format
 msgid "This group contains %s repositories and cannot be deleted"
 msgstr "Esse grupo contém %s repositórios e não pode ser excluído"
 
-#: kallithea/controllers/admin/repo_groups.py:259
+#: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr "Este grupo contém %s subgrupos e não pode ser excluído"
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr "Grupo de repositórios %s excluído"
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr "Ocorreu um erro durante a exclusão do grupo de repositórios %s"
 
-#: kallithea/controllers/admin/repo_groups.py:354
-#: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr "Você não pode revocar sua própria permissão de administrador"
-
-#: kallithea/controllers/admin/repo_groups.py:369
+#: kallithea/controllers/admin/repo_groups.py:357
 msgid "Repository group permissions updated"
 msgstr "Permissões atualizadas do Grupo de Repositórios"
 
-#: kallithea/controllers/admin/repo_groups.py:401
+#: kallithea/controllers/admin/repo_groups.py:384
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -1004,6 +1008,10 @@
 msgid "User group permissions updated"
 msgstr "Permissões do Grupo de Usuários atualizadas"
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr "Você não pode revocar sua própria permissão de administrador"
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1053,11 +1061,11 @@
 msgid "Removed IP address from user whitelist"
 msgstr ""
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr "Você precisa ser um usuário registrado para realizar essa ação"
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr "Você precisa estar logado para ver essa página"
 
@@ -1473,23 +1481,23 @@
 msgid "User registration with automatic account activation"
 msgstr "Registro de Usuário com ativação automática de conta"
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 #, fuzzy
 msgid "Not reviewed"
 msgstr "Não Revisado"
 
-#: kallithea/model/db.py:1944
+#: kallithea/model/db.py:1945
 #, fuzzy
 msgid "Under review"
 msgstr "Sob Revisão"
 
-#: kallithea/model/db.py:1945
+#: kallithea/model/db.py:1946
 #, fuzzy
 #| msgid "Approved"
 msgid "Not approved"
 msgstr "Aprovado"
 
-#: kallithea/model/db.py:1946
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr "Aprovado"
 
--- a/kallithea/i18n/ru/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/ru/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.3\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2022-06-09 11:21+0000\n"
 "Last-Translator: МАН69К <weblate@mah69k.net>\n"
 "Language-Team: Russian <https://hosted.weblate.org/projects/kallithea/"
@@ -27,7 +27,7 @@
 msgstr "Репозиторий не найден на файловой системе"
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr "Наборы изменений отсутствуют"
 
@@ -250,12 +250,12 @@
 msgstr "Набор изменений"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr "Ветки"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr "Метки"
 
@@ -338,120 +338,130 @@
 msgid "Successfully updated password"
 msgstr "Пароль обновлён"
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr "Задан неверный ревьюер «%s»"
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr "%s (закрыта)"
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr "Изменения"
 
-#: kallithea/controllers/pullrequests.py:173
+#: kallithea/controllers/pullrequests.py:174
 msgid "Special"
 msgstr "Специальный"
 
-#: kallithea/controllers/pullrequests.py:174
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr "Ветви участника"
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr "Закладки"
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr "Ошибка при создании pull-запроса: %s"
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr "Произошла ошибка при создании pull-запроса"
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr "Pull-запрос успешно открыт"
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 msgid "New pull request iteration created"
 msgstr "Создана новая итерация pull-запросов"
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr "В то же время, добавлены следующие ревьюверы: %s"
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr "В то же время, удалены следующие ревьюверы: %s"
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr "Нет описания"
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr "Pull-запрос обновлён"
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr "Pull-запрос успешно удалён"
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr "Ревизия %s не найдена в %s"
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr "Ошибка: не найдены изменения при отображении pull-запроса от %s."
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr "Этот pull-запрос уже принят на ветку %s."
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr "Этот pull-запрос был закрыт и не может быть обновлён."
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr "Следующие дополнительные изменения доступны на %s:"
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 msgid "No additional changesets found for iterating on this pull request."
 msgstr "Нет дополнительных изменений для итерации в этом pull-запросе."
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr "Внимание: Ветка %s имеет ещё одну верхушку: %s."
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr "Pull-запросы git пока не поддерживают итерации."
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, python-format
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
 msgstr ""
 "Ошибка: не найдены некоторые изменения при отображении pull-запроса от %s."
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr "Невозможно отобразить различия — не найдены ревизии PR."
 
@@ -714,57 +724,51 @@
 msgid "Error occurred during update of permissions"
 msgstr "Произошла ошибка во время обновления привилегий"
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr "Произошла ошибка при создании группы репозиториев %s"
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr "Создана новая группа репозиториев %s"
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr "Группа репозиториев %s обновлена"
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr "Произошла ошибка при обновлении группы репозиториев %s"
 
-#: kallithea/controllers/admin/repo_groups.py:252
+#: kallithea/controllers/admin/repo_groups.py:245
 #, python-format
 msgid "This group contains %s repositories and cannot be deleted"
 msgstr "Данная группа содержит %s репозитариев и не может быть удалена"
 
-#: kallithea/controllers/admin/repo_groups.py:259
+#: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr "Группа содержит в себе %s подгрупп и не может быть удалён"
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr "Группа репозиториев %s удалена"
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr "Произошла ошибка при удалении группы репозиториев %s"
 
-#: kallithea/controllers/admin/repo_groups.py:354
-#: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr "Администратор не может отозвать свои привелегии"
-
-#: kallithea/controllers/admin/repo_groups.py:369
+#: kallithea/controllers/admin/repo_groups.py:357
 msgid "Repository group permissions updated"
 msgstr "Привилегии группы репозиториев обновлены"
 
-#: kallithea/controllers/admin/repo_groups.py:401
+#: kallithea/controllers/admin/repo_groups.py:384
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -985,6 +989,10 @@
 msgid "User group permissions updated"
 msgstr "Привилегии группы пользователей обновлены"
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr "Администратор не может отозвать свои привелегии"
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1034,13 +1042,13 @@
 msgid "Removed IP address from user whitelist"
 msgstr "Удален IP %s из белого списка пользователя"
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr ""
 "Вы должны быть зарегистрированным пользователем, чтобы выполнить это "
 "действие"
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr "Страница доступна только авторизованным пользователям"
 
@@ -1483,19 +1491,19 @@
 msgid "User registration with automatic account activation"
 msgstr "Регистрация пользователя с автоматической активацией"
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr "Не проверено"
 
-#: kallithea/model/db.py:1944
+#: kallithea/model/db.py:1945
 msgid "Under review"
 msgstr "На проверке"
 
-#: kallithea/model/db.py:1945
+#: kallithea/model/db.py:1946
 msgid "Not approved"
 msgstr "Не одобрено"
 
-#: kallithea/model/db.py:1946
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr "Одобрено"
 
--- a/kallithea/i18n/sk/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/sk/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.3\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2015-04-01 12:59+0200\n"
 "Last-Translator: Andrej Shadura <andrew@shadura.me>\n"
 "Language-Team: Slovak <https://hosted.weblate.org/projects/kallithea/"
@@ -27,7 +27,7 @@
 msgstr ""
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr "Zatiaľ nie sú žiadne zmeny"
 
@@ -247,12 +247,12 @@
 msgstr "Zmeny"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr "Vetvy"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr "Tagy"
 
@@ -336,119 +336,129 @@
 msgid "Successfully updated password"
 msgstr "Úspešne aktualizované heslo"
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr "%s (zatvorené)"
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:173
-msgid "Special"
-msgstr ""
-
 #: kallithea/controllers/pullrequests.py:174
+msgid "Special"
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr "Záložky"
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 msgid "New pull request iteration created"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 msgid "No additional changesets found for iterating on this pull request."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, python-format
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 
@@ -711,57 +721,51 @@
 msgid "Error occurred during update of permissions"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr ""
 
+#: kallithea/controllers/admin/repo_groups.py:245
+#, python-format
+msgid "This group contains %s repositories and cannot be deleted"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
-msgid "This group contains %s repositories and cannot be deleted"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:259
-#, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:354
+#: kallithea/controllers/admin/repo_groups.py:357
+msgid "Repository group permissions updated"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:369
-msgid "Repository group permissions updated"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:401
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -980,6 +984,10 @@
 msgid "User group permissions updated"
 msgstr ""
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr ""
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1029,11 +1037,11 @@
 msgid "Removed IP address from user whitelist"
 msgstr ""
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr ""
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr ""
 
@@ -1446,19 +1454,19 @@
 msgid "User registration with automatic account activation"
 msgstr ""
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr ""
 
-#: kallithea/model/db.py:1944
-msgid "Under review"
-msgstr ""
-
 #: kallithea/model/db.py:1945
-msgid "Not approved"
+msgid "Under review"
 msgstr ""
 
 #: kallithea/model/db.py:1946
+msgid "Not approved"
+msgstr ""
+
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr ""
 
--- a/kallithea/i18n/tr/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/tr/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.4.99\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2019-11-05 08:03+0000\n"
 "Last-Translator: Hüseyin Tunç <huseyin.tunc@bulutfon.com>\n"
 "Language-Team: Turkish <https://hosted.weblate.org/projects/kallithea/"
@@ -30,7 +30,7 @@
 msgstr ""
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr ""
 
@@ -245,12 +245,12 @@
 msgstr ""
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr ""
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr ""
 
@@ -333,119 +333,129 @@
 msgid "Successfully updated password"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:173
-msgid "Special"
-msgstr ""
-
 #: kallithea/controllers/pullrequests.py:174
+msgid "Special"
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 msgid "New pull request iteration created"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 msgid "No additional changesets found for iterating on this pull request."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, python-format
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 
@@ -706,57 +716,51 @@
 msgid "Error occurred during update of permissions"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr ""
 
+#: kallithea/controllers/admin/repo_groups.py:245
+#, python-format
+msgid "This group contains %s repositories and cannot be deleted"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
-msgid "This group contains %s repositories and cannot be deleted"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:259
-#, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:354
+#: kallithea/controllers/admin/repo_groups.py:357
+msgid "Repository group permissions updated"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:369
-msgid "Repository group permissions updated"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:401
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -973,6 +977,10 @@
 msgid "User group permissions updated"
 msgstr ""
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr ""
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1022,11 +1030,11 @@
 msgid "Removed IP address from user whitelist"
 msgstr ""
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr ""
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr ""
 
@@ -1430,19 +1438,19 @@
 msgid "User registration with automatic account activation"
 msgstr ""
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr ""
 
-#: kallithea/model/db.py:1944
-msgid "Under review"
-msgstr ""
-
 #: kallithea/model/db.py:1945
-msgid "Not approved"
+msgid "Under review"
 msgstr ""
 
 #: kallithea/model/db.py:1946
+msgid "Not approved"
+msgstr ""
+
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr ""
 
--- a/kallithea/i18n/uk/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/uk/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.3.2\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2019-11-13 10:04+0000\n"
 "Last-Translator: Oleksandr Shtalinberg <o.shtalinberg@gmail.com>\n"
 "Language-Team: Ukrainian <https://hosted.weblate.org/projects/kallithea/"
@@ -27,7 +27,7 @@
 msgstr "Репозиторій не знайдено у файловій системі"
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr "Наборів змін немає"
 
@@ -244,12 +244,12 @@
 msgstr "Набори змін"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr "Гілки"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr "Теги"
 
@@ -334,114 +334,114 @@
 msgid "Successfully updated password"
 msgstr "Пароль успішно оновлений"
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr "Вказаний недійсний рецензент \"%s\""
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr "%s (закрито)"
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr "Набір змін"
 
-#: kallithea/controllers/pullrequests.py:173
+#: kallithea/controllers/pullrequests.py:174
 msgid "Special"
 msgstr "Спеціальний"
 
-#: kallithea/controllers/pullrequests.py:174
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr "Закладки"
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr "Помилка створення pull request: %s"
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr "Сталася помилка при створенні pull request"
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr "Новий pull request успішно відкритий"
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 msgid "New pull request iteration created"
 msgstr "Створено нову ітерацію запиту на pull request"
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr "Тим часом додано наступних рецензентів: %s"
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr "Тим часом було видалено наступних рецензентів: %s"
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr "Без опису"
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr "Pull request оновлено"
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr "Успішно вилучено pull request"
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr "Ревізія %s не знайдена в %s"
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr ""
 "Помилка: changesets не знайдено під час відображення pull request з %s."
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr "Цей pull request уже об'єднано з  %s."
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr "Цей pull request закрито, його не можна оновити."
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr "Наступні додаткові зміни доступні на %s:"
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 msgid "No additional changesets found for iterating on this pull request."
 msgstr "Немає додаткових змін для ітератування на  pull request."
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr "Примітка: гілка %s має іншу голову: %s."
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr "Git pull requests не підтримують ітерацію."
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, python-format
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
@@ -449,7 +449,17 @@
 "Помилка: деякі changesets  не знайдені під час відображення pull request "
 "з %s."
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr "Різниця не може бути показана - версії PR не вдалося знайти."
 
@@ -712,57 +722,51 @@
 msgid "Error occurred during update of permissions"
 msgstr "Сталася помилка під час оновлення прав"
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr "Сталася помилка при створенні repository group %s"
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr "Створена група репозиторіїв %s"
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr "Оновлено групу репозиторіїв %s"
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr "Сталася помилка при оновленні repository group %s"
 
-#: kallithea/controllers/admin/repo_groups.py:252
+#: kallithea/controllers/admin/repo_groups.py:245
 #, python-format
 msgid "This group contains %s repositories and cannot be deleted"
 msgstr "Ця група містить %s репозиторії, і їх неможливо видалити"
 
-#: kallithea/controllers/admin/repo_groups.py:259
+#: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr "Ця група містить %s підгрупи і не може бути видалена"
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr "Видалена група репозиторіїв %s"
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr "Сталася помилка під час видалення групи репохиторіїв %s"
 
-#: kallithea/controllers/admin/repo_groups.py:354
-#: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr "Неможливо відкликати дозвіл для себе як адміністратора"
-
-#: kallithea/controllers/admin/repo_groups.py:369
+#: kallithea/controllers/admin/repo_groups.py:357
 msgid "Repository group permissions updated"
 msgstr "Оновлено дозволи групи репозиторіїв"
 
-#: kallithea/controllers/admin/repo_groups.py:401
+#: kallithea/controllers/admin/repo_groups.py:384
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -984,6 +988,10 @@
 msgid "User group permissions updated"
 msgstr "Права на групи користувачів оновлені"
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr "Неможливо відкликати дозвіл для себе як адміністратора"
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1033,11 +1041,11 @@
 msgid "Removed IP address from user whitelist"
 msgstr "Вилучено IP-адресу з білого списку користувачів"
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr "Для виконання цієї дії потрібно бути зареєстрованим користувачем"
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr "Ви повинні бути зареєстровані для перегляду цієї сторінки"
 
@@ -1453,19 +1461,19 @@
 msgid "User registration with automatic account activation"
 msgstr ""
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr ""
 
-#: kallithea/model/db.py:1944
-msgid "Under review"
-msgstr ""
-
 #: kallithea/model/db.py:1945
-msgid "Not approved"
+msgid "Under review"
 msgstr ""
 
 #: kallithea/model/db.py:1946
+msgid "Not approved"
+msgstr ""
+
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr ""
 
--- a/kallithea/i18n/zh_CN/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/zh_CN/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.3\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2023-02-15 16:40+0000\n"
 "Last-Translator: qy117121 <mixuan121@gmail.com>\n"
 "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
@@ -27,7 +27,7 @@
 msgstr "文件系统中找不到存储库"
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr "还没有修订集"
 
@@ -242,12 +242,12 @@
 msgstr "修订集"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr "分支"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr "标签"
 
@@ -330,122 +330,132 @@
 msgid "Successfully updated password"
 msgstr "成功更新密码"
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr "指定的审核者 \"%s\" 无效"
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr "%s (已关闭)"
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr "修订集"
 
-#: kallithea/controllers/pullrequests.py:173
+#: kallithea/controllers/pullrequests.py:174
 msgid "Special"
 msgstr "特殊"
 
-#: kallithea/controllers/pullrequests.py:174
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr "同等分支"
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr "书签"
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr "创建拉取请求出错:%s"
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr "创建拉取请求时发生错误"
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr "成功提交拉取请求"
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 msgid "New pull request iteration created"
 msgstr "已创建新的拉取请求迭代"
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr "同时,下列审查员已被加入:%s"
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr "同时,以下审查员已被删除:%s"
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr "无描述"
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr "拉取请求已更新"
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr "成功删除拉取请求"
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr "在 %s 中找不到修订集 %s"
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr "错误:当显示来自%s的拉动请求时,没有找到修订集。"
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr "这个拉取请求已经被合并到%s。"
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr "该拉取请求已被关闭,无法更新。"
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr "以下是对%s的额外修改:"
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 #, fuzzy
 #| msgid "No changesets found for updating this pull request."
 msgid "No additional changesets found for iterating on this pull request."
 msgstr "没有找到更新此拉取请求的修订集。"
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr "注意:分支%s有另一个head:%s。"
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr "Git拉动请求还不支持迭代。"
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, fuzzy, python-format
 #| msgid "No changesets found for updating this pull request."
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
 msgstr "没有找到更新此拉取请求的修订集。"
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr "不能显示差异-找不到PR的修订。"
 
@@ -707,57 +717,51 @@
 msgid "Error occurred during update of permissions"
 msgstr "权限更新时发生错误"
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr "在创建版本库组%s时发生错误"
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr "成功创建版本库组 %s"
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr "成功更新版本库组%s"
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr "在更新版本库组%s时发生错误"
 
-#: kallithea/controllers/admin/repo_groups.py:252
+#: kallithea/controllers/admin/repo_groups.py:245
 #, python-format
 msgid "This group contains %s repositories and cannot be deleted"
 msgstr "这个组内有%s个版本库因而无法删除"
 
-#: kallithea/controllers/admin/repo_groups.py:259
+#: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr "此组包含%s个子组,不能被删除"
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr "删除了版本库组%s"
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr "删除版本库组%s时发生错误"
 
-#: kallithea/controllers/admin/repo_groups.py:354
-#: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr "不能以管理员身份撤销自己的权限"
-
-#: kallithea/controllers/admin/repo_groups.py:369
+#: kallithea/controllers/admin/repo_groups.py:357
 msgid "Repository group permissions updated"
 msgstr "版本库组的权限已更新"
 
-#: kallithea/controllers/admin/repo_groups.py:401
+#: kallithea/controllers/admin/repo_groups.py:384
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -977,6 +981,10 @@
 msgid "User group permissions updated"
 msgstr ""
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr "不能以管理员身份撤销自己的权限"
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1026,11 +1034,11 @@
 msgid "Removed IP address from user whitelist"
 msgstr ""
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr "必须是注册用户才能进行此操作"
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr "必须登录才能访问该页面"
 
@@ -1429,21 +1437,21 @@
 msgid "User registration with automatic account activation"
 msgstr ""
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 #, fuzzy
 msgid "Not reviewed"
 msgstr "未检视"
 
-#: kallithea/model/db.py:1944
+#: kallithea/model/db.py:1945
 #, fuzzy
 msgid "Under review"
 msgstr "检视中"
 
-#: kallithea/model/db.py:1945
+#: kallithea/model/db.py:1946
 msgid "Not approved"
 msgstr "未被批准"
 
-#: kallithea/model/db.py:1946
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr "已批准"
 
--- a/kallithea/i18n/zh_TW/LC_MESSAGES/kallithea.po	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/i18n/zh_TW/LC_MESSAGES/kallithea.po	Sun May 14 21:19:38 2023 +0200
@@ -4,7 +4,7 @@
 msgstr ""
 "Project-Id-Version: Kallithea 0.3\n"
 "Report-Msgid-Bugs-To: translations@kallithea-scm.org\n"
-"POT-Creation-Date: 2022-12-12 23:01+0100\n"
+"POT-Creation-Date: 2023-05-14 21:19+0200\n"
 "PO-Revision-Date: 2017-03-10 18:26+0000\n"
 "Last-Translator: mao <mao@lins.fju.edu.tw>\n"
 "Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/"
@@ -27,7 +27,7 @@
 msgstr ""
 
 #: kallithea/controllers/base.py:587 kallithea/controllers/changelog.py:67
-#: kallithea/controllers/pullrequests.py:249
+#: kallithea/controllers/pullrequests.py:250
 msgid "There are no changesets yet"
 msgstr ""
 
@@ -248,12 +248,12 @@
 msgstr "變更"
 
 #: kallithea/controllers/files.py:718
-#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:627
+#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:627
 msgid "Branches"
 msgstr "分支"
 
 #: kallithea/controllers/files.py:719
-#: kallithea/controllers/pullrequests.py:177 kallithea/model/scm.py:638
+#: kallithea/controllers/pullrequests.py:178 kallithea/model/scm.py:638
 msgid "Tags"
 msgstr "標籤"
 
@@ -336,119 +336,129 @@
 msgid "Successfully updated password"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:66
+#: kallithea/controllers/pullrequests.py:67
 #, python-format
 msgid "Invalid reviewer \"%s\" specified"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:122
+#: kallithea/controllers/pullrequests.py:123
 #, python-format
 msgid "%s (closed)"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:149
+#: kallithea/controllers/pullrequests.py:150
 #: kallithea/templates/changeset/changeset.html:12
 msgid "Changeset"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:173
-msgid "Special"
-msgstr ""
-
 #: kallithea/controllers/pullrequests.py:174
+msgid "Special"
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:175
 msgid "Peer branches"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:175 kallithea/model/scm.py:633
+#: kallithea/controllers/pullrequests.py:176 kallithea/model/scm.py:633
 msgid "Bookmarks"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:317
+#: kallithea/controllers/pullrequests.py:318
 #, python-format
 msgid "Error creating pull request: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:344
-#: kallithea/controllers/pullrequests.py:367
+#: kallithea/controllers/pullrequests.py:345
+#: kallithea/controllers/pullrequests.py:368
 msgid "Error occurred while creating pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:349
+#: kallithea/controllers/pullrequests.py:350
 msgid "Successfully opened new pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:372
+#: kallithea/controllers/pullrequests.py:373
 msgid "New pull request iteration created"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:400
+#: kallithea/controllers/pullrequests.py:401
 #, python-format
 msgid "Meanwhile, the following reviewers have been added: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:404
+#: kallithea/controllers/pullrequests.py:405
 #, python-format
 msgid "Meanwhile, the following reviewers have been removed: %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:420
+#: kallithea/controllers/pullrequests.py:421
 #: kallithea/model/pull_request.py:230
 msgid "No description"
 msgstr "無描述"
 
-#: kallithea/controllers/pullrequests.py:429
+#: kallithea/controllers/pullrequests.py:430
 msgid "Pull request updated"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:442
+#: kallithea/controllers/pullrequests.py:443
 msgid "Successfully deleted pull request"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:478
+#: kallithea/controllers/pullrequests.py:479
 #, python-format
 msgid "Revision %s not found in %s"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:506
+#: kallithea/controllers/pullrequests.py:509
 #, python-format
 msgid "Error: changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:520
+#: kallithea/controllers/pullrequests.py:523
 #, python-format
 msgid "This pull request has already been merged to %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:522
+#: kallithea/controllers/pullrequests.py:525
 msgid "This pull request has been closed and can not be updated."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:541
+#: kallithea/controllers/pullrequests.py:544
 #, python-format
 msgid "The following additional changes are available on %s:"
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:543
-#: kallithea/controllers/pullrequests.py:547
+#: kallithea/controllers/pullrequests.py:546
+#: kallithea/controllers/pullrequests.py:550
 msgid "No additional changesets found for iterating on this pull request."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:555
+#: kallithea/controllers/pullrequests.py:558
 #, python-format
 msgid "Note: Branch %s has another head: %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:562
+#: kallithea/controllers/pullrequests.py:565
 msgid "Git pull requests don't support iterating yet."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:564
+#: kallithea/controllers/pullrequests.py:567
 #, python-format
 msgid ""
 "Error: some changesets not found when displaying pull request from %s."
 msgstr ""
 
-#: kallithea/controllers/pullrequests.py:586
+#: kallithea/controllers/pullrequests.py:571
+#, python-format
+msgid "%d additional changesets are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:574
+#, python-format
+msgid "%d changesets available for merging are not shown."
+msgstr ""
+
+#: kallithea/controllers/pullrequests.py:597
 msgid "The diff can't be shown - the PR revisions could not be found."
 msgstr ""
 
@@ -710,57 +720,51 @@
 msgid "Error occurred during update of permissions"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:165
+#: kallithea/controllers/admin/repo_groups.py:158
 #, python-format
 msgid "Error occurred during creation of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:172
+#: kallithea/controllers/admin/repo_groups.py:165
 #, python-format
 msgid "Created repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:225
+#: kallithea/controllers/admin/repo_groups.py:218
 #, python-format
 msgid "Updated repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:241
+#: kallithea/controllers/admin/repo_groups.py:234
 #, python-format
 msgid "Error occurred during update of repository group %s"
 msgstr ""
 
+#: kallithea/controllers/admin/repo_groups.py:245
+#, python-format
+msgid "This group contains %s repositories and cannot be deleted"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:252
 #, python-format
-msgid "This group contains %s repositories and cannot be deleted"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:259
-#, python-format
 msgid "This group contains %s subgroups and cannot be deleted"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:265
+#: kallithea/controllers/admin/repo_groups.py:258
 #, python-format
 msgid "Removed repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:270
+#: kallithea/controllers/admin/repo_groups.py:263
 #, python-format
 msgid "Error occurred during deletion of repository group %s"
 msgstr ""
 
-#: kallithea/controllers/admin/repo_groups.py:354
+#: kallithea/controllers/admin/repo_groups.py:357
+msgid "Repository group permissions updated"
+msgstr ""
+
 #: kallithea/controllers/admin/repo_groups.py:384
-#: kallithea/controllers/admin/user_groups.py:288
-msgid "Cannot revoke permission for yourself as admin"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:369
-msgid "Repository group permissions updated"
-msgstr ""
-
-#: kallithea/controllers/admin/repo_groups.py:401
 #: kallithea/controllers/admin/repos.py:334
 #: kallithea/controllers/admin/user_groups.py:300
 msgid "An error occurred during revoking of permission"
@@ -978,6 +982,10 @@
 msgid "User group permissions updated"
 msgstr ""
 
+#: kallithea/controllers/admin/user_groups.py:288
+msgid "Cannot revoke permission for yourself as admin"
+msgstr ""
+
 #: kallithea/controllers/admin/user_groups.py:382
 #: kallithea/controllers/admin/users.py:337
 msgid "Updated permissions"
@@ -1027,11 +1035,11 @@
 msgid "Removed IP address from user whitelist"
 msgstr ""
 
-#: kallithea/lib/auth.py:549
+#: kallithea/lib/auth.py:552
 msgid "You need to be a registered user to perform this action"
 msgstr "您必須是註冊使用者才能執行這個動作"
 
-#: kallithea/lib/auth.py:577
+#: kallithea/lib/auth.py:580
 msgid "You need to be signed in to view this page"
 msgstr "您必須登入後才能瀏覽這個頁面"
 
@@ -1431,19 +1439,19 @@
 msgid "User registration with automatic account activation"
 msgstr ""
 
-#: kallithea/model/db.py:1943
+#: kallithea/model/db.py:1944
 msgid "Not reviewed"
 msgstr "未審核"
 
-#: kallithea/model/db.py:1944
+#: kallithea/model/db.py:1945
 msgid "Under review"
 msgstr "審核中"
 
-#: kallithea/model/db.py:1945
+#: kallithea/model/db.py:1946
 msgid "Not approved"
 msgstr ""
 
-#: kallithea/model/db.py:1946
+#: kallithea/model/db.py:1947
 msgid "Approved"
 msgstr ""
 
--- a/kallithea/lib/auth.py	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/lib/auth.py	Sun May 14 21:19:38 2023 +0200
@@ -262,7 +262,10 @@
             # on given group
             for perm in default_repo_groups_perms:
                 rg_k = perm.group.group_name
-                p = perm.permission.permission_name
+                if perm.group.owner_id == self.user_id:
+                    p = 'group.admin'
+                else:
+                    p = perm.permission.permission_name
                 repository_group_permissions[rg_k] = p
 
             # user group for repo groups permissions
--- a/kallithea/model/db.py	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/model/db.py	Sun May 14 21:19:38 2023 +0200
@@ -913,7 +913,7 @@
     STATE_ERROR = 'repo_state_error'
 
     repo_id = Column(Integer(), primary_key=True)
-    repo_name = Column(Unicode(255), nullable=False, unique=True)
+    repo_name = Column(Unicode(255), nullable=False, unique=True)  # full path, must be updated (based on get_new_name) when name or path changes
     repo_state = Column(String(255), nullable=False)
 
     clone_uri = Column(String(255), nullable=True) # FIXME: not nullable?
@@ -1337,7 +1337,7 @@
     SEP = ' &raquo; '
 
     group_id = Column(Integer(), primary_key=True)
-    group_name = Column(Unicode(255), nullable=False, unique=True) # full path
+    group_name = Column(Unicode(255), nullable=False, unique=True)  # full path, must be updated (based on get_new_name) when name or path changes
     parent_group_id = Column('group_parent_id', Integer(), ForeignKey('groups.group_id'), nullable=True)
     group_description = Column(Unicode(10000), nullable=False)
     owner_id = Column('user_id', Integer(), ForeignKey('users.user_id'), nullable=False)
@@ -1914,6 +1914,7 @@
         return dict(
             comment_id=self.comment_id,
             username=self.author.username,
+            created_on=self.created_on.replace(microsecond=0),
             text=self.text,
         )
 
--- a/kallithea/model/repo_group.py	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/model/repo_group.py	Sun May 14 21:19:38 2023 +0200
@@ -148,12 +148,6 @@
 
             meta.Session().add(new_repo_group)
 
-            # create an ADMIN permission for owner except if we're super admin,
-            # later owner should go into the owner field of groups
-            if not owner.is_admin:
-                self.grant_user_permission(repo_group=new_repo_group,
-                                           user=owner, perm='group.admin')
-
             if parent_group and copy_permissions:
                 # copy permissions from parent
                 user_perms = db.UserRepoGroupToPerm.query() \
@@ -278,45 +272,46 @@
     def update(self, repo_group, repo_group_args):
         try:
             repo_group = db.RepoGroup.guess_instance(repo_group)
-            old_path = repo_group.full_path
+            old_path = repo_group.full_path  # aka .group_name
 
-            # change properties
             if 'owner' in repo_group_args:
                 repo_group.owner = db.User.get_by_username(repo_group_args['owner'])
             if 'group_description' in repo_group_args:
                 repo_group.group_description = repo_group_args['group_description']
             if 'parent_group_id' in repo_group_args:
                 assert repo_group_args['parent_group_id'] != '-1', repo_group_args  # RepoGroupForm should have converted to None
-                repo_group.parent_group = db.RepoGroup.get(repo_group_args['parent_group_id'])
-                repo_group.group_name = repo_group.get_new_name(repo_group.name)
+                new_parent_group = db.RepoGroup.get(repo_group_args['parent_group_id'])
+                if new_parent_group is not repo_group.parent_group:
+                    repo_group.parent_group = new_parent_group
+                    repo_group.group_name = repo_group.get_new_name(repo_group.name)
+                    log.debug('Moving repo group %s to %s', old_path, repo_group.group_name)
             if 'group_name' in repo_group_args:
                 group_name = repo_group_args['group_name']
                 if kallithea.lib.utils2.repo_name_slug(group_name) != group_name:
                     raise Exception('invalid repo group name %s' % group_name)
-                repo_group.group_name = repo_group.get_new_name(group_name)
+                if repo_group.name != group_name:
+                    repo_group.group_name = repo_group.get_new_name(group_name)
+                    log.debug('Renaming repo group %s to %s', old_path, repo_group.group_name)
             new_path = repo_group.full_path
             meta.Session().add(repo_group)
 
-            # iterate over all members of this groups and do fixes
-            # if obj is a repoGroup also fix the name of the group according
-            # to the parent
-            # if obj is a Repo fix it's name
-            # this can be potentially heavy operation
+            # Iterate over all members of this repo group and update the full
+            # path (repo_name and group_name) based on the (already updated)
+            # full path of the parent.
+            # This can potentially be a heavy operation.
             for obj in repo_group.recursive_groups_and_repos():
-                # set the value from it's parent
+                if obj is repo_group:
+                    continue  # already updated and logged
                 if isinstance(obj, db.RepoGroup):
                     new_name = obj.get_new_name(obj.name)
-                    log.debug('Fixing group %s to new name %s'
-                                % (obj.group_name, new_name))
+                    log.debug('Fixing repo group %s to new name %s', obj.group_name, new_name)
                     obj.group_name = new_name
                 elif isinstance(obj, db.Repository):
-                    # we need to get all repositories from this new group and
-                    # rename them accordingly to new group path
                     new_name = obj.get_new_name(obj.just_name)
-                    log.debug('Fixing repo %s to new name %s'
-                                % (obj.repo_name, new_name))
+                    log.debug('Fixing repo %s to new name %s', obj.repo_name, new_name)
                     obj.repo_name = new_name
 
+            # Rename in file system
             self._rename_group(old_path, new_path)
 
             return repo_group
--- a/kallithea/templates/about.html	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/templates/about.html	Sun May 14 21:19:38 2023 +0200
@@ -24,10 +24,12 @@
   necessarily limited to the following:</p>
   <ul>
 
-  <li>Copyright &copy; 2012&ndash;2022, Mads Kiilerich</li>
+  <li>Copyright &copy; 2012&ndash;2023, Mads Kiilerich</li>
+  <li>Copyright &copy; 2019&ndash;2020, 2022&ndash;2023, Manuel Jacob</li>
+  <li>Copyright &copy; 2023, Mathias De Mare</li>
   <li>Copyright &copy; 2016&ndash;2017, 2020, 2022, Asterios Dimitriou</li>
-  <li>Copyright &copy; 2019&ndash;2020, 2022, Manuel Jacob</li>
   <li>Copyright &copy; 2022, Jaime Marquínez Ferrándiz</li>
+  <li>Copyright &copy; 2022, Louis Bertrand</li>
   <li>Copyright &copy; 2022, toras9000</li>
   <li>Copyright &copy; 2022, yzqzss</li>
   <li>Copyright &copy; 2022, МАН69К</li>
--- a/kallithea/templates/admin/repo_groups/repo_group_edit_perms.html	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/templates/admin/repo_groups/repo_group_edit_perms.html	Sun May 14 21:19:38 2023 +0200
@@ -12,9 +12,7 @@
                 </tr>
                 ## USERS
                 %for r2p in c.repo_group.repo_group_to_perm:
-                    ##forbid revoking permission from yourself, except if you're an super admin
                     <tr id="id${id(r2p.user.username)}">
-                      %if request.authuser.user_id != r2p.user.user_id or request.authuser.is_admin:
                         <td>${h.radio('u_perm_%s' % r2p.user.username,'group.none')}</td>
                         <td>${h.radio('u_perm_%s' % r2p.user.username,'group.read')}</td>
                         <td>${h.radio('u_perm_%s' % r2p.user.username,'group.write')}</td>
@@ -34,17 +32,6 @@
                             </button>
                           %endif
                         </td>
-                      %else:
-                        <td>${h.radio('u_perm_%s' % r2p.user.username,'group.none', disabled="disabled")}</td>
-                        <td>${h.radio('u_perm_%s' % r2p.user.username,'group.read', disabled="disabled")}</td>
-                        <td>${h.radio('u_perm_%s' % r2p.user.username,'group.write', disabled="disabled")}</td>
-                        <td>${h.radio('u_perm_%s' % r2p.user.username,'group.admin', disabled="disabled")}</td>
-                        <td>
-                            ${h.gravatar(r2p.user.email, cls="perm-gravatar", size=14)}
-                            ${r2p.user.username if r2p.user.username != 'default' else _('Default')}
-                        </td>
-                        <td><i class="icon-user"></i>${_('Admin')}</td>
-                      %endif
                     </tr>
                 %endfor
 
--- a/kallithea/templates/base/base.html	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/templates/base/base.html	Sun May 14 21:19:38 2023 +0200
@@ -23,7 +23,7 @@
             <a class="navbar-link" href="${h.url('kallithea_project_url')}" target="_blank">Kallithea</a>,
         %endif
         which is
-        <a class="navbar-link" href="${h.canonical_url('about')}#copyright">&copy; 2010&ndash;2022 by various authors &amp; licensed under GPLv3</a>.
+        <a class="navbar-link" href="${h.canonical_url('about')}#copyright">&copy; 2010&ndash;2023 by various authors &amp; licensed under GPLv3</a>.
         %if c.issues_url:
             &ndash; <a class="navbar-link" href="${c.issues_url}" target="_blank">${_('Support')}</a>
         %endif
--- a/kallithea/tests/api/api_base.py	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/tests/api/api_base.py	Sun May 14 21:19:38 2023 +0200
@@ -2478,6 +2478,8 @@
         result = ext_json.loads(response.body)["result"]
         assert result["raw_id"] == self.TEST_REVISION
         assert "reviews" not in result
+        assert "comments" not in result
+        assert "inline_comments" not in result
 
     def test_api_get_changeset_with_reviews(self):
         reviewobjs = fixture.review_changeset(self.REPO, self.TEST_REVISION, "approved")
@@ -2488,6 +2490,8 @@
         result = ext_json.loads(response.body)["result"]
         assert result["raw_id"] == self.TEST_REVISION
         assert "reviews" in result
+        assert "comments" not in result
+        assert "inline_comments" not in result
         assert len(result["reviews"]) == 1
         review = result["reviews"][0]
         expected = {
@@ -2497,6 +2501,49 @@
         }
         assert review == expected
 
+    def test_api_get_changeset_with_comments(self):
+        commentobj = fixture.add_changeset_comment(self.REPO, self.TEST_REVISION, "example changeset comment")
+        id_, params = _build_data(self.apikey, 'get_changeset',
+                                  repoid=self.REPO, raw_id=self.TEST_REVISION,
+                                  with_comments=True)
+        response = api_call(self, params)
+        result = ext_json.loads(response.body)["result"]
+        assert result["raw_id"] == self.TEST_REVISION
+        assert "reviews" not in result
+        assert "comments" in result
+        assert "inline_comments" not in result
+        comment = result["comments"][-1]
+        expected = {
+            'comment_id': commentobj.comment_id,
+            'text': 'example changeset comment',
+            'username': 'test_admin',
+            'created_on': commentobj.created_on.replace(microsecond=0).isoformat(),
+        }
+        assert comment == expected
+
+    def test_api_get_changeset_with_inline_comments(self):
+        commentobj = fixture.add_changeset_comment(self.REPO, self.TEST_REVISION, "example inline comment", f_path='vcs/__init__.py', line_no="n3")
+        id_, params = _build_data(self.apikey, 'get_changeset',
+                                  repoid=self.REPO, raw_id=self.TEST_REVISION,
+                                  with_inline_comments=True)
+        response = api_call(self, params)
+        result = ext_json.loads(response.body)["result"]
+        assert result["raw_id"] == self.TEST_REVISION
+        assert "reviews" not in result
+        assert "comments" not in result
+        assert "inline_comments" in result
+        expected = [
+            ['vcs/__init__.py', {
+                'n3': [{
+                    'comment_id': commentobj.comment_id,
+                    'text': 'example inline comment',
+                    'username': 'test_admin',
+                    'created_on': commentobj.created_on.replace(microsecond=0).isoformat(),
+                }]
+            }]
+        ]
+        assert result["inline_comments"] == expected
+
     def test_api_get_changeset_that_does_not_exist(self):
         """ Fetch changeset status for non-existant changeset.
         revision id is the above git hash used in the test above with the
@@ -2539,7 +2586,8 @@
             "org_ref_parts": ["branch", "stable", self.TEST_PR_SRC],
             "other_ref_parts": ["branch", "default", self.TEST_PR_DST],
             "comments": [{"username": base.TEST_USER_ADMIN_LOGIN, "text": "",
-                         "comment_id": pullrequest.comments[0].comment_id}],
+                          "comment_id": pullrequest.comments[0].comment_id,
+                          "created_on": "2000-01-01T00:00:00"}],
             "owner": base.TEST_USER_ADMIN_LOGIN,
             "statuses": [{"status": "under_review", "reviewer": base.TEST_USER_ADMIN_LOGIN, "modified_at": "2000-01-01T00:00:00"} for i in range(0, len(self.TEST_PR_REVISIONS))],
             "title": "get test",
--- a/kallithea/tests/fixture.py	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/tests/fixture.py	Sun May 14 21:19:38 2023 +0200
@@ -329,6 +329,11 @@
         meta.Session().commit()
         return csm
 
+    def add_changeset_comment(self, repo, revision, text, author=TEST_USER_ADMIN_LOGIN, f_path=None, line_no=None):
+        comment = ChangesetCommentsModel().create(text, repo, author, revision=revision, f_path=f_path, line_no=line_no, send_email=False)
+        meta.Session().commit()
+        return comment
+
     def create_pullrequest(self, testcontroller, repo_name, pr_src_rev, pr_dst_rev, title='title'):
         org_ref = 'branch:stable:%s' % pr_src_rev
         other_ref = 'branch:default:%s' % pr_dst_rev
--- a/kallithea/tests/other/test_vcs_operations.py	Tue Feb 14 15:22:17 2023 +0100
+++ b/kallithea/tests/other/test_vcs_operations.py	Sun May 14 21:19:38 2023 +0200
@@ -150,6 +150,12 @@
         testenv['LANGUAGE'] = 'en_US:en'
         testenv['HGPLAIN'] = ''
         testenv['HGRCPATH'] = ''
+        testenv['GIT_CONFIG_SYSTEM'] = '/dev/null'
+        testenv['GIT_CONFIG_GLOBAL'] = '/dev/null'
+        testenv['GIT_COMMITTER_NAME'] = base.TEST_USER_ADMIN_LOGIN
+        testenv['GIT_COMMITTER_EMAIL'] = base.TEST_USER_ADMIN_EMAIL
+        testenv['GIT_AUTHOR_NAME'] = base.TEST_USER_REGULAR_LOGIN
+        testenv['GIT_AUTHOR_EMAIL'] = base.TEST_USER_REGULAR_EMAIL
         testenv.update(environ)
         p = Popen(command, shell=True, stdout=PIPE, stderr=PIPE, cwd=self.cwd, env=testenv)
         stdout, stderr = p.communicate()
@@ -195,8 +201,7 @@
             cmd = """git commit -m "committed new %s" --author "%s" "%s" """ % (
                 i, author_str, added_file
             )
-        # git commit needs EMAIL on some machines
-        Command(dest_dir).execute(cmd, EMAIL=email)
+        Command(dest_dir).execute(cmd)
 
 def _add_files_and_push(webserver, vt, dest_dir, clone_url, ignoreReturnCode=False, files_no=3):
     _add_files(vt.repo_type, dest_dir, files_no=files_no)
@@ -618,7 +623,7 @@
         # add submodule
         stdout, stderr = Command(base.TESTS_TMP_PATH).execute('git clone', fork_url, dest_dir)
         stdout, stderr = Command(dest_dir).execute('git submodule add', clone_url, 'testsubmodule')
-        stdout, stderr = Command(dest_dir).execute('git commit -am "added testsubmodule pointing to', clone_url, '"', EMAIL=base.TEST_USER_ADMIN_EMAIL)
+        stdout, stderr = Command(dest_dir).execute('git commit -am "added testsubmodule pointing to', clone_url, '"')
         stdout, stderr = Command(dest_dir).execute('git push', fork_url, 'master')
 
         # check for testsubmodule link in files page
--- a/scripts/dbmigrate-test	Tue Feb 14 15:22:17 2023 +0100
+++ b/scripts/dbmigrate-test	Sun May 14 21:19:38 2023 +0200
@@ -94,7 +94,7 @@
     (
         cd "$prefix"
         . "$prefix-env/bin/activate"
-        pip install --quiet --upgrade pip setuptools mercurial $EXTRA
+        pip install --quiet --upgrade pip "setuptools<67" mercurial $EXTRA
         pip install --quiet -e .
     )
 }
--- a/scripts/validate-commits	Tue Feb 14 15:22:17 2023 +0100
+++ b/scripts/validate-commits	Sun May 14 21:19:38 2023 +0200
@@ -42,7 +42,7 @@
     cleanup
     python3 -m venv "$venv"
     source "$venv/bin/activate"
-    pip install --upgrade pip setuptools
+    pip install --upgrade pip "setuptools<67"
     pip install -e . -r dev_requirements.txt python-ldap python-pam
 
     # run-all-cleanup
--- a/scripts/validate-minimum-dependency-versions	Tue Feb 14 15:22:17 2023 +0100
+++ b/scripts/validate-minimum-dependency-versions	Sun May 14 21:19:38 2023 +0200
@@ -30,7 +30,7 @@
 
 python3 -m venv "$venv"
 source "$venv/bin/activate"
-pip install --upgrade pip setuptools
+pip install --upgrade pip "setuptools<67"
 pip install -e . -r "$min_requirements" python-ldap python-pam 2> >(tee "$log" >&2)
 
 # Treat any message on stderr as a problem, for the caller to interpret.
--- a/setup.py	Tue Feb 14 15:22:17 2023 +0100
+++ b/setup.py	Sun May 14 21:19:38 2023 +0200
@@ -75,6 +75,8 @@
     "pip >= 20.0, < 999",
     "chardet >= 3",
 ]
+if sys.version_info < (3, 8):
+    requirements.append("importlib-metadata < 5")
 
 dependency_links = [
 ]