1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-04-27 19:05:16 +00:00

Wiki set repo type (#6264)

* update

* update

* update
This commit is contained in:
Ranjiwei 2024-06-29 17:20:54 +08:00 committed by GitHub
parent 99c858e273
commit 4f888be82c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 44 additions and 4 deletions

View File

@ -12,7 +12,7 @@ from seaserv import seafile_api, ccnet_api
from constance import config
from seahub import settings
from seahub.api2.utils import api_error
from seahub.api2.utils import api_error, is_wiki_repo
from seahub.api2.throttling import UserRateThrottle
from seahub.api2.authentication import TokenAuthentication
from seahub.api2.endpoints.utils import api_check_group
@ -85,7 +85,8 @@ class GroupLibraries(APIView):
group_repos = seafile_api.get_repos_by_group(group_id)
group_repos.sort(key=lambda x: x.last_modified, reverse=True)
group_repos = [gr for gr in group_repos if not is_wiki_repo(gr)]
try:
current_page = int(request.GET.get('page', '1'))
per_page = int(request.GET.get('per_page', '100'))

View File

@ -13,7 +13,7 @@ from rest_framework import status
from seaserv import seafile_api, ccnet_api
from pysearpc import SearpcError
from seahub.api2.utils import api_error
from seahub.api2.utils import api_error, is_wiki_repo
from seahub.api2.authentication import TokenAuthentication
from seahub.api2.throttling import UserRateThrottle
from seahub.api2.endpoints.group_owned_libraries import get_group_id_by_repo_owner
@ -181,6 +181,9 @@ class Groups(APIView):
repos = []
for r in group_repos:
if is_wiki_repo(r):
continue
repo_owner = repo_id_owner_dict.get(r.id, r.user)
repo = {
"id": r.id,

View File

@ -10,7 +10,7 @@ from rest_framework import status
from seahub.api2.throttling import UserRateThrottle
from seahub.api2.authentication import TokenAuthentication
from seahub.api2.utils import api_error
from seahub.api2.utils import api_error, is_wiki_repo
from seahub.api2.endpoints.group_owned_libraries import get_group_id_by_repo_owner
@ -113,6 +113,10 @@ class ReposView(APIView):
# do not return virtual repos
if r.is_virtual:
continue
if is_wiki_repo(r):
continue
repo_info = {
"type": "mine",
@ -170,6 +174,9 @@ class ReposView(APIView):
shared_repos.sort(key=lambda x: x.last_modify, reverse=True)
for r in shared_repos:
if is_wiki_repo(r):
continue
owner_email = r.user
@ -238,6 +245,11 @@ class ReposView(APIView):
monitored_repo_id_list = []
for r in group_repos:
if is_wiki_repo(r):
continue
repo_info = {
"type": "group",
"group_id": r.group_id,
@ -282,6 +294,10 @@ class ReposView(APIView):
nickname_dict[e] = email2nickname(e)
for r in public_repos:
if is_wiki_repo(r):
continue
repo_owner = repo_id_owner_dict[r.repo_id]
repo_info = {
"type": "public",

View File

@ -21,6 +21,7 @@ from django.utils.translation import gettext as _
from seahub.api2.authentication import TokenAuthentication
from seahub.api2.throttling import UserRateThrottle
from seahub.api2.utils import api_error, to_python_boolean
from seahub.utils.db_api import SeafileDB
from seahub.wiki2.models import Wiki2 as Wiki
from seahub.wiki2.utils import is_valid_wiki_name, can_edit_wiki, get_wiki_dirs_by_path, \
get_wiki_config, WIKI_PAGES_DIR, WIKI_CONFIG_PATH, WIKI_CONFIG_FILE_NAME, is_group_wiki, \
@ -183,6 +184,8 @@ class Wikis2View(APIView):
try:
wiki = Wiki.objects.add(wiki_name=wiki_name, owner=wiki_owner, repo_id=repo_id)
seafile_db_api = SeafileDB()
seafile_db_api.set_repo_type(repo_id, 'wiki')
except Exception as e:
logger.error(e)
msg = 'Internal Server Error'

View File

@ -21,6 +21,7 @@ from pysearpc import SearpcError
from seahub.base.templatetags.seahub_tags import email2nickname, \
translate_seahub_time, file_icon_filter, email2contact_email
from seahub.constants import REPO_TYPE_WIKI
from seahub.group.views import is_group_staff
from seahub.group.utils import is_group_member
from seahub.api2.models import Token, TokenV2, DESKTOP_PLATFORMS
@ -278,3 +279,7 @@ def is_web_request(request):
return True
else:
return False
def is_wiki_repo(repo):
return repo.repo_type == REPO_TYPE_WIKI

View File

@ -33,3 +33,5 @@ HASH_URLS = {
}
REPO_SHARE_LINK_COUNT_LIMIT = 500000
REPO_TYPE_WIKI = 'wiki'

View File

@ -357,3 +357,13 @@ class SeafileDB:
"""
with connection.cursor() as cursor:
cursor.execute(sql)
def set_repo_type(self, repo_id, repo_type):
sql = f"""
UPDATE `{self.db_name}`. `RepoInfo`
SET `type`= '%s'
WHERE `repo_id`='%s'
""" % (repo_type, repo_id)
with connection.cursor() as cursor:
cursor.execute(sql)