es-num lines-num-old"> 241
try:
- ipui = IsolationPointUserInfo.objects.get(user_id=user_id, status=True)
+ ipui = IsolationPointUserInfo.objects.get(user_id=user_id, member_id=member_id, status=True)
except IsolationPointUserInfo.DoesNotExist:
return response()
@@ -253,11 +260,12 @@ def admin_point_user_remark(request):
@logit
def admin_point_user_temperature_history(request):
user_id = request.POST.get('user_id', '')
+ member_id = request.POST.get('member_id', '')
point_id = request.POST.get('point_id', '')
page = request.POST.get('page', 1)
num = request.POST.get('num', 20)
- logs = ThermometerMeasureLogInfo.objects.filter(point_id=point_id, user_id=user_id, status=True)
+ logs = ThermometerMeasureLogInfo.objects.filter(point_id=point_id, user_id=user_id, member_id=member_id, status=True)
count = logs.count()
logs, left = pagination(logs, page, num)
@@ -5,7 +5,7 @@ from django_admin import ReadOnlyModelAdmin |
||
| 5 | 5 |
|
| 6 | 6 |
from equipment.models import (AepThermometerMeasureLogInfo, AntigenMeasureLogInfo, IsolationPointFieldPoolInfo, |
| 7 | 7 |
IsolationPointInfo, IsolationPointUserInfo, ThermometerEquipmentInfo, |
| 8 |
- ThermometerMeasureLogInfo) |
|
| 8 |
+ ThermometerMeasureLogInfo, FamilyMemberInfo) |
|
| 9 | 9 |
|
| 10 | 10 |
|
| 11 | 11 |
class IsolationPointFieldPoolInfoAdmin(admin.ModelAdmin): |
@@ -20,6 +20,10 @@ class IsolationPointUserInfoAdmin(admin.ModelAdmin): |
||
| 20 | 20 |
list_display = ('point_id', 'user_id', 'fields', 'observed_days', 'chg_sta', 'temperature', 'last_submit_at', 'leave_at', 'status', 'created_at', 'updated_at')
|
| 21 | 21 |
|
| 22 | 22 |
|
| 23 |
+class FamilyMemberInfoAdmin(admin.ModelAdmin): |
|
| 24 |
+ list_display = ('member_id', 'user_id', 'identity_card_number', 'identity_card_name', 'relation', 'status', 'created_at', 'updated_at')
|
|
| 25 |
+ |
|
| 26 |
+ |
|
| 23 | 27 |
class ThermometerEquipmentInfoAdmin(admin.ModelAdmin): |
| 24 | 28 |
list_display = ('eqpt_id', 'point_id', 'macid', 'sn', 'active_status', 'active_at', 'ipui_pk', 'status', 'created_at', 'updated_at')
|
| 25 | 29 |
list_filter = ('point_id', 'status')
|
@@ -45,3 +49,5 @@ admin.site.register(ThermometerEquipmentInfo, ThermometerEquipmentInfoAdmin) |
||
| 45 | 49 |
admin.site.register(ThermometerMeasureLogInfo, ThermometerMeasureLogInfoAdmin) |
| 46 | 50 |
admin.site.register(AepThermometerMeasureLogInfo, AepThermometerMeasureLogInfoAdmin) |
| 47 | 51 |
admin.site.register(AntigenMeasureLogInfo, AntigenMeasureLogInfoAdmin) |
| 52 |
+admin.site.register(FamilyMemberInfo, FamilyMemberInfoAdmin) |
|
| 53 |
+ |
@@ -0,0 +1,42 @@ |
||
| 1 |
+# Generated by Django 3.2.16 on 2022-12-02 06:15 |
|
| 2 |
+ |
|
| 3 |
+from django.db import migrations, models |
|
| 4 |
+import shortuuidfield.fields |
|
| 5 |
+ |
|
| 6 |
+ |
|
| 7 |
+class Migration(migrations.Migration): |
|
| 8 |
+ |
|
| 9 |
+ dependencies = [ |
|
| 10 |
+ ('equipment', '0031_auto_20221128_1653'),
|
|
| 11 |
+ ] |
|
| 12 |
+ |
|
| 13 |
+ operations = [ |
|
| 14 |
+ migrations.CreateModel( |
|
| 15 |
+ name='FamilyMemberInfo', |
|
| 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 |
+ ('member_id', shortuuidfield.fields.ShortUUIDField(blank=True, db_index=True, editable=False, help_text='家庭成员唯一标识', max_length=22, null=True, unique=True)),
|
|
| 22 |
+ ('user_id', models.CharField(blank=True, db_index=True, help_text='用户唯一标识', max_length=32, null=True, verbose_name='user_id')),
|
|
| 23 |
+ ('identity_card_number', models.CharField(blank=True, help_text='身份证号', max_length=32, null=True, verbose_name='identity_card_number')),
|
|
| 24 |
+ ('identity_card_name', models.CharField(blank=True, help_text='身份证姓名', max_length=32, null=True, verbose_name='identity_card_name')),
|
|
| 25 |
+ ('relation', models.CharField(choices=[('parent', '父母'), ('child', '子女'), ('spouse', '配偶')], db_index=True, default='child', help_text='家庭关系', max_length=32, verbose_name='relative')),
|
|
| 26 |
+ ], |
|
| 27 |
+ options={
|
|
| 28 |
+ 'verbose_name': '家庭成员信息', |
|
| 29 |
+ 'verbose_name_plural': '家庭成员信息', |
|
| 30 |
+ }, |
|
| 31 |
+ ), |
|
| 32 |
+ migrations.AddField( |
|
| 33 |
+ model_name='isolationpointuserinfo', |
|
| 34 |
+ name='member_id', |
|
| 35 |
+ field=models.CharField(blank=True, db_index=True, help_text='家庭成员唯一标识', max_length=32, null=True, verbose_name='member_id'), |
|
| 36 |
+ ), |
|
| 37 |
+ migrations.AddField( |
|
| 38 |
+ model_name='thermometermeasureloginfo', |
|
| 39 |
+ name='member_id', |
|
| 40 |
+ field=models.CharField(blank=True, help_text='用户唯一标识', max_length=32, null=True, verbose_name='member_id'), |
|
| 41 |
+ ), |
|
| 42 |
+ ] |
@@ -112,6 +112,34 @@ class IsolationPointInfo(BaseModelMixin): |
||
| 112 | 112 |
'qrcode_url': qrcode_url, |
| 113 | 113 |
} |
| 114 | 114 |
|
| 115 |
+class FamilyMemberInfo(BaseModelMixin): |
|
| 116 |
+ RELATION_TUPLE = ( |
|
| 117 |
+ ('parent', '父母'),
|
|
| 118 |
+ ('child', '子女'),
|
|
| 119 |
+ ('spouse', '配偶'),
|
|
| 120 |
+ ) |
|
| 121 |
+ member_id = ShortUUIDField(_('member_id'), max_length=32, blank=True, null=True, help_text='家庭成员唯一标识', db_index=True, unique=True)
|
|
| 122 |
+ user_id = models.CharField(_('user_id'), max_length=32, blank=True, null=True, help_text='用户唯一标识', db_index=True)
|
|
| 123 |
+ identity_card_number = models.CharField(_(u'identity_card_number'), max_length=32, blank=True, null=True, help_text=u'身份证号') |
|
| 124 |
+ identity_card_name = models.CharField(_(u'identity_card_name'), max_length=32, blank=True, null=True, help_text=u'身份证姓名') |
|
| 125 |
+ relation = models.CharField(_('relative'), choices=RELATION_TUPLE, default='child', max_length=32, help_text='家庭关系', db_index=True)
|
|
| 126 |
+ |
|
| 127 |
+ class Meta: |
|
| 128 |
+ verbose_name = _('家庭成员信息')
|
|
| 129 |
+ verbose_name_plural = _('家庭成员信息')
|
|
| 130 |
+ |
|
| 131 |
+ def __unicode__(self): |
|
| 132 |
+ return '%d' % self.pk |
|
| 133 |
+ |
|
| 134 |
+ @property |
|
| 135 |
+ def data(self): |
|
| 136 |
+ return {
|
|
| 137 |
+ 'member_id': self.member_id, |
|
| 138 |
+ 'user_id': self.user_id, |
|
| 139 |
+ 'identity_card_number': self.identity_card_number, |
|
| 140 |
+ 'identity_card_name': self.identity_card_name, |
|
| 141 |
+ 'relation': self.relation, |
|
| 142 |
+ } |
|
| 115 | 143 |
|
| 116 | 144 |
class IsolationPointUserInfo(BaseModelMixin): |
| 117 | 145 |
HAS_NOT_UPLOAD = '未上报' |
@@ -134,6 +162,7 @@ class IsolationPointUserInfo(BaseModelMixin): |
||
| 134 | 162 |
point_id = models.CharField(_('point_id'), max_length=32, blank=True, null=True, help_text='隔离点唯一标识', db_index=True)
|
| 135 | 163 |
|
| 136 | 164 |
user_id = models.CharField(_('user_id'), max_length=32, blank=True, null=True, help_text='用户唯一标识', db_index=True)
|
| 165 |
+ member_id = models.CharField(_('member_id'), max_length=32, blank=True, null=True, help_text='家庭成员唯一标识', db_index=True)
|
|
| 137 | 166 |
|
| 138 | 167 |
fields = JSONField(_('fields'), default=[], blank=True, null=True, help_text='字段信息')
|
| 139 | 168 |
|
@@ -313,6 +342,7 @@ class ThermometerMeasureLogInfo(BaseModelMixin): |
||
| 313 | 342 |
point_id = models.CharField(_('point_id'), max_length=32, blank=True, null=True, help_text='隔离点唯一标识', db_index=True)
|
| 314 | 343 |
|
| 315 | 344 |
user_id = models.CharField(_('user_id'), max_length=32, blank=True, null=True, help_text='用户唯一标识')
|
| 345 |
+ member_id = models.CharField(_('member_id'), max_length=32, blank=True, null=True, help_text='用户唯一标识')
|
|
| 316 | 346 |
|
| 317 | 347 |
macid = models.CharField(_('macid'), max_length=32, blank=True, null=True, help_text='设备号')
|
| 318 | 348 |
sn = models.CharField(_('sn'), max_length=32, blank=True, null=True, help_text='序列号')
|