123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 |
- import monetary
- from django.conf import settings
- from django.contrib import admin
- from django.contrib.auth.hashers import make_password
- from django_admin import AdvancedActionsModelAdmin, AdvancedExportExcelModelAdmin, DeleteModelAdmin, ReadOnlyModelAdmin
- from django_models_ext import ProvinceShortModelMixin
- from pysnippets.strsnippets import strip
- from mch.models import (ActivityInfo, AdministratorInfo, BrandInfo, CameraModelInfo, ConsumeInfoSubmitLogInfo,
- DistributorInfo, LatestAppInfo, LatestAppScreenInfo, MaintenancemanInfo, ModelCameraBodyInfo,
- ModelInfo, OperatorInfo, SaleclerkInfo)
- from utils.redis.rshot import update_member_shot_data
- class AdministratorInfoAdmin(admin.ModelAdmin):
- list_display = ('admin_id', 'admin_type', 'phone', 'password', 'encryption', 'name', 'brand_id', 'brand_name', 'user_status', 'status', 'created_at', 'updated_at')
- list_filter = ('admin_type', 'user_status', 'status', 'brand_name')
- readonly_fields = ('encryption', 'brand_name')
- def save_model(self, request, obj, form, change):
- obj.phone = strip(obj.phone)
- obj.password = strip(obj.password)
- if obj.password:
- obj.encryption = make_password(obj.password, settings.MAKE_PASSWORD_SALT, settings.MAKE_PASSWORD_HASHER)
- obj.password = ''
- obj.brand_id = strip(obj.brand_id)
- try:
- obj.brand_name = BrandInfo.objects.get(brand_id=obj.brand_id).brand_name
- except BrandInfo.DoesNotExist:
- obj.brand_name = ''
- obj.save()
- class OperatorInfoAdmin(admin.ModelAdmin):
- list_display = ('operator_id', 'phone', 'password', 'encryption', 'name', 'brand_id', 'brand_name', 'brand_domain', 'user_status', 'status', 'created_at', 'updated_at')
- list_filter = ('user_status', 'status', 'brand_name')
- readonly_fields = ('brand_domain', 'encryption', 'brand_name')
- def save_model(self, request, obj, form, change):
- obj.phone = strip(obj.phone)
- obj.password = strip(obj.password)
- if obj.password:
- obj.encryption = make_password(obj.password, settings.MAKE_PASSWORD_SALT, settings.MAKE_PASSWORD_HASHER)
- obj.password = ''
- obj.brand_id = strip(obj.brand_id)
- try:
- obj.brand_name = BrandInfo.objects.get(brand_id=obj.brand_id).brand_name
- except BrandInfo.DoesNotExist:
- obj.brand_name = ''
- obj.save()
- class BrandInfoAdmin(admin.ModelAdmin):
- list_display = ('brand_id', 'brand_name', 'brand_descr', 'brand_logo', 'brand_domain', 'position', 'status', 'created_at', 'updated_at')
- def save_model(self, request, obj, form, change):
- obj.save()
- OperatorInfo.objects.filter(brand_id=obj.brand_id).update(brand_domain=obj.brand_domain)
- class ModelInfoAdmin(AdvancedExportExcelModelAdmin, DeleteModelAdmin, admin.ModelAdmin):
- list_display = ('pk', 'brand_id', 'brand_name', 'jancode', 'model_id', 'model_name', 'model_uni_name', 'model_full_name', 'model_descr', 'category', 'warehouse', 'image', 'url', 'image2', 'factory_yuan', 'integral', 'position', 'display', 'is_important', 'shot_type_id', 'shot_member_integral', 'shot_member_image', 'shot_member_name', 'status', 'created_at', 'updated_at')
- list_filter = ('brand_name', 'category', 'warehouse', 'shot_type_id', 'display', 'status')
- readonly_fields = ('brand_name', 'factory_fee')
- search_fields = ('brand_id', 'brand_name', 'jancode', 'model_id', 'model_name', 'model_uni_name', 'model_full_name', 'model_descr', 'category', 'warehouse')
- def save_model(self, request, obj, form, change):
- obj.brand_id = strip(obj.brand_id)
- try:
- obj.brand_name = BrandInfo.objects.get(brand_id=obj.brand_id).brand_name
- except BrandInfo.DoesNotExist:
- obj.brand_name = ''
- obj.factory_fee = monetary.Yuan2Fen(obj.factory_yuan)
- obj.factory_yuan = monetary.Fen2Yuan(obj.factory_fee)
- obj.save()
- update_member_shot_data()
-
- ModelCameraBodyInfo.objects.filter(
- brand_id=obj.brand_id,
- model_name=obj.model_uni_name,
- ).update(
- model_image=obj.shot_member_image,
- is_important=obj.is_important,
- )
- def delete_model(self, request, obj):
- obj.delete()
- update_member_shot_data()
- class CameraModelInfoAdmin(admin.ModelAdmin):
- list_display = ('brand_id', 'brand_name', 'camera_brand_name', 'camera_name', 'camera_image', 'camera_market_time', 'status', 'created_at', 'updated_at')
- list_filter = ('brand_name', 'camera_brand_name', 'status')
- def save_model(self, request, obj, form, change):
- obj.save()
-
- ModelCameraBodyInfo.objects.filter(
- brand_id=obj.brand_id,
- camera_brand_name=obj.camera_brand_name,
- camera_name=obj.camera_name,
- ).update(
- camera_image=obj.camera_image,
- camera_market_time=obj.camera_market_time,
- )
- class ModelCameraBodyInfoAdmin(DeleteModelAdmin, admin.ModelAdmin):
- list_display = ('brand_id', 'brand_name', 'model_name', 'model_full_name', 'model_image', 'is_important', 'camera_brand_name', 'camera_name', 'camera_image', 'camera_market_time', 'status', 'created_at', 'updated_at')
- list_filter = ('brand_name', 'model_name', 'is_important', 'camera_brand_name', 'status')
- readonly_fields = ('model_image', 'camera_image', 'camera_market_time')
- search_fields = ('brand_id', 'brand_name', 'model_name', 'model_full_name', 'camera_name')
- class ModelImageInfoAdmin(admin.ModelAdmin):
- list_display = ('model_id', 'model_name', 'image', 'url', 'position', 'status', 'created_at', 'updated_at')
- list_filter = ('model_name', 'status')
- def save_model(self, request, obj, form, change):
- obj.model_id = strip(obj.model_id)
- try:
- obj.model_name = ModelInfo.objects.get(model_id=obj.model_id).model_name
- except BrandInfo.DoesNotExist:
- obj.model_name = ''
- obj.save()
- class DistributorInfoAdmin(admin.ModelAdmin):
- list_display = ('brand_id', 'brand_name', 'department_id', 'distributor_id', 'distributor_name', 'distributor_short_name', 'distributor_province_name', 'position', 'status', 'created_at', 'updated_at')
- list_filter = ('brand_name', 'sr_id', 'distributor_province_name', 'status')
- readonly_fields = ('brand_name', 'distributor_province_code')
- search_fields = ('brand_id', 'brand_name', 'distributor_id', 'distributor_name', 'distributor_short_name', 'distributor_descr', 'distributor_province_code', 'distributor_province_name')
- def save_model(self, request, obj, form, change):
- obj.brand_id = strip(obj.brand_id)
- try:
- obj.brand_name = BrandInfo.objects.get(brand_id=obj.brand_id).brand_name
- except BrandInfo.DoesNotExist:
- obj.brand_name = ''
- obj.distributor_province_code = ProvinceShortModelMixin.PROVINCE_NAME_CODE_DICT.get(obj.distributor_province_name, '')
- obj.save()
- class SaleclerkInfoAdmin(AdvancedExportExcelModelAdmin, AdvancedActionsModelAdmin, admin.ModelAdmin):
- list_display = ('brand_id', 'brand_name', 'distributor_id', 'distributor_name', 'clerk_id', 'clerk_name', 'clerk_sex', 'clerk_phone', 'unionid', 'openid', 'num', 'integral', 'total_integral', 'user_status', 'test_user', 'is_online_sales', 'status', 'created_at', 'updated_at')
- list_filter = ('test_user', 'user_status', 'is_online_sales', 'status')
- search_fields = ('brand_id', 'brand_name', 'distributor_id', 'distributor_name', 'clerk_id', 'clerk_name', 'clerk_phone', 'unionid', 'openid')
- actions_exclude = ('delete_selected', )
- class MaintenancemanInfoAdmin(AdvancedExportExcelModelAdmin, AdvancedActionsModelAdmin, admin.ModelAdmin):
- list_display = ('brand_name', 'wx_userid', 'maintenance_id', 'maintenance_name', 'maintenance_phone', 'status', 'created_at', 'updated_at')
- search_fields = ('maintenance_id', 'maintenance_name', 'maintenance_phone')
- actions_exclude = ('delete_selected', )
- class BrandModelDistributorPriceInfoAdmin(admin.ModelAdmin):
- list_display = ('brand_id', 'brand_name', 'model_id', 'model_name', 'distributor_id', 'distributor_name', 'factory_yuan', 'integral', 'status', 'created_at', 'updated_at')
- list_filter = ('brand_name', 'model_name', 'distributor_name', 'status')
- readonly_fields = ('brand_name', 'model_name', 'distributor_name', 'factory_fee', )
- search_fields = ('brand_id', 'brand_name', 'model_id', 'model_name', 'distributor_id', 'distributor_name')
- def save_model(self, request, obj, form, change):
- obj.brand_id = strip(obj.brand_id)
- try:
- obj.brand_name = BrandInfo.objects.get(brand_id=obj.brand_id).brand_name
- except BrandInfo.DoesNotExist:
- obj.brand_name = ''
- obj.model_id = strip(obj.model_id)
- try:
- obj.model_name = ModelInfo.objects.get(model_id=obj.model_id).model_name
- except BrandInfo.DoesNotExist:
- obj.model_name = ''
- obj.distributor_id = strip(obj.distributor_id)
- try:
- obj.distributor_name = DistributorInfo.objects.get(distributor_id=obj.distributor_id).distributor_name
- except BrandInfo.DoesNotExist:
- obj.distributor_name = ''
- obj.factory_fee = monetary.Yuan2Fen(obj.factory_yuan)
- obj.factory_yuan = monetary.Fen2Yuan(obj.factory_fee)
- obj.save()
- class LatestAppInfoAdmin(admin.ModelAdmin):
- list_display = ('latest_adr_version_code', 'latest_adr_version_name', 'latest_adr_app', 'latest_adr_url', 'status', 'created_at', 'updated_at')
- list_filter = ('status', )
- readonly_fields = ('status', )
- def save_model(self, request, obj, form, change):
- if not obj.pk and LatestAppInfo.objects.filter(status=True).exists():
- return
- obj.latest_adr_version_name = strip(obj.latest_adr_version_name)
- obj.latest_adr_app = strip(obj.latest_adr_app)
- obj.latest_adr_url = strip(obj.latest_adr_url)
- obj.save()
- class LatestAppScreenInfoAdmin(admin.ModelAdmin):
- list_display = ('latest_adr_version_code', 'latest_adr_version_name', 'latest_adr_app', 'latest_adr_url', 'status', 'created_at', 'updated_at')
- list_filter = ('status', )
- readonly_fields = ('status', )
- def save_model(self, request, obj, form, change):
- if not obj.pk and LatestAppInfo.objects.filter(status=True).exists():
- return
- obj.latest_adr_version_name = strip(obj.latest_adr_version_name)
- obj.latest_adr_app = strip(obj.latest_adr_app)
- obj.latest_adr_url = strip(obj.latest_adr_url)
- obj.save()
- class ConsumeInfoSubmitLogInfoAdmin(AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin, admin.ModelAdmin):
- list_display = ('user_id', 'phone', 'model_name', 'serialNo', 'dupload', 'submit_during_activity', 'has_used', 'created_at')
- list_filter = ('brand_id', 'submit_during_activity', 'activity_id', 'dupload', 'test_user', 'verifyResult', 'has_used', 'status', 'code_version', 'created_at')
- excel_fields = ('created_at', 'phone', 'model_uni_name', 'model_name', 'serialNo')
- search_fields = ('user_id', 'phone', 'serialNo', 'model_name')
- class ActivityInfoAdmin(admin.ModelAdmin):
- list_display = ('activity_id', 'activity_name', 'model_uni_names', 'start_at', 'end_at', 'coupon_expire_type', 'coupon_valid_period', 'coupon_expire_at', 'coupon_value', 'status', 'created_at', 'updated_at')
- list_filter = ('coupon_expire_type', 'status')
- admin.site.register(AdministratorInfo, AdministratorInfoAdmin)
- admin.site.register(OperatorInfo, OperatorInfoAdmin)
- admin.site.register(BrandInfo, BrandInfoAdmin)
- admin.site.register(ModelInfo, ModelInfoAdmin)
- admin.site.register(CameraModelInfo, CameraModelInfoAdmin)
- admin.site.register(ModelCameraBodyInfo, ModelCameraBodyInfoAdmin)
- admin.site.register(DistributorInfo, DistributorInfoAdmin)
- admin.site.register(SaleclerkInfo, SaleclerkInfoAdmin)
- admin.site.register(LatestAppInfo, LatestAppInfoAdmin)
- admin.site.register(LatestAppScreenInfo, LatestAppScreenInfoAdmin)
- admin.site.register(ConsumeInfoSubmitLogInfo, ConsumeInfoSubmitLogInfoAdmin)
- admin.site.register(ActivityInfo, ActivityInfoAdmin)
- admin.site.register(MaintenancemanInfo, MaintenancemanInfoAdmin)
|