Sorry, I guess my comment wasn't clear.

The only NULLABLE_FIELD is markdown. Is this just a hack to make the open ended grading work w.r.t showing the markdown editor vs. the advanced editor? What I was suggesting was to change openended so it does not try to determine whether or not the markdown editor should be shown based on whether or not markdown is null. How about adding a new (non-editable) setting that is simply whether or not the markdown editor should be shown? Or could the same solution that we have for other problem types (simple vs. advanced) work for open ended as well?

If we really have to support the idea of a nullable field, that should be a property of the field itself, not a list of nullable fields in item.py.

P.S. I had a typo in my PS about your typo.