Revert "added new keyword management page"

This reverts commit 6962b0e218.
This commit is contained in:
smilerz 2021-02-18 07:27:43 -06:00
parent 28d8f62af7
commit fc5455a0f2
6 changed files with 16 additions and 208 deletions

View File

@ -1,5 +1,4 @@
import django_tables2 as tables
from django.db.models.functions import Lower
from django.utils.html import format_html
from django.utils.translation import gettext as _
from django_tables2.utils import A
@ -62,28 +61,6 @@ class KeywordTable(tables.Table):
fields = ('id', 'icon', 'name')
class ManageKeywordTable(tables.Table):
name = tables.LinkColumn('edit_keyword', args=[
A('id')])
class Meta:
model = Keyword
template_name = 'manage/keyword_table.html'
fields = ('id', 'name')
def render_name(self, value, record):
if record.icon != None:
return format_html("{} {}", record.icon, value)
else:
return value
def order_name(self, queryset, is_descending):
queryset = queryset.annotate(
name_lower=Lower('name')
).order_by(("-" if is_descending else "") + "name_lower")
return (queryset, True)
class IngredientTable(tables.Table):
id = tables.LinkColumn('edit_food', args=[A('id')])

View File

@ -1,109 +0,0 @@
{% load crispy_forms_tags %}
{% load i18n %}
{% load django_tables2 %}
{% block content %}
<div class="table-container">
{% block table %}
<table {% render_attrs table.attrs class="table" %}>
{% block table.thead %}
{% if table.show_header %}
<thead {{ table.attrs.thead.as_html }}>
<tr>
{% for column in table.columns %}
<th {{ column.attrs.th.as_html }}>
{% if column.orderable %}
<a href="{% querystring table.prefixed_order_by_field=column.order_by_alias.next %}">{{ column.header }}</a>
{% else %}
{{ column.header }}
{% endif %}
</th>
{% endfor %}
</tr>
</thead>
{% endif %}
{% endblock table.thead %}
{% block table.tbody %}
<tbody {{ table.attrs.tbody.as_html }}>
{% for row in table.paginated_rows %}
{% block table.tbody.row %}
<tr {{ row.attrs.as_html }}>
{% for column, cell in row.items %}
<td {{ column.attrs.td.as_html }}>
{% if column.localize == None %}{{ cell }}{% else %}{% if column.localize %}
{{ cell|localize }}{% else %}{{ cell|unlocalize }}
{% endif %}{% endif %}</td>
{% endfor %}
</tr>
{% endblock table.tbody.row %}
{% empty %}
{% if table.empty_text %}
{% block table.tbody.empty_text %}
<tr>
<td colspan="{{ table.columns|length }}">{{ table.empty_text }}</td>
</tr>
{% endblock table.tbody.empty_text %}
{% endif %}
{% endfor %}
</tbody>
{% endblock table.tbody %}
{% block table.tfoot %}
{% if table.has_footer %}
<tfoot {{ table.attrs.tfoot.as_html }}>
<tr>
{% for column in table.columns %}
<td {{ column.attrs.tf.as_html }}>{{ column.footer }}</td>
{% endfor %}
</tr>
</tfoot>
{% endif %}
{% endblock table.tfoot %}
</table>
{% endblock table %}
{% block pagination %}
{% if table.page and table.paginator.num_pages > 1 %}
<nav aria-label="Table navigation">
<ul class="pagination justify-content-center flex-wrap">
{% if table.page.has_previous %}
{% block pagination.previous %}
<li class="previous page-item">
<a href="{% querystring table.prefixed_page_field=table.page.previous_page_number %}"
class="page-link">
<span aria-hidden="true">&laquo;</span>
{% trans 'previous' %}
</a>
</li>
{% endblock pagination.previous %}
{% endif %}
{% if table.page.has_previous or table.page.has_next %}
{% block pagination.range %}
{% for p in table.page|table_page_range:table.paginator %}
<li class="page-item{% if table.page.number == p %} active{% endif %}">
<a class="page-link"
{% if p != '...' %}href="{% querystring table.prefixed_page_field=p %}"{% endif %}>
{{ p }}
</a>
</li>
{% endfor %}
{% endblock pagination.range %}
{% endif %}
{% if table.page.has_next %}
{% block pagination.next %}
<li class="next page-item">
<a href="{% querystring table.prefixed_page_field=table.page.next_page_number %}"
class="page-link">
{% trans 'next' %}
<span aria-hidden="true">&raquo;</span>
</a>
</li>
{% endblock pagination.next %}
{% endif %}
</ul>
</nav>
{% endif %}
{% endblock pagination %}
</div>
{% endblock content %}

