From 4a570f80baf8c223f114a7be509e97ae0c9216a8 Mon Sep 17 00:00:00 2001 From: ngfchl Date: Wed, 4 Jan 2023 22:03:43 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=8D=87=E7=BA=A7=E8=BF=9B?= =?UTF-8?q?=E5=BA=A6=E8=A1=A8-=E6=B7=BB=E5=8A=A0=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pt_site/admin.py | 20 ++++++++- ...tions_alter_userlevelrule_days_and_more.py | 42 +++++++++++++++++++ pt_site/models.py | 13 ++++-- 3 files changed, 70 insertions(+), 5 deletions(-) create mode 100644 pt_site/migrations/0026_alter_userlevelrule_options_alter_userlevelrule_days_and_more.py diff --git a/pt_site/admin.py b/pt_site/admin.py index 763b27f..c6c69d5 100644 --- a/pt_site/admin.py +++ b/pt_site/admin.py @@ -12,7 +12,7 @@ from simpleui.admin import AjaxAdmin from transmission_rpc import Torrent from pt_site.UtilityTool import MessageTemplate, FileSizeConvert -from pt_site.models import Site, Downloader, SignIn +from pt_site.models import Site, Downloader, SignIn, UserLevelRule from pt_site.models import TorrentInfo, SiteStatus, MySite # Register your models here. from pt_site.views import pool, pt_spider @@ -191,6 +191,24 @@ class SiteAdmin(admin.ModelAdmin): # instead of ModelAdmin ) +@admin.register(UserLevelRule) +class UserLevelRuleAdmin(AjaxAdmin): + # 显示字段 + list_display = ( + 'site', + 'level_id', + 'level', + 'days', + # 'uploaded', + 'downloaded', + 'bonus', + 'score', + 'ratio', + 'torrents', + 'rights', + ) + + class StatusInlines(TabularInlinePaginated): model = SiteStatus per_page = 10 diff --git a/pt_site/migrations/0026_alter_userlevelrule_options_alter_userlevelrule_days_and_more.py b/pt_site/migrations/0026_alter_userlevelrule_options_alter_userlevelrule_days_and_more.py new file mode 100644 index 0000000..2672243 --- /dev/null +++ b/pt_site/migrations/0026_alter_userlevelrule_options_alter_userlevelrule_days_and_more.py @@ -0,0 +1,42 @@ +# Generated by Django 4.1.2 on 2023-01-04 21:43 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('pt_site', '0025_userlevelrule'), + ] + + operations = [ + migrations.AlterModelOptions( + name='userlevelrule', + options={'verbose_name': '升级进度', 'verbose_name_plural': '升级进度'}, + ), + migrations.AlterField( + model_name='userlevelrule', + name='days', + field=models.IntegerField(default=0, help_text='单位:天', verbose_name='时 间'), + ), + migrations.AlterField( + model_name='userlevelrule', + name='downloaded', + field=models.IntegerField(default=0, help_text='单位:GB', verbose_name='下 载'), + ), + migrations.AlterField( + model_name='userlevelrule', + name='site', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='pt_site.site', verbose_name='站 点'), + ), + migrations.AlterField( + model_name='userlevelrule', + name='uploaded', + field=models.IntegerField(default=0, help_text='单位:GB', verbose_name='上 传'), + ), + migrations.AlterUniqueTogether( + name='userlevelrule', + unique_together={('site', 'level_id')}, + ), + ] diff --git a/pt_site/models.py b/pt_site/models.py index 630ac30..233129d 100644 --- a/pt_site/models.py +++ b/pt_site/models.py @@ -259,12 +259,12 @@ class Site(BaseEntity): class UserLevelRule(BaseEntity): - site = models.OneToOneField(verbose_name='站 点', to=Site, on_delete=models.CASCADE) + site = models.ForeignKey(verbose_name='站 点', to=Site, on_delete=models.CASCADE) level_id = models.IntegerField(verbose_name='等级id', default=1) level = models.CharField(verbose_name='等 级', default='User', max_length=24) - days = models.IntegerField(verbose_name='时 间', default=0) - uploaded = models.IntegerField(verbose_name='上 传', default=0) - downloaded = models.IntegerField(verbose_name='下 载', default=0) + days = models.IntegerField(verbose_name='时 间', default=0, help_text='单位:天') + uploaded = models.IntegerField(verbose_name='上 传', default=0, help_text='单位:GB') + downloaded = models.IntegerField(verbose_name='下 载', default=0, help_text='单位:GB') bonus = models.IntegerField(verbose_name='魔 力', default=0) score = models.IntegerField(verbose_name='积 分', default=0) ratio = models.FloatField(verbose_name='分享率', default=0) @@ -275,6 +275,11 @@ class UserLevelRule(BaseEntity): def __str__(self): return f'{self.site.nickname}/{self.level}' + class Meta: + unique_together = ('site', 'level_id', 'level',) + verbose_name = '升级进度' + verbose_name_plural = verbose_name + class MySite(BaseEntity): site = models.OneToOneField(verbose_name='站点', to=Site, on_delete=models.CASCADE)