serializers.py 890 B

123456789101112131415161718192021222324252627282930
  1. from misago.users.permissions import can_edit_profile_details
  2. def serialize_profilefields_data(request, profilefields, user):
  3. data = {
  4. 'id': user.pk,
  5. 'groups': [],
  6. 'edit': False,
  7. }
  8. can_edit = can_edit_profile_details(request.user, user)
  9. has_editable_fields = False
  10. for group in profilefields.get_fields_groups():
  11. group_fields = []
  12. for field in group['fields']:
  13. display_data = field.get_display_data(request, user)
  14. if display_data:
  15. group_fields.append(display_data)
  16. if can_edit and field.is_editable(request, user):
  17. has_editable_fields = True
  18. if group_fields:
  19. data['groups'].append({
  20. 'name': group['name'],
  21. 'fields': group_fields
  22. })
  23. data['edit'] = can_edit and has_editable_fields
  24. return data