Skip to content

changing mode of field in other different behavior #37

Open
@iham

Description

@iham

how do i hide a field, thats not inside my behavior?

class IFancyDescriptionBehavior(model.Schema):
    fancydescription = RichText(...)
    directives.mode(description='hidden')

this does not work, as "description" is not a variable inside my behavior.
plonistas know: the description is delivered by the IBasic behavior (even more correct: by IDublinCore)

i know, i can:

  • subclass IBasic
  • add my desired field
  • remove idublincore from all <type_name>.xml > behaviors
  • add iowner, ipublication, icategories instead of idublincore
  • add my fancy behavior ifancybasic

... to ALL types!
and i loose the idublincore interface on all types.
which (maybe?) can lead to problems beyond my knowledge and reach.

well. thats a little much to ask for, just to simply hide a field, when my behavior is applied.

i have seen monkeypatches, subclassing and simple css as a solution, but all of them break instead of modify the system.

i'd like to see a simple solution like

directives.mode(mode='hidden', field='IBasic.fieldname')
or
directives.mode(mode='hidden', interface=IBasic, field='fieldname')
or
directives.mode(**{'IBasic.fieldname': 'hidden'})
or something like that

sadly i don't have the knowlege and time to do it on my own.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions