Brak opisu

admin.py 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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
  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 = ('name', 'store_cat', 'address_text', 'tel', 'line_id', 'email', 'address', 'geolocation',)
  22. formfield_overrides = {
  23. map_fields.AddressField: {'widget': map_widgets.GoogleMapsAddressWidget},
  24. }
  25. @admin.register(Buyer)
  26. class BuyerAdmin(UtilModel, admin.ModelAdmin):
  27. search_fields = ('name',)
  28. list_display = ('name', 'tel', 'address_text', 'geolocation', 'created_at', 'created_by')
  29. formfield_overrides = {
  30. map_fields.AddressField: {'widget': map_widgets.GoogleMapsAddressWidget},
  31. }
  32. @admin.register(ProductType)
  33. class ProductTypeAdmin(MPTTModelAdmin):
  34. pass
  35. @admin.register(StoreCat)
  36. class StoreCatAdmin(MPTTModelAdmin):
  37. pass
  38. class PhotoInlineAdmin(admin.StackedInline):
  39. model = Photo
  40. @admin.register(Product)
  41. class ProductAdmin(admin.ModelAdmin):
  42. inlines = [PhotoInlineAdmin,]
  43. formfield_overrides = {
  44. map_fields.AddressField: {'widget': map_widgets.GoogleMapsAddressWidget},
  45. models.JSONField: {'widget': JSONEditorWidget},
  46. }
  47. list_display = ["name", "created_at", "created_by"]
  48. def save_model(self, request, obj, form, change):
  49. if obj.created_by == None:
  50. obj.created_by = request.user
  51. #super().save_model(request, obj, form, change)
  52. obj.modified_by = request.user
  53. super().save_model(request, obj, form, change)
  54. @admin.register(ProductSKU)
  55. class ProductSKUAdmin(admin.ModelAdmin):
  56. formfield_overrides = {
  57. map_fields.AddressField: {'widget': map_widgets.GoogleMapsAddressWidget},
  58. models.JSONField: {'widget': JSONEditorWidget},
  59. }
  60. @admin.register(Photo)
  61. class PhotoAdmin(admin.ModelAdmin):
  62. pass
  63. @admin.register(Inbox)
  64. class InboxAdmin(admin.ModelAdmin):
  65. list_display = ["store", "product", "buyer", "subject", "created_by"]
  66. @admin.register(Sale)
  67. class SaleAdmin(admin.ModelAdmin):
  68. fields = ("product", "store", "sku", "price", "n_unit", "unit_name", "buyer", 'sub_total', 'vat', 'total' )
  69. readonly_fields = ('sub_total', 'vat', 'total',)