source: publico/PortalInterlegis/produtos/il.portal.theme/trunk/il/portal/theme/browser/views.py @ 6061

Última Alteração nesse arquivo desde 6061 foi 6061, incluída por lucasaquino, 8 anos atrás

registra views - css primeira pagina

  • Propriedade svn:executable mudada para *
File size: 6.1 KB
Linha 
1#!/usr/bin/python
2# coding=utf-8
3
4
5import locale
6from AccessControl import ClassSecurityInfo
7from Products.Five import BrowserView
8from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
9from Products.CMFCore.utils import getToolByName
10from Acquisition import aq_inner
11from zope.interface import implements
12from Products.CMFPlone import utils
13from zope.app.component.hooks import getSite
14from DateTime import DateTime
15import datetime
16
17from il.portal.theme.browser.interfaces import IPortalView
18
19#TODO: Metodo deprecated
20from Products.CMFPlone.CatalogTool import is_folderish
21#TODO: Usar este
22#context.restrictedTraverse('@@plone').isStructuralFolder()
23
24class IlPortalView(BrowserView):
25    implements(IPortalView)
26    """View geral para o produto"""
27
28    def __init__(self, context, request):
29        self.context = aq_inner(context)
30        self.request = aq_inner(request)
31        self.request_get = getattr(self.request, 'get')       
32        self.catalog = getSite().portal_catalog
33        self.path = self.context.portal_url.getPortalPath()
34       
35
36
37       
38    def getNoticiaPrincipal(self):
39        ctlg = self.catalog(
40                             
41                             review_state='principal',
42                             sort_on="effective"
43                             )[:5]
44        return ctlg
45       
46   
47    def getNoticias(self):
48        caminho = self.path+'/noticias'
49        ctlg = self.catalog(
50                             path={'query':caminho, 'depth':1},
51                             review_state='published',
52                   
53                             )[:7]
54        return ctlg
55   
56   
57    def getNomeMes2(self):
58        """Retorna o nome mes atual"""
59       
60        from DateTime import DateTime
61        import datetime
62
63        dia = int(DateTime().strftime('%d'))
64        mes = int(DateTime().strftime('%m'))
65        ano = int(DateTime().strftime('%Y'))
66
67        data1_ini = DateTime(ano, mes, 01)
68        data2_ini = data1_ini+31
69        data3_ini = data1_ini+62
70         
71        data1_fim = data1_ini+30       
72        data2_fim = data2_ini+30
73        data3_fim = data3_ini+30
74
75        data1b = data1_ini.strftime('%B')
76        data2b = data2_ini.strftime('%B')
77        data3b = data3_ini.strftime('%B')
78
79        data1f = self.getNomeMesPtbr(data1b)
80        data2f = self.getNomeMesPtbr(data2b)
81        data3f = self.getNomeMesPtbr(data3b)
82       
83        datas = {
84                 '01':{'mes':data1f,
85                       'events':self.getEvents(data1_ini, data1_fim)
86                      },
87
88                 '02':{'mes':data2f,
89                       'events':self.getEvents(data2_ini, data2_fim)
90                      },
91   
92                 '03':{'mes':data3f,
93                       'events':self.getEvents(data3_ini, data3_fim)
94                      },
95                }
96
97        return datas   
98
99    def getNomeMes(self):
100        """Retorna o nome mes atual"""
101       
102        from DateTime import DateTime
103        import datetime
104        from dateutil.relativedelta import relativedelta
105       
106        dia = datetime.date.today().day
107        mes = datetime.date.today().month
108        ano = datetime.date.today().year
109
110        dt1 = datetime.date(ano, mes, 01)
111        dt2 = dt1 + relativedelta(months=+1)
112        dt3 = dt1 + relativedelta(months=+2)       
113
114        data1_ini = DateTime(dt1.year, dt1.month, 01)
115        data2_ini = DateTime(dt2.year, dt2.month, 01)
116        data3_ini = DateTime(dt3.year, dt3.month, 01)
117       
118        dtf1 = dt1 + relativedelta(months=+1) + relativedelta(days=-1)   
119        dtf2 = dt2 + relativedelta(months=+1) + relativedelta(days=-1)
120        dtf3 = dt3 + relativedelta(months=+1) + relativedelta(days=-1)
121
122        data1_fim = DateTime(dtf1.year, dtf1.month, dtf1.day)
123        data2_fim = DateTime(dtf2.year, dtf2.month, dtf2.day)
124        data3_fim = DateTime(dtf3.year, dtf3.month, dtf3.day)               
125       
126        data1b = data1_ini.strftime('%B')
127        data2b = data2_ini.strftime('%B')
128        data3b = data3_ini.strftime('%B')
129
130        data1f = self.getNomeMesPtbr(data1b)
131        data2f = self.getNomeMesPtbr(data2b)
132        data3f = self.getNomeMesPtbr(data3b)
133       
134        datas = {
135                 '01':{'mes':data1f,
136                       'events':self.getEvents(data1_ini, data1_fim)
137                      },
138
139                 '02':{'mes':data2f,
140                       'events':self.getEvents(data2_ini, data2_fim)
141                      },
142   
143                 '03':{'mes':data3f,
144                       'events':self.getEvents(data3_ini, data3_fim)
145                      },
146                }
147
148        return datas 
149
150    def getNomeMesPtbr(self, mes_ingles):
151
152        meses ={'January':'janeiro',
153                'February':'fevereiro',
154                'March':'março',
155                'April':'abril',
156                'May':'maio',
157                'June':'junho',
158                'July':'julho',
159                'August':'agosto',
160                'September':'setembro',
161                'October':'outubro',
162                'November':'novembro',
163                'December':'dezembro'}
164
165        formata = meses[mes_ingles][0].upper()+meses[mes_ingles][1:]
166        return formata
167       
168       
169
170       
171    # Gerais
172   
173    def textMin(self, text, tamanho):
174        """Corta o texto no espaco ate um numero especifico de caracteres"""
175        try:
176            total = len(text[:tamanho].split(' '))
177            if total >1 and len(text) > tamanho:
178                return " ".join(text[:tamanho].split(' ')[:-1])+"..."
179            else:
180                return text
181        except:
182            pass
183
184    def getItemsPortletDocuments(self, caminho, depth=1):
185        """ Retorna as paginas do path referenciado"""
186        lista = self.catalog(path={'query': caminho, 'depth':depth},
187                             review_state="published",
188                             sort_on="getObjPositionInParent")
189        return lista
190   
191    def setExibicaoListagem(self):
192        """ seta o layout da pagina"""
193        set = self.setLayout('')
194        return set
195
196    def setExibicaoTexto(self):
197        """ seta o layout da pagina"""
198        set = self.setLayout('document_view')
199        return set
200       
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.