migrations, models 5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('logs', '0017_complementcodeloginfo_is_upload_qiniu'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.CreateModel(
15
+            name='AdministratorLoginLogInfo',
16
+            fields=[
17
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18
+                ('status', models.BooleanField(default=True, help_text='Status', verbose_name='status')),
19
+                ('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')),
20
+                ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')),
21
+                ('admin_id', models.CharField(blank=True, help_text='管理员唯一标识', max_length=32, null=True, verbose_name='admin_id')),
22
+                ('admin_name', models.CharField(blank=True, help_text='管理员姓名', max_length=255, null=True, verbose_name='name')),
23
+                ('login_ip', models.CharField(blank=True, help_text='登录IP', max_length=32, null=True, verbose_name='login_ip')),
24
+                ('login_at', models.DateTimeField(blank=True, help_text='登录时间', null=True, verbose_name='login_at')),
25
+            ],
26
+            options={
27
+                'abstract': False,
28
+            },
29
+        ),
30
+    ]

+ 16 - 0
logs/models.py

@@ -193,3 +193,19 @@ class ComplementCodeLogInfo(BaseModelMixin):
193 193
             'ciphertext': self.ciphertext,
194 194
             'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d %H:%M:%S')
195 195
         }
196
+
197
+class AdministratorLoginLogInfo(BaseModelMixin):
198
+    admin_id = models.CharField(_(u'admin_id'), max_length=32, blank=True, null=True, help_text=u'管理员唯一标识')
199
+    admin_name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'管理员姓名')
200
+    login_ip = models.CharField(_(u'login_ip'), max_length=32, blank=True, null=True, help_text=_(u'登录IP'))
201
+    login_at = models.DateTimeField(_(u'login_at'), blank=True, null=True, help_text=_(u'登录时间'))
202
+
203
+
204
+    @property
205
+    def admindata(self):
206
+        return {
207
+            'admin_id': self.admin_id,
208
+            'admin_name': self.admin_name,
209
+            'login_ip': self.login_ip,
210
+            'login_at': tc.local_string(utc_dt=self.login_at, format='%Y-%m-%d %H:%M:%S'),
211
+        }

+ 60 - 0
member/migrations/0032_auto_20220704_2001.py

@@ -0,0 +1,60 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 3.2.9 on 2022-07-04 12:01
3
+
4
+from django.db import migrations, models
5
+import simditor.fields
6
+
7
+
8
+class Migration(migrations.Migration):
9
+
10
+    dependencies = [
11
+        ('member', '0031_auto_20211124_1850'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.AlterField(
16
+            model_name='memberactivityinfo',
17
+            name='brand_id',
18
+            field=models.CharField(blank=True, db_index=True, default='', help_text='品牌唯一标识', max_length=32, verbose_name='brand_id'),
19
+        ),
20
+        migrations.AlterField(
21
+            model_name='memberactivityinfo',
22
+            name='brand_name',
23
+            field=models.CharField(blank=True, default='', help_text='品牌名称', max_length=255, verbose_name='brand_name'),
24
+        ),
25
+        migrations.AlterField(
26
+            model_name='memberactivityinfo',
27
+            name='city',
28
+            field=models.CharField(blank=True, default='', help_text='活动城市', max_length=255, verbose_name='city'),
29
+        ),
30
+        migrations.AlterField(
31
+            model_name='memberactivityinfo',
32
+            name='content_rich_text',
33
+            field=simditor.fields.RichTextField(blank=True, default='', help_text='活动描述', verbose_name='content_rich_text'),
34
+        ),
35
+        migrations.AlterField(
36
+            model_name='memberactivityinfo',
37
+            name='location',
38
+            field=models.CharField(blank=True, default='', help_text='活动地点', max_length=255, verbose_name='location'),
39
+        ),
40
+        migrations.AlterField(
41
+            model_name='memberactivityinfo',
42
+            name='share_h5_link',
43
+            field=models.CharField(blank=True, default='', help_text='活动H5分享', max_length=255, verbose_name='share_h5_link'),
44
+        ),
45
+        migrations.AlterField(
46
+            model_name='memberactivityinfo',
47
+            name='share_img_link',
48
+            field=models.CharField(blank=True, default='', help_text='活动图片分享', max_length=255, verbose_name='share_img_link'),
49
+        ),
50
+        migrations.AlterField(
51
+            model_name='memberactivityinfo',
52
+            name='subtitle',
53
+            field=models.CharField(blank=True, default='', help_text='活动二级名称', max_length=255, verbose_name='subtitle'),
54
+        ),
55
+        migrations.AlterField(
56
+            model_name='memberactivityinfo',
57
+            name='title',
58
+            field=models.CharField(blank=True, default='', help_text='活动名称', max_length=255, verbose_name='title'),
59
+        ),
60
+    ]

+ 1 - 1
requirements_dj.txt

@@ -20,7 +20,7 @@ django-redis-connector==1.0.4
20 20
 django-response==1.1.1
21 21
 django-rlog==1.0.7
22 22
 django-shortuuidfield==0.1.3
23
-# django-simpleui==3.9.1
23
+django-simpleui==3.9.1
24 24
 django-six==1.0.4
25 25
 django-uniapi==1.0.10
26 26
 django-we==1.5.6

kodo - Gogs: Go Git Service

Nav apraksta

rshot.py 485B

    # -*- coding: utf-8 -*- from utils.redis.connect import r from utils.redis.rkeys import MEMBER_SHOT_DATA def update_member_shot_data(): from member.models import ShotTypeInfo shots_types = ShotTypeInfo.objects.filter(status=True).order_by('position', '-pk') shots_types = [st.data for st in shots_types] r.setjson(MEMBER_SHOT_DATA, shots_types) return shots_types def get_member_shot_data(): return r.getjson(MEMBER_SHOT_DATA) or update_member_shot_data()