Woocommerce and some fixes
This commit is contained in:
@@ -30,8 +30,9 @@ from products.models import Product, CategoryTag
|
||||
from products.serializers import ProductSerializer, TagFilterSerializer, SearchResultSerializer
|
||||
from companies.models import Company
|
||||
from stats.models import StatsLog
|
||||
from back_latienda.permissions import IsCreator, IsSiteAdmin, ReadOnly
|
||||
from back_latienda.permissions import IsProductOwner, IsSiteAdmin, ReadOnly
|
||||
from .utils import extract_search_filters, ranked_product_search, product_loader, get_related_products
|
||||
from utils.woocommerce import migrate_shop_products
|
||||
from utils.tag_serializers import TaggitSerializer
|
||||
from utils.tag_filters import ProductTagFilter, ProductOrderFilter
|
||||
|
||||
@@ -48,7 +49,7 @@ logging.basicConfig(
|
||||
class ProductViewSet(viewsets.ModelViewSet):
|
||||
queryset = Product.objects.filter(active=True).order_by('-created')
|
||||
serializer_class = ProductSerializer
|
||||
permission_classes = [IsAuthenticatedOrReadOnly, IsCreator]
|
||||
permission_classes = [IsAuthenticatedOrReadOnly, IsProductOwner]
|
||||
filter_backends = [DjangoFilterBackend, OrderingFilter]
|
||||
filterset_class = ProductTagFilter
|
||||
|
||||
@@ -71,7 +72,7 @@ class MyProductsViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
model = Product
|
||||
serializer_class = ProductSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
permission_classes = [IsAuthenticated, IsProductOwner]
|
||||
|
||||
def get_queryset(self):
|
||||
return self.model.objects.filter(company=self.request.user.company).order_by('-created')
|
||||
@@ -403,3 +404,32 @@ def all_categories(request):
|
||||
all_categories.append(instance.name)
|
||||
return Response(data=all_categories)
|
||||
|
||||
|
||||
@api_view(['POST'])
|
||||
@permission_classes([IsAuthenticated,])
|
||||
def sync_shop(request):
|
||||
print(request.data)
|
||||
url = request.data.get('url')
|
||||
key = request.data.get('key')
|
||||
secret = request.data.get('secret')
|
||||
print(f"Starting migration...")
|
||||
response = migrate_shop_products(url, key, secret, request.user )
|
||||
print(f"Products created: {len(response['new_products'])}")
|
||||
print(response["error"])
|
||||
if response["error"]:
|
||||
message = render_to_string('sync_failed.html', {})
|
||||
# send email to company
|
||||
subject = "Estado de la sincronización"
|
||||
email = EmailMessage(subject, message, to=[request.user.email])
|
||||
email.content_subtype = "html"
|
||||
email.send()
|
||||
else:
|
||||
message = render_to_string('sync_success.html', {
|
||||
'new_products': len(response['new_products'])
|
||||
})
|
||||
# send email to company
|
||||
subject = "Estado de la sincronización"
|
||||
email = EmailMessage(subject, message, to=[request.user.email])
|
||||
email.content_subtype = "html"
|
||||
email.send()
|
||||
return Response()
|
||||
|
||||
Reference in New Issue
Block a user