From 40165e6a31791c8f8994ff8727b402bb41b11060 Mon Sep 17 00:00:00 2001 From: vapao Date: Mon, 24 Oct 2022 22:34:26 +0800 Subject: [PATCH] =?UTF-8?q?A=20=E6=B7=BB=E5=8A=A0=E5=8F=91=E5=B8=83?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E5=8D=95=E4=B8=AA=E5=88=A0=E9=99=A4=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spug_api/apps/deploy/models.py | 4 ++-- spug_api/apps/deploy/views.py | 6 ++---- spug_api/apps/repository/models.py | 2 +- spug_web/src/pages/deploy/repository/Form.js | 1 - spug_web/src/pages/deploy/request/Table.js | 10 ++++++++-- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/spug_api/apps/deploy/models.py b/spug_api/apps/deploy/models.py index 92da1d5..89528a5 100644 --- a/spug_api/apps/deploy/models.py +++ b/spug_api/apps/deploy/models.py @@ -58,9 +58,8 @@ class DeployRequest(models.Model, ModelMixin): return f'{settings.REQUEST_KEY}:{self.id}' def delete(self, using=None, keep_parents=False): - super().delete(using, keep_parents) if self.repository_id: - if not DeployRequest.objects.filter(repository=self.repository).exists(): + if not self.repository.deployrequest_set.exclude(id=self.id).exists(): self.repository.delete() if self.deploy.extend == '2': for p in Path(settings.REPOS_DIR, str(self.deploy_id)).glob(f'{self.spug_version}*'): @@ -73,6 +72,7 @@ class DeployRequest(models.Model, ModelMixin): p.unlink() except FileNotFoundError: pass + super().delete(using, keep_parents) def __repr__(self): return f'' diff --git a/spug_api/apps/deploy/views.py b/spug_api/apps/deploy/views.py index 10f721a..d6096df 100644 --- a/spug_api/apps/deploy/views.py +++ b/spug_api/apps/deploy/views.py @@ -5,7 +5,7 @@ from django.views.generic import View from django.db.models import F from django.conf import settings from django.http.response import HttpResponseBadRequest -from libs import json_response, JsonParser, Argument, human_datetime, human_time, auth, AttrDict +from libs import json_response, JsonParser, Argument, human_datetime, auth, AttrDict from apps.deploy.models import DeployRequest from apps.app.models import Deploy, DeployExtend2 from apps.repository.models import Repository @@ -68,9 +68,7 @@ class RequestView(View): ).parse(request.GET) if error is None: if form.id: - deploy = DeployRequest.objects.filter(pk=form.id).first() - if not deploy or deploy.status not in ('0', '1', '-1'): - return json_response(error='未找到指定发布申请或当前状态不允许删除') + deploy = DeployRequest.objects.get(pk=form.id) deploy.delete() return json_response() diff --git a/spug_api/apps/repository/models.py b/spug_api/apps/repository/models.py index 4f5d27b..c4908fb 100644 --- a/spug_api/apps/repository/models.py +++ b/spug_api/apps/repository/models.py @@ -54,7 +54,6 @@ class Repository(models.Model, ModelMixin): return tmp def delete(self, using=None, keep_parents=False): - super().delete(using, keep_parents) try: Path(settings.BUILD_DIR, f'{self.spug_version}.tar.gz').unlink() except FileNotFoundError: @@ -65,6 +64,7 @@ class Repository(models.Model, ModelMixin): p.unlink() except FileNotFoundError: pass + super().delete(using, keep_parents) class Meta: db_table = 'repositories' diff --git a/spug_web/src/pages/deploy/repository/Form.js b/spug_web/src/pages/deploy/repository/Form.js index d96efae..827256f 100644 --- a/spug_web/src/pages/deploy/repository/Form.js +++ b/spug_web/src/pages/deploy/repository/Form.js @@ -94,7 +94,6 @@ export default observer(function () { formData['extra'] = [git_type, extra1, extra2]; http.post('/api/repository/', formData) .then(res => { - message.success('操作成功'); store.formVisible = false; store.showConsole(res) }, () => setLoading(false)) diff --git a/spug_web/src/pages/deploy/request/Table.js b/spug_web/src/pages/deploy/request/Table.js index 02e6b2e..ea6fe3f 100644 --- a/spug_web/src/pages/deploy/request/Table.js +++ b/spug_web/src/pages/deploy/request/Table.js @@ -97,7 +97,7 @@ function ComTable() { }, { title: '状态', fixed: 'right', - className: S.min120, + width: 120, render: info => { if (info.status === '-1' && info.reason) { return @@ -120,6 +120,7 @@ function ComTable() { }, { title: '操作', fixed: 'right', + width: 220, className: hasPermission('deploy.request.do|deploy.request.edit|deploy.request.approve|deploy.request.del') ? S.min180 : 'none', render: info => { switch (info.status) { @@ -130,6 +131,7 @@ function ComTable() { {info.visible_rollback && ( store.rollback(info)}>回滚 )} + handleDelete(info)}>删除 ; case '3': return @@ -137,6 +139,7 @@ function ComTable() { {info.visible_rollback && ( store.rollback(info)}>回滚 )} + handleDelete(info)}>删除 ; case '4': return @@ -145,11 +148,13 @@ function ComTable() { {info.visible_rollback && ( store.rollback(info)}>回滚 )} + handleDelete(info)}>删除 ; case '-1': return store.showForm(info)}>编辑 handleDelete(info)}>删除 + handleDelete(info)}>删除 ; case '0': return @@ -165,6 +170,7 @@ function ComTable() { case '2': return store.readConsole(info)}>查看 + handleDelete(info)}>删除 ; default: return null @@ -196,7 +202,7 @@ function ComTable() { function handleDelete(info) { Modal.confirm({ title: '删除确认', - content: `确定要删除【${info['name']}】?`, + content: `确定要删除发布申请【${info['name']}】?`, onOk: () => { return http.delete('/api/deploy/request/', {params: {id: info.id}}) .then(() => {