forked from erp-dev/erp
fix: appversions
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user