Форма просмотра ловкости Plone 4 - добавьте класс CSS в виджет в fieldset X
У меня есть тип контента, основанный на ловкости, с различными видами редактирования и наборами полей, определенными в схеме. Всякий раз, когда я хочу обновить виджет / поле в другом месте, чем первый набор полей, он становится грубым. Например:
self.groups[0].fields['my_field'].mode = HIDDEN_MODE
должен быть использован, чтобы скрыть my_field
из 2-го набора полей. Чтобы сделать то же поле обязательным
self.schema['my_field'].required = True
делает трюк.
Но как я могу добавить класс CSS к виджету, отличному от первого набора полей? Я имею в виду, что
self.fields['my_field_on_first_fieldset'].widget.addClass("myClass")
будет делать, если мой виджет будет на первом наборе полей "страница".
1 ответ
Следуя руководству Мартина Аспели, я проверил ваш запрос и могу подтвердить, что странным образом атрибут klass не может быть применен к невидимым виджетам в наборах подполей, возвращая "Key Error" со ссылкой на имя виджета.
С другими атрибутами, например, размером, проблем нет.
Вместо этого вы можете применить класс через Javascript.
Если вы хотите предоставить запасной вариант в случае, если на клиенте не включен Javascript, вы можете добавить условие в updateWidget(), проверив, включено ли оно и, если нет, применить класс с помощью addClass() или атрибута klass. Который будет работать тогда, потому что все поля показаны и больше не скрыты.