You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

admin.py 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. from django.contrib import admin
  2. from django.db.models import get_model
  3. from treebeard.admin import TreeAdmin
  4. AttributeEntity = get_model('catalogue', 'AttributeEntity')
  5. AttributeEntityType = get_model('catalogue', 'AttributeEntityType')
  6. AttributeOption = get_model('catalogue', 'AttributeOption')
  7. AttributeOptionGroup = get_model('catalogue', 'AttributeOptionGroup')
  8. Category = get_model('catalogue', 'Category')
  9. ContributorRole = get_model('catalogue', 'ContributorRole')
  10. Contributor = get_model('catalogue', 'Contributor')
  11. Option = get_model('catalogue', 'Option')
  12. Product = get_model('catalogue', 'Product')
  13. ProductAttribute = get_model('catalogue', 'ProductAttribute')
  14. ProductAttributeValue = get_model('catalogue', 'ProductAttributeValue')
  15. ProductCategory = get_model('catalogue', 'ProductCategory')
  16. ProductClass = get_model('catalogue', 'ProductClass')
  17. ProductImage = get_model('catalogue', 'ProductImage')
  18. ProductRecommendation = get_model('catalogue', 'ProductRecommendation')
  19. class AttributeInline(admin.TabularInline):
  20. model = ProductAttributeValue
  21. class ProductRecommendationInline(admin.TabularInline):
  22. model = ProductRecommendation
  23. fk_name = 'primary'
  24. class CategoryInline(admin.TabularInline):
  25. model = ProductCategory
  26. extra = 1
  27. class ProductAttributeInline(admin.TabularInline):
  28. model = ProductAttribute
  29. extra = 2
  30. class ProductClassAdmin(admin.ModelAdmin):
  31. list_display = ('name', 'requires_shipping', 'track_stock')
  32. prepopulated_fields = {"slug": ("name",)}
  33. inlines = [ProductAttributeInline]
  34. class ContributorAdmin(admin.ModelAdmin):
  35. prepopulated_fields = {"slug": ("name",)}
  36. class ContributorRoleAdmin(admin.ModelAdmin):
  37. prepopulated_fields = {"slug": ("name",)}
  38. class ProductAdmin(admin.ModelAdmin):
  39. list_display = ('get_title', 'upc', 'get_product_class', 'is_top_level',
  40. 'is_group', 'is_variant', 'attribute_summary',
  41. 'date_created')
  42. prepopulated_fields = {"slug": ("title",)}
  43. inlines = [AttributeInline, CategoryInline, ProductRecommendationInline]
  44. class ProductAttributeAdmin(admin.ModelAdmin):
  45. list_display = ('name', 'code', 'product_class', 'type')
  46. prepopulated_fields = {"code": ("name", )}
  47. class OptionAdmin(admin.ModelAdmin):
  48. exclude = ['code']
  49. class ProductAttributeValueAdmin(admin.ModelAdmin):
  50. list_display = ('product', 'attribute', 'value')
  51. class AttributeOptionInline(admin.TabularInline):
  52. model = AttributeOption
  53. class AttributeOptionGroupAdmin(admin.ModelAdmin):
  54. inlines = [AttributeOptionInline, ]
  55. class AttributeEntityAdmin(admin.ModelAdmin):
  56. list_display = ('name', )
  57. class CategoryAdmin(TreeAdmin):
  58. pass
  59. admin.site.register(ProductClass, ProductClassAdmin)
  60. admin.site.register(Product, ProductAdmin)
  61. admin.site.register(ContributorRole, ContributorRoleAdmin)
  62. admin.site.register(Contributor, ContributorAdmin)
  63. admin.site.register(ProductAttribute, ProductAttributeAdmin)
  64. admin.site.register(ProductAttributeValue, ProductAttributeValueAdmin)
  65. admin.site.register(AttributeOptionGroup, AttributeOptionGroupAdmin)
  66. admin.site.register(AttributeEntity, AttributeEntityAdmin)
  67. admin.site.register(AttributeEntityType)
  68. admin.site.register(Option, OptionAdmin)
  69. admin.site.register(ProductImage)
  70. admin.site.register(Category, CategoryAdmin)
  71. admin.site.register(ProductCategory)