edit parent_category in admin
This commit is contained in:
@@ -55,7 +55,7 @@ urlpatterns = [
|
|||||||
path('api/v1/sync_shop/', product_views.sync_shop, name='purchase-email'),
|
path('api/v1/sync_shop/', product_views.sync_shop, name='purchase-email'),
|
||||||
path('api/v1/products/all_categories/', product_views.all_categories, name='all-categories'),
|
path('api/v1/products/all_categories/', product_views.all_categories, name='all-categories'),
|
||||||
path('api/v1/stats/me/', stat_views.track_user, name='user-tracker'),
|
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/autocomplete/category-tag/', product_views.CategoryTagAutocomplete.as_view(), name='category-tag-autocomplete'),
|
||||||
path('api/v1/', include(router.urls)),
|
path('api/v1/', include(router.urls)),
|
||||||
path('sentry-debug/', trigger_error),
|
path('sentry-debug/', trigger_error),
|
||||||
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
from tagulous.admin import TagModelAdmin
|
||||||
|
|
||||||
from django_admin_listfilter_dropdown.filters import DropdownFilter, RelatedDropdownFilter, ChoiceDropdownFilter
|
from django_admin_listfilter_dropdown.filters import DropdownFilter, RelatedDropdownFilter, ChoiceDropdownFilter
|
||||||
|
|
||||||
@@ -23,8 +24,13 @@ class ProductAdmin(admin.ModelAdmin):
|
|||||||
|
|
||||||
search_fields = ('name', 'sku', 'description')
|
search_fields = ('name', 'sku', 'description')
|
||||||
|
|
||||||
|
class CategoryTagAdmin(TagModelAdmin):
|
||||||
|
form = forms.CategoryTagForm
|
||||||
|
list_display = ('label', 'name')
|
||||||
|
search_fields = ('label', 'name', 'slug')
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(models.Product, ProductAdmin)
|
admin.site.register(models.Product, ProductAdmin)
|
||||||
admin.site.register(models.TreeTag)
|
admin.site.register(models.TreeTag)
|
||||||
admin.site.register(models.CategoryTag)
|
admin.site.register(models.CategoryTag, CategoryTagAdmin)
|
||||||
admin.site.register(models.AttributeTag)
|
admin.site.register(models.AttributeTag)
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
from email.policy import default
|
||||||
from dal import autocomplete
|
from dal import autocomplete
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
@@ -10,5 +11,29 @@ class ProductTagForm(forms.ModelForm):
|
|||||||
model = Product
|
model = Product
|
||||||
fields = ('__all__')
|
fields = ('__all__')
|
||||||
widgets = {
|
widgets = {
|
||||||
'category': autocomplete.TagSelect2(url='category-autocomplete')
|
'category': autocomplete.TagSelect2(url='category-tag-autocomplete')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class CategoryTagForm(forms.ModelForm):
|
||||||
|
name = forms.CharField(required=False, disabled=True)
|
||||||
|
parent_category = autocomplete.Select2ListCreateChoiceField(required=False, widget=autocomplete.Select2(url='category-tag-autocomplete', attrs={"data-tags": "true"}))
|
||||||
|
class Meta:
|
||||||
|
model = CategoryTag
|
||||||
|
fields = ('name', 'label', 'slug', 'parent_category')
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
if self.instance.id:
|
||||||
|
project_name_field = self.fields['parent_category']
|
||||||
|
parent_category = self.instance.parent
|
||||||
|
project_name_field.initial = parent_category
|
||||||
|
project_name_field.choices = [(parent_category, parent_category)]
|
||||||
|
|
||||||
|
|
||||||
|
def save(self, commit=True):
|
||||||
|
parent_name = self.cleaned_data.get('parent_category', None)
|
||||||
|
prefix = ''
|
||||||
|
if parent_name:
|
||||||
|
prefix = parent_name + '/'
|
||||||
|
self.instance.name = prefix + self.instance.label
|
||||||
|
return super(CategoryTagForm, self).save(commit=commit)
|
||||||
Reference in New Issue
Block a user