mirror of
https://github.com/lemeow125/Borrowing-TrackerBackend.git
synced 2025-04-27 10:11:24 +08:00
Improve query caching
This commit is contained in:
parent
8e43e06ec2
commit
e482979d20
4 changed files with 28 additions and 6 deletions
|
@ -191,9 +191,10 @@ class TransactionSerializer(serializers.HyperlinkedModelSerializer):
|
|||
# This updates the status field of all equipment instances in a single query
|
||||
EquipmentInstance.objects.filter(
|
||||
id__in=[equipment.id for equipment in equipments]).update(status='Available')
|
||||
q = super().update(instance, validated_data)
|
||||
cache.delete('available_equipment_instances')
|
||||
cache.delete('equipment_instances')
|
||||
return super().update(instance, validated_data)
|
||||
return q
|
||||
|
||||
# For Approved transactions,
|
||||
# If not changing to Borrowed or Cancelled, throw an error
|
||||
|
@ -210,9 +211,10 @@ class TransactionSerializer(serializers.HyperlinkedModelSerializer):
|
|||
# This updates the status field of all equipment instances in a single query
|
||||
EquipmentInstance.objects.filter(
|
||||
id__in=[equipment.id for equipment in equipments]).update(status='Available')
|
||||
q = super().update(instance, validated_data)
|
||||
cache.delete('available_equipment_instances')
|
||||
cache.delete('equipment_instances')
|
||||
return super().update(instance, validated_data)
|
||||
return q
|
||||
|
||||
# If there are no issues and a transaction changes from Approved to Borrowed, label the selected equipment's statuses as Borrowed
|
||||
if instance.transaction_status == "Approved" and validated_data.get('transaction_status') == "Borrowed":
|
||||
|
@ -254,9 +256,10 @@ class TransactionSerializer(serializers.HyperlinkedModelSerializer):
|
|||
# This updates the status field of all equipment instances in a single query
|
||||
EquipmentInstance.objects.filter(
|
||||
id__in=[equipment.id for equipment in equipments]).update(status='Available')
|
||||
q = super().update(instance, validated_data)
|
||||
cache.delete('available_equipment_instances')
|
||||
cache.delete('equipment_instances')
|
||||
return super().update(instance, validated_data)
|
||||
return q
|
||||
|
||||
# If the transaction changes from Returned: Pending Checking to With Breakages, we create a Breakage Report instance
|
||||
if instance.transaction_status == "Returned: Pending Checking" and validated_data.get('transaction_status') == "With Breakages: Pending Resolution":
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue