Исходя из идеологии mvc, вопрос относится к категории view (если нет какой то логики другого уровня, например, валидации, или, скажем, замены модели, передаваемой в форму).
Т.е. лучше всего прописывать там.
При этом лучше разбить view на части, в зависимости от условий.
Еще как вариант можно сделать widget, если есть вероятность переиспользования данного кейса в других местах и проектах.