adding the create code function from ids of devices

This commit is contained in:
Cayo Puigdefabregas 2021-03-04 13:27:29 +01:00
parent 41cadcc0b3
commit bf5cae5f96
2 changed files with 9 additions and 8 deletions

View file

@ -9,7 +9,6 @@ import citext
import sqlalchemy as sa
from alembic import op
from alembic import context
from ereuse_devicehub.resources.device.utils import Hashids
# revision identifiers, used by Alembic.
@ -26,13 +25,9 @@ def get_inv():
return INV
def create_code(context):
_id = context.get_current_parameters()['id']
return Hashids(_id)
def upgrade():
op.add_column('device', sa.Column('code', citext.CIText(),
default=create_code,
unique=True,
nullable=True), schema=f'{get_inv()}')

View file

@ -28,13 +28,19 @@ from teal.marshmallow import ValidationError
from teal.resource import url_for_resource
from ereuse_devicehub.db import db
from ereuse_devicehub.resources.device.utils import Hashids
from ereuse_devicehub.resources.device.utils import hashids
from ereuse_devicehub.resources.enums import BatteryTechnology, CameraFacing, ComputerChassis, \
DataStorageInterface, DisplayTech, PrinterTechnology, RamFormat, RamInterface, Severity, TransferState
from ereuse_devicehub.resources.models import STR_SM_SIZE, Thing, listener_reset_field_updated_in_actual_time
from ereuse_devicehub.resources.user.models import User
def create_code(context):
_id = Device.query.order_by(Device.id.desc()).first() or 1
if not _id == 1:
_id = _id.id + 1
return hashids(_id)
class Device(Thing):
"""Base class for any type of physical object that can be identified.
@ -117,7 +123,7 @@ class Device(Thing):
owner = db.relationship(User, primaryjoin=owner_id == User.id)
allocated = db.Column(Boolean, default=False)
allocated.comment = "device is allocated or not."
code = db.Column(db.CIText(), nullable=True, unique=True)
code = db.Column(db.CIText(), nullable=True, unique=True, default=create_code)
_NON_PHYSICAL_PROPS = {
'id',