Remove asset restrictions and make asset groups smarter
This commit is contained in:
@@ -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
|
||||
# )
|
||||
|
||||
Reference in New Issue
Block a user