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