add enabled field
This commit is contained in:
parent
f1b41461db
commit
a61f79507b
@ -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)
|
||||
|
@ -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?)
|
||||
|
@ -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:
|
||||
|
@ -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'),
|
||||
|
@ -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')),
|
||||
|
@ -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")
|
||||
|
@ -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'
|
||||
)
|
||||
|
@ -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):
|
||||
|
@ -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']
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user