@@ -1,96 +1,9 @@  | 
            ||
| 1 | 1 | 
                # -*- coding: utf-8 -*-  | 
            
| 2 | 2 | 
                 | 
            
| 3 | 
                -from djadmin import ChangeOnlyModelAdmin, ReadOnlyModelAdmin  | 
            |
| 4 | 3 | 
                from django.contrib import admin  | 
            
| 5 | 
                -from django.db import transaction  | 
            |
| 6 | 
                -from django_curtail_uuid import CurtailUUID  | 
            |
| 4 | 
                +from django_admin import ChangeOnlyModelAdmin, ReadOnlyModelAdmin  | 
            |
| 7 | 5 | 
                 | 
            
| 8 | 
                -from account.models import (FranchiserInfo, LensmanIncomeExpensesInfo, LensmanInfo, SaleclerkInfo, TourGuideInfo,  | 
            |
| 9 | 
                - UserIncomeExpensesInfo, UserInfo)  | 
            |
| 10 | 
                -  | 
            |
| 11 | 
                -  | 
            |
| 12 | 
                -class LensmanInfoAdmin(ChangeOnlyModelAdmin, admin.ModelAdmin):  | 
            |
| 13 | 
                -    exclude = ('username', 'password', 'encryption')
               | 
            |
| 14 | 
                -    list_display = ('lensman_id', 'unionid', 'username', 'name', 'sex', 'phone', 'location', 'proportion', 'nomark', 'origin', 'balance', 'user_status', 'outtake_status', 'status', 'created_at', 'updated_at')
               | 
            |
| 15 | 
                -    list_filter = ('is_common_lensman', 'is_outtake_lensman', 'sex', 'user_status', 'outtake_status', 'status')
               | 
            |
| 16 | 
                -    readonly_fields = ('lensman_id', )
               | 
            |
| 17 | 
                -    search_fields = ('lensman_id', 'name', 'phone', 'location')
               | 
            |
| 18 | 
                -  | 
            |
| 19 | 
                - @transaction.atomic  | 
            |
| 20 | 
                - def save_model(self, request, obj, form, change):  | 
            |
| 21 | 
                - obj.save()  | 
            |
| 22 | 
                -  | 
            |
| 23 | 
                - if not obj.lensman_id:  | 
            |
| 24 | 
                - try:  | 
            |
| 25 | 
                - user_id = UserInfo.objects.select_for_update().get(unionid=obj.unionid).user_id  | 
            |
| 26 | 
                - except UserInfo.DoesNotExist:  | 
            |
| 27 | 
                - user_id = None  | 
            |
| 28 | 
                - obj.lensman_id = user_id or CurtailUUID.uuid(UserInfo, 'user_id')  | 
            |
| 29 | 
                - obj.save()  | 
            |
| 30 | 
                -  | 
            |
| 31 | 
                -        fields = {
               | 
            |
| 32 | 
                - 'user_from': UserInfo.LENSMAN_USER,  | 
            |
| 33 | 
                - 'unionid': obj.unionid,  | 
            |
| 34 | 
                - 'name': obj.name,  | 
            |
| 35 | 
                - 'sex': obj.sex,  | 
            |
| 36 | 
                - 'phone': obj.phone,  | 
            |
| 37 | 
                - 'location': obj.location,  | 
            |
| 38 | 
                - 'islensman': True,  | 
            |
| 39 | 
                - 'user_status': obj.user_status,  | 
            |
| 40 | 
                - 'outtake_status': obj.outtake_status,  | 
            |
| 41 | 
                - 'is_common_lensman': obj.is_common_lensman,  | 
            |
| 42 | 
                - 'is_outtake_lensman': obj.is_outtake_lensman,  | 
            |
| 43 | 
                - }  | 
            |
| 44 | 
                -  | 
            |
| 45 | 
                - user, created = UserInfo.objects.get_or_create(user_id=obj.lensman_id, defaults=fields)  | 
            |
| 46 | 
                -  | 
            |
| 47 | 
                - if not created:  | 
            |
| 48 | 
                -            fields.pop('user_from', None)
               | 
            |
| 49 | 
                - for key, value in fields.iteritems():  | 
            |
| 50 | 
                - setattr(user, key, value)  | 
            |
| 51 | 
                - user.save()  | 
            |
| 52 | 
                -  | 
            |
| 53 | 
                -  | 
            |
| 54 | 
                -class LensmanIncomeExpensesInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):  | 
            |
| 55 | 
                -    list_display = ('lensman_id', 'photo_id', 'type', 'amount', 'balance', 'remark', 'status', 'created_at', 'updated_at')
               | 
            |
| 56 | 
                -    list_filter = ('type', 'status')
               | 
            |
| 57 | 
                -  | 
            |
| 58 | 
                -  | 
            |
| 59 | 
                -class TourGuideInfoAdmin(ChangeOnlyModelAdmin, admin.ModelAdmin):  | 
            |
| 60 | 
                -    list_display = ('tourguide_id', 'unionid', 'name', 'sex', 'phone', 'location', 'no', 'user_status', 'status', 'created_at', 'updated_at')
               | 
            |
| 61 | 
                -    list_filter = ('sex', 'user_status', 'status')
               | 
            |
| 62 | 
                -    readonly_fields = ('tourguide_id', )
               | 
            |
| 63 | 
                -    search_fields = ('tourguide_id', 'name', 'phone', 'location', 'no')
               | 
            |
| 64 | 
                -  | 
            |
| 65 | 
                - @transaction.atomic  | 
            |
| 66 | 
                - def save_model(self, request, obj, form, change):  | 
            |
| 67 | 
                - if not obj.tourguide_id:  | 
            |
| 68 | 
                - try:  | 
            |
| 69 | 
                - user_id = UserInfo.objects.select_for_update().get(unionid=obj.unionid).user_id  | 
            |
| 70 | 
                - except UserInfo.DoesNotExist:  | 
            |
| 71 | 
                - user_id = None  | 
            |
| 72 | 
                - obj.tourguide_id = user_id or CurtailUUID.uuid(UserInfo, 'user_id')  | 
            |
| 73 | 
                - obj.save()  | 
            |
| 74 | 
                -  | 
            |
| 75 | 
                -        fields = {
               | 
            |
| 76 | 
                - 'user_from': UserInfo.TOURGUIDE_USER,  | 
            |
| 77 | 
                - 'unionid': obj.unionid,  | 
            |
| 78 | 
                - 'name': obj.name,  | 
            |
| 79 | 
                - 'sex': obj.sex,  | 
            |
| 80 | 
                - 'phone': obj.phone,  | 
            |
| 81 | 
                - 'location': obj.location,  | 
            |
| 82 | 
                - 'istourguide': True,  | 
            |
| 83 | 
                - 'user_status': obj.user_status,  | 
            |
| 84 | 
                - 'outtake_status': obj.outtake_status,  | 
            |
| 85 | 
                - }  | 
            |
| 86 | 
                -  | 
            |
| 87 | 
                - user, created = UserInfo.objects.get_or_create(user_id=obj.tourguide_id, defaults=fields)  | 
            |
| 88 | 
                -  | 
            |
| 89 | 
                - if not created:  | 
            |
| 90 | 
                -            fields.pop('user_from', None)
               | 
            |
| 91 | 
                - for key, value in fields.iteritems():  | 
            |
| 92 | 
                - setattr(user, key, value)  | 
            |
| 93 | 
                - user.save()  | 
            |
| 6 | 
                +from account.models import FranchiserInfo, SaleclerkInfo, UserInfo  | 
            |
| 94 | 7 | 
                 | 
            
| 95 | 8 | 
                 | 
            
| 96 | 9 | 
                class UserInfoAdmin(ChangeOnlyModelAdmin, admin.ModelAdmin):  | 
            
                @@ -100,11 +13,6 @@ class UserInfoAdmin(ChangeOnlyModelAdmin, admin.ModelAdmin):  | 
            ||
| 100 | 13 | 
                     search_fields = ('user_id', 'name', 'phone', 'location')
               | 
            
| 101 | 14 | 
                 | 
            
| 102 | 15 | 
                 | 
            
| 103 | 
                -class UserIncomeExpensesInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):  | 
            |
| 104 | 
                -    list_display = ('user_id', 'photo_id', 'type', 'amount', 'balance', 'remark', 'status', 'created_at', 'updated_at')
               | 
            |
| 105 | 
                -    list_filter = ('type', 'status')
               | 
            |
