diff --git a/ereuse_devicehub/inventory/forms.py b/ereuse_devicehub/inventory/forms.py
index cfe7fee4..2857f34a 100644
--- a/ereuse_devicehub/inventory/forms.py
+++ b/ereuse_devicehub/inventory/forms.py
@@ -42,11 +42,14 @@ from ereuse_devicehub.resources.device.models import (
SAI,
Cellphone,
ComputerMonitor,
+ Desktop,
Device,
Keyboard,
+ Laptop,
MemoryCardReader,
Mouse,
Placeholder,
+ Server,
Smartphone,
Tablet,
)
@@ -333,6 +336,9 @@ class NewDeviceForm(FlaskForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.devices = {
+ "Laptop": Laptop,
+ "Desktop": Desktop,
+ "Server": Server,
"Smartphone": Smartphone,
"Tablet": Tablet,
"Cellphone": Cellphone,
@@ -397,6 +403,15 @@ class NewDeviceForm(FlaskForm):
self.meid.errors = error
is_valid = False
+ if self.phid.data:
+ dev = Device.query.filter_by(
+ hid=self.phid.data, owner=g.user, active=True
+ ).first()
+ if dev and not dev.placeholder:
+ msg = "Sorry, exist one snapshot device with this HID"
+ self.phid.errors = [msg]
+ is_valid = False
+
if not is_valid:
return False
@@ -465,11 +480,12 @@ class NewDeviceForm(FlaskForm):
_hid = self.phid.data
if not _hid:
_hid = Placeholder.query.order_by(Placeholder.id.desc()).first()
- if not _hid:
+ if _hid:
+ _hid = str(_hid.id + 1)
+ else:
_hid = '1'
- _hid = str(_hid.id + 1)
- snapshot_json['device'].hid = _hid
+ snapshot_json['device'].hid = _hid.lower()
snapshot = upload_form.build(snapshot_json)
diff --git a/ereuse_devicehub/templates/inventory/device_create.html b/ereuse_devicehub/templates/inventory/device_create.html
index 1243b41d..c36e2e79 100644
--- a/ereuse_devicehub/templates/inventory/device_create.html
+++ b/ereuse_devicehub/templates/inventory/device_create.html
@@ -36,6 +36,14 @@