add enabled field

This commit is contained in:
Mikhail Epifanov 2024-01-11 23:09:42 +01:00
parent f1b41461db
commit a61f79507b
No known key found for this signature in database
10 changed files with 18 additions and 7 deletions

View File

@ -96,8 +96,8 @@ admin.site.register(Storage, StorageAdmin)
class HomeAssistantConfigAdmin(admin.ModelAdmin):
list_display = ('name',)
search_fields = ('name',)
list_display = ('id', 'name', 'enabled', 'url')
search_fields = ('name', 'url')
admin.site.register(HomeAssistantConfig, HomeAssistantConfigAdmin)

View File

@ -16,4 +16,5 @@ class Connector(ABC):
async def on_shopping_list_entry_deleted(self, space: Space, instance: ShoppingListEntry) -> None:
pass
# TODO: Maybe add an 'IsEnabled(self) -> Bool' to here
# TODO: Add Recipes & possibly Meal Place listeners/hooks (And maybe more?)

View File

@ -35,7 +35,7 @@ class ConnectorManager:
connectors: List[Connector] = self._connectors[space.name]
else:
with scope(space=space):
connectors: List[Connector] = [HomeAssistant(config) for config in space.homeassistantconfig_set.all()]
connectors: List[Connector] = [HomeAssistant(config) for config in space.homeassistantconfig_set.all() if config.enabled]
self._connectors[space.name] = connectors
if len(connectors) == 0 or purge_connector_cache:

View File

@ -202,6 +202,11 @@ class HomeAssistantConfigForm(forms.ModelForm):
help_text=_('Something like http://homeassistant.local:8123/api'),
)
enabled = forms.BooleanField(
help_text="Is the HomeAssistantConnector enabled",
required=False,
)
on_shopping_list_entry_created_enabled = forms.BooleanField(
help_text="Enable syncing ShoppingListEntry to Homeassistant Todo List -- Warning: Might have negative performance impact",
required=False,
@ -220,7 +225,8 @@ class HomeAssistantConfigForm(forms.ModelForm):
class Meta:
model = HomeAssistantConfig
fields = (
'name', 'url', 'token', 'todo_entity', 'on_shopping_list_entry_created_enabled', 'on_shopping_list_entry_updated_enabled', 'on_shopping_list_entry_deleted_enabled')
'name', 'url', 'token', 'todo_entity', 'enabled', 'on_shopping_list_entry_created_enabled', 'on_shopping_list_entry_updated_enabled',
'on_shopping_list_entry_deleted_enabled')
help_texts = {
'url': _('http://homeassistant.local:8123/api for example'),

View File

@ -1,4 +1,4 @@
# Generated by Django 4.2.7 on 2024-01-11 21:34
# Generated by Django 4.2.7 on 2024-01-11 22:06
import cookbook.models
from django.conf import settings
@ -23,6 +23,7 @@ class Migration(migrations.Migration):
('url', models.URLField(blank=True)),
('token', models.CharField(blank=True, max_length=512)),
('todo_entity', models.CharField(default='todo.shopping_list', max_length=128)),
('enabled', models.BooleanField(default=True, help_text='Is HomeAssistant Connector Enabled')),
('on_shopping_list_entry_created_enabled', models.BooleanField(default=False, help_text='Enable syncing ShoppingListEntry to Homeassistant Todo List')),
('on_shopping_list_entry_updated_enabled', models.BooleanField(default=False, help_text='PLACEHOLDER')),
('on_shopping_list_entry_deleted_enabled', models.BooleanField(default=False, help_text='Enable syncing ShoppingListEntry deletion to Homeassistant Todo List')),

View File

@ -374,6 +374,7 @@ class HomeAssistantConfig(models.Model, PermissionModelMixin):
todo_entity = models.CharField(max_length=128, default='todo.shopping_list')
enabled = models.BooleanField(default=True, help_text="Is HomeAssistant Connector Enabled")
on_shopping_list_entry_created_enabled = models.BooleanField(default=False, help_text="Enable syncing ShoppingListEntry to Homeassistant Todo List")
on_shopping_list_entry_updated_enabled = models.BooleanField(default=False, help_text="PLACEHOLDER")
on_shopping_list_entry_deleted_enabled = models.BooleanField(default=False, help_text="Enable syncing ShoppingListEntry deletion to Homeassistant Todo List")

View File

@ -422,7 +422,7 @@ class HomeAssistantConfigSerializer(SpacedModelSerializer):
class Meta:
model = HomeAssistantConfig
fields = (
'id', 'name', 'url', 'token', 'todo_entity',
'id', 'name', 'url', 'token', 'todo_entity', 'enabled',
'on_shopping_list_entry_created_enabled', 'on_shopping_list_entry_updated_enabled',
'on_shopping_list_entry_deleted_enabled', 'created_by'
)

View File

@ -21,7 +21,7 @@ class HomeAssistantConfigTable(tables.Table):
class Meta:
model = HomeAssistantConfig
template_name = 'generic/table_template.html'
fields = ('id', 'name', 'url')
fields = ('id', 'name', 'enabled', 'url')
class ImportLogTable(tables.Table):

View File

@ -146,6 +146,7 @@ def edit_home_assistant_config(request, pk):
instance.name = form.cleaned_data['name']
instance.url = form.cleaned_data['url']
instance.todo_entity = form.cleaned_data['todo_entity']
instance.enabled = form.cleaned_data['enabled']
instance.on_shopping_list_entry_created_enabled = form.cleaned_data['on_shopping_list_entry_created_enabled']
instance.on_shopping_list_entry_updated_enabled = form.cleaned_data['on_shopping_list_entry_updated_enabled']
instance.on_shopping_list_entry_deleted_enabled = form.cleaned_data['on_shopping_list_entry_deleted_enabled']

View File

@ -46,3 +46,4 @@ pytest-factoryboy==2.5.1
pyppeteer==1.0.2
validators==0.20.0
pytube==15.0.0
homeassistant-api==4.1.1.post2