merge conflix

This commit is contained in:
Sam
2021-03-04 13:38:06 +00:00
7 changed files with 50 additions and 5 deletions

View File

@@ -34,8 +34,11 @@ SECRET_KEY = 'td*#7t-(1e9^(g0cod*hs**dp(%zvg@=$cug_-dtzcj#i2mrz@'
# Application definition
INSTALLED_APPS = [
'dal',
'dal_select2',
'suit',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
@@ -54,7 +57,6 @@ INSTALLED_APPS = [
'anymail',
'storages',
# local apps
'core',
'geo',

View File

@@ -42,5 +42,6 @@ urlpatterns = [
path('api/v1/my_company/', company_views.my_company , name='my-company'),
path('api/v1/my_products/', product_views.my_products, name='my-products'),
path('api/v1/stats/me/', stat_views.track_user, name='user-tracker'),
path('api/v1/autocomplete/category-tag/', product_views.CategoryTagAutocomplete.as_view(), name='category-autocomplete'),
path('api/v1/', include(router.urls)),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

View File

@@ -1,10 +1,21 @@
from django.contrib import admin
from . import models
from . import forms
# Register your models here.
admin.site.register(models.Product)
class ProductAdmin(admin.ModelAdmin):
form = forms.ProductTagForm
'''
class ProductInline(admin.TabularInline):
model = models.Product
form = forms.ProductTagForm
'''
admin.site.register(models.Product, ProductAdmin)
admin.site.register(models.TreeTag)
admin.site.register(models.CategoryTag)
admin.site.register(models.AttributeTag)

14
products/forms.py Normal file
View File

@@ -0,0 +1,14 @@
from dal import autocomplete
from django import forms
from .models import CategoryTag, Product
class ProductTagForm(forms.ModelForm):
class Meta:
model = Product
fields = ('__all__')
widgets = {
'category': autocomplete.TagSelect2(url='category-autocomplete')
}

View File

@@ -34,7 +34,6 @@ class AttributeTag(TagTreeModel):
# autocomplete_view = 'myapp.views.hobbies_autocomplete'
class Product(models.Model):
SYNCHRONIZED = 'SYNCHRONIZED'
@@ -63,7 +62,7 @@ class Product(models.Model):
stock = models.PositiveIntegerField('Stock', null=True, blank=True)
tags = TagField(to=TreeTag, blank=True)
category = SingleTagField(to=CategoryTag, null=True, blank=True, on_delete=models.SET_NULL) # main tag category
attributes = TagField(to=AttributeTag, related_name='product_attributes', blank=True)
attributes = TagField(to=AttributeTag, blank=True, related_name='product_attributes')
identifiers = models.TextField('Identificador único de producto', null=True, blank=True)
# internal

View File

@@ -16,10 +16,11 @@ from rest_framework.filters import OrderingFilter
from django_filters.rest_framework import DjangoFilterBackend
import requests
from products.models import Product
from products.models import Product, CategoryTag
from products.serializers import ProductSerializer, TagFilterSerializer, SearchResultSerializer
from companies.models import Company
from history.models import HistorySync
from dal import autocomplete
from back_latienda.permissions import IsCreator
from .utils import extract_search_filters, find_related_products_v3, find_related_products_v6, product_loader
@@ -214,3 +215,19 @@ def product_search(request):
return Response(data={"filters": filters, "count": total_results, "products": result_list, 'prices': prices})
except Exception as e:
return Response({"errors": {"details": str(e)}}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
class CategoryTagAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
# Get the tag model dynamically
Tag = Product.category.tag_model
# Return nothing if not auth
if self.request.user.is_anonymous:
return Tag.objects.none()
qs = Tag.objects.all()
if self.q:
qs = qs.filter(name__icontains=self.q)
return qs # [x.label for x in qs]

View File

@@ -14,6 +14,7 @@ drf-extra-fields==3.0.4
django-ipware==3.0.2
geoip2==4.1.0
woocommerce==2.1.1
django-autocomplete-light==3.8.2
# manually install `pip install --default-timeout=100 future` to avoid wcapi to timeout
# required for production
django-anymail[amazon_ses]==8.2