diff --git a/backend/.gitignore b/backend/.gitignore index c067012..5fcd1f6 100644 --- a/backend/.gitignore +++ b/backend/.gitignore @@ -13,6 +13,8 @@ media .idea deploy media +static +templates # If your build process includes running collectstatic, then you probably don't need or want to include staticfiles/ # in your Git repository. Update and uncomment the following line accordingly. diff --git a/backend/apimanager/category_views.py b/backend/apimanager/category_views.py index 1348d22..86f7b91 100644 --- a/backend/apimanager/category_views.py +++ b/backend/apimanager/category_views.py @@ -1,11 +1,15 @@ +import os +import shutil #######################Django related imports#################### from rest_framework import generics, status from rest_framework.views import APIView from rest_framework.response import Response +from django.conf import settings ################################################################# #API related imports from .models import ( -Category, + Category, + Blog ) from .serializers import ( CategorySerializer, @@ -27,9 +31,23 @@ class CategoryListAPIView(generics.ListAPIView): serializer_class = CategorySerializer class CategoryDeleteAPIView(generics.DestroyAPIView): - queryset = Category.objects.all() - serializer_class = CategorySerializer - lookup_field = 'category_id' + queryset = Category.objects.all() + serializer_class = CategorySerializer + lookup_field = 'category_id' + + def delete(self, request, *args, **kwargs): + instance = self.get_object() + media_folder = os.path.join(settings.MEDIA_ROOT, 'data', 'category', str(instance.category_id)) + + if os.path.exists(media_folder): + shutil.rmtree(media_folder) + if hasattr(instance, 'blogs'): # Ensuring the related_name is 'blogs' + for blog in instance.blogs.all(): + blog_media_folder = os.path.join(settings.MEDIA_ROOT, 'data', 'blog', str(blog.blog_id)) + if os.path.exists(blog_media_folder): + shutil.rmtree(blog_media_folder) + + return super().delete(request, *args, **kwargs) class BlogsByCategoryAPIView(APIView): def get(self, request, category_id): diff --git a/backend/apimanager/media_views.py b/backend/apimanager/media_views.py index 777eba2..12ee491 100644 --- a/backend/apimanager/media_views.py +++ b/backend/apimanager/media_views.py @@ -1,4 +1,5 @@ import os +import shutil import random from rest_framework import status from rest_framework.views import APIView diff --git a/backend/backend/settings.py b/backend/backend/settings.py index 68ae55f..137eae1 100644 --- a/backend/backend/settings.py +++ b/backend/backend/settings.py @@ -24,7 +24,7 @@ BASE_DIR = Path(__file__).resolve().parent.parent SECRET_KEY = 'django-insecure-2qks!5e#imys-r@tp2t#%cc3!*apkfu9f-(a7t)bn%sm@@3aq+' # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = False +DEBUG = True ALLOWED_HOSTS = ['localhost', '127.0.0.1', '0.0.0.0'] diff --git a/backend/backend/urls.py b/backend/backend/urls.py index 5d5df05..27620ca 100644 --- a/backend/backend/urls.py +++ b/backend/backend/urls.py @@ -37,8 +37,9 @@ from apimanager.publish_views import ( ) urlpatterns = [ + + # API Views path('admin/', admin.site.urls), - path('', views.index, name='index'), path('data/shared/user-data/', UserDataListAPIView.as_view(), name='user-data-list-view'), path('data/shared/update/user-data/', UserDataUpdateAPIView.as_view(), name='user-data-update-view'), path('data/shared/theme-config/', ThemeDataListAPIView.as_view(), name='theme-data-list-view'), @@ -56,6 +57,12 @@ urlpatterns = [ path('data/media///', ListMedia.as_view(), name='list-media'), path('data/publish/methods/', PublishMethods.as_view(), name='publish-methods'), path('data/publish//', Publish.as_view(), name='publish'), + + # Frontend Views + path('', views.index, name='index'), + path('categories', views.index, name='index'), + path('categories/', views.index, name='index'), + path('blog/', views.index, name='index'), ] urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) \ No newline at end of file diff --git a/backend/backend/views.py b/backend/backend/views.py index fcb28b1..d857dc4 100644 --- a/backend/backend/views.py +++ b/backend/backend/views.py @@ -1,4 +1,4 @@ from django.shortcuts import render -def index(request): +def index(request, website_slug=None): return render(request, "index.html") \ No newline at end of file diff --git a/frontend/.gitignore b/frontend/editable-ui/.gitignore similarity index 100% rename from frontend/.gitignore rename to frontend/editable-ui/.gitignore diff --git a/frontend/viewable-ui/.gitignore b/frontend/viewable-ui/.gitignore new file mode 100644 index 0000000..d2a83fd --- /dev/null +++ b/frontend/viewable-ui/.gitignore @@ -0,0 +1,26 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +public/data/* +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? +public/data \ No newline at end of file