Merge pull request #454 from eReuse/bugfix/4350-edit-imei

Bugfix/4350 edit imei
This commit is contained in:
cayop 2023-06-07 16:26:18 +02:00 committed by GitHub
commit a38c990412
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 24 additions and 20 deletions

View File

@ -520,10 +520,10 @@ class NewDeviceForm(FlaskForm):
self.depth.errors = txt self.depth.errors = txt
is_valid = False is_valid = False
if self.imei.data and self.amount.data == 1: # if self.imei.data and self.amount.data == 1:
if not 13 < len(str(self.imei.data)) < 17: # if not 13 < len(str(self.imei.data)) < 17:
self.imei.errors = error # self.imei.errors = error
is_valid = False # is_valid = False
if self.meid.data and self.amount.data == 1: if self.meid.data and self.amount.data == 1:
meid = self.meid.data meid = self.meid.data

View File

@ -34,7 +34,7 @@ from sqlalchemy.ext.hybrid import hybrid_property
from sqlalchemy.orm import ColumnProperty, backref, relationship, validates from sqlalchemy.orm import ColumnProperty, backref, relationship, validates
from sqlalchemy.util import OrderedSet from sqlalchemy.util import OrderedSet
from sqlalchemy_utils import ColorType from sqlalchemy_utils import ColorType
from stdnum import imei, meid from stdnum import meid
from ereuse_devicehub.db import db from ereuse_devicehub.db import db
from ereuse_devicehub.ereuse_utils.naming import HID_CONVERSION_DOC from ereuse_devicehub.ereuse_utils.naming import HID_CONVERSION_DOC
@ -1478,11 +1478,11 @@ class Mobile(Device):
) )
display_size.comment = """The total size of the device screen""" display_size.comment = """The total size of the device screen"""
@validates('imei') # @validates('imei')
def validate_imei(self, _, value: int): # def validate_imei(self, _, value: int):
if value and not imei.is_valid(str(value)): # if value and not imei.is_valid(str(value)):
raise ValidationError('{} is not a valid imei.'.format(value)) # raise ValidationError('{} is not a valid imei.'.format(value))
return value # return value
@validates('meid') @validates('meid')
def validate_meid(self, _, value: str): def validate_meid(self, _, value: str):

View File

@ -16,7 +16,7 @@ from marshmallow.fields import (
) )
from marshmallow.validate import Length, OneOf, Range from marshmallow.validate import Length, OneOf, Range
from sqlalchemy.util import OrderedSet from sqlalchemy.util import OrderedSet
from stdnum import imei, meid from stdnum import meid
from ereuse_devicehub.marshmallow import NestedOn from ereuse_devicehub.marshmallow import NestedOn
from ereuse_devicehub.resources import enums from ereuse_devicehub.resources import enums
@ -304,7 +304,8 @@ class Mobile(Device):
@pre_load @pre_load
def convert_check_imei(self, data): def convert_check_imei(self, data):
if data.get('imei', None): if data.get('imei', None):
data['imei'] = int(imei.validate(data['imei'])) # data['imei'] = int(imei.validate(data['imei']))
data['imei'] = int(data['imei'].replace("-", ""))
return data return data
@pre_load @pre_load

View File

@ -264,6 +264,7 @@ class BaseDeviceRow(OrderedDict):
self['Data Storage Rate'] = '' self['Data Storage Rate'] = ''
self['Data Storage Range'] = '' self['Data Storage Range'] = ''
self['Benchmark RamSysbench (points)'] = '' self['Benchmark RamSysbench (points)'] = ''
self['IMEI'] = ''
class DeviceRow(BaseDeviceRow): class DeviceRow(BaseDeviceRow):
@ -340,6 +341,9 @@ class DeviceRow(BaseDeviceRow):
self.get_placeholder_datas() self.get_placeholder_datas()
if isinstance(device, d.Mobile):
self['IMEI'] = device.imei or ''
def components(self): def components(self):
"""Function to get all components information of a device.""" """Function to get all components information of a device."""
assert isinstance(self.device, d.Computer) assert isinstance(self.device, d.Computer)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -2239,7 +2239,6 @@ def test_manual_binding(user3: UserClientFlask):
@pytest.mark.mvp @pytest.mark.mvp
@pytest.mark.usefixtures(conftest.app_context.__name__) @pytest.mark.usefixtures(conftest.app_context.__name__)
def test_edit_and_binding(user3: UserClientFlask): def test_edit_and_binding(user3: UserClientFlask):
# TODO
uri = '/inventory/device/add/' uri = '/inventory/device/add/'
user3.get(uri) user3.get(uri)