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/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/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('sentry-debug/', trigger_error),
|
||||
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
from django.contrib import admin
|
||||
from tagulous.admin import TagModelAdmin
|
||||
|
||||
from django_admin_listfilter_dropdown.filters import DropdownFilter, RelatedDropdownFilter, ChoiceDropdownFilter
|
||||
|
||||
@@ -23,8 +24,13 @@ class ProductAdmin(admin.ModelAdmin):
|
||||
|
||||
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.TreeTag)
|
||||
admin.site.register(models.CategoryTag)
|
||||
admin.site.register(models.CategoryTag, CategoryTagAdmin)
|
||||
admin.site.register(models.AttributeTag)
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
from email.policy import default
|
||||
from dal import autocomplete
|
||||
|
||||
from django import forms
|
||||
@@ -10,5 +11,29 @@ class ProductTagForm(forms.ModelForm):
|
||||
model = Product
|
||||
fields = ('__all__')
|
||||
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