| 106 | 
                -  | 
            |
| 107 | 
                -  | 
            |
| 108 | 16 | 
                class FranchiserInfoAdmin(admin.ModelAdmin):  | 
            
| 109 | 17 | 
                     readonly_fields = ('franchiser_id', )
               | 
            
| 110 | 18 | 
                     list_display = ('franchiser_id', 'franchiser_name', 'franchiser_addr', 'franchiser_phone', 'franchiser_boss_name', 'franchiser_boss_phone', 'status', 'created_at', 'updated_at')
               | 
            
                @@ -119,11 +27,7 @@ class SaleclerkInfoAdmin(admin.ModelAdmin):  | 
            ||
| 119 | 27 | 
                     list_filter = ('user_status', 'status')
               | 
            
| 120 | 28 | 
                 | 
            
| 121 | 29 | 
                 | 
            
| 122 | 
                -# admin.site.register(LensmanInfo, LensmanInfoAdmin)  | 
            |
| 123 | 
                -# admin.site.register(LensmanIncomeExpensesInfo, LensmanIncomeExpensesInfoAdmin)  | 
            |
| 124 | 
                -# admin.site.register(TourGuideInfo, TourGuideInfoAdmin)  | 
            |
| 125 | 30 | 
                admin.site.register(UserInfo, UserInfoAdmin)  | 
            
| 126 | 
                -# admin.site.register(UserIncomeExpensesInfo, UserIncomeExpensesInfoAdmin)  | 
            |
| 127 | 31 | 
                 | 
            
| 128 | 32 | 
                admin.site.register(FranchiserInfo, FranchiserInfoAdmin)  | 
            
| 129 | 33 | 
                admin.site.register(SaleclerkInfo, SaleclerkInfoAdmin)  | 
            
                @@ -2,8 +2,8 @@  | 
            ||
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                from django.db import models  | 
            
| 4 | 4 | 
                from django.utils.translation import ugettext_lazy as _  | 
            
| 5 | 
                +from django_models_ext import BaseModelMixin, SexModelMixin  | 
            |
| 5 | 6 | 
                from jsonfield import JSONField  | 
            
| 6 | 
                -from models_ext import BaseModelMixin, SexModelMixin  | 
            |
| 7 | 7 | 
                from shortuuidfield import ShortUUIDField  | 
            
| 8 | 8 | 
                 | 
            
| 9 | 9 | 
                from pai2.basemodels import LensmanTypeBoolMixin, LensmanTypeMixin  | 
            
                @@ -4,8 +4,8 @@ from __future__ import division  | 
            ||
| 4 | 4 | 
                 | 
            
| 5 | 5 | 
                from django.conf import settings  | 
            
| 6 | 6 | 
                from django.db import transaction  | 
            
| 7 | 
                +from django_logit import logit  | 
            |
| 7 | 8 | 
                from django_response import response  | 
            
| 8 | 
                -from logit import logit  | 
            |
| 9 | 9 | 
                 | 
            
| 10 | 10 | 
                from account.models import TourGuideInfo, UserInfo  | 
            
| 11 | 11 | 
                from utils.error.errno_utils import TourGuideStatusCode  | 
            
                @@ -3,9 +3,9 @@  | 
            ||
| 3 | 3 | 
                from django.contrib.auth.models import Group, User  | 
            
| 4 | 4 | 
                from django.db import transaction  | 
            
| 5 | 5 | 
                from django_curtail_uuid import CurtailUUID  | 
            
| 6 | 
                +from django_logit import logit  | 
            |
| 6 | 7 | 
                from django_response import response  | 
            
| 7 | 8 | 
                from ipaddr import client_ip  | 
            
| 8 | 
                -from logit import logit  | 
            |
| 9 | 9 | 
                from rest_framework import viewsets  | 
            
| 10 | 10 | 
                from TimeConvert import TimeConvert as tc  | 
            
| 11 | 11 | 
                 | 
            
                @@ -4,8 +4,8 @@ from __future__ import division  | 
            ||
| 4 | 4 | 
                 | 
            
| 5 | 5 | 
                import random  | 
            
| 6 | 6 | 
                 | 
            
| 7 | 
                +from django_logit import logit  | 
            |
| 7 | 8 | 
                from django_response import response  | 
            
| 8 | 
                -from logit import logit  | 
            |
| 9 | 9 | 
                 | 
            
| 10 | 10 | 
                from mch.models import BrandInfo, ModelImageInfo, ModelInfo  | 
            
| 11 | 11 | 
                from utils.algorithm.b64 import b64_decrypt, b64_encrypt  | 
            
                @@ -4,8 +4,8 @@ from __future__ import division  | 
            ||
| 4 | 4 | 
                 | 
            
| 5 | 5 | 
                from django.conf import settings  | 
            
| 6 | 6 | 
                from django.contrib.auth.hashers import check_password  | 
            
| 7 | 
                +from django_logit import logit  | 
            |
| 7 | 8 | 
                from django_response import response  | 
            
| 8 | 
                -from logit import logit  | 
            |
| 9 | 9 | 
                from pywe_miniapp import get_phone_number  | 
            
| 10 | 10 | 
                from pywe_storage import RedisStorage  | 
            
| 11 | 11 | 
                 | 
            
                @@ -1,7 +1,7 @@  | 
            ||
| 1 | 1 | 
                # -*- coding: utf-8 -*-  | 
            
| 2 | 2 | 
                 | 
            
| 3 | 
                +from django_logit import logit  | 
            |
| 3 | 4 | 
                from django_response import response  | 
            
| 4 | 
                -from logit import logit  | 
            |
| 5 | 5 | 
                 | 
            
| 6 | 6 | 
                from account.models import UserInfo  | 
            
| 7 | 7 | 
                from utils.error.errno_utils import LensmanStatusCode, TokenStatusCode  | 
            
                @@ -5,8 +5,8 @@ from __future__ import division  | 
            ||
| 5 | 5 | 
                import json  | 
            
| 6 | 6 | 
                 | 
            
| 7 | 7 | 
                from django.core.serializers.json import DjangoJSONEncoder  | 
            
| 8 | 
                +from django_logit import logit  | 
            |
| 8 | 9 | 
                from django_response import response  | 
            
| 9 | 
                -from logit import logit  | 
            |
| 10 | 10 | 
                from TimeConvert import TimeConvert as tc  | 
            
| 11 | 11 | 
                 | 
            
| 12 | 12 | 
                from utils.error.errno_utils import GroupUserStatusCode  | 
            
                @@ -1,44 +1,4 @@  | 
            ||
| 1 | 
                -# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                -  | 
            |
| 3 | 
                -from djadmin import ReadOnlyModelAdmin  | 
            |
| 4 | 1 | 
                from django.contrib import admin  | 
            
| 5 | 2 | 
                 | 
            
| 6 | 
                -from group.models import (GroupInfo, GroupPhotoInfo, GroupPhotoOrderInfo, GroupUserInfo, PhotoCommentInfo,  | 
            |
| 7 | 
                - PhotoThumbUpInfo)  | 
            |
| 8 | 
                -  | 
            |
| 9 | 
                -  | 
            |
| 10 | 
                -class GroupInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):  | 
            |
| 11 | 
                -    list_display = ('group_id', 'admin_id', 'group_name', 'group_desc', 'group_from', 'session_id', 'group_lock', 'status', 'created_at', 'updated_at')
               | 
            |
| 12 | 
                -    list_filter = ('group_from', 'group_lock', 'status')
               | 
            |
| 13 | 
                -  | 
            |
| 14 | 
                -  | 
            |
| 15 | 
                -class GroupUserInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):  | 
            |
| 16 | 
                -    list_display = ('group_id', 'user_id', 'current_id', 'nickname', 'admin', 'subadmin', 'admin_status', 'user_status', 'passed_at', 'refused_at', 'status', 'created_at', 'updated_at')
               | 
            |
| 17 | 
                -    list_filter = ('admin', 'subadmin', 'user_status', 'admin_status', 'status')
               | 
            |
| 18 | 
                -  | 
            |
| 19 | 
                -  | 
            |
| 20 | 
                -class GroupPhotoInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):  | 
            |
| 21 | 
                -    list_display = ('photo_id', 'group_id', 'user_id', 'nickname', 'photo_path', 'has_watermark', 'photo_thumbnail_path', 'photo_thumbnail2_path', 'status', 'created_at', 'updated_at')
               | 
            |
