提升项目链接功能,优化列表展示,项目管理更强大!
This commit is contained in:
parent
de84796560
commit
595debaed2
@ -10,6 +10,7 @@ class AIConfigAdmin(AjaxAdmin):
|
|||||||
|
|
||||||
list_display = ["api_base", "api_key", "llm_model"]
|
list_display = ["api_base", "api_key", "llm_model"]
|
||||||
readonly_fields = ["create_by", "delete_at", "detail"]
|
readonly_fields = ["create_by", "delete_at", "detail"]
|
||||||
|
list_per_page = 10
|
||||||
top_html = ' <el-alert title="可配置多个AI模型厂商!" type="success"></el-alert>'
|
top_html = ' <el-alert title="可配置多个AI模型厂商!" type="success"></el-alert>'
|
||||||
|
|
||||||
def save_model(self, request, obj, form, change):
|
def save_model(self, request, obj, form, change):
|
||||||
@ -23,6 +24,7 @@ class GitConfigAdmin(AjaxAdmin):
|
|||||||
|
|
||||||
list_display = ["git_name", "git_type", "git_url", "access_token"]
|
list_display = ["git_name", "git_type", "git_url", "access_token"]
|
||||||
readonly_fields = ["create_by", "delete_at", "detail"]
|
readonly_fields = ["create_by", "delete_at", "detail"]
|
||||||
|
list_per_page = 10
|
||||||
top_html = '<el-alert title="可配置多个Git服务上!" type="success"></el-alert>'
|
top_html = '<el-alert title="可配置多个Git服务上!" type="success"></el-alert>'
|
||||||
|
|
||||||
def save_model(self, request, obj, form, change):
|
def save_model(self, request, obj, form, change):
|
||||||
@ -37,10 +39,13 @@ class ProjectConfigAdmin(AjaxAdmin):
|
|||||||
list_display = [
|
list_display = [
|
||||||
"project_id",
|
"project_id",
|
||||||
"project_name",
|
"project_name",
|
||||||
|
"pr_url",
|
||||||
"project_secret",
|
"project_secret",
|
||||||
"commands",
|
"commands",
|
||||||
"is_enable",
|
"is_enable",
|
||||||
]
|
]
|
||||||
|
list_filter = ["git_config"]
|
||||||
|
list_per_page = 10
|
||||||
readonly_fields = ["create_by", "delete_at", "detail"]
|
readonly_fields = ["create_by", "delete_at", "detail"]
|
||||||
top_html = '<el-alert title="可配置多个项目!" type="success"></el-alert>'
|
top_html = '<el-alert title="可配置多个项目!" type="success"></el-alert>'
|
||||||
|
|
||||||
@ -48,15 +53,32 @@ class ProjectConfigAdmin(AjaxAdmin):
|
|||||||
obj.create_by = request.user.username
|
obj.create_by = request.user.username
|
||||||
return super().save_model(request, obj, form, change)
|
return super().save_model(request, obj, form, change)
|
||||||
|
|
||||||
|
def pr_url(self, obj):
|
||||||
|
return f'<el-link type="primary" href={obj.project_url} target="_blank">{obj.project_name}</el-link>'
|
||||||
|
|
||||||
|
pr_url.short_description = "项目地址"
|
||||||
|
|
||||||
|
|
||||||
@admin.register(models.ProjectHistory)
|
@admin.register(models.ProjectHistory)
|
||||||
class ProjectHistoryAdmin(admin.ModelAdmin):
|
class ProjectHistoryAdmin(admin.ModelAdmin):
|
||||||
"""Admin配置"""
|
"""Admin配置"""
|
||||||
|
|
||||||
list_display = ["project", "mr_url", "source_branch", "target_branch", "mr_title"]
|
list_display = ["pr_url", "ml", "source_branch", "target_branch", "mr_title"]
|
||||||
list_filter = ["project"]
|
list_filter = ["project"]
|
||||||
|
readonly_fields = ["create_by", "delete_at", "detail"]
|
||||||
list_per_page = 10
|
list_per_page = 10
|
||||||
|
|
||||||
def save_model(self, request, obj, form, change):
|
def save_model(self, request, obj, form, change):
|
||||||
obj.create_by = request.user.username
|
obj.create_by = request.user.username
|
||||||
return super().save_model(request, obj, form, change)
|
return super().save_model(request, obj, form, change)
|
||||||
|
|
||||||
|
# @staticmethod
|
||||||
|
def ml(self, obj):
|
||||||
|
return f'<el-link type="primary" href={obj.mr_url} target="_blank">{obj.mr_title}</el-link>'
|
||||||
|
|
||||||
|
ml.short_description = "MR地址"
|
||||||
|
|
||||||
|
def pr_url(self, obj):
|
||||||
|
return f'<el-link type="primary" href={obj.project_url} target="_blank">{obj.project.project_name}</el-link>'
|
||||||
|
|
||||||
|
pr_url.short_description = "项目地址"
|
||||||
|
|||||||
20
apps/pr/migrations/0003_projectconfig_project_url.py
Normal file
20
apps/pr/migrations/0003_projectconfig_project_url.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# Generated by Django 5.1.6 on 2025-02-27 11:40
|
||||||
|
|
||||||
|
import simplepro.components.fields
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
dependencies = [
|
||||||
|
("pr", "0002_projecthistory"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="projectconfig",
|
||||||
|
name="project_url",
|
||||||
|
field=simplepro.components.fields.CharField(
|
||||||
|
blank=True, max_length=256, null=True, verbose_name="项目地址"
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -79,6 +79,9 @@ class ProjectConfig(BaseModel):
|
|||||||
project_name = fields.CharField(
|
project_name = fields.CharField(
|
||||||
null=True, blank=True, max_length=16, verbose_name="项目名称"
|
null=True, blank=True, max_length=16, verbose_name="项目名称"
|
||||||
)
|
)
|
||||||
|
project_url = fields.CharField(
|
||||||
|
null=True, blank=True, max_length=256, verbose_name="项目地址"
|
||||||
|
)
|
||||||
project_secret = fields.CharField(
|
project_secret = fields.CharField(
|
||||||
null=True, blank=True, max_length=128, verbose_name="项目密钥"
|
null=True, blank=True, max_length=128, verbose_name="项目密钥"
|
||||||
)
|
)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user