1
0
forked from erp-dev/erp

fix: appversions

This commit is contained in:
2026-07-11 00:05:05 +08:00
parent 48e4782e1e
commit e91d06e4b6
26 changed files with 2582 additions and 19 deletions

View File

@@ -1,5 +1,6 @@
from django.contrib import admin
from django.contrib.admin import action
from django import forms
from api_v1.models import (
UploadedFile,
AppVersion,
@@ -14,6 +15,18 @@ from api_v1.models import (
from .tasks import backup_database
class AppVersionAdminForm(forms.ModelForm):
class Meta:
model = AppVersion
fields = '__all__'
def clean(self):
cleaned_data = super().clean()
if not cleaned_data.get('download_url') and not cleaned_data.get('package_file'):
raise forms.ValidationError('请填写下载地址或上传安装包文件。')
return cleaned_data
@admin.register(UploadedFile)
class UploadedFileAdmin(admin.ModelAdmin):
list_display = ['id', 'original_filename', 'owner', 'file_size', 'content_type', 'created_at', 'is_deleted']
@@ -35,6 +48,7 @@ class UploadedFileAdmin(admin.ModelAdmin):
@admin.register(AppVersion)
class AppVersionAdmin(admin.ModelAdmin):
form = AppVersionAdminForm
list_display = [
'id',
'version_display',
@@ -46,15 +60,15 @@ class AppVersionAdmin(admin.ModelAdmin):
]
list_filter = ['is_current', 'force', 'publish_date', 'created_at']
search_fields = ['download_url', 'message']
readonly_fields = ['download_url', 'created_at', 'updated_at']
readonly_fields = ['created_at', 'updated_at']
date_hierarchy = 'created_at'
ordering = ['-is_current', '-created_at']
fields = [
'major',
'minor',
'build',
'package_file',
'download_url',
'package_file',
'force',
'publish_date',
'message',
@@ -67,6 +81,14 @@ class AppVersionAdmin(admin.ModelAdmin):
def version_display(self, obj):
return str(obj)
def get_form(self, request, obj=None, **kwargs):
form = super().get_form(request, obj, **kwargs)
field = form.base_fields.get('download_url')
if field:
field.required = False
field.help_text = '可填写已可下载的 APK URL如同时上传安装包以此 URL 优先。'
return form
@admin.register(DataSync)
class DataSyncAdmin(admin.ModelAdmin):