serializers.py 893 B

123456789101112131415161718192021222324252627282930
  1. from misago.users.permissions import can_edit_profile_details
  2. def serialize_profilefields_data(request, profilefields, user):
  3. data = {
  4. 'groups': [],
  5. 'edit': None,
  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. if can_edit and has_editable_fields:
  23. data['edit'] = '/some-pfields-edit-url/'
  24. return data