Compare commits
3 Commits
a3be30ab4c
...
bad6bfb4c0
| Author | SHA1 | Date | |
|---|---|---|---|
| bad6bfb4c0 | |||
| 849457a051 | |||
| 8f0096946f |
|
|
@ -1,9 +1,9 @@
|
||||||
from django.urls import path, include
|
from django.urls import path, include
|
||||||
from rest_framework.routers import DefaultRouter
|
|
||||||
|
|
||||||
from account import views
|
from account import views
|
||||||
|
from poizonstore.utils import get_drf_router
|
||||||
|
|
||||||
router = DefaultRouter()
|
router = get_drf_router()
|
||||||
router.register("users", views.UserViewSet)
|
router.register("users", views.UserViewSet)
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
|
|
||||||
|
|
@ -7,13 +7,14 @@ from poizonstore.utils import PriceField
|
||||||
class GlobalSettingsSerializer(serializers.ModelSerializer):
|
class GlobalSettingsSerializer(serializers.ModelSerializer):
|
||||||
yuan_rate = PriceField(source='full_yuan_rate', read_only=True)
|
yuan_rate = PriceField(source='full_yuan_rate', read_only=True)
|
||||||
yuan_rate_commission = PriceField()
|
yuan_rate_commission = PriceField()
|
||||||
chinadelivery = PriceField(source='delivery_price_CN')
|
delivery_price_CN = PriceField()
|
||||||
commission = PriceField(source='commission_rub')
|
commission_rub = PriceField()
|
||||||
pickup = serializers.CharField(source='pickup_address')
|
pickup_address = serializers.CharField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = GlobalSettings
|
model = GlobalSettings
|
||||||
fields = ('yuan_rate', 'yuan_rate_last_updated', 'yuan_rate_commission', 'commission', 'chinadelivery', 'pickup', 'time_to_buy')
|
fields = ('yuan_rate', 'yuan_rate_last_updated', 'yuan_rate_commission',
|
||||||
|
'commission_rub', 'delivery_price_CN', 'pickup_address', 'time_to_buy')
|
||||||
read_only_fields = ('yuan_rate_last_updated',)
|
read_only_fields = ('yuan_rate_last_updated',)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
from rest_framework.routers import DefaultRouter
|
|
||||||
|
|
||||||
|
from poizonstore.utils import get_drf_router
|
||||||
from . import views
|
from . import views
|
||||||
|
|
||||||
router = DefaultRouter()
|
router = get_drf_router()
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
from rest_framework import generics
|
from rest_framework import generics
|
||||||
|
|
||||||
from account.permissions import IsManager, ReadOnly
|
from account.permissions import ReadOnly, IsAdmin
|
||||||
from core.models import GlobalSettings
|
from core.models import GlobalSettings
|
||||||
from core.serializers import GlobalSettingsSerializer, AnonymousGlobalSettingsSerializer
|
from core.serializers import GlobalSettingsSerializer, AnonymousGlobalSettingsSerializer
|
||||||
|
|
||||||
|
|
||||||
class GlobalSettingsAPI(generics.RetrieveUpdateAPIView):
|
class GlobalSettingsAPI(generics.RetrieveUpdateAPIView):
|
||||||
serializer_class = GlobalSettingsSerializer
|
serializer_class = GlobalSettingsSerializer
|
||||||
permission_classes = [IsManager | ReadOnly]
|
permission_classes = [IsAdmin | ReadOnly]
|
||||||
|
|
||||||
def get_serializer_class(self):
|
def get_serializer_class(self):
|
||||||
if getattr(self.request.user, 'is_manager', False):
|
if getattr(self.request.user, 'is_manager', False):
|
||||||
|
|
|
||||||
|
|
@ -17,9 +17,11 @@ Including another URLconf
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.conf.urls.static import static
|
from django.conf.urls.static import static
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
from django.contrib.auth.decorators import permission_required
|
||||||
from django.urls import path, include
|
from django.urls import path, include
|
||||||
from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView
|
from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView
|
||||||
|
|
||||||
|
from account.permissions import IsAdmin
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('admin/', admin.site.urls),
|
path('admin/', admin.site.urls),
|
||||||
|
|
@ -31,8 +33,7 @@ urlpatterns = [
|
||||||
+ static(settings.STATIC_URL)
|
+ static(settings.STATIC_URL)
|
||||||
|
|
||||||
# API schema
|
# API schema
|
||||||
if settings.DEBUG:
|
urlpatterns += [
|
||||||
urlpatterns += [
|
path('api/schema/', permission_required([IsAdmin])(SpectacularAPIView.as_view()), name='schema'),
|
||||||
path('api/schema/', SpectacularAPIView.as_view(), name='schema'),
|
path('api/redoc/', permission_required([IsAdmin])(SpectacularRedocView.as_view(url_name='schema')), name='redoc'),
|
||||||
path('api/redoc/', SpectacularRedocView.as_view(url_name='schema'), name='redoc'),
|
]
|
||||||
]
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
from django_filters import DateFromToRangeFilter as _DateFromToRangeFilter
|
from django_filters import DateFromToRangeFilter as _DateFromToRangeFilter
|
||||||
from rest_framework.fields import DecimalField
|
from rest_framework.fields import DecimalField
|
||||||
|
from rest_framework.routers import SimpleRouter, DefaultRouter
|
||||||
|
|
||||||
|
|
||||||
class PriceField(DecimalField):
|
class PriceField(DecimalField):
|
||||||
|
|
@ -20,3 +22,7 @@ class DateFromToRangeFilter(_DateFromToRangeFilter):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self.field.widget.suffixes = ['from', 'to']
|
self.field.widget.suffixes = ['from', 'to']
|
||||||
|
|
||||||
|
|
||||||
|
def get_drf_router():
|
||||||
|
return DefaultRouter() if settings.DEBUG else SimpleRouter()
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ class ImageAdmin(admin.ModelAdmin):
|
||||||
|
|
||||||
@admin.register(Checklist)
|
@admin.register(Checklist)
|
||||||
class ChecklistAdmin(admin.ModelAdmin):
|
class ChecklistAdmin(admin.ModelAdmin):
|
||||||
list_display = ('id', 'brand', 'model', 'price_rub', 'commission_rub', 'full_price', 'date', 'status_display')
|
list_display = ('id', 'brand', 'model', 'price_rub', 'commission_rub', 'full_price', 'date', 'status_display', 'customer')
|
||||||
ordering = ('-status_updated_at', '-created_at')
|
ordering = ('-status_updated_at', '-created_at')
|
||||||
|
|
||||||
@display(description='Статус')
|
@display(description='Статус')
|
||||||
|
|
|
||||||
|
|
@ -38,11 +38,11 @@ class CategoryChecklistSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
|
||||||
class CategorySerializer(serializers.ModelSerializer):
|
class CategorySerializer(serializers.ModelSerializer):
|
||||||
chinarush = PriceField(source='delivery_price_CN_RU')
|
delivery_price_CN_RU = PriceField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Category
|
model = Category
|
||||||
fields = ('id', 'name', 'chinarush', 'commission')
|
fields = ('id', 'name', 'delivery_price_CN_RU', 'commission')
|
||||||
|
|
||||||
|
|
||||||
class CategoryFullSerializer(CategorySerializer):
|
class CategoryFullSerializer(CategorySerializer):
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
from rest_framework.routers import DefaultRouter
|
|
||||||
|
|
||||||
|
from poizonstore.utils import get_drf_router
|
||||||
from store import views
|
from store import views
|
||||||
|
|
||||||
router = DefaultRouter()
|
router = get_drf_router()
|
||||||
|
|
||||||
|
|
||||||
router.register(r'checklist', views.ChecklistAPI, basename='checklist')
|
router.register(r'checklist', views.ChecklistAPI, basename='checklist')
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user