serializers.py 856 B

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