Remove asset restrictions and make asset groups smarter

This commit is contained in:
2023-02-13 07:20:40 +00:00
parent 287facbab2
commit dcfb963be6
10 changed files with 383 additions and 172 deletions

View File

@@ -41,6 +41,10 @@ SIGNAL_TYPE_CHOICES = (
("exit", "Exit"),
("trend", "Trend"),
)
AGGREGATION_CHOICES = (
("none", "None"),
("avg_sentiment", "Average sentiment"),
)
class Plan(models.Model):
@@ -414,8 +418,17 @@ class AssetGroup(models.Model):
# Dict like {"RUB": True, "USD": False}
allowed = models.JSONField(null=True, blank=True, default=dict)
webhook_id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)
aggregation = models.CharField(
choices=AGGREGATION_CHOICES, max_length=255, default="none"
)
trigger_below = models.FloatField(null=True, blank=True)
trigger_above = models.FloatField(null=True, blank=True)
def __str__(self):
return f"{self.name} ({self.restrictions})"
return f"{self.name}"
@property
def matches(self):
@@ -426,23 +439,16 @@ class AssetGroup(models.Model):
truthy_values = [x for x in self.allowed.values() if x is True]
return f"{len(truthy_values)}/{len(self.allowed)}"
@property
def restrictions(self):
"""
Get the total number of restrictions for this group.
"""
return self.assetrestriction_set.count()
# class AssetRestriction(models.Model):
# user = models.ForeignKey(User, on_delete=models.CASCADE)
# name = models.CharField(max_length=255)
# description = models.TextField(null=True, blank=True)
# pairs = models.CharField(max_length=4096, null=True, blank=True)
# pairs_parsed = models.JSONField(null=True, blank=True, default=list)
class AssetRestriction(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=255)
description = models.TextField(null=True, blank=True)
pairs = models.CharField(max_length=4096, null=True, blank=True)
pairs_parsed = models.JSONField(null=True, blank=True, default=list)
# webhook_id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)
webhook_id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)
group = models.ForeignKey(
AssetGroup, on_delete=models.CASCADE, null=True, blank=True
)
# group = models.ForeignKey(
# AssetGroup, on_delete=models.CASCADE, null=True, blank=True
# )