Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AutocompleteMultiFieldWidget with required=True fails #23

Open
szakitibi opened this issue Sep 28, 2018 · 1 comment
Open

AutocompleteMultiFieldWidget with required=True fails #23

szakitibi opened this issue Sep 28, 2018 · 1 comment

Comments

@szakitibi
Copy link

Provided plone.formwidget.autocomplete.widget.AutocompleteMultiFieldWidget does fail to validate required field.

I wanted to create a RelationList field with at least one related item. Possible the easiest way to reproduce is to:

  1. Create a "dummy" Dexterity content type with plone.app.relationfield.behavior.IRelatedItems behavior enabled.
  2. Go into plone.app.relationfield.behavior.py and:
    • do change relatedItems field to required=True
    • add widget AutocompleteMultiFieldWidget in the schema to relatedItems field with plone.autoform.directives

What happens:
It is possible to create a new "dummy" content with no related items at all.

Expected behavior:
Not be able to create "dummy" unless there is at least one related items set.

Note:
Maybe the problem is much deeper, since I'm able to create the "dummy" without step 2. I'm also not getting validation error if I go TTW:

  • Dexterity Content Types > Add new content type > "Fruits"
  • Add new field > "Fruits" + MultiChoice + required checked
  • "Fruits" settings > values: apples, oranges

image

  • create a new "Fruits" with no fruits selected ...
@szakitibi
Copy link
Author

szakitibi commented Sep 28, 2018

Note 2: I do now about the min_length for (Relation)List fields providing IMinMaxLength.

Maybe it is my logic which works the opposite, but I think:

  • required=True with no min_length set, should not create with no value ([]), instead it should raise validation error
  • while required=False with min_length=3 should set None and not raise to short validation error, unless there is one or two items selected

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant