No Description

admin.py 7.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. # -*- coding: utf-8 -*-
  2. import monetary
  3. from django.conf import settings
  4. from django.contrib import admin
  5. from django.contrib.auth.hashers import make_password
  6. from django_admin import DeleteModelAdmin, ReadOnlyModelAdmin
  7. from django_models_ext import ProvinceShortModelMixin
  8. from pysnippets.strsnippets import strip
  9. from mch.models import (AdministratorInfo, BrandInfo, BrandModelDistributorPriceInfo, ConsumeInfoSubmitLogInfo,
  10. DistributorInfo, LatestAppInfo, ModelImageInfo, ModelInfo, OperatorInfo)
  11. class AdministratorInfoAdmin(DeleteModelAdmin, admin.ModelAdmin):
  12. list_display = ('admin_id', 'phone', 'password', 'encryption', 'name', 'brand_id', 'brand_name', 'user_status', 'status', 'created_at', 'updated_at')
  13. list_filter = ('user_status', 'status', 'brand_name')
  14. readonly_fields = ('encryption', 'brand_name')
  15. def save_model(self, request, obj, form, change):
  16. obj.phone = strip(obj.phone)
  17. obj.password = strip(obj.password)
  18. if obj.password:
  19. obj.encryption = make_password(obj.password, settings.MAKE_PASSWORD_SALT, settings.MAKE_PASSWORD_HASHER)
  20. obj.password = ''
  21. obj.brand_id = strip(obj.brand_id)
  22. try:
  23. obj.brand_name = BrandInfo.objects.get(brand_id=obj.brand_id).brand_name
  24. except BrandInfo.DoesNotExist:
  25. obj.brand_name = ''
  26. obj.save()
  27. class OperatorInfoAdmin(DeleteModelAdmin, admin.ModelAdmin):
  28. list_display = ('operator_id', 'phone', 'password', 'encryption', 'name', 'brand_id', 'brand_name', 'user_status', 'status', 'created_at', 'updated_at')
  29. list_filter = ('user_status', 'status', 'brand_name')
  30. readonly_fields = ('encryption', 'brand_name')
  31. def save_model(self, request, obj, form, change):
  32. obj.phone = strip(obj.phone)
  33. obj.password = strip(obj.password)
  34. if obj.password:
  35. obj.encryption = make_password(obj.password, settings.MAKE_PASSWORD_SALT, settings.MAKE_PASSWORD_HASHER)
  36. obj.password = ''
  37. obj.brand_id = strip(obj.brand_id)
  38. try:
  39. obj.brand_name = BrandInfo.objects.get(brand_id=obj.brand_id).brand_name
  40. except BrandInfo.DoesNotExist:
  41. obj.brand_name = ''
  42. obj.save()
  43. class BrandInfoAdmin(DeleteModelAdmin, admin.ModelAdmin):
  44. list_display = ('brand_id', 'brand_name', 'brand_descr', 'brand_logo', 'position', 'status', 'created_at', 'updated_at')
  45. class ModelInfoAdmin(DeleteModelAdmin, admin.ModelAdmin):
  46. list_display = ('brand_id', 'brand_name', 'model_id', 'model_name', 'model_full_name', 'model_descr', 'image', 'url', 'factory_yuan', 'integral', 'position', 'status', 'created_at', 'updated_at')
  47. list_filter = ('brand_name', 'status')
  48. readonly_fields = ('brand_name', 'factory_fee')
  49. search_fields = ('brand_id', 'brand_name', 'model_id', 'model_name', 'model_full_name', 'model_descr')
  50. def save_model(self, request, obj, form, change):
  51. obj.brand_id = strip(obj.brand_id)
  52. try:
  53. obj.brand_name = BrandInfo.objects.get(brand_id=obj.brand_id).brand_name
  54. except BrandInfo.DoesNotExist:
  55. obj.brand_name = ''
  56. obj.factory_fee = monetary.Yuan2Fen(obj.factory_yuan)
  57. obj.factory_yuan = monetary.Fen2Yuan(obj.factory_fee)
  58. obj.save()
  59. class ModelImageInfoAdmin(DeleteModelAdmin, admin.ModelAdmin):
  60. list_display = ('model_id', 'model_name', 'image', 'url', 'position', 'status', 'created_at', 'updated_at')
  61. list_filter = ('model_name', 'status')
  62. def save_model(self, request, obj, form, change):
  63. obj.model_id = strip(obj.model_id)
  64. try:
  65. obj.model_name = ModelInfo.objects.get(model_id=obj.model_id).model_name
  66. except BrandInfo.DoesNotExist:
  67. obj.model_name = ''
  68. obj.save()
  69. class DistributorInfoAdmin(DeleteModelAdmin, admin.ModelAdmin):
  70. list_display = ('brand_id', 'brand_name', 'distributor_id', 'distributor_name', 'distributor_province_name', 'position', 'status', 'created_at', 'updated_at')
  71. list_filter = ('brand_name', 'distributor_province_name', 'status')
  72. readonly_fields = ('brand_name', 'distributor_province_code')
  73. search_fields = ('brand_id', 'brand_name', 'distributor_name', 'distributor_descr', 'distributor_province_code', 'distributor_province_name')
  74. def save_model(self, request, obj, form, change):
  75. obj.brand_id = strip(obj.brand_id)
  76. try:
  77. obj.brand_name = BrandInfo.objects.get(brand_id=obj.brand_id).brand_name
  78. except BrandInfo.DoesNotExist:
  79. obj.brand_name = ''
  80. obj.distributor_province_code = ProvinceShortModelMixin.PROVINCE_NAME_CODE_DICT.get(obj.distributor_province_name, '')
  81. obj.save()
  82. class BrandModelDistributorPriceInfoAdmin(DeleteModelAdmin, admin.ModelAdmin):
  83. list_display = ('brand_id', 'brand_name', 'model_id', 'model_name', 'distributor_id', 'distributor_name', 'factory_yuan', 'integral', 'status', 'created_at', 'updated_at')
  84. list_filter = ('brand_name', 'model_name', 'distributor_name', 'status')
  85. readonly_fields = ('brand_name', 'model_name', 'distributor_name', 'factory_fee', )
  86. search_fields = ('brand_id', 'brand_name', 'model_id', 'model_name', 'distributor_id', 'distributor_name')
  87. def save_model(self, request, obj, form, change):
  88. obj.brand_id = strip(obj.brand_id)
  89. try:
  90. obj.brand_name = BrandInfo.objects.get(brand_id=obj.brand_id).brand_name
  91. except BrandInfo.DoesNotExist:
  92. obj.brand_name = ''
  93. obj.model_id = strip(obj.model_id)
  94. try:
  95. obj.model_name = ModelInfo.objects.get(model_id=obj.model_id).model_name
  96. except BrandInfo.DoesNotExist:
  97. obj.model_name = ''
  98. obj.distributor_id = strip(obj.distributor_id)
  99. try:
  100. obj.distributor_name = DistributorInfo.objects.get(distributor_id=obj.distributor_id).distributor_name
  101. except BrandInfo.DoesNotExist:
  102. obj.distributor_name = ''
  103. obj.factory_fee = monetary.Yuan2Fen(obj.factory_yuan)
  104. obj.factory_yuan = monetary.Fen2Yuan(obj.factory_fee)
  105. obj.save()
  106. class LatestAppInfoAdmin(admin.ModelAdmin):
  107. list_display = ('latest_adr_version_code', 'latest_adr_version_name', 'latest_adr_app', 'latest_adr_url', 'status', 'created_at', 'updated_at')
  108. list_filter = ('status', )
  109. readonly_fields = ('status', )
  110. def save_model(self, request, obj, form, change):
  111. if not obj.pk and LatestAppInfo.objects.filter(status=True).exists():
  112. return
  113. obj.latest_adr_version_name = strip(obj.latest_adr_version_name)
  114. obj.latest_adr_app = strip(obj.latest_adr_app)
  115. obj.latest_adr_url = strip(obj.latest_adr_url)
  116. obj.save()
  117. class ConsumeInfoSubmitLogInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):
  118. list_display = ('user_id', 'phone', 'lat', 'lon', 'serialNo', 'verifyResult', 'test_user', 'status', 'created_at', 'updated_at')
  119. list_filter = ('test_user', 'verifyResult', 'status')
  120. admin.site.register(AdministratorInfo, AdministratorInfoAdmin)
  121. admin.site.register(OperatorInfo, OperatorInfoAdmin)
  122. admin.site.register(BrandInfo, BrandInfoAdmin)
  123. admin.site.register(ModelInfo, ModelInfoAdmin)
  124. # admin.site.register(ModelImageInfo, ModelImageInfoAdmin)
  125. admin.site.register(DistributorInfo, DistributorInfoAdmin)
  126. admin.site.register(BrandModelDistributorPriceInfo, BrandModelDistributorPriceInfoAdmin)
  127. admin.site.register(LatestAppInfo, LatestAppInfoAdmin)
  128. admin.site.register(ConsumeInfoSubmitLogInfo, ConsumeInfoSubmitLogInfoAdmin)