From 2d3d1167bb9e28edb5410174771f6cd6d7de2695 Mon Sep 17 00:00:00 2001 From: Gucheng Wang Date: Sun, 21 Aug 2022 19:46:59 +0800 Subject: [PATCH] Fix HasPromptPage() for signup items --- object/application_item.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/object/application_item.go b/object/application_item.go index 698f31c3..63efe025 100644 --- a/object/application_item.go +++ b/object/application_item.go @@ -73,6 +73,10 @@ func (application *Application) IsSignupItemRequired(itemName string) bool { return signupItem.Required } +func (si *SignupItem) isSignupItemPrompted() bool { + return si.Visible && si.Prompted +} + func (application *Application) GetSignupItemRule(itemName string) string { signupItem := application.getSignupItem(itemName) if signupItem == nil { @@ -92,6 +96,16 @@ func (application *Application) getAllPromptedProviderItems() []*ProviderItem { return res } +func (application *Application) getAllPromptedSignupItems() []*SignupItem { + res := []*SignupItem{} + for _, signupItem := range application.SignupItems { + if signupItem.isSignupItemPrompted() { + res = append(res, signupItem) + } + } + return res +} + func (application *Application) isAffiliationPrompted() bool { signupItem := application.getSignupItem("Affiliation") if signupItem == nil { @@ -107,5 +121,10 @@ func (application *Application) HasPromptPage() bool { return true } + signupItems := application.getAllPromptedSignupItems() + if len(signupItems) != 0 { + return true + } + return application.isAffiliationPrompted() }