adding deallocate
This commit is contained in:
parent
cc6f16934d
commit
5adfad8a5e
|
@ -320,11 +320,7 @@ class Allocate(JoinedTableMixin, ActionWithMultipleDevices):
|
|||
|
||||
|
||||
class Deallocate(JoinedTableMixin, ActionWithMultipleDevices):
|
||||
@property
|
||||
def allocate(self):
|
||||
"""The URL of the allocate than closes one allocate. """
|
||||
allocate = [a for a in self.devices[0].actions if is_instance(action, 'Allocate')][-1]
|
||||
return urlutils.URL(url_for_resource('Allocate', item=allocate))
|
||||
pass
|
||||
|
||||
|
||||
class EraseBasic(JoinedWithOneDeviceMixin, ActionWithOneDevice):
|
||||
|
|
|
@ -9,7 +9,6 @@ class AssignedDef(Resource):
|
|||
SCHEMA = schemas.Allocate
|
||||
|
||||
|
||||
# class EndAssignedDef(Resource):
|
||||
# VIEW = DeAllocateView
|
||||
# SCHEMA = schemas.DeAllocate
|
||||
|
||||
class EndAssignedDef(Resource):
|
||||
VIEW = DeAllocateView
|
||||
SCHEMA = schemas.Deallocate
|
||||
|
|
|
@ -7,68 +7,71 @@ from teal.resource import View
|
|||
from ereuse_devicehub import auth
|
||||
from ereuse_devicehub.db import db
|
||||
from ereuse_devicehub.query import things_response
|
||||
from ereuse_devicehub.resources.action.models import Allocate
|
||||
from ereuse_devicehub.resources.action.models import Allocate, Deallocate
|
||||
|
||||
|
||||
class AllocateView(View):
|
||||
@auth.Auth.requires_auth
|
||||
def get(self, id: uuid.UUID) -> Allocate:
|
||||
return super().get(id)
|
||||
|
||||
|
||||
@auth.Auth.requires_auth
|
||||
def post(self):
|
||||
""" Create one rent """
|
||||
""" Create one allocate """
|
||||
res_json = request.get_json()
|
||||
assigned = Allocate(**res_json)
|
||||
db.session.add(assigned)
|
||||
allocate = Allocate(**res_json)
|
||||
db.session.add(allocate)
|
||||
db.session().final_flush()
|
||||
ret = self.schema.jsonify(assigned)
|
||||
ret = self.schema.jsonify(allocate)
|
||||
ret.status_code = 201
|
||||
db.session.commit()
|
||||
return ret
|
||||
|
||||
def find(self, args: dict):
|
||||
rents = Allocate.query.filter_by(author=g.user) \
|
||||
allocates = Allocate.query.filter_by(author=g.user) \
|
||||
.order_by(Allocate.created.desc()) \
|
||||
.paginate(per_page=200)
|
||||
return things_response(
|
||||
self.schema.dump(rents.items, many=True, nested=0),
|
||||
rents.page, rents.per_page, rents.total, rents.prev_num, rents.next_num
|
||||
self.schema.dump(allocates.items, many=True, nested=0),
|
||||
allocates.page, allocates.per_page, allocates.total,
|
||||
allocates.prev_num, allocates.next_num
|
||||
)
|
||||
|
||||
def one(self, id: uuid.UUID):
|
||||
"""Gets one action."""
|
||||
assigned = Allocate.query.filter_by(id=id, author=g.user).one()
|
||||
return self.schema.jsonify(assigned, nested=2)
|
||||
allocate = Allocate.query.filter_by(id=id, author=g.user).one()
|
||||
return self.schema.jsonify(allocate, nested=2)
|
||||
|
||||
|
||||
|
||||
class DeAllocateView(View):
|
||||
@auth.Auth.requires_auth
|
||||
def get(self, id: uuid.UUID) -> Allocate:
|
||||
return super().get(id)
|
||||
|
||||
|
||||
@auth.Auth.requires_auth
|
||||
def post(self):
|
||||
""" Create one rent """
|
||||
""" Create one Deallocate """
|
||||
res_json = request.get_json()
|
||||
assigned = Allocate(**res_json)
|
||||
db.session.add(assigned)
|
||||
deallocate = Deallocate(**res_json)
|
||||
db.session.add(deallocate)
|
||||
db.session().final_flush()
|
||||
ret = self.schema.jsonify(assigned)
|
||||
ret = self.schema.jsonify(deallocate)
|
||||
ret.status_code = 201
|
||||
db.session.commit()
|
||||
return ret
|
||||
|
||||
def find(self, args: dict):
|
||||
rents = Allocate.query.filter_by(author=g.user) \
|
||||
.order_by(Allocate.created.desc()) \
|
||||
deallocates = Deallocate.query.filter_by(author=g.user) \
|
||||
.order_by(Deallocate.created.desc()) \
|
||||
.paginate(per_page=200)
|
||||
return things_response(
|
||||
self.schema.dump(rents.items, many=True, nested=0),
|
||||
rents.page, rents.per_page, rents.total, rents.prev_num, rents.next_num
|
||||
self.schema.dump(deallocates.items, many=True, nested=0),
|
||||
deallocates.page, deallocates.per_page, deallocates.total,
|
||||
deallocates.prev_num, deallocates.next_num
|
||||
)
|
||||
|
||||
def one(self, id: uuid.UUID):
|
||||
"""Gets one action."""
|
||||
assigned = Allocate.query.filter_by(id=id, author=g.user).one()
|
||||
return self.schema.jsonify(assigned, nested=2)
|
||||
deallocate = Deallocate.query.filter_by(id=id, author=g.user).one()
|
||||
res = self.schema.jsonify(deallocate, nested=2)
|
||||
return res
|
||||
|
|
Reference in a new issue