拍爱

admin.py 4.8KB

    # -*- coding: utf-8 -*- from curtail_uuid import CurtailUUID from django.contrib import admin from django.db import transaction from account.models import (LensmanIncomeExpensesInfo, LensmanInfo, LensmanLoginLogInfo, TourGuideInfo, UserIncomeExpensesInfo, UserInfo, UserLoginLogInfo) class LensmanInfoAdmin(admin.ModelAdmin): exclude = ('username', 'password', 'encryption') list_display = ('lensman_id', 'unionid', 'username', 'name', 'sex', 'phone', 'location', 'proportion', 'nomark', 'origin', 'balance', 'user_status', 'outtake_status', 'status', 'created_at', 'updated_at') list_filter = ('is_common_lensman', 'is_outtake_lensman', 'sex', 'user_status', 'outtake_status', 'status') readonly_fields = ('lensman_id', ) search_fields = ('name', 'phone', 'location') @transaction.atomic def save_model(self, request, obj, form, change): obj.save() if not obj.lensman_id: try: user_id = UserInfo.objects.select_for_update().get(unionid=obj.unionid).user_id except UserInfo.DoesNotExist: user_id = None obj.lensman_id = user_id or CurtailUUID.uuid(UserInfo, 'user_id') fields = { 'user_from': UserInfo.LENSMAN_USER, 'unionid': obj.unionid, 'name': obj.name, 'sex': obj.sex, 'phone': obj.phone, 'location': obj.location, 'islensman': True, 'user_status': obj.user_status, 'is_common_lensman': obj.is_common_lensman, 'is_outtake_lensman': obj.is_outtake_lensman, } user, created = UserInfo.objects.get_or_create(user_id=obj.lensman_id, defaults=fields) if not created: fields.pop('user_from', None) for key, value in fields.iteritems(): setattr(user, key, value) user.save() class LensmanLoginLogInfoAdmin(admin.ModelAdmin): list_display = ('lensman_id', 'login_ip', 'login_result', 'status', 'created_at', 'updated_at') class LensmanIncomeExpensesInfoAdmin(admin.ModelAdmin): list_display = ('lensman_id', 'photo_id', 'type', 'amount', 'balance', 'remark', 'status', 'created_at', 'updated_at') list_filter = ('type', 'status') class TourGuideInfoAdmin(admin.ModelAdmin): list_display = ('tourguide_id', 'unionid', 'name', 'sex', 'phone', 'location', 'no', 'user_status', 'status', 'created_at', 'updated_at') list_filter = ('sex', 'user_status', 'status') readonly_fields = ('tourguide_id', ) search_fields = ('name', 'phone', 'location', 'no') @transaction.atomic def save_model(self, request, obj, form, change): if not obj.tourguide_id: try: user_id = UserInfo.objects.select_for_update().get(unionid=obj.unionid).user_id except UserInfo.DoesNotExist: user_id = None obj.tourguide_id = user_id or CurtailUUID.uuid(UserInfo, 'user_id') obj.save() fields = { 'user_from': UserInfo.TOURGUIDE_USER, 'unionid': obj.unionid, 'name': obj.name, 'sex': obj.sex, 'phone': obj.phone, 'location': obj.location, 'istourguide': True, 'user_status': obj.user_status, 'outtake_status': obj.outtake_status, } user, created = UserInfo.objects.get_or_create(user_id=obj.tourguide_id, defaults=fields) if not created: fields.pop('user_from', None) for key, value in fields.iteritems(): setattr(user, key, value) user.save() class UserInfoAdmin(admin.ModelAdmin): list_display = ('user_id', 'user_from', 'username', 'openid', 'unionid', 'name', 'sex', 'nickname', 'phone', 'location', 'islensman', 'istourguide', 'balance', 'user_status', 'outtake_status', 'status', 'created_at', 'updated_at') list_filter = ('user_from', 'sex', 'islensman', 'istourguide', 'user_status', 'outtake_status', 'status') readonly_fields = ('user_id', ) search_fields = ('name', 'phone', 'location') class UserLoginLogInfoAdmin(admin.ModelAdmin): list_display = ('user_id', 'login_ip', 'login_result', 'status', 'created_at', 'updated_at') class UserIncomeExpensesInfoAdmin(admin.ModelAdmin): list_display = ('user_id', 'photo_id', 'type', 'amount', 'balance', 'remark', 'status', 'created_at', 'updated_at') list_filter = ('type', 'status') admin.site.register(LensmanInfo, LensmanInfoAdmin) admin.site.register(LensmanLoginLogInfo, LensmanLoginLogInfoAdmin) admin.site.register(LensmanIncomeExpensesInfo, LensmanIncomeExpensesInfoAdmin) admin.site.register(TourGuideInfo, TourGuideInfoAdmin) admin.site.register(UserInfo, UserInfoAdmin) admin.site.register(UserLoginLogInfo, UserLoginLogInfoAdmin) admin.site.register(UserIncomeExpensesInfo, UserIncomeExpensesInfoAdmin)