drop all ethereum_address in the system
This commit is contained in:
parent
6b7571fe86
commit
72466003d0
|
@ -188,8 +188,8 @@ class Dummy:
|
|||
# For netbook: to preapre -> torepair -> to dispose -> disposed
|
||||
print('⭐ Done.')
|
||||
|
||||
def user_client(self, email: str, password: str, name: str, ethereum_address: str):
|
||||
user = User(email=email, password=password, ethereum_address=ethereum_address)
|
||||
def user_client(self, email: str, password: str, name: str:
|
||||
user = User(email=email, password=password)
|
||||
|
||||
user.individuals.add(Person(name=name))
|
||||
db.session.add(user)
|
||||
|
|
|
@ -31,7 +31,14 @@ def upgrade():
|
|||
op.alter_column('computer', 'deposit', new_column_name='amount', schema=f'{get_inv()}')
|
||||
op.alter_column('lot', 'deposit', new_column_name='amount', schema=f'{get_inv()}')
|
||||
op.drop_column('computer', 'deliverynote_address', schema=f'{get_inv()}')
|
||||
op.drop_column('computer', 'ethereum_address', schema=f'{get_inv()}')
|
||||
op.drop_column('user', 'ethereum_address', schema='common')
|
||||
op.drop_column('lot', 'deliverynote_address', schema=f'{get_inv()}')
|
||||
|
||||
op.drop_column('lot', 'receiver_address', schema=f'{get_inv()}')
|
||||
op.add_column('lot', sa.Column('receiver_address', citext.CIText(), nullable=True), schema=f'{get_inv()}')
|
||||
op.add_column('lot', sa.ForeignKeyConstraint(['receiver_address'], ['common.user.email'],), schema=f'{get_inv()}')
|
||||
|
||||
op.drop_table('proof_function', schema=f'{get_inv()}')
|
||||
op.drop_table('proof_data_wipe', schema=f'{get_inv()}')
|
||||
op.drop_table('proof_transfer', schema=f'{get_inv()}')
|
||||
|
@ -45,10 +52,20 @@ def upgrade():
|
|||
def downgrade():
|
||||
op.add_column('deliverynote', sa.Column('ethereum_address', citext.CIText(), nullable=True), schema=f'{get_inv()}')
|
||||
op.alter_column('deliverynote', 'amount', new_column_name='deposit', schema=f'{get_inv()}')
|
||||
op.alter_column('computer', 'amount', new_column_name='deposit', schema=f'{get_inv()}')
|
||||
op.alter_column('lot', 'amount', new_column_name='deposit', schema=f'{get_inv()}')
|
||||
op.add_column('computer', sa.Column('deliverynote_address', citext.CIText(), nullable=True), schema=f'{get_inv()}')
|
||||
op.add_column('lot', sa.Column('deliverynote_address', citext.CIText(), nullable=True), schema=f'{get_inv()}')
|
||||
|
||||
# =====
|
||||
op.alter_column('computer', 'amount', new_column_name='deposit', schema=f'{get_inv()}')
|
||||
op.alter_column('lot', 'amount', new_column_name='deposit', schema=f'{get_inv()}')
|
||||
|
||||
# =====
|
||||
op.add_column('computer', sa.Column('ethereum_address', citext.CIText(), nullable=True), schema=f'{get_inv()}')
|
||||
op.add_column('user', sa.Column('ethereum_address', citext.CIText(), nullable=True), schema='common')
|
||||
op.add_column('lot', sa.Column('receiver_address', citext.CIText(), nullable=True), schema=f'{get_inv()}')
|
||||
op.add_column('lot', sa.ForeignKeyConstraint(['receiver_address'], ['common.user.ethereum_address'],), schema=f'{get_inv()}')
|
||||
|
||||
# =====
|
||||
op.create_table('proof',
|
||||
sa.Column('updated', sa.TIMESTAMP(timezone=True), server_default=sa.text('CURRENT_TIMESTAMP'),
|
||||
nullable=False,
|
||||
|
|
|
@ -35,13 +35,6 @@ class DeliverynoteView(View):
|
|||
# computers = [x for x in dlvnote.transferred_devices if isinstance(x, Computer)]
|
||||
for key, value in d.items():
|
||||
setattr(dlvnote, key, value)
|
||||
# Transalate ethereum_address attribute
|
||||
# devKey = key
|
||||
# if key == 'ethereum_address':
|
||||
# devKey = 'deliverynote_address'
|
||||
# if devKey in device_fields:
|
||||
# for dev in computers:
|
||||
# setattr(dev, devKey, value)
|
||||
|
||||
db.session.commit()
|
||||
return Response(status=204)
|
||||
|
|
|
@ -471,7 +471,6 @@ class Computer(Device):
|
|||
|
||||
It is a subset of the Linux definition of DMI / DMI decode.
|
||||
"""
|
||||
ethereum_address = Column(CIText(), unique=True, default=None)
|
||||
amount = Column(Integer, check_range('amount', min=0, max=100), default=0)
|
||||
owner_id = db.Column(UUID(as_uuid=True),
|
||||
db.ForeignKey(User.id),
|
||||
|
|
|
@ -144,7 +144,7 @@ class Computer(DisplayMixin, Device):
|
|||
amount = ... # type: Column
|
||||
owner_address = ... # type: Column
|
||||
transfer_state = ... # type: Column
|
||||
receiver_address = ... # type: Column
|
||||
receiver_id = ... # uuid: Column
|
||||
|
||||
def __init__(self, **kwargs) -> None:
|
||||
super().__init__(**kwargs)
|
||||
|
|
|
@ -123,7 +123,6 @@ class Computer(Device):
|
|||
dump_only=True,
|
||||
collection_class=set,
|
||||
description=m.Computer.privacy.__doc__)
|
||||
ethereum_address = SanitizedStr(validate=f.validate.Length(max=42))
|
||||
amount = Integer(validate=f.validate.Range(min=0, max=100),
|
||||
description=m.Computer.amount.__doc__)
|
||||
# author_id = NestedOn(s_user.User,only_query='author_id')
|
||||
|
|
|
@ -106,7 +106,7 @@ class DeviceView(View):
|
|||
resource_def = app.resources['Computer']
|
||||
# TODO check how to handle the 'actions_one'
|
||||
patch_schema = resource_def.SCHEMA(
|
||||
only=['ethereum_address', 'transfer_state', 'actions_one'], partial=True)
|
||||
only=['transfer_state', 'actions_one'], partial=True)
|
||||
json = request.get_json(schema=patch_schema)
|
||||
# TODO check how to handle the 'actions_one'
|
||||
json.pop('actions_one')
|
||||
|
|
|
@ -72,9 +72,10 @@ class Lot(Thing):
|
|||
transfer_state = db.Column(IntEnum(TransferState), default=TransferState.Initial, nullable=False)
|
||||
transfer_state.comment = TransferState.__doc__
|
||||
receiver_address = db.Column(CIText(),
|
||||
db.ForeignKey(User.ethereum_address),
|
||||
nullable=True)
|
||||
receiver = db.relationship(User, primaryjoin=receiver_address == User.ethereum_address)
|
||||
db.ForeignKey(User.email),
|
||||
nullable=False,
|
||||
default=lambda: g.user.email)
|
||||
receiver = db.relationship(User, primaryjoin=receiver_address == User.email)
|
||||
|
||||
def __init__(self, name: str, closed: bool = closed.default.arg,
|
||||
description: str = None) -> None:
|
||||
|
|
|
@ -25,11 +25,10 @@ class User(Thing):
|
|||
backref=db.backref('users', lazy=True, collection_class=set),
|
||||
secondary=lambda: UserInventory.__table__,
|
||||
collection_class=set)
|
||||
ethereum_address = Column(CIText(), unique=True, default=None)
|
||||
|
||||
# todo set restriction that user has, at least, one active db
|
||||
|
||||
def __init__(self, email, password=None, ethereum_address=None, inventories=None) -> None:
|
||||
def __init__(self, email, password=None, inventories=None) -> None:
|
||||
"""Creates an user.
|
||||
:param email:
|
||||
:param password:
|
||||
|
@ -38,7 +37,7 @@ class User(Thing):
|
|||
inventory.
|
||||
"""
|
||||
inventories = inventories or {Inventory.current}
|
||||
super().__init__(email=email, password=password, ethereum_address=ethereum_address, inventories=inventories)
|
||||
super().__init__(email=email, password=password, inventories=inventories)
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return '<User {0.email}>'.format(self)
|
||||
|
@ -52,11 +51,6 @@ class User(Thing):
|
|||
"""The individual associated for this database, or None."""
|
||||
return next(iter(self.individuals), None)
|
||||
|
||||
@property
|
||||
def get_ethereum_address(self):
|
||||
"""The ethereum address in Blockchain, or None."""
|
||||
return next(iter(self.ethereum_address), None)
|
||||
|
||||
|
||||
class UserInventory(db.Model):
|
||||
"""Relationship between users and their inventories."""
|
||||
|
|
|
@ -17,7 +17,6 @@ class User(Thing):
|
|||
password = ... # type: Column
|
||||
token = ... # type: Column
|
||||
inventories = ... # type: relationship
|
||||
ethereum_address = ... # type: Column
|
||||
|
||||
def __init__(self, email: str, password: str = None,
|
||||
inventories: Set[Inventory] = None) -> None:
|
||||
|
@ -28,7 +27,6 @@ class User(Thing):
|
|||
self.individuals = ... # type: Set[Individual]
|
||||
self.token = ... # type: UUID
|
||||
self.inventories = ... # type: Set[Inventory]
|
||||
self.ethereum_address = ... # type: str
|
||||
|
||||
@property
|
||||
def individual(self) -> Union[Individual, None]:
|
||||
|
|
|
@ -19,7 +19,6 @@ class User(Thing):
|
|||
description='Use this token in an Authorization header to access the app.'
|
||||
'The token can change overtime.')
|
||||
inventories = NestedOn(Inventory, many=True, dump_only=True)
|
||||
ethereum_address = String(description='User identifier address inside the Blockchain')
|
||||
|
||||
def __init__(self,
|
||||
only=None,
|
||||
|
|
|
@ -15,7 +15,7 @@ class UserView(View):
|
|||
|
||||
def login():
|
||||
# We use custom schema as we only want to parse a subset of user
|
||||
user_s = g.resource_def.SCHEMA(only=('email', 'password', 'ethereum_address')) # type: UserS
|
||||
user_s = g.resource_def.SCHEMA(only=('email', 'password')) # type: UserS
|
||||
# noinspection PyArgumentList
|
||||
u = request.get_json(schema=user_s)
|
||||
user = User.query.filter_by(email=u['email']).one_or_none()
|
||||
|
|
Reference in New Issue