urls
This commit is contained in:
parent
e5ef19ffe4
commit
afc7718c95
121
cookbook/urls.py
121
cookbook/urls.py
@ -1,12 +1,16 @@
|
|||||||
from pydoc import locate
|
from pydoc import locate
|
||||||
|
|
||||||
from django.urls import path, include
|
from django.urls import include, path
|
||||||
from rest_framework import routers
|
from rest_framework import routers
|
||||||
from rest_framework.schemas import get_schema_view
|
from rest_framework.schemas import get_schema_view
|
||||||
|
|
||||||
from .views import *
|
|
||||||
from cookbook.views import api, import_export
|
|
||||||
from cookbook.helper import dal
|
from cookbook.helper import dal
|
||||||
|
from recipes.version import VERSION_NUMBER
|
||||||
|
|
||||||
|
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, new, views
|
||||||
|
|
||||||
router = routers.DefaultRouter()
|
router = routers.DefaultRouter()
|
||||||
router.register(r'user-name', api.UserNameViewSet, basename='username')
|
router.register(r'user-name', api.UserNameViewSet, basename='username')
|
||||||
@ -47,37 +51,84 @@ urlpatterns = [
|
|||||||
path('export/', import_export.export_recipe, name='view_export'),
|
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>', 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('new/share-link/<int:pk>/', new.share_link, name='new_share_link'),
|
||||||
|
|
||||||
path('edit/recipe/<int:pk>/', edit.switch_recipe, name='edit_recipe'),
|
path('edit/recipe/<int:pk>/', edit.switch_recipe, name='edit_recipe'),
|
||||||
path('edit/recipe/internal/<int:pk>/', edit.internal_recipe_update, name='edit_internal_recipe'), # for internal use only
|
|
||||||
path('edit/recipe/external/<int:pk>/', edit.ExternalRecipeUpdate.as_view(), name='edit_external_recipe'), # for internal use only
|
# for internal use only
|
||||||
path('edit/recipe/convert/<int:pk>/', edit.convert_recipe, name='edit_convert_recipe'), # 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/storage/<int:pk>/', edit.edit_storage, name='edit_storage'),
|
path('edit/storage/<int:pk>/', edit.edit_storage, name='edit_storage'),
|
||||||
path('edit/ingredient/', edit.edit_ingredients, name='edit_food'),
|
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'
|
||||||
|
),
|
||||||
|
|
||||||
path('data/sync', data.sync, name='data_sync'), # TODO move to generic "new" view
|
# TODO move to generic "new" view
|
||||||
|
path('data/sync', data.sync, name='data_sync'),
|
||||||
path('data/batch/edit', data.batch_edit, name='data_batch_edit'),
|
path('data/batch/edit', data.batch_edit, name='data_batch_edit'),
|
||||||
path('data/batch/import', data.batch_import, name='data_batch_import'),
|
path('data/batch/import', data.batch_import, name='data_batch_import'),
|
||||||
path('data/sync/wait', data.sync_wait, name='data_sync_wait'),
|
path('data/sync/wait', data.sync_wait, name='data_sync_wait'),
|
||||||
path('data/statistics', data.statistics, name='data_stats'),
|
path('data/statistics', data.statistics, name='data_stats'),
|
||||||
path('data/import/url', data.import_url, name='data_import_url'),
|
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(
|
||||||
path('api/get_recipe_file/<int:recipe_id>/', api.get_recipe_file, name='api_get_recipe_file'),
|
'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/sync_all/', api.sync_all, name='api_sync'),
|
||||||
path('api/log_cooking/<int:recipe_id>/', api.log_cooking, name='api_log_cooking'),
|
path(
|
||||||
path('api/plan-ical/<slug:from_date>/<slug:to_date>/', api.get_plan_ical, name='api_get_plan_ical'),
|
'api/log_cooking/<int:recipe_id>/',
|
||||||
path('api/recipe-from-url/', api.recipe_from_url, name='api_recipe_from_url'),
|
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/backup/', api.get_backup, name='api_backup'),
|
||||||
|
|
||||||
path('dal/keyword/', dal.KeywordAutocomplete.as_view(), name='dal_keyword'),
|
path(
|
||||||
|
'dal/keyword/', dal.KeywordAutocomplete.as_view(), name='dal_keyword'
|
||||||
|
),
|
||||||
path('dal/food/', dal.IngredientsAutocomplete.as_view(), name='dal_food'),
|
path('dal/food/', dal.IngredientsAutocomplete.as_view(), name='dal_food'),
|
||||||
path('dal/unit/', dal.UnitAutocomplete.as_view(), name='dal_unit'),
|
path('dal/unit/', dal.UnitAutocomplete.as_view(), name='dal_unit'),
|
||||||
|
|
||||||
@ -90,24 +141,50 @@ urlpatterns = [
|
|||||||
), name='openapi-schema'),
|
), name='openapi-schema'),
|
||||||
|
|
||||||
path('api/', include((router.urls, 'api'))),
|
path('api/', include((router.urls, 'api'))),
|
||||||
path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
|
path(
|
||||||
|
'api-auth/',
|
||||||
|
include('rest_framework.urls', namespace='rest_framework')
|
||||||
|
),
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
generic_models = (Recipe, RecipeImport, Storage, RecipeBook, MealPlan, SyncLog, Sync, Comment, RecipeBookEntry, Keyword, Food, ShoppingList, InviteLink)
|
generic_models = (
|
||||||
|
Recipe, RecipeImport, Storage, RecipeBook, MealPlan, SyncLog, Sync,
|
||||||
|
Comment, RecipeBookEntry, Keyword, Food, ShoppingList, InviteLink
|
||||||
|
)
|
||||||
|
|
||||||
for m in generic_models:
|
for m in generic_models:
|
||||||
py_name = get_model_name(m)
|
py_name = get_model_name(m)
|
||||||
url_name = py_name.replace('_', '-')
|
url_name = py_name.replace('_', '-')
|
||||||
|
|
||||||
if c := locate(f'cookbook.views.new.{m.__name__}Create'):
|
if c := locate(f'cookbook.views.new.{m.__name__}Create'):
|
||||||
urlpatterns.append(path(f'new/{url_name}/', c.as_view(), name=f'new_{py_name}'))
|
urlpatterns.append(
|
||||||
|
path(
|
||||||
|
f'new/{url_name}/', c.as_view(), name=f'new_{py_name}'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
if c := locate(f'cookbook.views.edit.{m.__name__}Update'):
|
if c := locate(f'cookbook.views.edit.{m.__name__}Update'):
|
||||||
urlpatterns.append(path(f'edit/{url_name}/<int:pk>/', c.as_view(), name=f'edit_{py_name}'))
|
urlpatterns.append(
|
||||||
|
path(
|
||||||
|
f'edit/{url_name}/<int:pk>/',
|
||||||
|
c.as_view(),
|
||||||
|
name=f'edit_{py_name}'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
if c := getattr(lists, py_name, None):
|
if c := getattr(lists, py_name, None):
|
||||||
urlpatterns.append(path(f'list/{url_name}/', c, name=f'list_{py_name}'))
|
urlpatterns.append(
|
||||||
|
path(
|
||||||
|
f'list/{url_name}/', c, name=f'list_{py_name}'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
if c := locate(f'cookbook.views.delete.{m.__name__}Delete'):
|
if c := locate(f'cookbook.views.delete.{m.__name__}Delete'):
|
||||||
urlpatterns.append(path(f'delete/{url_name}/<int:pk>/', c.as_view(), name=f'delete_{py_name}'))
|
urlpatterns.append(
|
||||||
|
path(
|
||||||
|
f'delete/{url_name}/<int:pk>/',
|
||||||
|
c.as_view(),
|
||||||
|
name=f'delete_{py_name}'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
@ -1,8 +1,19 @@
|
|||||||
# flake8: noqa
|
import cookbook.views.api
|
||||||
from cookbook.views.api import *
|
import cookbook.views.data
|
||||||
from cookbook.views.data import *
|
import cookbook.views.delete
|
||||||
from cookbook.views.delete import *
|
import cookbook.views.edit
|
||||||
from cookbook.views.edit import *
|
import cookbook.views.import_export
|
||||||
from cookbook.views.lists import *
|
import cookbook.views.lists
|
||||||
from cookbook.views.new import *
|
import cookbook.views.new
|
||||||
from cookbook.views.views import *
|
import cookbook.views.views
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
'api',
|
||||||
|
'data',
|
||||||
|
'delete',
|
||||||
|
'edit',
|
||||||
|
'import_export',
|
||||||
|
'lists',
|
||||||
|
'new',
|
||||||
|
'views',
|
||||||
|
]
|
||||||
|
Loading…
Reference in New Issue
Block a user