| 22 | 
                -    list_filter = ('has_watermark', 'photo_from', 'status')
               | 
            |
| 23 | 
                -  | 
            |
| 24 | 
                -  | 
            |
| 25 | 
                -class GroupPhotoOrderInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):  | 
            |
| 26 | 
                -    list_display = ('group_id', 'user_id', 'photo_id', 'm_photo_path', 'l_photo_path', 'r_photo_path', 'status', 'created_at', 'updated_at')
               | 
            |
| 27 | 
                -  | 
            |
| 28 | 
                -  | 
            |
| 29 | 
                -class PhotoCommentInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):  | 
            |
| 30 | 
                -    list_display = ('photo_id', 'user_id', 'nickname', 'to_uid', 'comment', 'status', 'created_at', 'updated_at')
               | 
            |
| 31 | 
                -    list_filter = ('status', )
               | 
            |
| 32 | 
                -  | 
            |
| 33 | 
                -  | 
            |
| 34 | 
                -class PhotoThumbUpInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):  | 
            |
| 35 | 
                -    list_display = ('photo_id', 'user_id', 'nickname', 'thumbup', 'status', 'created_at', 'updated_at')
               | 
            |
| 36 | 
                -    list_filter = ('thumbup', 'status')
               | 
            |
| 37 | 
                -  | 
            |
| 38 | 3 | 
                 | 
            
| 39 | 
                -# admin.site.register(GroupInfo, GroupInfoAdmin)  | 
            |
| 40 | 
                -# admin.site.register(GroupUserInfo, GroupUserInfoAdmin)  | 
            |
| 41 | 
                -# admin.site.register(GroupPhotoInfo, GroupPhotoInfoAdmin)  | 
            |
| 42 | 
                -# admin.site.register(GroupPhotoOrderInfo, GroupPhotoOrderInfoAdmin)  | 
            |
| 43 | 
                -# admin.site.register(PhotoCommentInfo, PhotoCommentInfoAdmin)  | 
            |
| 44 | 
                -# admin.site.register(PhotoThumbUpInfo, PhotoThumbUpInfoAdmin)  | 
            |
| 4 | 
                +# Register your models here.  | 
            
                @@ -4,7 +4,7 @@ from __future__ import division  | 
            ||
| 4 | 4 | 
                 | 
            
| 5 | 5 | 
                from django.conf import settings  | 
            
| 6 | 6 | 
                from django.shortcuts import render  | 
            
| 7 | 
                -from logit import logit  | 
            |
| 7 | 
                +from django_logit import logit  | 
            |
| 8 | 8 | 
                 | 
            
| 9 | 9 | 
                from group.models import GroupPhotoInfo  | 
            
| 10 | 10 | 
                 | 
            
                @@ -2,8 +2,8 @@  | 
            ||
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                from __future__ import division  | 
            
| 4 | 4 | 
                 | 
            
| 5 | 
                +from django_logit import logit  | 
            |
| 5 | 6 | 
                from django_response import response  | 
            
| 6 | 
                -from logit import logit  | 
            |
| 7 | 7 | 
                from TimeConvert import TimeConvert as tc  | 
            
| 8 | 8 | 
                 | 
            
| 9 | 9 | 
                from account.models import UserInfo  | 
            
                @@ -4,10 +4,10 @@ from __future__ import division  | 
            ||
| 4 | 4 | 
                 | 
            
| 5 | 5 | 
                from django.db import transaction  | 
            
| 6 | 6 | 
                from django_curtail_uuid import CurtailUUID  | 
            
| 7 | 
                +from django_logit import logit  | 
            |
| 7 | 8 | 
                from django_response import response  | 
            
| 8 | 9 | 
                from ipaddr import client_ip  | 
            
| 9 | 10 | 
                from isoweek import Week  | 
            
| 10 | 
                -from logit import logit  | 
            |
| 11 | 11 | 
                from paginator import pagination  | 
            
| 12 | 12 | 
                from TimeConvert import TimeConvert as tc  | 
            
| 13 | 13 | 
                 | 
            
                @@ -2,7 +2,7 @@  | 
            ||
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                from django.db import models  | 
            
| 4 | 4 | 
                from django.utils.translation import ugettext_lazy as _  | 
            
| 5 | 
                -from models_ext import BaseModelMixin  | 
            |
| 5 | 
                +from django_models_ext import BaseModelMixin  | 
            |
| 6 | 6 | 
                from shortuuidfield import ShortUUIDField  | 
            
| 7 | 7 | 
                from TimeConvert import TimeConvert as tc  | 
            
| 8 | 8 | 
                 | 
            
                @@ -8,8 +8,8 @@ import shortuuid  | 
            ||
| 8 | 8 | 
                from django.conf import settings  | 
            
| 9 | 9 | 
                from django.core.serializers.json import DjangoJSONEncoder  | 
            
| 10 | 10 | 
                from django_curtail_uuid import CurtailUUID  | 
            
| 11 | 
                +from django_logit import logit  | 
            |
| 11 | 12 | 
                from django_response import response  | 
            
| 12 | 
                -from logit import logit  | 
            |
| 13 | 13 | 
                from TimeConvert import TimeConvert as tc  | 
            
| 14 | 14 | 
                 | 
            
| 15 | 15 | 
                from account.models import UserInfo  | 
            
                @@ -2,8 +2,8 @@  | 
            ||
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                from __future__ import division  | 
            
| 4 | 4 | 
                 | 
            
| 5 | 
                +from django_logit import logit  | 
            |
| 5 | 6 | 
                from django_response import response  | 
            
| 6 | 
                -from logit import logit  | 
            |
| 7 | 7 | 
                 | 
            
| 8 | 8 | 
                from group.models import GroupUserInfo  | 
            
| 9 | 9 | 
                from utils.admin_utils import is_group_admin  | 
            
                @@ -6,8 +6,8 @@ import json  | 
            ||
| 6 | 6 | 
                 | 
            
| 7 | 7 | 
                from django.conf import settings  | 
            
| 8 | 8 | 
                from django.db import transaction  | 
            
| 9 | 
                +from django_logit import logit  | 
            |
| 9 | 10 | 
                from django_response import response  | 
            
| 10 | 
                -from logit import logit  | 
            |
| 11 | 11 | 
                from TimeConvert import TimeConvert as tc  | 
            
| 12 | 12 | 
                 | 
            
| 13 | 13 | 
                from account.models import UserInfo  | 
            
                @@ -5,8 +5,8 @@ from __future__ import division  | 
            ||
| 5 | 5 | 
                from django.conf import settings  | 
            
| 6 | 6 | 
                from django.db import connection, transaction  | 
            
| 7 | 7 | 
                from django_curtail_uuid import CurtailUUID  | 
            
| 8 | 
                +from django_logit import logit  | 
            |
| 8 | 9 | 
                from django_response import response  | 
            
| 9 | 
                -from logit import logit  | 
            |
| 10 | 10 | 
                from paginator import pagination  | 
            
| 11 | 11 | 
                from rest_framework import viewsets  | 
            
| 12 | 12 | 
                from TimeConvert import TimeConvert as tc  | 
            
                @@ -1,7 +1,7 @@  | 
            ||
| 1 | 1 | 
                # -*- coding: utf-8 -*-  | 
            
| 2 | 2 | 
                 | 
            
| 3 | 
                -from djadmin import ReadOnlyModelAdmin  | 
            |
| 4 | 3 | 
                from django.contrib import admin  | 
            
| 4 | 
                +from django_admin import ReadOnlyModelAdmin  | 
            |
| 5 | 5 | 
                 | 
            
| 6 | 6 | 
                from integral.models import SaleclerkIntegralIncomeExpensesInfo, SaleclerkSubmitLogInfo  | 
            
| 7 | 7 | 
                 | 
            
                @@ -3,7 +3,7 @@  | 
            ||
| 3 | 3 | 
                from __future__ import unicode_literals  | 
            
| 4 | 4 | 
                 | 
            
| 5 | 5 | 
                from django.db import migrations, models  | 
            
| 6 | 
                -import models_ext.fileext  | 
            |
| 6 | 
                +import django_models_ext.fileext  | 
            |
| 7 | 7 | 
                 | 
            
| 8 | 8 | 
                 | 
            
| 9 | 9 | 
                class Migration(migrations.Migration):  | 
            
                @@ -27,7 +27,7 @@ class Migration(migrations.Migration):  | 
            ||
