Skip to content
Snippets Groups Projects
Commit 6c108b93 authored by Hangzhi Yu's avatar Hangzhi Yu Committed by magicfelix
Browse files

Add preference for required fields of address model in account registration wizard

parent 1f4e4bbf
No related branches found
No related tags found
2 merge requests!1788Draft: Resolve "Refactor account registration form (and generalize parts of it)",!1737Draft: Resolve "Rebuild account registration form"
......@@ -574,7 +574,9 @@ export default {
}
},
isFieldRequired(fieldName) {
return this?.systemProperties?.sitePreferences?.signupRequiredFields.includes(
return this?.systemProperties?.sitePreferences?.signupRequiredFields?.includes(
fieldName,
) || this?.systemProperties?.sitePreferences?.signupAddressRequiredFields?.includes(
fieldName,
);
},
......
......@@ -2,6 +2,7 @@ query gqlRequiredFieldsPreference {
systemProperties {
sitePreferences {
signupRequiredFields
signupAddressRequiredFields
}
}
}
......@@ -18,7 +18,7 @@ from dynamic_preferences.types import (
from oauth2_provider.models import AbstractApplication
from .mixins import CalendarEventMixin, PublicFilePreferenceMixin
from .models import Group, Person, Role
from .models import Address, Group, Person, Role
from .registries import person_preferences_registry, site_preferences_registry
from .util.notifications import get_notification_choices_lazy
......@@ -324,6 +324,26 @@ class SignupRequiredFields(MultipleChoicePreference):
required = False
@site_preferences_registry.register
class SignupAddressRequiredFields(MultipleChoicePreference):
"""Fields on address model which are required when signing up."""
section = auth
name = "signup_address_required_fields"
default = []
widget = SelectMultiple
verbose_name = _(
"Fields on address model which are required when signing up."
)
field_attribute = {"initial": []}
choices = [
(field.name, field.name)
for field in Address.syncable_fields()
if getattr(field, "blank", False)
]
required = False
@site_preferences_registry.register
class AllowedUsernameRegex(StringPreference):
section = auth
......
......@@ -26,6 +26,7 @@ class SitePreferencesType(graphene.ObjectType):
invite_enabled = graphene.Boolean()
signup_enabled = graphene.Boolean()
signup_required_fields = graphene.List(graphene.String)
signup_address_required_fields = graphene.List(graphene.String)
auth_allowed_username_regex = graphene.String()
auth_disallowed_uids = graphene.List(graphene.String)
......@@ -80,3 +81,6 @@ class SitePreferencesType(graphene.ObjectType):
def resolve_signup_required_fields(parent, info, **kwargs):
return parent["auth__signup_required_fields"]
def resolve_signup_address_required_fields(parent, info, **kwargs):
return parent["auth__signup_address_required_fields"]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment