Refactor database models to majorly increase queries needed and decrease load times of home from 30 secs to 5 sec (we will be caching the rest to decrease even further via background tasks)
This commit is contained in:
parent
f7a9b2f823
commit
86c7eba10a
25 changed files with 1941 additions and 1560 deletions
17
cards/signals.py
Normal file
17
cards/signals.py
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
from django.db.models.signals import m2m_changed
|
||||
from django.dispatch import receiver
|
||||
from .models import Card
|
||||
|
||||
@receiver(m2m_changed, sender=Card.decks.through)
|
||||
def update_card_style(sender, instance, action, **kwargs):
|
||||
if action == "post_add":
|
||||
decks = instance.decks.all()
|
||||
num_decks = decks.count()
|
||||
if num_decks == 1:
|
||||
instance.style = "background-color: " + decks.first().hex_color + ";"
|
||||
elif num_decks >= 2:
|
||||
hex_colors = [deck.hex_color for deck in decks]
|
||||
instance.style = f"background: linear-gradient(to right, {', '.join(hex_colors)});"
|
||||
else:
|
||||
instance.style = "background: linear-gradient(to right, #AAAAAA, #AAAAAA, #AAAAAA);"
|
||||
instance.save(update_fields=["style"])
|
||||
Loading…
Add table
Add a link
Reference in a new issue