Conjunto de mudanças 5377 no repositório publico


Ignorar:
Timestamp:
15/10/2011 01:37:37 (8 anos atrás)
Autor:
fabianosantos
Mensagem:

Implementação nova de vocabulário que também é IQuerySource para
realização de autocomplete nos campos Choice e List de Choice.

Localização:
il.spdo/trunk/il/spdo
Arquivos:
2 editados

Legenda:

Não Modificado
Adicionado
Removido
  • il.spdo/trunk/il/spdo/profiles/default/metadata.xml

    r5365 r5377  
    66      <dependency>profile-plone.app.theming:default</dependency>
    77      <dependency>profile-plone.app.drafts:default</dependency>
     8      <dependency>profile-plone.formwidget.autocomplete:default</dependency>
    89    </dependencies>
    910</metadata>
  • il.spdo/trunk/il/spdo/vocabulary.py

    r5365 r5377  
    1414
    1515
    16 class AreasVocabulary(object):
    17      implements(IVocabularyFactory)
     16class BaseQueryVocabulary(object):
     17    implements(IVocabularyFactory, IQuerySource)
    1818
    19      def __call__(self, context):
    20          session = Session()
    21          query = session.query(db.Area).order_by(db.Area.nome).all()
    22          return SimpleVocabulary([SimpleTerm(a.id, a.id, a.nome) for a in query])
     19    vocab = None
     20
     21    def update(self):
     22        raise NotImplementedError
     23
     24    def __call__(self, context):
     25        self.vocab = self.update()
     26        return self
     27 
     28    def __contains__(self, term):
     29        return self.vocab.__contains__(term)
     30
     31    def __iter__(self):
     32        return self.vocab.__iter__()
     33 
     34    def __len__(self):
     35        return self.vocab.__len__()
     36 
     37    def getTerm(self, value):
     38        return self.vocab.getTerm(value)
     39 
     40    def getTermByToken(self, value):
     41        return self.vocab.getTermByToken(value)
     42 
     43    def search(self, query_string):
     44        query_string = query_string.lower()
     45        return [x for x in self.vocab if x.title.lower().find(query_string) != -1]
     46
     47class AreasVocabulary(BaseQueryVocabulary):
     48
     49    def update(self):
     50        session = Session()
     51        areas = session.query(db.Area).order_by(db.Area.nome).all()
     52        return SimpleVocabulary([SimpleTerm(a.id, a.id, a.nome) for a in areas])
    2353
    2454AreasVocabularyFactory = AreasVocabulary()
     
    3868               name='il.spdo.tipodocumento-vocab')
    3969
    40 class PessoaVocabulary(object):
    41      implements(IVocabularyFactory)
     70class PessoaVocabulary(BaseQueryVocabulary):
    4271
    43      def __call__(self, context):
     72    def update(self):
    4473         session = Session()
    4574         query = session.query(db.Pessoa).order_by(db.Pessoa.nome).all()
Note: Veja TracChangeset para ajuda no uso do visualizador de conjunto de mudanças.
 

The contents and data of this website are published under license:
Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual.