settings page WIP

This commit is contained in:
vabene1111
2024-08-04 16:59:56 +02:00
parent 4a6d542965
commit 516b345807
76 changed files with 15560 additions and 202 deletions

View File

@@ -1415,6 +1415,14 @@ class AccessTokenSerializer(serializers.ModelSerializer):
read_only_fields = ('id', 'token',)
class LocalizationSerializer(serializers.Serializer):
code = serializers.CharField(max_length=8, read_only=True)
language = serializers.CharField(read_only=True)
class Meta:
fields = '__ALL__'
# Export/Import Serializers
class KeywordExportSerializer(KeywordSerializer):

View File

@@ -64,6 +64,8 @@ router.register(r'user-space', api.UserSpaceViewSet)
router.register(r'view-log', api.ViewLogViewSet)
router.register(r'access-token', api.AccessTokenViewSet)
router.register(r'localization', api.LocalizationViewSet, basename='localization')
for p in PLUGINS:
if c := locate(f'{p["module"]}.urls.{p["api_router_name"]}'):
try:

View File

@@ -84,7 +84,7 @@ from cookbook.serializer import (AccessTokenSerializer, AutomationSerializer, Au
RecipeOverviewSerializer, RecipeSerializer, RecipeShoppingUpdateSerializer, RecipeSimpleSerializer, ShoppingListEntryBulkSerializer,
ShoppingListEntrySerializer, ShoppingListRecipeSerializer, SpaceSerializer, StepSerializer, StorageSerializer,
SupermarketCategoryRelationSerializer, SupermarketCategorySerializer, SupermarketSerializer, SyncLogSerializer, SyncSerializer,
UnitConversionSerializer, UnitSerializer, UserFileSerializer, UserPreferenceSerializer, UserSerializer, UserSpaceSerializer, ViewLogSerializer, ImportImageSerializer
UnitConversionSerializer, UnitSerializer, UserFileSerializer, UserPreferenceSerializer, UserSerializer, UserSpaceSerializer, ViewLogSerializer, ImportImageSerializer, LocalizationSerializer
)
from cookbook.views.import_export import get_integration
from recipes import settings
@@ -1543,7 +1543,7 @@ class RecipeUrlImportView(APIView):
class ImageToRecipeView(APIView):
serializer_class = ImportImageSerializer
http_method_names = ['post', 'options']
#parser_classes = [MultiPartParser]
# parser_classes = [MultiPartParser]
throttle_classes = [RecipeImportThrottle]
permission_classes = [CustomIsUser & CustomTokenHasReadWriteScope]
@@ -1702,6 +1702,20 @@ class ImportOpenData(APIView):
return Response(response_obj)
# TODO implement schema
class LocalizationViewSet(viewsets.GenericViewSet):
permission_classes = [CustomIsGuest & CustomTokenHasReadWriteScope]
serializer_class = LocalizationSerializer
def get_queryset(self):
return None
def list(self, request, *args, **kwargs):
langs = []
for l in settings.LANGUAGES:
langs.append({'code': l[0], 'language': l[1]})
return Response(LocalizationSerializer(langs, many=True).data)
def get_recipe_provider(recipe):
if recipe.storage.method == Storage.DROPBOX:
return Dropbox