convert example & homeassistant specific configs to a generic with all optional fields

This commit is contained in:
Mikhail Epifanov
2024-01-17 22:25:02 +01:00
parent 245787b89e
commit 409c0295ec
20 changed files with 159 additions and 316 deletions

View File

@ -339,8 +339,7 @@ class Space(ExportModelOperationsMixin('space'), models.Model):
SyncLog.objects.filter(sync__space=self).delete()
Sync.objects.filter(space=self).delete()
Storage.objects.filter(space=self).delete()
HomeAssistantConfig.objects.filter(space=self).delete()
ExampleConfig.objects.filter(space=self).delete()
ConnectorConfig.objects.filter(space=self).delete()
ShoppingListEntry.objects.filter(shoppinglist__space=self).delete()
ShoppingListRecipe.objects.filter(shoppinglist__space=self).delete()
@ -366,30 +365,28 @@ class Space(ExportModelOperationsMixin('space'), models.Model):
class ConnectorConfig(models.Model, PermissionModelMixin):
HOMEASSISTANT = 'HomeAssistant'
CONNECTER_TYPE = ((HOMEASSISTANT, 'HomeAssistant'),)
name = models.CharField(max_length=128, validators=[MinLengthValidator(1)])
type = models.CharField(
choices=CONNECTER_TYPE, max_length=128, default=HOMEASSISTANT
)
enabled = models.BooleanField(default=True, help_text="Is Connector Enabled")
on_shopping_list_entry_created_enabled = models.BooleanField(default=False)
on_shopping_list_entry_updated_enabled = models.BooleanField(default=False)
on_shopping_list_entry_deleted_enabled = models.BooleanField(default=False)
url = models.URLField(blank=True, null=True)
token = models.CharField(max_length=512, blank=True, null=True)
todo_entity = models.CharField(max_length=128, blank=True, null=True)
created_by = models.ForeignKey(User, on_delete=models.PROTECT)
space = models.ForeignKey(Space, on_delete=models.CASCADE)
objects = ScopedManager(space='space')
class Meta:
abstract = True
class HomeAssistantConfig(ConnectorConfig):
url = models.URLField(blank=True)
token = models.CharField(max_length=512, blank=True)
todo_entity = models.CharField(max_length=128, default='todo.shopping_list')
class ExampleConfig(ConnectorConfig):
feed_url = models.URLField(blank=True)
class UserPreference(models.Model, PermissionModelMixin):