source: publico/ILSAAL/trunk/SAALBase.py @ 1273

Última Alteração nesse arquivo desde 1273 foi 1273, incluída por jeanferri, 14 anos atrás

Ocultadas as abas e menus de adição de conteúdos, estados, etc... e criados métodos folder_contents e folder_listing para garantir que ningué entre em gerenciamento de conteúdo

File size: 3.3 KB
Linha 
1# File: SAALBase.py
2"""\
3Definicoes gerais para todas as classe do SAAL.
4
5"""
6# Copyright (c) 2005 by Interlegis
7# Generator: ArchGenXML Version 1.4 devel 1 http://sf.net/projects/archetypes/
8#
9# GNU General Public Licence (GPL)
10#
11# This program is free software; you can redistribute it and/or modify it under
12# the terms of the GNU General Public License as published by the Free Software
13# Foundation; either version 2 of the License, or (at your option) any later
14# version.
15# This program is distributed in the hope that it will be useful, but WITHOUT
16# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
18# details.
19# You should have received a copy of the GNU General Public License along with
20# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
21# Place, Suite 330, Boston, MA  02111-1307  USA
22#
23__author__  = '''STC Interlegis <stc@interlegis.gov.br>'''
24__docformat__ = 'plaintext'
25
26from AccessControl import ClassSecurityInfo
27from Products.Archetypes.atapi import *
28
29from Products.ILSAAL.interfaces.ISAALBase import ISAALBase
30
31from Products.CMFCore.utils import getToolByName
32
33
34class SAALBase:
35    """
36    Definicoes gerais para todas as classe do SAAL.
37    """
38    security = ClassSecurityInfo()
39    __implements__ = (ISAALBase,)
40
41
42    security.declareProtected('Access contents information', 'getVocabulario')
43    def getVocabulario(self,field):
44        """
45        Retorna uma lista no formato que o widget espera com o
46        vocabulario do campo, de nome identico + getVocab_, armazenado
47        na ferramenta de gerenciamento do SAAL.
48        """
49       
50        resultado = []
51
52        portal_saal = getToolByName(self, 'portal_saal')
53        pega_vocab = 'getVocab_' + str(getattr(field, 'getName', None) and field.getName() or field)
54        vocabulario = portal_saal[pega_vocab]()
55
56        for item in vocabulario:
57            #resultado.append([item,item])
58            try:
59                chave, valor = item.split('|')
60            except ValueError:
61                raise ValueError, 'Verifique as propriedades <chave|valor> do campo "%s" em "Gerenciamento do SAAL".' % (field.__name__)
62            resultado.append([chave, valor])
63
64        return DisplayList(tuple(resultado))
65
66
67    security.declareProtected('View', 'Title')
68    def Title(self,**kwargs):
69        """
70        Sobrescreve o metodo Title padrao definindo um titulo adequado
71        aos objetos dos SAAL. Invoca o metodo '_titulo' individualmente
72        se houver.
73        """
74       
75        try:
76            return self._titulo()
77        except:
78            return 'Editando...' #+ self.getTypeInfo().Title()
79
80
81    def showEditableBorder(self, *args, **kwargs):
82        """
83        Forca o Plone a nao mostrar as abas e menus de conteudo,
84        workflow, etc...
85        """
86
87        return False
88
89
90    def folder_contents(self, REQUEST=None, *args, **kwargs):
91        """
92        Se alguem forcar a URL folder_contents eh redirecionado para o view
93        padrao do objeto.
94        """
95
96        if REQUEST is not None:
97            return REQUEST.RESPONSE.redirect('view')
98
99
100    def folder_listing(self, REQUEST=None, *args, **kwargs):
101        """
102        Se alguem forcar a URL folder_listing eh redirecionado para o view
103        padrao do objeto.
104        """
105
106        return self.folder_contents(REQUEST)
107
108
Note: Veja TracBrowser para ajuda no uso do navegador do trac.
 

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