Ok.

Corrigi o return.

Agora, parece que ele pede um _init_ !? Reclama de um _new_
Precisa fazer um def _init_  ?  ou def _new_  ?


  Module Products.Archetypes.BaseObject, line 514, in validate
  Module zope.component._api, line 130, in subscribers
  Module zope.component.registry, line 290, in subscribers
  Module zope.interface.adapter, line 539, in subscribers
 TypeError: default __new__ takes no parameters


*novo validators.py*

*from  zope.interface import implements
from  zope.component import adapts
from  Products.Archetypes.interfaces import IObjectPostValidation
from  pox.video import videoMessageFactory as _
from  pox.video.interfaces import IVideo

# class name could be any one
class ValidatePDFFile(object):
    """
    Checks if file field has a real FLV file
    """
    implements(IObjectPostValidation)
    adapts(IVideo)

    def validate_file(self, context):
        """valida a extensão de um arquivo PDF"""
        field = self.getField('file')
        if field.getContentType(self) not in self.inlineMimetypePDF:
           return 'Tipo de arquivo não permitido. Apenas arquivos PDF são
permitidos'
        else:
           return None
*

2010/6/16 Alexandre Marinho <lyrale...@gmail.com>

>
>
> Acho que ta rolando erro de sintaxe ai, olha essa linha:
>
>
> # Returning None means no error
> return None
>
> esse return está fora da função por isso está acontecendo o erro.
> --
> Alexandre Marinho
> Analista de Tecnologia da Informação - NTI - UFAL
> http://alexandre.cuboestudioweb.com
> Maceió/AL
>
>
> Em 16 de junho de 2010 12:09, Julio Zinga Suzuki Lopes <
> juliozi...@gmail.com> escreveu:
>
>
>>
>> Saudações comunidade!
>>
>> Estou com a seguinte dúvida: Quero implementar um produto que só aceite
>> UPLOAD de arquivos pdf's
>>
>> Estou querendo criar um validador com uma função para restringir.
>>
>> mas não pega nenhum tipo de arquivo. e ao tentar compilar, ou melhor,
>> rodar o instence fg
>> aparece o seguinte erro final
>> *
>>     ZopeXMLConfigurationError: File
>> "/usr/local/Plone/zinstance/src/pox.video/pox/video/content/configure.zcml",
>> line 20.2-22.5
>>     SyntaxError: 'return' outside function (validators.py, line 24)*
>>
>>
>> Alguém já precisou de restringir uma pasta com um tipo específico de
>> arquivo?
>>
>> Códigos:
>>
>> validators.py
>>
>> from  zope.interface import implements
>> from  zope.component import adapts
>> from  Products.Archetypes.interfaces import IObjectPostValidation
>> from  pox.video import videoMessageFactory as _
>> from  pox.video.interfaces import IVideo
>>
>> # class name could be any one
>> class ValidatePDFFile(object):
>>     """
>>     Checks if file field has a real FLV file
>>     """
>>     implements(IObjectPostValidation)
>>     adapts(IVideo)
>>
>>
>>     def validate_file(self, value):
>>         """valida a extensão de um arquivo PDF"""
>>         field = self.getField('file')
>>         if field.getContentType(self) not in self.inlineMimetypePDF:
>>            return 'Tipo de arquivo não permitido. Apenas arquivos PDF são
>> permitidos'
>>
>>
>> # Returning None means no error
>> return None
>>
>>
>>
>> configure.zcml
>>
>>   <subscriber
>> provides="Products.Archetypes.interfaces.IObjectPostValidation"
>>     factory=".validators.ValidatePDFFile"
>>    />
>> </configure>
>>
>>
>> E uma classe que chama-se video, mas deveria ser filePDF, (ignorar este
>> detalhe :)
>>
>> class Video(file.ATFile):
>>     """
>>     pox Video
>>     """
>>     implements(IATFile,IVideo)
>>
>>     meta_type = "Video"
>>     schema = VideoSchema
>>
>>     title = atapi.ATFieldProperty('title')
>>     description = atapi.ATFieldProperty('description')
>>
>>     inlineMimetypePDF= ('application/pdf')
>>
>>     # -*- Your ATSchema to Python Property Bridges Here ... -*-
>>
>> atapi.registerType(Video, PROJECTNAME)
>>
>>
>>
>> --
>> --
>> Júlio Zinga Suzuki Lopes
>> Analista de TI
>> Tel: 83 8862-1530 / 9975-1646
>>
>>
>>
>  
>



-- 
-- 
Júlio Zinga Suzuki Lopes
Analista de TI
Tel: 83 8862-1530 / 9975-1646

Responder a