拍爱

admin.py 3.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. # -*- coding: utf-8 -*-
  2. from curtail_uuid import CurtailUUID
  3. from django.contrib import admin
  4. from django.contrib.auth.hashers import make_password
  5. from django.db import transaction
  6. from account.models import (LensmanIncomeExpensesInfo, LensmanInfo, LensmanLoginLogInfo, UserIncomeExpensesInfo,
  7. UserInfo, UserLoginLogInfo)
  8. class LensmanInfoAdmin(admin.ModelAdmin):
  9. readonly_fields = ('lensman_id', 'encryption', )
  10. list_display = ('lensman_id', 'unionid', 'username', 'name', 'sex', 'phone', 'location', 'proportion', 'nomark', 'origin', 'balance', 'user_status', 'status', 'created_at', 'updated_at')
  11. search_fields = ('name', 'phone', 'location')
  12. list_filter = ('sex', 'user_status', 'status')
  13. @transaction.atomic
  14. def save_model(self, request, obj, form, change):
  15. if not obj.lensman_id:
  16. try:
  17. user_id = UserInfo.objects.select_for_update().get(unionid=obj.unionid).user_id
  18. except UserInfo.DoesNotExist:
  19. user_id = None
  20. obj.lensman_id = user_id or CurtailUUID.uuid(UserInfo, 'user_id')
  21. fields = {
  22. 'user_from': UserInfo.LENSMAN_USER,
  23. 'unionid': obj.unionid,
  24. 'name': obj.name,
  25. 'sex': obj.sex,
  26. 'phone': obj.phone,
  27. 'location': obj.location,
  28. 'user_status': obj.user_status,
  29. }
  30. user, created = UserInfo.objects.get_or_create(user_id=obj.lensman_id, defaults=fields)
  31. if not created:
  32. for key, value in fields.iteritems():
  33. setattr(user, key, value)
  34. user.save()
  35. if obj.password:
  36. obj.encryption = make_password(obj.password, None, 'pbkdf2_sha256')
  37. obj.password = None
  38. obj.save()
  39. class LensmanLoginLogInfoAdmin(admin.ModelAdmin):
  40. list_display = ('lensman_id', 'login_ip', 'login_result', 'status', 'created_at', 'updated_at')
  41. class LensmanIncomeExpensesInfoAdmin(admin.ModelAdmin):
  42. list_display = ('lensman_id', 'photo_id', 'type', 'amount', 'balance', 'remark', 'status', 'created_at', 'updated_at')
  43. list_filter = ('type', 'status')
  44. class UserInfoAdmin(admin.ModelAdmin):
  45. readonly_fields = ('user_id', )
  46. list_display = ('user_id', 'user_from', 'username', 'openid', 'unionid', 'name', 'sex', 'nickname', 'phone', 'location', 'balance', 'user_status', 'status', 'created_at', 'updated_at')
  47. search_fields = ('name', 'phone', 'location')
  48. list_filter = ('user_from', 'sex', 'user_status', 'status')
  49. class UserLoginLogInfoAdmin(admin.ModelAdmin):
  50. list_display = ('user_id', 'login_ip', 'login_result', 'status', 'created_at', 'updated_at')
  51. class UserIncomeExpensesInfoAdmin(admin.ModelAdmin):
  52. list_display = ('user_id', 'photo_id', 'type', 'amount', 'balance', 'remark', 'status', 'created_at', 'updated_at')
  53. list_filter = ('type', 'status')
  54. admin.site.register(LensmanInfo, LensmanInfoAdmin)
  55. admin.site.register(LensmanLoginLogInfo, LensmanLoginLogInfoAdmin)
  56. admin.site.register(LensmanIncomeExpensesInfo, LensmanIncomeExpensesInfoAdmin)
  57. admin.site.register(UserInfo, UserInfoAdmin)
  58. admin.site.register(UserLoginLogInfo, UserLoginLogInfoAdmin)
  59. admin.site.register(UserIncomeExpensesInfo, UserIncomeExpensesInfoAdmin)