entendi... vou dar uma estudada. obrigado, Carlos Henrique
--- Em zope-pt@yahoogrupos.com.br, Rodrigo Castardo <rodrigocasta...@...> escreveu > > Carlos, > lembro de um filme onde a mãe do protagonista falava q td era o diabo, e > script python aqui pra nós eh o diabo =) > > São várias checagens de segurança que entram em ação quando você usa um > desses scripts, e isto deixa o acesso lento. > > Como estamos falando de classe, vamos usar um método! Em outros casos > poderíamos usar uma view em zope 3. > > E no caso, ao invés da propriedade default, você pode usar o default_method > ... e pendurar um método na classe que implementa este tipo. > > Olha a definição da classe Field que você entende, ou então olhe a classe > que implementa o evento padrão do Plone (fica dentro do > ATContentTypes/content). > > Abraços. > > 2009/7/22 chgcj <henri...@...> > > > > > > > acho que estamos nos entendendo... > > mas como faço para que no atributo default='o valor que vai preencher o > > campo na leitura do formulario de criacao do objeto' seja mostrado o > > resultado de um script. > > Algo do tipo... > > StringField( > > name='url_video', > > default='context.montaUrl()', > > Widget=StringWidget( > > ... > > ) > > ) > > > > onde montaUrl seria um script python do tipo > > url='http://midia.pgr.mpf.gov.br/radio/programas/questaojustica/qj > > '+ano_atual > > return url > > > > > > --- Em zope-pt@yahoogrupos.com.br <zope-pt%40yahoogrupos.com.br>, Rodrigo > > Castardo <rodrigocastardo@> escreveu > > > > > > Carlos, > > > então é a primeira coisa que sugeri, imagino que não ficou claro para > > você. > > > > > > Vamos por partes, olhe novamente as referências que mandei. > > > > > > Eu não costumo pendurar todas as características no modelo UML, ele não > > tem > > > suporte a algumas questões e lá na frente você vai precisar fazer alguma > > > coisa na mão e vai perder o sincrinismo inicial entre code e modelo. > > > > > > O teu field fica algo assim: > > > > > > StringField( > > > name='url_video', > > > default='o valor que vai preencher o campo na leitura do formulario de > > > criacao do objeto', > > > Widget=StringWidget( > > > ... > > > ) > > > ) > > > > > > Tenta por ai, veja se resolve teu problema. > > > > > > Um abraço. > > > > > > 2009/7/22 chgcj <HENRIQUE@> > > > > > > > > > > > > > > > Vamos lá... vou tentar explicar. > > > > No ArgoUML criei uma classe com o nome QuestaoJustica que é um programa > > de > > > > rádio que temos aqui na PGR. > > > > Essa classe têm os atributos resumo, descricao e urlAudio. Os atributos > > > > resumo e descricao estão ok. No atributo urlAudio gostaria que quando o > > > > usuário fosse inserir uma instancia do objeto QuestaoJustica já viesse > > > > previamente preenchido com um endereço de uma url padrão da PGR, como > > por > > > > exemplo > > > > > > http://midia.pgr.mpf.gov.br/radio/programas/questaojustica/qj2009/julho/programaDia22.mp3queé > > o audio do Programa Questão de Justiça do dia 22 de julho de 2009. > > > > Gostaria simplesmente de montar essa url dinamicamente para que o > > usuário > > > > não precise digitar o caminho todo. Além disso o campo deve ser > > editável, ou > > > > seja, deve aparecer previamente preenchido com o caminho sugerido mas > > deve > > > > ser possível a edição deste campo. > > > > Agora ficou claro ???? > > > > Estou usando ARGOUML e ARCHEGENXML para gerar esse produto. > > > > > > > > mais uma vez obrigado... > > > > > > > > Carlos henrique > > > > > > > > --- Em zope-pt@yahoogrupos.com.br > > > > <zope-pt%40yahoogrupos.com.br><zope-pt% > > 40yahoogrupos.com.br>, Rodrigo > > > > Castardo <rodrigocastardo@> escreveu > > > > > > > > > > Fala Carlos, > > > > > bom entendi errado, pensei que fosse um novo content type. > > > > > > > > > > Na realidade não entendi ainda, mas vamos lá ... se você criou o > > objeto > > > > via > > > > > API Plone, você pode instanciar o objeto após a criação e editar, por > > > > > exemplo: > > > > > > > > > > context.invokeFactory('Seu Tipo', > > > > > id=uniq_id, > > > > > title=title,) > > > > > > > > > > context[uniq_id].edit(remoteUrl='http://www.pgr.mpf.gov.br') > > > > > > > > > > Onde uniq_id é o id que você utilizou para criar seu objeto. > > > > > > > > > > Agora se eu não entendi novamente, então explica melhor ;) > > > > > > > > > > Abraços. > > > > > > > > > > 2009/7/21 chgcj <HENRIQUE@> > > > > > > > > > > > > > > > > > > > > > > > valeu Rodrigo... > > > > > > mas o que estou querendo fazer é simplesmente preencher um > > determinado > > > > > > campo de um tipo que criei com o resultado de script python. Como > > devo > > > > > > proceder para fazer isso ??? > > > > > > > > > > > > desde já obrigado, > > > > > > Carlos Henrique > > > > > > > > > > > > --- Em zope-pt@yahoogrupos.com.br > > > > > > <zope-pt%40yahoogrupos.com.br><zope-pt% > > 40yahoogrupos.com.br><zope-pt% > > > > > > 40yahoogrupos.com.br>, Rodrigo > > > > > > > > > > Castardo <rodrigocastardo@> escreveu > > > > > > > > > > > > > > > > > > > > Fala Carlos, > > > > > > > no ArcheTypes você pode setar com o default (valor padrão) ou o > > > > > > > default_method (método que retorna o valor padrão), depende do > > caso. > > > > > > > > > > > > > > Dê uma olhada em: ArcheTypes/Field.py (é onde são definidos os > > fields > > > > que > > > > > > > podem ser usados). > > > > > > > > > > > > > > Lá você vai encontrar esse trecho de código: > > > > > > > > > > > > > > class Field(DefaultLayerContainer): > > > > > > > """ > > > > > > > Extend `DefaultLayerContainer`. > > > > > > > Implements `IField` and `ILayerContainer` interfaces. > > > > > > > Class security = public with default access = allow. > > > > > > > Class attribute _properties is a dictionary containing all of a > > > > > > > field's property values. > > > > > > > """ > > > > > > > > > > > > > > __implements__ = IField, ILayerContainer > > > > > > > > > > > > > > security = ClassSecurityInfo() > > > > > > > > > > > > > > _properties = { > > > > > > > 'old_field_name':None, > > > > > > > 'required' : False, > > > > > > > 'default' : None, > > > > > > > 'default_method' : None, > > > > > > > 'vocabulary' : (), > > > > > > > 'vocabulary_factory' : None, > > > > > > > 'enforceVocabulary' : False, > > > > > > > 'multiValued' : False, > > > > > > > 'searchable' : False, > > > > > > > 'isMetadata' : False, > > > > > > > > > > > > > > 'accessor' : None, > > > > > > > 'edit_accessor' : None, > > > > > > > 'mutator' : None, > > > > > > > 'mode' : 'rw', > > > > > > > > > > > > > > 'read_permission' : permissions.View, > > > > > > > 'write_permission' : permissions.ModifyPortalContent, > > > > > > > > > > > > > > 'storage' : AttributeStorage(), > > > > > > > > > > > > > > 'generateMode' : 'veVc', > > > > > > > 'force' : '', > > > > > > > 'type' : None, > > > > > > > 'widget': StringWidget, > > > > > > > 'validators' : (), > > > > > > > 'index' : None, # "KeywordIndex" or "<index_type>:schema" > > > > > > > 'index_method' : '_at_accessor', # method used for the index > > > > > > > # _at_accessor an _at_edit_accessor > > > > > > > # are the accessor and edit > > > > > > > accessor > > > > > > > 'schemata' : 'default', > > > > > > > 'languageIndependent' : False, > > > > > > > } > > > > > > > > > > > > > > E no ATContentTypes/content você encontra a classe que implementa > > o > > > > > > evento > > > > > > > do Plone, ele por exemplo seta a data de início (pelo > > > > default_method). > > > > > > > > > > > > > > Como pelo que pude entender você criou um novo tipo, pode > > pendurar o > > > > > > método > > > > > > > neste tipo e chamar no default_method. > > > > > > > > > > > > > > Bom, dá uma olhada nisso, vai te ajudar. > > > > > > > > > > > > > > Boa sorte, um abraço. > > > > > > > > > > > > > > 2009/7/17 chgcj <HENRIQUE@> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Pessoal, > > > > > > > > preciso coocar em um campo text o resultado de um script > > python. > > > > > > Coloquei > > > > > > > > no ARGOUML, em Valores Marcados (Tagged Values) o campo > > expression > > > > com > > > > > > o > > > > > > > > valor context.montaURL(). Aí criei um script python no zope > > dando > > > > um > > > > > > return > > > > > > > > 'teste' mas não funcionou. > > > > > > > > > > > > > > > > Alguém sabe como faze isso. > > > > > > > > Desde já obrigado. > > > > > > > > > > > > > > > > Carlos Henrique > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > Rodrigo Castardo > > > > > > > Liberiun > > > > > > > COO > > > > > > > rodrigocastardo@ > > > > > > > +55 61 9123-7847 > > > > > > > +55 61 3468-2662 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > > > > > > > > > -- > > > > > Rodrigo Castardo > > > > > Liberiun > > > > > COO > > > > > rodrigocastardo@ > > > > > +55 61 9123-7847 > > > > > +55 61 3468-2662 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > -- > > > Rodrigo Castardo > > > Liberiun > > > COO > > > rodrigocastardo@ > > > +55 61 9123-7847 > > > +55 61 3468-2662 > > > > > > > > > > > > > -- > > > > -- > Rodrigo Castardo > Liberiun > COO > rodrigocasta...@... > +55 61 9123-7847 > +55 61 3468-2662 >