拍爱

admin.py 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. # -*- coding: utf-8 -*-
  2. from curtail_uuid import CurtailUUID
  3. from django.contrib import admin
  4. from django.db import transaction
  5. from account.models import (LensmanIncomeExpensesInfo, LensmanInfo, LensmanLoginLogInfo, TourGuideInfo,
  6. UserIncomeExpensesInfo, UserInfo, UserLoginLogInfo)
  7. class LensmanInfoAdmin(admin.ModelAdmin):
  8. exclude = ('username', 'password', 'encryption')
  9. list_display = ('lensman_id', 'unionid', 'username', 'name', 'sex', 'phone', 'location', 'proportion', 'nomark', 'origin', 'balance', 'user_status', 'outtake_status', 'status', 'created_at', 'updated_at')
  10. list_filter = ('is_common_lensman', 'is_outtake_lensman', 'sex', 'user_status', 'outtake_status', 'status')
  11. readonly_fields = ('lensman_id', )
  12. search_fields = ('lensman_id', 'name', 'phone', 'location')
  13. @transaction.atomic
  14. def save_model(self, request, obj, form, change):
  15. obj.save()
  16. if not obj.lensman_id:
  17. try:
  18. user_id = UserInfo.objects.select_for_update().get(unionid=obj.unionid).user_id
  19. except UserInfo.DoesNotExist:
  20. user_id = None
  21. obj.lensman_id = user_id or CurtailUUID.uuid(UserInfo, 'user_id')
  22. obj.save()
  23. fields = {
  24. 'user_from': UserInfo.LENSMAN_USER,
  25. 'unionid': obj.unionid,
  26. 'name': obj.name,
  27. 'sex': obj.sex,
  28. 'phone': obj.phone,
  29. 'location': obj.location,
  30. 'islensman': True,
  31. 'user_status': obj.user_status,
  32. 'outtake_status': obj.outtake_status,
  33. 'is_common_lensman': obj.is_common_lensman,
  34. 'is_outtake_lensman': obj.is_outtake_lensman,
  35. }
  36. user, created = UserInfo.objects.get_or_create(user_id=obj.lensman_id, defaults=fields)
  37. if not created:
  38. fields.pop('user_from', None)
  39. for key, value in fields.iteritems():
  40. setattr(user, key, value)
  41. user.save()
  42. class LensmanLoginLogInfoAdmin(admin.ModelAdmin):
  43. list_display = ('lensman_id', 'login_ip', 'login_result', 'status', 'created_at', 'updated_at')
  44. class LensmanIncomeExpensesInfoAdmin(admin.ModelAdmin):
  45. list_display = ('lensman_id', 'photo_id', 'type', 'amount', 'balance', 'remark', 'status', 'created_at', 'updated_at')
  46. list_filter = ('type', 'status')
  47. class TourGuideInfoAdmin(admin.ModelAdmin):
  48. list_display = ('tourguide_id', 'unionid', 'name', 'sex', 'phone', 'location', 'no', 'user_status', 'status', 'created_at', 'updated_at')
  49. list_filter = ('sex', 'user_status', 'status')
  50. readonly_fields = ('tourguide_id', )
  51. search_fields = ('tourguide_id', 'name', 'phone', 'location', 'no')
  52. @transaction.atomic
  53. def save_model(self, request, obj, form, change):
  54. if not obj.tourguide_id:
  55. try:
  56. user_id = UserInfo.objects.select_for_update().get(unionid=obj.unionid).user_id
  57. except UserInfo.DoesNotExist:
  58. user_id = None
  59. obj.tourguide_id = user_id or CurtailUUID.uuid(UserInfo, 'user_id')
  60. obj.save()
  61. fields = {
  62. 'user_from': UserInfo.TOURGUIDE_USER,
  63. 'unionid': obj.unionid,
  64. 'name': obj.name,
  65. 'sex': obj.sex,
  66. 'phone': obj.phone,
  67. 'location': obj.location,
  68. 'istourguide': True,
  69. 'user_status': obj.user_status,
  70. 'outtake_status': obj.outtake_status,
  71. }
  72. user, created = UserInfo.objects.get_or_create(user_id=obj.tourguide_id, defaults=fields)
  73. if not created:
  74. fields.pop('user_from', None)
  75. for key, value in fields.iteritems():
  76. setattr(user, key, value)
  77. user.save()
  78. class UserInfoAdmin(admin.ModelAdmin):
  79. 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')
  80. list_filter = ('user_from', 'sex', 'islensman', 'istourguide', 'user_status', 'outtake_status', 'status')
  81. readonly_fields = ('user_id', )
  82. search_fields = ('user_id', 'name', 'phone', 'location')
  83. class UserLoginLogInfoAdmin(admin.ModelAdmin):
  84. list_display = ('user_id', 'login_ip', 'login_result', 'status', 'created_at', 'updated_at')
  85. class UserIncomeExpensesInfoAdmin(admin.ModelAdmin):
  86. list_display = ('user_id', 'photo_id', 'type', 'amount', 'balance', 'remark', 'status', 'created_at', 'updated_at')
  87. list_filter = ('type', 'status')
  88. admin.site.register(LensmanInfo, LensmanInfoAdmin)
  89. admin.site.register(LensmanLoginLogInfo, LensmanLoginLogInfoAdmin)
  90. admin.site.register(LensmanIncomeExpensesInfo, LensmanIncomeExpensesInfoAdmin)
  91. admin.site.register(TourGuideInfo, TourGuideInfoAdmin)
  92. admin.site.register(UserInfo, UserInfoAdmin)
  93. admin.site.register(UserLoginLogInfo, UserLoginLogInfoAdmin)
  94. admin.site.register(UserIncomeExpensesInfo, UserIncomeExpensesInfoAdmin)