(add, done): add common api, and done common app tasks
This commit is contained in:
@@ -49,6 +49,11 @@ class AboutUsAdmin(TranslationAdmin):
|
||||
list_display = ['title', 'description']
|
||||
inlines = [AboutUsImageInline, AboutUsFeatureInline]
|
||||
|
||||
def has_add_permission(self, request):
|
||||
if self.model.objects.count() > 0:
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
@admin.register(models.Service)
|
||||
class ServiceAdmin(TranslationAdmin):
|
||||
|
||||
69
core/apps/common/serializers.py
Normal file
69
core/apps/common/serializers.py
Normal file
@@ -0,0 +1,69 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
from core.apps.common import models
|
||||
|
||||
|
||||
class SiteConfigSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.SiteConfig
|
||||
fields = [
|
||||
'telegram', 'instagram', 'youtube', 'facebook'
|
||||
]
|
||||
|
||||
|
||||
class AboutUsFeatureListSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.AboutUsFeature
|
||||
fields = [
|
||||
'id', 'text'
|
||||
]
|
||||
|
||||
|
||||
class AboutUsImageListSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.AboutUsImage
|
||||
fields = [
|
||||
'id', 'image'
|
||||
]
|
||||
|
||||
|
||||
class AboutUsSerializer(serializers.ModelSerializer):
|
||||
images = AboutUsImageListSerializer(many=True)
|
||||
features = AboutUsFeatureListSerializer(many=True)
|
||||
|
||||
class Meta:
|
||||
model = models.AboutUs
|
||||
fields = [
|
||||
'id', 'title', 'description', 'images', 'features'
|
||||
]
|
||||
|
||||
|
||||
class BannerListSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.Banner
|
||||
fields = [
|
||||
'id', 'banner'
|
||||
]
|
||||
|
||||
|
||||
class ServiceListSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.Service
|
||||
fields = [
|
||||
'id', 'title', 'text', 'icon', 'image',
|
||||
]
|
||||
|
||||
|
||||
class NewsSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.News
|
||||
fields = ['id', 'image', 'title', 'text']
|
||||
|
||||
|
||||
class ContactUsSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.ContactUs
|
||||
fields = [
|
||||
'first_name', 'last_name', 'phone', 'email', 'service', 'message',
|
||||
]
|
||||
|
||||
12
core/apps/common/urls.py
Normal file
12
core/apps/common/urls.py
Normal file
@@ -0,0 +1,12 @@
|
||||
from django.urls import path
|
||||
|
||||
from core.apps.common import views
|
||||
|
||||
urlpatterns = [
|
||||
path('site_config/', views.SiteConfigApiView.as_view()),
|
||||
path('about_us/', views.AboutUsApiView.as_view()),
|
||||
path('banners/', views.BannerListApiView.as_view()),
|
||||
path('services/', views.ServiceListApiView.as_view()),
|
||||
path('news/', views.NewsListApiView.as_view()),
|
||||
path('contact_us/', views.ContactUsApiView.as_view()),
|
||||
]
|
||||
@@ -1,3 +1,45 @@
|
||||
from django.shortcuts import render
|
||||
from rest_framework import generics
|
||||
from rest_framework.response import Response
|
||||
|
||||
# Create your views here.
|
||||
from core.apps.common import models, serializers
|
||||
|
||||
|
||||
class SiteConfigApiView(generics.GenericAPIView):
|
||||
queryset = models.SiteConfig.objects.all()
|
||||
serializer_class = serializers.SiteConfigSerializer
|
||||
|
||||
def get(self, request):
|
||||
site_config = models.SiteConfig.objects.first()
|
||||
serializer = self.serializer_class(site_config)
|
||||
return Response(serializer.data, status=200)
|
||||
|
||||
|
||||
class AboutUsApiView(generics.GenericAPIView):
|
||||
queryset = models.AboutUs.objects.all()
|
||||
serializer_class = serializers.AboutUsSerializer
|
||||
|
||||
def get(self, request):
|
||||
about_us = models.AboutUs.objects.prefetch_related('images', 'features').first()
|
||||
serializer = self.serializer_class(about_us)
|
||||
return Response(serializer.data, status=200)
|
||||
|
||||
|
||||
class BannerListApiView(generics.ListAPIView):
|
||||
serializer_class = serializers.BannerListSerializer
|
||||
queryset = models.Banner.objects.all()
|
||||
|
||||
|
||||
class ServiceListApiView(generics.ListAPIView):
|
||||
serializer_class = serializers.ServiceListSerializer
|
||||
queryset = models.Service.objects.all()
|
||||
|
||||
|
||||
class NewsListApiView(generics.ListAPIView):
|
||||
serializer_class = serializers.NewsSerializer
|
||||
queryset = models.News.objects.all()
|
||||
|
||||
|
||||
class ContactUsApiView(generics.CreateAPIView):
|
||||
serializer_class = serializers.ContactUsSerializer
|
||||
queryset = models.ContactUs.objects.all()
|
||||
|
||||
Reference in New Issue
Block a user