import django_tables2 as tables
from django.utils.html import format_html
from django.utils.translation import gettext as _
from django_tables2.utils import A
from .models import CookLog, InviteLink, RecipeImport, Storage, Sync, SyncLog, ViewLog, ConnectorConfig
class StorageTable(tables.Table):
id = tables.LinkColumn('edit_storage', args=[A('id')])
class Meta:
model = Storage
template_name = 'generic/table_template.html'
fields = ('id', 'name', 'method')
class ConnectorConfigTable(tables.Table):
id = tables.LinkColumn('edit_connector_config', args=[A('id')])
class Meta:
model = ConnectorConfig
template_name = 'generic/table_template.html'
fields = ('id', 'name', 'type', 'enabled')
class ImportLogTable(tables.Table):
sync_id = tables.LinkColumn('edit_sync', args=[A('sync_id')])
@staticmethod
def render_status(value):
if value == 'SUCCESS':
return format_html(
'%s' % value
)
else:
return format_html(
'%s' % value
)
class Meta:
model = SyncLog
template_name = 'generic/table_template.html'
fields = ('status', 'msg', 'sync_id', 'created_at')
class SyncTable(tables.Table):
id = tables.LinkColumn('edit_sync', args=[A('id')])
@staticmethod
def render_path(value):
return format_html('%s
' % value)
@staticmethod
def render_storage(value):
return format_html(
'%s' % value
)
class Meta:
model = Sync
template_name = 'generic/table_template.html'
fields = ('id', 'path', 'storage', 'last_checked')
class RecipeImportTable(tables.Table):
id = tables.LinkColumn('new_recipe_import', args=[A('id')])
delete = tables.TemplateColumn(
"" + _('Delete') + "" # noqa: E501
)
class Meta:
model = RecipeImport
template_name = 'generic/table_template.html'
fields = ('id', 'name', 'file_path')
class InviteLinkTable(tables.Table):
link = tables.TemplateColumn(
""
)
delete_link = tables.TemplateColumn(
"" + _('Delete') + "", verbose_name=_('Delete')
)
class Meta:
model = InviteLink
template_name = 'generic/table_template.html'
fields = (
'username', 'group', 'valid_until',
)
class ViewLogTable(tables.Table):
recipe = tables.LinkColumn('view_recipe', args=[A('recipe_id')])
class Meta:
model = ViewLog
template_name = 'generic/table_template.html'
fields = ('recipe', 'created_at')
class CookLogTable(tables.Table):
recipe = tables.LinkColumn('view_recipe', args=[A('recipe_id')])
class Meta:
model = CookLog
template_name = 'generic/table_template.html'
fields = ('recipe', 'rating', 'serving', 'created_at')