Resolve "Screening for signups"

This commit is contained in:
Eliot Berriot 2020-03-18 11:57:33 +01:00
parent e6df21b96c
commit e313fcd033
49 changed files with 1759 additions and 49 deletions

View file

@ -12,6 +12,11 @@ NOTE_TARGET_FIELDS = {
"id_attr": "uuid",
"id_field": serializers.UUIDField(),
},
"request": {
"queryset": models.UserRequest.objects.all(),
"id_attr": "uuid",
"id_field": serializers.UUIDField(),
},
"account": {
"queryset": federation_models.Actor.objects.all(),
"id_attr": "full_username",
@ -19,3 +24,21 @@ NOTE_TARGET_FIELDS = {
"get_query": moderation_serializers.get_actor_query,
},
}
def get_signup_form_additional_fields_serializer(customization):
fields = (customization or {}).get("fields", []) or []
class AdditionalFieldsSerializer(serializers.Serializer):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for field in fields:
required = bool(field.get("required", True))
self.fields[field["label"]] = serializers.CharField(
max_length=5000,
required=required,
allow_null=not required,
allow_blank=not required,
)
return AdditionalFieldsSerializer(required=fields, allow_null=not fields)