Bez popisu

admin.py 3.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. from django.contrib import admin
  2. from django.contrib import admin
  3. from django.contrib.gis.admin import OSMGeoAdmin
  4. from .models import Store, ProductType, Product, Photo, ProductSKU, StoreCat, Buyer, Sale, Inbox, Vendor, VendorOrder
  5. # Register your models here.
  6. from django_google_maps import widgets as map_widgets
  7. from django_google_maps import fields as map_fields
  8. from django_json_widget.widgets import JSONEditorWidget
  9. from django.db import models
  10. from django.utils.html import format_html
  11. from django.conf import settings
  12. from dal import autocomplete
  13. from django import forms
  14. from mptt.admin import MPTTModelAdmin
  15. from mptt.admin import TreeRelatedFieldListFilter
  16. from shaqfindbed.utils import UtilModel
  17. @admin.register(Store)
  18. class StoreAdmin(UtilModel, admin.ModelAdmin):
  19. search_fields = ('name',)
  20. list_display = ('name', 'address', 'geolocation', 'created_at', 'created_by')
  21. fields = ('logo', 'logo_tag', 'name', 'summary', 'store_cat', 'address_text', 'tel', 'line_id', 'email', 'address', 'geolocation',)
  22. formfield_overrides = {
  23. map_fields.AddressField: {'widget': map_widgets.GoogleMapsAddressWidget},
  24. }
  25. readonly_fields = ('logo_tag',)
  26. @admin.register(Vendor)
  27. class VendorAdmin(UtilModel, admin.ModelAdmin):
  28. search_fields = ('name',)
  29. list_display = ('name', 'code', 'created_at', 'created_by')
  30. formfield_overrides = {
  31. map_fields.AddressField: {'widget': map_widgets.GoogleMapsAddressWidget},
  32. }
  33. @admin.register(VendorOrder)
  34. class VendorOrderAdmin(UtilModel, admin.ModelAdmin):
  35. search_fields = ('name',)
  36. list_display = ('vendor', 'product', 'store', 'price', 'n_unit', 'unit_name', 'created_at', 'created_by')
  37. formfield_overrides = {
  38. map_fields.AddressField: {'widget': map_widgets.GoogleMapsAddressWidget},
  39. }
  40. @admin.register(Buyer)
  41. class BuyerAdmin(UtilModel, admin.ModelAdmin):
  42. search_fields = ('name',)
  43. list_display = ('name', 'tel', 'address_text', 'geolocation', 'created_at', 'created_by')
  44. formfield_overrides = {
  45. map_fields.AddressField: {'widget': map_widgets.GoogleMapsAddressWidget},
  46. }
  47. @admin.register(ProductType)
  48. class ProductTypeAdmin(MPTTModelAdmin):
  49. pass
  50. @admin.register(StoreCat)
  51. class StoreCatAdmin(MPTTModelAdmin):
  52. pass
  53. class PhotoInlineAdmin(admin.StackedInline):
  54. model = Photo
  55. @admin.register(Product)
  56. class ProductAdmin(admin.ModelAdmin):
  57. inlines = [PhotoInlineAdmin,]
  58. formfield_overrides = {
  59. map_fields.AddressField: {'widget': map_widgets.GoogleMapsAddressWidget},
  60. models.JSONField: {'widget': JSONEditorWidget},
  61. }
  62. list_display = ["name", "created_at", "created_by"]
  63. def save_model(self, request, obj, form, change):
  64. if obj.created_by == None:
  65. obj.created_by = request.user
  66. #super().save_model(request, obj, form, change)
  67. obj.modified_by = request.user
  68. super().save_model(request, obj, form, change)
  69. @admin.register(ProductSKU)
  70. class ProductSKUAdmin(admin.ModelAdmin):
  71. formfield_overrides = {
  72. map_fields.AddressField: {'widget': map_widgets.GoogleMapsAddressWidget},
  73. models.JSONField: {'widget': JSONEditorWidget},
  74. }
  75. @admin.register(Photo)
  76. class PhotoAdmin(admin.ModelAdmin):
  77. pass
  78. @admin.register(Inbox)
  79. class InboxAdmin(admin.ModelAdmin):
  80. list_display = ["store", "product", "buyer", "subject", "created_by"]
  81. @admin.register(Sale)
  82. class SaleAdmin(admin.ModelAdmin):
  83. fields = ("product", "store", "sku", "price", "n_unit", "unit_name", "buyer", 'sub_total', 'vat', 'total' )
  84. readonly_fields = ('sub_total', 'vat', 'total',)