View File

@ -1,22 +0,0 @@
{% extends "base.html" %}
{% load i18n %}
{% load django_tables2 %}
{% block title %}{{ title }}{% endblock %}
{% block content %}
<div class="table-container">
<h3 style="margin-bottom: 2vh">{% trans 'Manage Keywords' %} {% trans 'List' %}
{% if create_url %}
<a href="{% url create_url %}"> <i class="fas fa-plus-circle"></i>
</a>
{% endif %}
</h3>
{% render_table table %}
</div>
{% endblock content %}

View File

@ -11,7 +11,7 @@ from cookbook.helper import dal
from .models import (Comment, Food, InviteLink, Keyword, MealPlan, Recipe,
RecipeBook, RecipeBookEntry, RecipeImport, ShoppingList,
Storage, Sync, SyncLog, get_model_name)
from .views import api, data, delete, edit, import_export, lists, manage, new, views
from .views import api, data, delete, edit, import_export, lists, new, views
router = routers.DefaultRouter()
router.register(r'user-name', api.UserNameViewSet, basename='username')
@ -48,8 +48,7 @@ urlpatterns = [
path('plan/entry/<int:pk>', views.meal_plan_entry, name='view_plan_entry'),
path('shopping/', views.shopping_list, name='view_shopping'),
path('shopping/<int:pk>', views.shopping_list, name='view_shopping'),
path('shopping/latest/', views.latest_shopping_list,
name='view_shopping_latest'),
path('shopping/latest/', views.latest_shopping_list, name='view_shopping_latest'),
path('settings/', views.user_settings, name='view_settings'),
path('history/', views.history, name='view_history'),
path('test/', views.test, name='view_test'),
@ -59,30 +58,22 @@ urlpatterns = [
path('export/', import_export.export_recipe, name='view_export'),
path('view/recipe/<int:pk>', views.recipe_view, name='view_recipe'),
path('view/recipe/<int:pk>/<slug:share>',
views.recipe_view, name='view_recipe'),
path('view/recipe/<int:pk>/<slug:share>', views.recipe_view, name='view_recipe'),
path('new/recipe-import/<int:import_id>/',
new.create_new_external_recipe, name='new_recipe_import'),
path('new/recipe-import/<int:import_id>/', new.create_new_external_recipe, name='new_recipe_import'),
path('new/share-link/<int:pk>/', new.share_link, name='new_share_link'),
path('edit/recipe/<int:pk>/', edit.switch_recipe, name='edit_recipe'),
path('manage/keywords/', manage.keywords, name='manage_keywords'),
# for internal use only
path('edit/recipe/internal/<int:pk>/',
edit.internal_recipe_update, name='edit_internal_recipe'),
path('edit/recipe/external/<int:pk>/',
edit.ExternalRecipeUpdate.as_view(), name='edit_external_recipe'),
path('edit/recipe/convert/<int:pk>/',
edit.convert_recipe, name='edit_convert_recipe'),
path('edit/recipe/internal/<int:pk>/', edit.internal_recipe_update, name='edit_internal_recipe'),
path('edit/recipe/external/<int:pk>/', edit.ExternalRecipeUpdate.as_view(), name='edit_external_recipe'),
path('edit/recipe/convert/<int:pk>/', edit.convert_recipe, name='edit_convert_recipe'),
path('edit/storage/<int:pk>/', edit.edit_storage, name='edit_storage'),
path('edit/ingredient/', edit.edit_ingredients, name='edit_food'),
path('delete/recipe-source/<int:pk>/',
delete.delete_recipe_source, name='delete_recipe_source'),
path('delete/recipe-source/<int:pk>/', delete.delete_recipe_source, name='delete_recipe_source'),
# TODO move to generic "new" view
path('data/sync', data.sync, name='data_sync'),
@ -92,19 +83,14 @@ urlpatterns = [
path('data/statistics', data.statistics, name='data_stats'),
path('data/import/url', data.import_url, name='data_import_url'),
path('api/get_external_file_link/<int:recipe_id>/',
api.get_external_file_link, name='api_get_external_file_link'),
path('api/get_recipe_file/<int:recipe_id>/',
api.get_recipe_file, name='api_get_recipe_file'),
path('api/get_external_file_link/<int:recipe_id>/', api.get_external_file_link, name='api_get_external_file_link'),
path('api/get_recipe_file/<int:recipe_id>/', api.get_recipe_file, name='api_get_recipe_file'),
path('api/sync_all/', api.sync_all, name='api_sync'),
path('api/log_cooking/<int:recipe_id>/',
api.log_cooking, name='api_log_cooking'),
path('api/plan-ical/<slug:from_date>/<slug:to_date>/',
api.get_plan_ical, name='api_get_plan_ical'),
path('api/log_cooking/<int:recipe_id>/', api.log_cooking, name='api_log_cooking'),
path('api/plan-ical/<slug:from_date>/<slug:to_date>/', api.get_plan_ical, name='api_get_plan_ical'),
path('api/recipe-from-url/', api.recipe_from_url, name='api_recipe_from_url'),
path('api/backup/', api.get_backup, name='api_backup'),
path('api/ingredient-from-string/', api.ingredient_from_string,
name='api_ingredient_from_string'),
path('api/ingredient-from-string/', api.ingredient_from_string, name='api_ingredient_from_string'),
path('dal/keyword/', dal.KeywordAutocomplete.as_view(), name='dal_keyword'),
path('dal/food/', dal.IngredientsAutocomplete.as_view(), name='dal_food'),
@ -113,8 +99,7 @@ urlpatterns = [
path('docs/markdown/', views.markdown_info, name='docs_markdown'),
path('docs/api/', views.api_info, name='docs_api'),
path('openapi', get_schema_view(title="Django Recipes",
version=VERSION_NUMBER), name='openapi-schema'),
path('openapi', get_schema_view(title="Django Recipes", version=VERSION_NUMBER), name='openapi-schema'),
path('api/', include((router.urls, 'api'))),
path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
@ -122,10 +107,8 @@ urlpatterns = [
path('offline/', views.offline, name='view_offline'),
path('service-worker.js', (TemplateView.as_view(template_name="sw.js",
content_type='application/javascript', )), name='service_worker'),
path('manifest.json', (TemplateView.as_view(template_name="manifest.json",
content_type='application/json', )), name='web_manifest'),
path('service-worker.js', (TemplateView.as_view(template_name="sw.js", content_type='application/javascript', )), name='service_worker'),
path('manifest.json', (TemplateView.as_view(template_name="manifest.json", content_type='application/json', )), name='web_manifest'),
]
generic_models = (

View File

@ -6,7 +6,6 @@ import cookbook.views.import_export
import cookbook.views.lists
import cookbook.views.new
import cookbook.views.views
import cookbook.views.manage
__all__ = [
'api',
@ -15,7 +14,6 @@ __all__ = [
'edit',
'import_export',
'lists',
'manage',
'new',
'views',
]

View File

@ -1,19 +0,0 @@
from cookbook.helper.permission_helper import group_required
from cookbook.models import Keyword
from cookbook.tables import ManageKeywordTable
from django.views import generic
from django.shortcuts import render
from django_tables2 import RequestConfig
from django.utils.translation import gettext as _
@group_required('user')
def keywords(request):
table = ManageKeywordTable(Keyword.objects.all())
RequestConfig(request, paginate={'per_page': 25}).configure(table)
return render(
request,
'manage/keywords.html',
{'title': _("Keyword"), 'table': table, 'create_url': 'new_keyword'}
)