| 27 | 27 | 
                                 ('consumer_phone', models.CharField(blank=True, help_text='\u6d88\u8d39\u8005\u624b\u673a\u53f7', max_length=32, null=True, verbose_name='consumer_phone')),
               | 
            
| 28 | 28 | 
                                 ('lat', models.FloatField(default=1.0, help_text='\u7eac\u5ea6', verbose_name='lat')),
               | 
            
| 29 | 29 | 
                                 ('lon', models.FloatField(default=1.0, help_text='\u7ecf\u5ea6', verbose_name='lon')),
               | 
            
| 30 | 
                -                ('image', models.FileField(blank=True, help_text='\u56fe\u7247', null=True, upload_to=models_ext.fileext.upload_path, verbose_name='image')),
               | 
            |
| 30 | 
                +                ('image', models.FileField(blank=True, help_text='\u56fe\u7247', null=True, upload_to=django_models_ext.fileext.upload_path, verbose_name='image')),
               | 
            |
| 31 | 31 | 
                                 ('remark', models.CharField(blank=True, help_text='\u5907\u6ce8', max_length=255, null=True, verbose_name='remark')),
               | 
            
| 32 | 32 | 
                ],  | 
            
| 33 | 33 | 
                             options={
               | 
            
                @@ -48,7 +48,7 @@ class Migration(migrations.Migration):  | 
            ||
| 48 | 48 | 
                migrations.AddField(  | 
            
| 49 | 49 | 
                model_name='saleclerkintegralincomeexpensesinfo',  | 
            
| 50 | 50 | 
                name='image',  | 
            
| 51 | 
                - field=models.FileField(blank=True, help_text='\u56fe\u7247', null=True, upload_to=models_ext.fileext.upload_path, verbose_name='image'),  | 
            |
| 51 | 
                + field=models.FileField(blank=True, help_text='\u56fe\u7247', null=True, upload_to=django_models_ext.fileext.upload_path, verbose_name='image'),  | 
            |
| 52 | 52 | 
                ),  | 
            
| 53 | 53 | 
                migrations.AddField(  | 
            
| 54 | 54 | 
                model_name='saleclerkintegralincomeexpensesinfo',  | 
            
                @@ -2,7 +2,7 @@  | 
            ||
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                from django.db import models  | 
            
| 4 | 4 | 
                from django.utils.translation import ugettext_lazy as _  | 
            
| 5 | 
                -from models_ext import BaseModelMixin, upload_path  | 
            |
| 5 | 
                +from django_models_ext import BaseModelMixin, upload_path  | 
            |
| 6 | 6 | 
                 | 
            
| 7 | 7 | 
                 | 
            
| 8 | 8 | 
                class SaleclerkIntegralIncomeExpensesInfo(BaseModelMixin):  | 
            
                @@ -1,9 +1,9 @@  | 
            ||
| 1 | 1 | 
                # -*- coding: utf-8 -*-  | 
            
| 2 | 2 | 
                 | 
            
| 3 | 
                -from djadmin import DeleteModelAdmin, ReadOnlyModelAdmin  | 
            |
| 4 | 3 | 
                from django.conf import settings  | 
            
| 5 | 4 | 
                from django.contrib import admin  | 
            
| 6 | 
                -from django.contrib.auth.hashers import check_password, make_password  | 
            |
| 5 | 
                +from django.contrib.auth.hashers import make_password  | 
            |
| 6 | 
                +from django_admin import DeleteModelAdmin, ReadOnlyModelAdmin  | 
            |
| 7 | 7 | 
                from pysnippets.strsnippets import strip  | 
            
| 8 | 8 | 
                 | 
            
| 9 | 9 | 
                from mch.models import (BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, LatestAppInfo, ModelImageInfo, ModelInfo,  | 
            
                @@ -3,7 +3,7 @@  | 
            ||
| 3 | 3 | 
                from __future__ import unicode_literals  | 
            
| 4 | 4 | 
                 | 
            
| 5 | 5 | 
                from django.db import migrations, models  | 
            
| 6 | 
                -import models_ext.fileext  | 
            |
| 6 | 
                +import django_models_ext.fileext  | 
            |
| 7 | 7 | 
                 | 
            
| 8 | 8 | 
                 | 
            
| 9 | 9 | 
                class Migration(migrations.Migration):  | 
            
                @@ -21,7 +21,7 @@ class Migration(migrations.Migration):  | 
            ||
| 21 | 21 | 
                                 ('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')),
               | 
            
| 22 | 22 | 
                                 ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')),
               | 
            
| 23 | 23 | 
                                 ('model_id', models.CharField(blank=True, db_index=True, help_text='\u578b\u53f7\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='model_id')),
               | 
            
| 24 | 
                -                ('image', models.ImageField(blank=True, help_text='\u56fe\u7247', null=True, upload_to=models_ext.fileext.upload_path, verbose_name='image')),
               | 
            |
| 24 | 
                +                ('image', models.ImageField(blank=True, help_text='\u56fe\u7247', null=True, upload_to=django_models_ext.fileext.upload_path, verbose_name='image')),
               | 
            |
| 25 | 25 | 
                                 ('url', models.TextField(blank=True, help_text='\u94fe\u63a5', max_length=255, null=True, verbose_name='url')),
               | 
            
| 26 | 26 | 
                                 ('position', models.IntegerField(default=1, help_text='\u6392\u5e8f', verbose_name='position')),
               | 
            
| 27 | 27 | 
                ],  | 
            
                @@ -33,7 +33,7 @@ class Migration(migrations.Migration):  | 
            ||
| 33 | 33 | 
                migrations.AddField(  | 
            
| 34 | 34 | 
                model_name='brandinfo',  | 
            
| 35 | 35 | 
                name='brand_logo',  | 
            
| 36 | 
                - field=models.ImageField(blank=True, help_text='\u54c1\u724c\u5546\u6807', null=True, upload_to=models_ext.fileext.upload_path, verbose_name='brand_logo'),  | 
            |
| 36 | 
                + field=models.ImageField(blank=True, help_text='\u54c1\u724c\u5546\u6807', null=True, upload_to=django_models_ext.fileext.upload_path, verbose_name='brand_logo'),  | 
            |
| 37 | 37 | 
                ),  | 
            
| 38 | 38 | 
                migrations.AddField(  | 
            
| 39 | 39 | 
                model_name='distributorinfo',  | 
            
                @@ -3,7 +3,7 @@  | 
            ||
| 3 | 3 | 
                from __future__ import unicode_literals  | 
            
| 4 | 4 | 
                 | 
            
| 5 | 5 | 
                from django.db import migrations, models  | 
            
| 6 | 
                -import models_ext.fileext  | 
            |
| 6 | 
                +import django_models_ext.fileext  | 
            |
| 7 | 7 | 
                 | 
            
| 8 | 8 | 
                 | 
            
| 9 | 9 | 
                class Migration(migrations.Migration):  | 
            
                @@ -22,7 +22,7 @@ class Migration(migrations.Migration):  | 
            ||
| 22 | 22 | 
                                 ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')),
               | 
            
| 23 | 23 | 
                                 ('latest_adr_version_code', models.IntegerField(default=0, help_text='\u6700\u65b0\u5b89\u5353\u7248\u672c\u53f7', verbose_name='latest_adr_version_code')),
               | 
            
| 24 | 24 | 
                                 ('latest_adr_version_name', models.CharField(blank=True, help_text='\u6700\u65b0\u5b89\u5353\u7248\u672c\u540d', max_length=16, null=True, verbose_name='latest_adr_version_name')),
               | 
            
| 25 | 
                -                ('latest_adr_app', models.FileField(blank=True, help_text='\u6700\u65b0\u7248\u5b89\u5353 APP', null=True, upload_to=models_ext.fileext.upload_path, verbose_name='latest_adr_app')),
               | 
            |
| 25 | 
                +                ('latest_adr_app', models.FileField(blank=True, help_text='\u6700\u65b0\u7248\u5b89\u5353 APP', null=True, upload_to=django_models_ext.fileext.upload_path, verbose_name='latest_adr_app')),
               | 
            |
| 26 | 26 | 
                                 ('latest_adr_url', models.URLField(blank=True, help_text='\u6700\u65b0\u7248 APP \u94fe\u63a5', max_length=255, null=True, verbose_name='latest_adr_url')),
               | 
            
| 27 | 27 | 
                                 ('latest_ios_version_code', models.IntegerField(default=0, help_text='\u6700\u65b0 iOS \u7248\u672c\u53f7', verbose_name='latest_ios_version_code')),
               | 
            
| 28 | 28 | 
                                 ('latest_ios_version_name', models.CharField(blank=True, help_text='\u6700\u65b0 iOS \u7248\u672c\u540d', max_length=16, null=True, verbose_name='latest_ios_version_name')),
               | 
            
                @@ -2,7 +2,7 @@  | 
            ||
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                from django.db import models  | 
            
| 4 | 4 | 
                from django.utils.translation import ugettext_lazy as _  | 
            
| 5 | 
                -from models_ext import BaseModelMixin, upload_file_url, upload_path  | 
            |
| 5 | 
                +from django_models_ext import BaseModelMixin, upload_file_url, upload_path  | 
            |
| 6 | 6 | 
                from shortuuidfield import ShortUUIDField  | 
            
| 7 | 7 | 
                 | 
            
| 8 | 8 | 
                 | 
            
                @@ -1,32 +1,4 @@  | 
            ||
| 1 | 
                -# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                -  | 
            |
| 3 | 
                -from djadmin import ReadOnlyModelAdmin  | 
            |
| 4 | 1 | 
                from django.contrib import admin  | 
            
| 5 | 2 | 
                 | 
            
| 6 | 
                -from message.models import SystemMessageDeleteInfo, SystemMessageInfo, SystemMessageReadInfo, UserMessageInfo  | 
            |
| 7 | 
                -  | 
            |
| 8 | 
                -  | 
            |
| 9 | 
                -class UserMessageInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):  | 
            |
| 10 | 
                -    list_display = ('from_uid', 'from_nickname', 'to_uid', 'group_id', 'photo_id', 'msg_type', 'read', 'status', 'created_at', 'updated_at')
               | 
            |
| 11 | 
                -    list_filter = ('msg_type', 'read', 'status')
               | 
            |
| 12 | 
                -  | 
            |
| 13 | 
                -  | 
            |
| 14 | 
                -class SystemMessageInfoAdmin(admin.ModelAdmin):  | 
            |
| 15 | 
                -    list_display = ('title', 'content', 'url', 'src', 'status', 'created_at', 'updated_at')
               | 
            |
| 16 | 
                -    list_filter = ('src', 'status')
               | 
            |
| 17 | 
                -  | 
            |
| 18 | 
                -  | 
            |
| 19 | 
                -class SystemMessageReadInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):  | 
            |
| 20 | 
                -    list_display = ('user_id', 'msg_id', 'status', 'created_at', 'updated_at')
               | 
            |
| 21 | 
                -    list_filter = ('status', )
               | 
            |
| 22 | 
                -  | 
            |
| 23 | 
                -  | 
            |
| 24 | 
                -class SystemMessageDeleteInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):  | 
            |
| 25 | 
                -    list_display = ('user_id', 'msg_id', 'status', 'created_at', 'updated_at')
               | 
            |
| 26 | 
                -    list_filter = ('status', )
               | 
            |
| 27 | 
                -  | 
            |
| 28 | 3 | 
                 | 
            
| 29 | 
                -# admin.site.register(UserMessageInfo, UserMessageInfoAdmin)  | 
            |
| 30 | 
                -# admin.site.register(SystemMessageInfo, SystemMessageInfoAdmin)  | 
            |
| 31 | 
                -# admin.site.register(SystemMessageReadInfo, SystemMessageReadInfoAdmin)  | 
            |
| 32 | 
                -# admin.site.register(SystemMessageDeleteInfo, SystemMessageDeleteInfoAdmin)  | 
            |
| 4 | 
                +# Register your models here.  | 
            
                @@ -3,7 +3,7 @@  | 
            ||
| 3 | 3 | 
                from django.conf import settings  | 
            
| 4 | 4 | 
                from django.db import models  | 
            
| 5 | 5 | 
                from django.utils.translation import ugettext_lazy as _  | 
            
| 6 | 
                -from models_ext import BaseModelMixin  | 
            |
| 6 | 
                +from django_models_ext import BaseModelMixin  | 
            |
| 7 | 7 | 
                from TimeConvert import TimeConvert as tc  | 
            
| 8 | 8 | 
                 | 
            
| 9 | 9 | 
                from group.models import GroupPhotoInfo  | 
            
                @@ -1,8 +1,8 @@  | 
            ||
| 1 | 1 | 
                # -*- coding: utf-8 -*-  | 
            
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                from django.conf import settings  | 
            
| 4 | 
                +from django_logit import logit  | 
            |
| 4 | 5 | 
                from django_response import response  | 
            
| 5 | 
                -from logit import logit  | 
            |
| 6 | 6 | 
                from paginator import pagination  | 
            
| 7 | 7 | 
                 | 
            
| 8 | 8 | 
                from account.models import UserInfo  | 
            
                @@ -3,9 +3,9 @@  | 
            ||
| 3 | 3 | 
                from django.conf import settings  | 
            
| 4 | 4 | 
                from django.db import transaction  | 
            
| 5 | 5 | 
                from django_curtail_uuid import CurtailUUID  | 
            
| 6 | 
                +from django_logit import logit  | 
            |
| 6 | 7 | 
                from django_response import response  | 
            
| 7 | 8 | 
                from ipaddr import client_ip  | 
            
| 8 | 
                -from logit import logit  | 
            |
| 9 | 9 | 
                from pywe_membercard import get_miniapp_extraData  | 
            
| 10 | 10 | 
                from pywe_miniapp import get_userinfo  | 
            
| 11 | 11 | 
                from pywe_storage import RedisStorage  | 
            
                @@ -1,178 +1,4 @@  | 
            ||
| 1 | 
                -# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                -  | 
            |
| 3 | 
                -from djadmin import AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin  | 
            |
| 4 | 
                -from django.conf import settings  | 
            |
| 5 | 1 | 
                from django.contrib import admin  | 
            
| 6 | 
                -from django.template.loader import render_to_string  | 
            |
| 7 | 
                -from pysnippets.strsnippets import strip  | 
            |
| 8 | 
                -  | 
            |
| 9 | 
                -from operation.models import (APPSettingsInfo, BoxProgramVersionInfo, FeedbackInfo, GuestEntranceControlInfo,  | 
            |
| 10 | 
                - LatestAppInfo, PatchInfo, SplashInfo)  | 
            |
| 11 | 
                -from utils.disk_utils import write_to_disk  | 
            |
| 12 | 
                -from utils.redis.rapp import set_latest_app  | 
            |
| 13 | 
                -from utils.redis.rguest import delete_guest_entrance_control, set_guest_entrance_control  | 
            |
| 14 | 
                -from utils.redis.roperation.rbox_program_version import set_box_program_version  | 
            |
| 15 | 
                -from utils.redis.rpatch import del_app_patch_info, set_app_patch_info  | 
            |
| 16 | 
                -from utils.redis.rsettings import del_app_settings_info, set_app_settings_info  | 
            |
| 17 | 
                -  | 
            |
| 18 | 
                -  | 
            |
| 19 | 
                -class LatestAppInfoAdmin(admin.ModelAdmin):  | 
            |
| 20 | 
                -    list_display = ('latest_adr_version_code', 'latest_adr_version_name', 'latest_adr_app', 'latest_adr_url', 'latest_ios_version_code', 'latest_ios_version_name', 'latest_ios_url', 'src', 'status', 'created_at', 'updated_at')
               | 
            |
| 21 | 
                -    list_filter = ('src', 'status')
               | 
            |
| 22 | 
                -    readonly_fields = ('status', )
               | 
            |
| 23 | 
                -  | 
            |
| 24 | 
                - def save_model(self, request, obj, form, change):  | 
            |
| 25 | 
                - if not obj.pk and LatestAppInfo.objects.filter(src=obj.src, status=True).exists():  | 
            |
| 26 | 
                - return  | 
            |
| 27 | 
                - obj.latest_adr_version_name = strip(obj.latest_adr_version_name)  | 
            |
| 28 | 
                - obj.latest_adr_app = strip(obj.latest_adr_app)  | 
            |
| 29 | 
                - obj.latest_adr_url = strip(obj.latest_adr_url)  | 
            |
| 30 | 
                - obj.latest_ios_version_name = strip(obj.latest_ios_version_name)  | 
            |
| 31 | 
                - obj.latest_ios_url = strip(obj.latest_ios_url)  | 
            |
| 32 | 
                - obj.save()  | 
            |
| 33 | 
                -  | 
            |
| 34 | 
                - if obj.src == LatestAppInfo.PAIAI_USER:  | 
            |
| 35 | 
                - # 更新安卓下载页面  | 
            |
| 36 | 
                -            write_to_disk(render_to_string('page/download.tmpl.html', {
               | 
            |
| 37 | 
                - 'src': obj.src,  | 
            |
| 38 | 
                - 'version': obj.latest_adr_version_name,  | 
            |
| 39 | 
                - }), settings.PAI2_USER_DOWNLOAD_ADR_PAGE_PATH)  | 
            |
| 40 | 
                -  | 
            |
| 41 | 
                - # 更新 iOS 下载页面  | 
            |
| 42 | 
                -            write_to_disk(render_to_string('page/download.tmpl.html', {
               | 
            |
| 43 | 
                - 'src': obj.src,  | 
            |
| 44 | 
                - 'version': obj.latest_ios_version_name,  | 
            |
| 45 | 
                - }), settings.PAI2_USER_DOWNLOAD_IOS_PAGE_PATH)  | 
            |
| 46 | 
                -  | 
            |
| 47 | 
                - elif obj.src == LatestAppInfo.PAIAI_LENSMAN:  | 
            |
| 48 | 
                - # 更新安卓下载页面  | 
            |
| 49 | 
                -            write_to_disk(render_to_string('page/download.tmpl.html', {
               | 
            |
| 50 | 
                - 'src': obj.src,  | 
            |
| 51 | 
                - 'version': obj.latest_adr_version_name,  | 
            |
| 52 | 
                - }), settings.PAI2_LENSMAN_DOWNLOAD_ADR_PAGE_PATH)  | 
            |
| 53 | 
                -  | 
            |
| 54 | 
                - # 更新 iOS 下载页面  | 
            |
| 55 | 
                -            write_to_disk(render_to_string('page/download.tmpl.html', {
               | 
            |
| 56 | 
                - 'src': obj.src,  | 
            |
| 57 | 
                - 'version': obj.latest_ios_version_name,  | 
            |
| 58 | 
                - }), settings.PAI2_LENSMAN_DOWNLOAD_IOS_PAGE_PATH)  | 
            |
| 59 | 
                -  | 
            |
| 60 | 
                - elif obj.src == LatestAppInfo.PAIAI_TOURGUIDE:  | 
            |
| 61 | 
                - # 更新安卓下载页面  | 
            |
| 62 | 
                -            write_to_disk(render_to_string('page/download.tmpl.html', {
               | 
            |
| 63 | 
                - 'src': obj.src,  | 
            |
| 64 | 
                - 'version': obj.latest_adr_version_name,  | 
            |
| 65 | 
                - }), settings.PAI2_TOURGUIDE_DOWNLOAD_ADR_PAGE_PATH)  | 
            |
| 66 | 
                -  | 
            |
| 67 | 
                - # 更新 iOS 下载页面  | 
            |
| 68 | 
                -            write_to_disk(render_to_string('page/download.tmpl.html', {
               | 
            |
| 69 | 
                - 'src': obj.src,  | 
            |
| 70 | 
                - 'version': obj.latest_ios_version_name,  | 
            |
| 71 | 
                - }), settings.PAI2_TOURGUIDE_DOWNLOAD_IOS_PAGE_PATH)  | 
            |
| 72 | 
                -  | 
            |
| 73 | 
                - # 设置最新 APP 信息  | 
            |
| 74 | 
                - set_latest_app(obj.src)  | 
            |
| 75 | 
                -  | 
            |
| 76 | 
                - def delete_model(self, request, obj):  | 
            |
| 77 | 
                - obj.delete()  | 
            |
| 78 | 
                -  | 
            |
| 79 | 
                - # 设置最新 APP 信息  | 
            |
| 80 | 
                - set_latest_app(obj.src)  | 
            |
| 81 | 
                -  | 
            |
| 82 | 
                -  | 
            |
| 83 | 
                -class PatchInfoAdmin(admin.ModelAdmin):  | 
            |
| 84 | 
                -    list_display = ('platform', 'version', 'patch', 'src', 'status', 'created_at', 'updated_at')
               | 
            |
| 85 | 
                -    list_filter = ('platform', 'src', 'status')
               | 
            |
| 86 | 
                -  | 
            |
| 87 | 
                - def save_model(self, request, obj, form, change):  | 
            |
| 88 | 
                - obj.version = strip(obj.version)  | 
            |
| 89 | 
                - obj.save()  | 
            |
| 90 | 
                -  | 
            |
| 91 | 
                - # 设置 APP 补丁信息  | 
            |
| 92 | 
                - set_app_patch_info(obj)  | 
            |
| 93 | 
                -  | 
            |
| 94 | 
                - def delete_model(self, request, obj):  | 
            |
| 95 | 
                - obj.delete()  | 
            |
| 96 | 
                -  | 
            |
| 97 | 
                - # 删除 APP 补丁信息  | 
            |
| 98 | 
                - del_app_patch_info(obj)  | 
            |
| 99 | 
                -  | 
            |
| 100 | 
                -  | 
            |
| 101 | 
                -class APPSettingsInfoAdmin(admin.ModelAdmin):  | 
            |
| 102 | 
                -    list_display = ('platform', 'channel', 'version', 'online', 'status', 'created_at', 'updated_at')
               | 
            |
| 103 | 
                -    list_filter = ('platform', 'online', 'status')
               | 
            |
| 104 | 
                -  | 
            |
| 105 | 
                - def save_model(self, request, obj, form, change):  | 
            |
| 106 | 
                - obj.channel = strip(obj.channel)  | 
            |
| 107 | 
                - obj.version = strip(obj.version)  | 
            |
| 108 | 
                - obj.save()  | 
            |
| 109 | 
                -  | 
            |
| 110 | 
                - # 设置 APP 设置信息  | 
            |
| 111 | 
                - set_app_settings_info(obj)  | 
            |
| 112 | 
                -  | 
            |
| 113 | 
                - def delete_model(self, request, obj):  | 
            |
| 114 | 
                - obj.delete()  | 
            |
| 115 | 
                -  | 
            |
| 116 | 
                - # 删除 APP 设置信息  | 
            |
| 117 | 
                - del_app_settings_info(obj)  | 
            |
| 118 | 
                -  | 
            |
| 119 | 
                -  | 
            |
| 120 | 
                -class SplashInfoAdmin(admin.ModelAdmin):  | 
            |
| 121 | 
                -    list_display = ('splash_image', 'spalash_image_airtime', 'spalash_image_deadline', 'src', 'status', 'created_at', 'updated_at')
               | 
            |
| 122 | 
                -    list_filter = ('src', 'status')
               | 
            |
| 123 | 
                -  | 
            |
| 124 | 
                -  | 
            |
| 125 | 
                -class FeedbackInfoAdmin(AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin, admin.ModelAdmin):  | 
            |
| 126 | 
                -    list_display = ('user_id', 'feedback', 'src', 'status', 'created_at', 'updated_at')
               | 
            |
| 127 | 
                -    list_filter = ('src', 'status')
               | 
            |
| 128 | 
                -  | 
            |
| 129 | 
                -  | 
            |
| 130 | 
                -class GuestEntranceControlInfoAdmin(admin.ModelAdmin):  | 
            |
| 131 | 
                -    list_display = ('platform', 'min_adr', 'max_adr', 'min_ios', 'max_ios', 'src', 'status', 'created_at', 'updated_at')
               | 
            |
| 132 | 
                -    list_filter = ('src', 'status')
               | 
            |
| 133 | 
                -  | 
            |
| 134 | 
                - def save_model(self, request, obj, form, change):  | 
            |
| 135 | 
                - obj.min_adr = strip(obj.min_adr)  | 
            |
| 136 | 
                - obj.max_adr = strip(obj.max_adr)  | 
            |
| 137 | 
                - obj.min_ios = strip(obj.min_ios)  | 
            |
| 138 | 
                - obj.max_ios = strip(obj.max_ios)  | 
            |
| 139 | 
                - obj.save()  | 
            |
| 140 | 
                -  | 
            |
| 141 | 
                - # 设置游客入口控制  | 
            |
| 142 | 
                - set_guest_entrance_control(obj)  | 
            |
| 143 | 
                -  | 
            |
| 144 | 
                - def delete_model(self, request, obj):  | 
            |
| 145 | 
                - obj.delete()  | 
            |
| 146 | 
                -  | 
            |
| 147 | 
                - # 删除游客入口控制  | 
            |
| 148 | 
                - delete_guest_entrance_control()  | 
            |
| 149 | 
                -  | 
            |
| 150 | 
                -  | 
            |
| 151 | 
                -class BoxProgramVersionInfoAdmin(admin.ModelAdmin):  | 
            |
| 152 | 
                -    list_display = ('srv_version_code', 'srv_version_name', 'srv_sha1', 'proc_version_code', 'proc_version_name', 'proc_sha1', 'status', 'created_at', 'updated_at')
               | 
            |
| 153 | 
                -    list_filter = ('status', )
               | 
            |
| 154 | 
                -  | 
            |
| 155 | 
                - def save_model(self, request, obj, form, change):  | 
            |
| 156 | 
                - obj.srv_version_name = strip(obj.srv_version_name)  | 
            |
| 157 | 
                - obj.srv_sha1 = strip(obj.srv_sha1)  | 
            |
| 158 | 
                - obj.proc_version_name = strip(obj.proc_version_name)  | 
            |
| 159 | 
                - obj.proc_sha1 = strip(obj.proc_sha1)  | 
            |
| 160 | 
                - obj.save()  | 
            |
| 161 | 
                -  | 
            |
| 162 | 
                - # 设置 BOX 程序版本信息  | 
            |
| 163 | 
                - set_box_program_version()  | 
            |
| 164 | 
                -  | 
            |
| 165 | 
                - def delete_model(self, request, obj):  | 
            |
| 166 | 
                - obj.delete()  | 
            |
| 167 | 
                -  | 
            |
| 168 | 
                - # 设置 BOX 程序版本信息  | 
            |
| 169 | 
                - set_box_program_version()  | 
            |
| 170 | 2 | 
                 | 
            
| 171 | 3 | 
                 | 
            
| 172 | 
                -# admin.site.register(LatestAppInfo, LatestAppInfoAdmin)  | 
            |
| 173 | 
                -# admin.site.register(PatchInfo, PatchInfoAdmin)  | 
            |
| 174 | 
                -# admin.site.register(APPSettingsInfo, APPSettingsInfoAdmin)  | 
            |
| 175 | 
                -# admin.site.register(SplashInfo, SplashInfoAdmin)  | 
            |
| 176 | 
                -# admin.site.register(FeedbackInfo, FeedbackInfoAdmin)  | 
            |
| 177 | 
                -# admin.site.register(GuestEntranceControlInfo, GuestEntranceControlInfoAdmin)  | 
            |
| 178 | 
                -# admin.site.register(BoxProgramVersionInfo, BoxProgramVersionInfoAdmin)  | 
            |
| 4 | 
                +# Register your models here.  | 
            
                @@ -2,7 +2,7 @@  | 
            ||
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                from django.db import models  | 
            
| 4 | 4 | 
                from django.utils.translation import ugettext_lazy as _  | 
            
| 5 | 
                -from models_ext import BaseModelMixin, upload_file_url, upload_path  | 
            |
| 5 | 
                +from django_models_ext import BaseModelMixin, upload_file_url, upload_path  | 
            |
| 6 | 6 | 
                 | 
            
| 7 | 7 | 
                from pai2.basemodels import PaiaiSrcMixin, PlatformMixin, VersionMixin  | 
            
| 8 | 8 | 
                 | 
            
                @@ -4,8 +4,8 @@ import os  | 
            ||
| 4 | 4 | 
                 | 
            
| 5 | 5 | 
                from django.conf import settings  | 
            
| 6 | 6 | 
                from django.shortcuts import redirect  | 
            
| 7 | 
                +from django_logit import logit  | 
            |
| 7 | 8 | 
                from django_response import response  | 
            
| 8 | 
                -from logit import logit  | 
            |
| 9 | 9 | 
                 | 
            
| 10 | 10 | 
                from account.models import UserInfo  | 
            
| 11 | 11 | 
                from operation.models import FeedbackInfo, GuestEntranceControlInfo, LatestAppInfo, SplashInfo  | 
            
                @@ -3,9 +3,9 @@  | 
            ||
| 3 | 3 | 
                from django.conf import settings  | 
            
| 4 | 4 | 
                from django.db import transaction  | 
            
| 5 | 5 | 
                from django.shortcuts import render  | 
            
| 6 | 
                +from django_logit import logit  | 
            |
| 6 | 7 | 
                from django_response import response  | 
            
| 7 | 8 | 
                from json_render import json_render  | 
            
| 8 | 
                -from logit import logit  | 
            |
| 9 | 9 | 
                 | 
            
| 10 | 10 | 
                from account.models import FranchiserInfo, LensmanInfo, SaleclerkInfo, TourGuideInfo  | 
            
| 11 | 11 | 
                from utils.error.errno_utils import FranchiserStatusCode, SaleclerkStatusCode  | 
            
                @@ -5,8 +5,8 @@ from __future__ import division  | 
            ||
| 5 | 5 | 
                from django.conf import settings  | 
            
| 6 | 6 | 
                from django.db import transaction  | 
            
| 7 | 7 | 
                from django.shortcuts import render  | 
            
| 8 | 
                +from django_logit import logit  | 
            |
| 8 | 9 | 
                from django_response import response  | 
            
| 9 | 
                -from logit import logit  | 
            |
| 10 | 10 | 
                 | 
            
| 11 | 11 | 
                from account.models import SaleclerkInfo  | 
            
| 12 | 12 | 
                from integral.models import SaleclerkIntegralIncomeExpensesInfo, SaleclerkSubmitLogInfo  | 
            
                @@ -44,10 +44,10 @@ INSTALLED_APPS = (  | 
            ||
| 44 | 44 | 
                'django.contrib.messages',  | 
            
| 45 | 45 | 
                'django.contrib.staticfiles',  | 
            
| 46 | 46 | 
                'django_file_upload',  | 
            
| 47 | 
                - 'django_rlog',  | 
            |
| 48 | 47 | 
                'django_uniapi',  | 
            
| 48 | 
                + 'django_admin',  | 
            |
| 49 | 
                + 'django_rlog',  | 
            |
| 49 | 50 | 
                'django_we',  | 
            
| 50 | 
                - 'djadmin',  | 
            |
| 51 | 51 | 
                'api',  | 
            
| 52 | 52 | 
                'account',  | 
            
| 53 | 53 | 
                'box',  | 
            
                @@ -1,16 +1,4 @@  | 
            ||
| 1 | 
                -# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                -  | 
            |
| 3 | 
                -from djadmin import ReadOnlyModelAdmin  | 
            |
| 4 | 1 | 
                from django.contrib import admin  | 
            
| 5 | 2 | 
                 | 
            
| 6 | 
                -from pay.models import OrderInfo  | 
            |
| 7 | 
                -  | 
            |
| 8 | 
                -  | 
            |
| 9 | 
                -class OrderInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):  | 
            |
| 10 | 
                -    list_display = ('order_id', 'photo_type', 'photo_status', 'from_uid', 'to_uid', 'pay_status', 'paid_at', 'reback_status', 'reback_at', 'status', 'created_at', 'updated_at')
               | 
            |
| 11 | 
                -    list_filter = ('photo_type', 'photo_status', 'pay_status', 'reback_status', 'status')
               | 
            |
| 12 | 
                -    readonly_fields = ('order_id', 'prepay_id', 'transaction_id', 'unifiedorder_result', 'notify_msg')
               | 
            |
| 13 | 
                -    search_fields = ('prepay_id', 'transaction_id', 'group_id', 'session_id', 'photo_id', 'lensman_photo_id', 'from_uid', 'to_uid')
               | 
            |
| 14 | 
                -  | 
            |
| 15 | 3 | 
                 | 
            
| 16 | 
                -# admin.site.register(OrderInfo, OrderInfoAdmin)  | 
            |
| 4 | 
                +# Register your models here.  | 
            
                @@ -2,7 +2,7 @@  | 
            ||
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                from django.db import models  | 
            
| 4 | 4 | 
                from django.utils.translation import ugettext_lazy as _  | 
            
| 5 | 
                -from models_ext import BaseModelMixin  | 
            |
| 5 | 
                +from django_models_ext import BaseModelMixin  | 
            |
| 6 | 6 | 
                from shortuuidfield import ShortUUIDField  | 
            
| 7 | 7 | 
                from TimeConvert import TimeConvert as tc  | 
            
| 8 | 8 | 
                 | 
            
                @@ -3,8 +3,8 @@  | 
            ||
| 3 | 3 | 
                from django.conf import settings  | 
            
| 4 | 4 | 
                from django.db import transaction  | 
            
| 5 | 5 | 
                from django.shortcuts import HttpResponse  | 
            
| 6 | 
                +from django_logit import logit  | 
            |
| 6 | 7 | 
                from django_response import response  | 
            
| 7 | 
                -from logit import logit  | 
            |
| 8 | 8 | 
                from paginator import pagination  | 
            
| 9 | 9 | 
                from pywe_exception import WeChatPayException  | 
            
| 10 | 10 | 
                from pywe_pay import WeChatPay  | 
            
                @@ -2,7 +2,7 @@  | 
            ||
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                from django.db import models  | 
            
| 4 | 4 | 
                from django.utils.translation import ugettext_lazy as _  | 
            
| 5 | 
                -from models_ext import BaseModelMixin  | 
            |
| 5 | 
                +from django_models_ext import BaseModelMixin  | 
            |
| 6 | 6 | 
                 | 
            
| 7 | 7 | 
                from utils.qiniucdn import qiniu_file_url  | 
            
| 8 | 8 | 
                 | 
            
                @@ -3,9 +3,9 @@  | 
            ||
| 3 | 3 | 
                from django.db import transaction  | 
            
| 4 | 4 | 
                from django.shortcuts import render  | 
            
| 5 | 5 | 
                from django_curtail_uuid import CurtailUUID  | 
            
| 6 | 
                +from django_logit import logit  | 
            |
| 6 | 7 | 
                from django_response import response  | 
            
| 7 | 8 | 
                from ipaddr import client_ip  | 
            
| 8 | 
                -from logit import logit  | 
            |
| 9 | 9 | 
                from rest_framework import viewsets  | 
            
| 10 | 10 | 
                from TimeConvert import TimeConvert as tc  | 
            
| 11 | 11 | 
                 | 
            
                @@ -2,7 +2,7 @@  | 
            ||
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                from django.db import models  | 
            
| 4 | 4 | 
                from django.utils.translation import ugettext_lazy as _  | 
            
| 5 | 
                -from models_ext import BaseModelMixin, SexModelMixin  | 
            |
| 5 | 
                +from django_models_ext import BaseModelMixin, SexModelMixin  | 
            |
| 6 | 6 | 
                from shortuuidfield import ShortUUIDField  | 
            
| 7 | 7 | 
                 | 
            
| 8 | 8 | 
                 | 
            
                @@ -5,26 +5,26 @@ Pillow==5.0.0  | 
            ||
| 5 | 5 | 
                StatusCode==1.0.0  | 
            
| 6 | 6 | 
                TimeConvert==1.4.3  | 
            
| 7 | 7 | 
                cryptography==1.5.2  | 
            
| 8 | 
                -django-admin==1.1.1  | 
            |
| 8 | 
                +django-admin==1.2.0  | 
            |
| 9 | 9 | 
                django-curtail-uuid==1.0.4  | 
            
| 10 | 10 | 
                django-detect==1.0.5  | 
            
| 11 | 
                -django-file-md5==1.0.1  | 
            |
| 11 | 
                +django-file-md5==1.0.2  | 
            |
| 12 | 12 | 
                django-file-upload==1.0.0  | 
            
| 13 | 13 | 
                django-ip==1.0.2  | 
            
| 14 | 14 | 
                django-json-render==1.0.0  | 
            
| 15 | 15 | 
                django-json-response==1.1.5  | 
            
| 16 | 
                -django-logit==1.0.8  | 
            |
| 16 | 
                +django-logit==1.1.2  | 
            |
| 17 | 17 | 
                django-mobi==0.1.7  | 
            
| 18 | 
                -django-models-ext==1.1.0  | 
            |
| 18 | 
                +django-models-ext==1.1.1  | 
            |
| 19 | 19 | 
                django-multidomain==1.1.4  | 
            
| 20 | 20 | 
                django-paginator2==1.0.3  | 
            
| 21 | 21 | 
                django-redis-connector==1.0.1  | 
            
| 22 | 
                -django-response==1.0.2  | 
            |
| 22 | 
                +django-response==1.1.1  | 
            |
| 23 | 23 | 
                django-rlog==1.0.7  | 
            
| 24 | 24 | 
                django-shortuuidfield==0.1.3  | 
            
| 25 | 25 | 
                django-six==1.0.4  | 
            
| 26 | 26 | 
                django-uniapi==1.0.1  | 
            
| 27 | 
                -django-we==1.1.6  | 
            |
| 27 | 
                +django-we==1.2.1  | 
            |
| 28 | 28 | 
                djangorestframework==3.7.7  | 
            
| 29 | 29 | 
                furl==1.0.1  | 
            
| 30 | 30 | 
                hiredis==0.2.0  | 
            
                @@ -37,7 +37,7 @@ pywe-membercard==1.0.0  | 
            ||
| 37 | 37 | 
                pywe-miniapp==1.0.2  | 
            
| 38 | 38 | 
                pywe-oauth==1.0.6  | 
            
| 39 | 39 | 
                pywe-pay==1.0.11  | 
            
| 40 | 
                -pywe-pay-notify==1.0.1  | 
            |
| 40 | 
                +pywe-pay-notify==1.0.4  | 
            |
| 41 | 41 | 
                pywe-response==1.0.1  | 
            
| 42 | 42 | 
                pywe-sign==1.0.7  | 
            
| 43 | 43 | 
                pywe-xml==1.0.0  | 
            
                @@ -48,5 +48,4 @@ requests==2.18.4  | 
            ||
| 48 | 48 | 
                rlog==0.3  | 
            
| 49 | 49 | 
                rsa==3.4.2  | 
            
| 50 | 50 | 
                shortuuid==0.5.0  | 
            
| 51 | 
                -uWSGI==2.0.15  | 
            |
| 52 | 51 | 
                versions==0.10.0  | 
            
                @@ -1,7 +1,7 @@  | 
            ||
| 1 | 1 | 
                # -*- coding: utf-8 -*-  | 
            
| 2 | 2 | 
                 | 
            
| 3 | 
                +from django_logit import logit  | 
            |
| 3 | 4 | 
                from django_response import response  | 
            
| 4 | 
                -from logit import logit  | 
            |
| 5 | 5 | 
                from TimeConvert import TimeConvert as tc  | 
            
| 6 | 6 | 
                 | 
            
| 7 | 7 | 
                 | 
            
                @@ -1,7 +1,6 @@  | 
            ||
| 1 | 1 | 
                # -*- coding: utf-8 -*-  | 
            
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                from filemd5 import calculate_md5  | 
            
| 4 | 
                -  | 
            |
| 5 | 4 | 
                from utils.redis.connect import r  | 
            
| 6 | 5 | 
                 | 
            
| 7 | 6 | 
                 | 
            
                @@ -6,8 +6,8 @@ import shortuuid  | 
            ||
| 6 | 6 | 
                from django.conf import settings  | 
            
| 7 | 7 | 
                from django.core.files.storage import default_storage  | 
            
| 8 | 8 | 
                from django.db import transaction  | 
            
| 9 | 
                -from filemd5 import calculate_md5  | 
            |
| 10 | 9 | 
                 | 
            
| 10 | 
                +from filemd5 import calculate_md5  | 
            |
| 11 | 11 | 
                from photo.models import PhotoUUIDInfo  | 
            
| 12 | 12 | 
                from utils.qiniucdn import upload_file_path  | 
            
| 13 | 13 | 
                from utils.thumbnail_utils import make_thumbnail  | 
            
                @@ -6,8 +6,8 @@ import shortuuid  | 
            ||
| 6 | 6 | 
                from django.conf import settings  | 
            
| 7 | 7 | 
                from django.core.files.storage import default_storage  | 
            
| 8 | 8 | 
                from django.db import transaction  | 
            
| 9 | 
                -from filemd5 import calculate_md5  | 
            |
| 10 | 9 | 
                 | 
            
| 10 | 
                +from filemd5 import calculate_md5  | 
            |
| 11 | 11 | 
                from photo.models import PhotoUUIDInfo  | 
            
| 12 | 12 | 
                from utils.thumbnail_utils import make_thumbnail  | 
            
| 13 | 13 | 
                from utils.watermark_utils import watermark_wrap  |