device login
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
# Generated by Django 5.0 on 2025-08-17 12:03
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pos_device', '0059_device_pre_registered_alter_device_acceptor_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='sessions',
|
||||
name='latitude',
|
||||
field=models.FloatField(default=0, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='sessions',
|
||||
name='longitude',
|
||||
field=models.FloatField(default=0, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='sessions',
|
||||
name='version',
|
||||
field=models.IntegerField(default=0, null=True),
|
||||
),
|
||||
]
|
||||
@@ -127,13 +127,13 @@ class Sessions(BaseModel):
|
||||
)
|
||||
name = models.CharField(max_length=250, null=True)
|
||||
password = models.CharField(max_length=25, null=True)
|
||||
version = models.IntegerField(default=0)
|
||||
version = models.IntegerField(default=0, null=True)
|
||||
mac = models.CharField(max_length=50, null=True)
|
||||
ip = models.CharField(max_length=15, default='0.0.0.0')
|
||||
sdk = models.TextField(null=True)
|
||||
serial = models.TextField(null=True)
|
||||
latitude = models.FloatField(default=0)
|
||||
longitude = models.FloatField(default=0)
|
||||
latitude = models.FloatField(default=0, null=True)
|
||||
longitude = models.FloatField(default=0, null=True)
|
||||
|
||||
def __str__(self):
|
||||
return f'Session: {self.name}-{self.version}-{self.id}'
|
||||
|
||||
@@ -42,13 +42,13 @@ class POSDeviceViewSet(viewsets.ModelViewSet):
|
||||
|
||||
# check if device exists
|
||||
if 'device_identity' in request.data.keys():
|
||||
device = self.device_queryset.filter(device_identity=request.data['device_identity'])
|
||||
device = self.device_queryset.filter(device_identity=request.data['device_identity']).first()
|
||||
else:
|
||||
device = self.device_queryset.filter(serial=serial).first()
|
||||
|
||||
# activate device
|
||||
if device:
|
||||
if not device.is_activated:
|
||||
if not device.is_activated and not device.pre_registered:
|
||||
device.is_activated = True
|
||||
device.save()
|
||||
|
||||
@@ -71,16 +71,15 @@ class POSDeviceViewSet(viewsets.ModelViewSet):
|
||||
|
||||
pre_device = pos_models.Device.objects.create(
|
||||
serial=serial,
|
||||
sdk=sdk,
|
||||
organization=organization,
|
||||
pre_regitered=True,
|
||||
pre_registered=True,
|
||||
is_activated=False
|
||||
)
|
||||
|
||||
return Response({
|
||||
"message": "device pre-registered",
|
||||
"device_identity": pre_device.device_identity
|
||||
}, status=status.HTTP_200_OK)
|
||||
}, status=status.HTTP_412_PRECONDITION_FAILED)
|
||||
|
||||
@action(
|
||||
methods=['post'],
|
||||
@@ -93,10 +92,11 @@ class POSDeviceViewSet(viewsets.ModelViewSet):
|
||||
def merge_devices(self, request):
|
||||
""" merge pre register device & device has registered by psp user """
|
||||
|
||||
pre_device = self.device_queryset.get(device_identity=request.data['pre_device'])
|
||||
real_device = self.device_queryset.get(device_identity=request.data['real_device'])
|
||||
pre_device = self.device_queryset.get(device_identity=request.data['pre_device_identity'])
|
||||
real_device = self.device_queryset.get(device_identity=request.data['real_device_identity'])
|
||||
|
||||
real_device.device_identity = pre_device.device_identity
|
||||
real_device.is_activated = True
|
||||
real_device.save()
|
||||
|
||||
pre_device.delete()
|
||||
|
||||
@@ -1 +1,11 @@
|
||||
import typing
|
||||
|
||||
|
||||
def get_device_organization(assignment: object = None, device_serial: str = None) -> typing.Any:
|
||||
""" get device owner (organization) information """
|
||||
|
||||
organization = assignment.objects.filter( # noqa
|
||||
device__serial=device_serial
|
||||
).first()
|
||||
|
||||
return organization
|
||||
|
||||
Reference in New Issue
Block a user