85 lines
2.7 KiB
Python
85 lines
2.7 KiB
Python
from django.contrib import admin
|
|
from simpleui.admin import AjaxAdmin
|
|
|
|
from pr import models
|
|
|
|
|
|
@admin.register(models.AIConfig)
|
|
class AIConfigAdmin(AjaxAdmin):
|
|
"""Admin配置"""
|
|
|
|
list_display = ["api_base", "api_key", "llm_model"]
|
|
readonly_fields = ["create_by", "delete_at", "detail"]
|
|
list_per_page = 10
|
|
top_html = ' <el-alert title="可配置多个AI模型厂商!" type="success"></el-alert>'
|
|
|
|
def save_model(self, request, obj, form, change):
|
|
obj.create_by = request.user.username
|
|
return super().save_model(request, obj, form, change)
|
|
|
|
|
|
@admin.register(models.GitConfig)
|
|
class GitConfigAdmin(AjaxAdmin):
|
|
"""Admin配置"""
|
|
|
|
list_display = ["git_name", "git_type", "git_url", "access_token"]
|
|
readonly_fields = ["create_by", "delete_at", "detail"]
|
|
list_per_page = 10
|
|
top_html = '<el-alert title="可配置多个Git服务上!" type="success"></el-alert>'
|
|
|
|
def save_model(self, request, obj, form, change):
|
|
obj.create_by = request.user.username
|
|
return super().save_model(request, obj, form, change)
|
|
|
|
|
|
@admin.register(models.ProjectConfig)
|
|
class ProjectConfigAdmin(AjaxAdmin):
|
|
"""Admin配置"""
|
|
|
|
list_display = [
|
|
"project_id",
|
|
"project_name",
|
|
"pr_url",
|
|
"project_secret",
|
|
"commands",
|
|
"is_enable",
|
|
]
|
|
list_filter = ["git_config"]
|
|
list_per_page = 10
|
|
readonly_fields = ["create_by", "delete_at", "detail"]
|
|
top_html = '<el-alert title="可配置多个项目!" type="success"></el-alert>'
|
|
|
|
def save_model(self, request, obj, form, change):
|
|
obj.create_by = request.user.username
|
|
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)
|
|
class ProjectHistoryAdmin(admin.ModelAdmin):
|
|
"""Admin配置"""
|
|
|
|
list_display = ["pr_url", "ml", "source_branch", "target_branch", "mr_title"]
|
|
list_filter = ["project"]
|
|
readonly_fields = ["create_by", "delete_at", "detail"]
|
|
list_per_page = 10
|
|
|
|
def save_model(self, request, obj, form, change):
|
|
obj.create_by = request.user.username
|
|
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 = "项目地址"
|