Conjunto de mudanças 5439 no repositório publico


Ignorar:
Timestamp:
27/10/2011 18:05:06 (8 anos atrás)
Autor:
fabianosantos
Mensagem:

Revisado forms de add e edit de areas e tipo de documento. Adicionado views de tipo de documento.

Localização:
il.spdo/trunk/il/spdo
Arquivos:
1 adicionado
6 editados

Legenda:

Não Modificado
Adicionado
Removido
  • il.spdo/trunk/il/spdo/browser/forms/area.py

    r5438 r5439  
    22
    33from five import grok
    4 
    54from plone.app.layout.navigation.interfaces import INavigationRoot
    65from Products.statusmessages.interfaces import IStatusMessage
    7 
    86from il.spdo.browser.forms import base
    97from il.spdo.config import MessageFactory as _
     
    1513    """Formulário de cadastro de uma área do organograma.
    1614    """
     15
    1716    grok.context(INavigationRoot)
    1817    grok.name('add-area')
     
    2019
    2120    schema = IArea
    22     label = _(u'Adcionar Área')
    23     description = _(u'Formulário de cadastro de uma área do organograma da instituição.')
     21    label = _(u'Adicionar Área')
     22    description = _(u'Formulário de cadastro de uma área do organograma.')
    2423
    2524    def createAndAdd(self, data):
    2625        area = Area()
     26        area.sigla = data['sigla']
    2727        area.nome = data['nome']
    2828        area.chefia_id = data['chefia_id']
    29         area.sigla = data['sigla']
    3029        session = Session()
    3130        session.add(area)
     
    5150    descrition = _(u'Formulário de edição de uma área do organograma.')
    5251
    53     def getArea(self, area_id):
     52    def getContent(self):
    5453        session = Session()
    55         return session.query(Area).get(area_id)
    56 
    57     def getContent(self):
    58         return self.getArea(self.rec_id())
     54        return session.query(Area).get(self.rec_id())
    5955
    6056    def applyChanges(self, data):
    61         content = self.getArea(data['id'])
     57        content = self.getContent()
    6258        if content:
    63             for key, value in data.items():
    64                 setattr(content, key, value)
    65             session = Session()
    66             session.flush()
     59            for k, v in data.items():
     60                setattr(content, k, v)
    6761            return True
    68         return False
    6962
    7063    def nextURL(self):
     
    7467
    7568class AreaShowForm(base.ShowForm):
     69    """Formulário de visualização de uma área do organograma.
     70    """
     71   
    7672    grok.context(INavigationRoot)
    7773    grok.name('show-area')
     
    7975
    8076    schema = IArea
    81     label = _(u'Detalhes Área')
    82     description = _(u'Formulário de visualização de uma área do organograma da instituição.')
    83 
    84     def getArea(self, area_id):
    85         session = Session()
    86         return session.query(Area).get(area_id)
    87 
    88     @property
    89     def area_id(self):
    90         self.rec_id()
    91 
    92     def removeItem(self):
    93         #XXX: implementar validação e exclusão.
    94         print 'Item não foi removido!'
     77    label = _(u'Detalhes da Área')
     78    description = _(u'Formulário de visualização de uma área do organograma.')
    9579
    9680    def getContent(self):
    97         return self.getArea(self.rec_id())
     81        session = Session()
     82        return session.query(Area).get(self.rec_id())
    9883
    9984    def nextURL(self):
     
    10489        url_base = self.context.absolute_url()
    10590        self.redirect(url_base + '/@@edit-area?id=%s' % self.rec_id())
     91
  • il.spdo/trunk/il/spdo/browser/forms/base.py

    r5438 r5439  
    11# -*- coding: utf-8 -*-
     2
    23from five import grok
    34from plone.directives import form
    4 from z3c.form import field, button
     5from z3c.form import button
    56from sqlalchemy.exc import IntegrityError
    6 
    77from plone.app.layout.navigation.interfaces import INavigationRoot
    88from Products.statusmessages.interfaces import IStatusMessage
    9 
    109from il.spdo.config import MessageFactory as _
    1110
     
    1312    """Formulário base de cadastro.
    1413    """
     14
    1515    grok.context(INavigationRoot)
    1616
     
    2929            self.status = self.formErrorsMessage
    3030            return
    31 
    3231        status = IStatusMessage(self.request)
    3332        try:
    3433            obj = self.createAndAdd(data)
    3534        except IntegrityError, e:
    36             status.add(_(u'Falha no cadastro: ' + str(e)), 'error')
    37             return
    38         if obj is not None:
    39             self._finishedAdd = True
     35            status.add(_(u'Falha de integridade relacional: ' + str(e)), 'error')   # TODO: talvez nao seja bom mostrar o erro do banco, mas logar no event.log
     36        else:
    4037            status.add(_(u'Cadastro efetuado com sucesso.'), 'info')
    41             url_base = self.context.absolute_url()
    4238            self.nextURL()
    43         else:
    44             status.add(_(u'Falha no cadastro.'), 'error')
    45             return
    4639
    4740    @button.buttonAndHandler(_(u'Cancelar'), name='cancelar')
     
    5851    """Formulário base de edição dos formmulários.
    5952    """
     53
    6054    grok.context(INavigationRoot)
    6155
     
    8175        try:
    8276            self.applyChanges(data)
     77        except IntegrityError, e:
     78            status.add(_(u'Falha de integridade relacional: ' + str(e)), 'error')   # TODO: talvez nao seja bom mostrar o erro do banco, mas logar no event.log
     79        else:
    8380            status.add(_(u"Alterações efetuadas"), "info")
    84             url_base = self.context.absolute_url()
    8581            self.nextURL()
    86         except IntegrityError, e:
    87             status.add(_(u'Falha no cadastro: ' + str(e)), 'error')
    88             return
    8982
    9083    @button.buttonAndHandler(_(u'Cancelar'), name='cancelar')
    9184    def handleCancelar(self, action):
    92             self.nextURL()
     85        self.nextURL()
    9386
    9487    def updateActions(self):
     
    10194    """Formulário base de visualização.
    10295    """
     96
    10397    grok.context(INavigationRoot)
    10498
    10599    mode = 'display'
     100
     101    def getContent(self):
     102        raise NotImplementedError
     103
     104    def removeItem(self):
     105        raise NotImplementedError
    106106
    107107    def nextURL(self):
     
    113113    def rec_id(self):
    114114        return self.request.get('id', self.request.get('form.widgets.id', None))
    115 
    116     def getContent(self):
    117         raise NotImplementedError
    118 
    119     def removeItem(self):
    120         raise NotImplementedError
    121115
    122116    @button.buttonAndHandler(_(u'Editar'), name='editar')
     
    139133        self.actions["excluir"].addClass("context")
    140134        self.actions["voltar"].addClass("standalone")
     135
  • il.spdo/trunk/il/spdo/browser/forms/tipodocumento.py

    r5348 r5439  
    11# -*- coding: utf-8 -*-
     2
    23from five import grok
    3 
    44from plone.app.layout.navigation.interfaces import INavigationRoot
    55from Products.statusmessages.interfaces import IStatusMessage
    6 
    76from il.spdo.browser.forms import base
    87from il.spdo.config import MessageFactory as _
     
    1211
    1312class TipoDocumentoAddForm(base.AddForm):
    14     grok.name('add-tipo-documento')
     13    """Formulário de cadastro de um tipo de documento.
     14    """
     15
     16    grok.context(INavigationRoot)
     17    grok.name('add-tipodocumento')
    1518    grok.require('cmf.ManagePortal')
    1619
    1720    schema = ITipoDocumento
    18     label = _(u'Adcionar tipo de documento.')
     21    label = _(u'Adicionar Tipo de Documento')
     22    description = _(u'Formulário de cadastro de um tipo de documento.')
     23
     24    def createAndAdd(self, data):
     25        tipodocumento = TipoDocumento()
     26        tipodocumento.nome = data['nome']
     27        session = Session()
     28        session.add(tipodocumento)
     29        session.flush()
     30        self.tipodocumento_id = tipodocumento.id
     31        return tipodocumento
     32
     33    def nextURL(self):
     34        url_base = self.context.absolute_url()
     35        self.redirect(url_base + '/@@show-tipodocumento?id=' + str(self.tipodocumento_id))
     36
    1937
    2038class TipoDocumentoEditForm(base.EditForm):
    21     grok.name('edit-tipo-documento')
     39    """Formulário de edição de um tipo de documento.
     40    """
     41
     42    grok.context(INavigationRoot)
     43    grok.name('edit-tipodocumento')
    2244    grok.require('cmf.ManagePortal')
    2345
    2446    schema = ITipoDocumento
    25     label = _(u'Editar tipo de documento.')
     47    label = _(u'Editar Tipo de Documento')
     48    descrition = _(u'Formulário de edição de um tipo de documento.')
    2649
    2750    def getContent(self):
    28         pass   
     51        session = Session()
     52        return session.query(TipoDocumento).get(self.rec_id())
    2953
     54    def applyChanges(self, data):
     55        content = self.getContent()
     56        if content:
     57            for k, v in data.items():
     58                setattr(content, k, v)
     59            return True
     60
     61    def nextURL(self):
     62        url_base = self.context.absolute_url()
     63        self.redirect(url_base + '/@@show-tipodocumento?id=' + self.rec_id())
     64
     65
     66class TipoDocumentoShowForm(base.ShowForm):
     67    """Formulário de visualização de um tipo de documento.
     68    """
     69   
     70    grok.context(INavigationRoot)
     71    grok.name('show-tipodocumento')
     72    grok.require('cmf.ManagePortal')
     73
     74    schema = ITipoDocumento
     75    label = _(u'Detalhes da Tipo de Documento')
     76    description = _(u'Formulário de visualização de um tipo de documento.')
     77
     78    def getContent(self):
     79        session = Session()
     80        return session.query(TipoDocumento).get(self.rec_id())
     81
     82    def nextURL(self):
     83        url_base = self.context.absolute_url()
     84        self.redirect(url_base + '/@@list-tipodocumento')
     85
     86    def editURL(self):
     87        url_base = self.context.absolute_url()
     88        self.redirect(url_base + '/@@edit-tipodocumento?id=%s' % self.rec_id())
     89
  • il.spdo/trunk/il/spdo/browser/views.py

    r5379 r5439  
    11# -*- coding: utf-8 -*-
     2
    23from five import grok
    3 
    44from zope.component import getUtility
    55from zope.schema.interfaces import IVocabularyFactory
     
    99from Products.statusmessages.interfaces import IStatusMessage
    1010from Products.Five.browser import BrowserView
    11 
    12 from il.spdo.db import Area, Pessoa, Protocolo, Observacao, Tramite
     11from il.spdo.db import Area, TipoDocumento, Pessoa, Protocolo, Observacao, Tramite
    1312from il.spdo.config import Session
    1413from il.spdo.api import ISPDOAPI
     
    1615
    1716class AreaListView(grok.View):
     17
    1818    grok.name('list-area')
    1919    grok.context(INavigationRoot)
    2020    grok.require('cmf.ManagePortal')
    2121
    22     areas = []
     22    dados = []
    2323
    2424    def update(self):
    2525        session = Session()
    2626        items = session.query(Area).all()
    27         self.areas = []
    28         for area in items:
    29             self.areas.append({
    30                'nome': area.nome,
    31                'id': area.id,
    32                'chefia_id': getattr(area, 'chefia_id', ''),
    33                'chefia_nome': getattr(area.area,'nome','')
    34                })
    35    
    36     def show_url(self, area_id):
    37         return self.context.absolute_url() + '/@@show-area?id=%s' % area_id
     27        self.dados = []
     28        for i in items:
     29            self.dados.append({
     30               'id': i.id,
     31               'nome': i.nome,
     32               'chefia_id': i.chefia_id,
     33               'chefia_nome': getattr(i.area,'nome','')
     34               })
     35   
     36    def show_url(self, id):
     37        return self.context.absolute_url() + '/@@show-area?id=%s' % id
    3838
    3939    def add_url(self):
     
    4141
    4242
     43class TipoDocumentoListView(grok.View):
     44
     45    grok.name('list-tipodocumento')
     46    grok.context(INavigationRoot)
     47    grok.require('cmf.ManagePortal')
     48
     49    dados = []
     50
     51    def update(self):
     52        session = Session()
     53        items = session.query(TipoDocumento).all()
     54        self.dados = []
     55        for i in items:
     56            self.dados.append({
     57               'id': i.id,
     58               'nome': i.nome,
     59               })
     60   
     61    def show_url(self, id):
     62        return self.context.absolute_url() + '/@@show-tipodocumento?id=%s' % id
     63
     64    def add_url(self):
     65        return self.context.absolute_url() + '/@@add-tipodocumento'
     66
     67
    4368class DownloadAnexoView(grok.View):
     69
    4470    grok.name('download-anexo')
    4571    grok.context(INavigationRoot)
     
    6894
    6995class PessoaListView(grok.View):
     96   
    7097    grok.name('list-pessoa')
    7198    grok.context(INavigationRoot)
     
    196223            status.add(_(u'Protocolo não localizado'), 'warn')
    197224            return self.request.response.redirect(self.context.absolute_url())
     225
  • il.spdo/trunk/il/spdo/browser/views_templates/arealistview.pt

    r5347 r5439  
    1414    <div tal:replace="structure provider:plone.abovecontenttitle" />
    1515
    16     <h1 class="documentFirstHeading">Listagem Área</h1>
     16    <h1 class="documentFirstHeading">Listagem de Área</h1>
    1717
    1818    <p class="documentDescription">Listagem das áreas do organograma.</p>
     
    2121
    2222    <div>
    23       <table class="listing" id="talbe-list-area">
     23      <table class="listing" id="table-list-area">
    2424       <thead>
    2525         <tr>
     
    2929       </thead>
    3030      <tbody>
    31         <tr tal:repeat="area view/areas">
     31        <tr tal:repeat="area view/dados">
    3232          <td>
    3333             <a tal:content="area/nome"
  • il.spdo/trunk/il/spdo/skins/il_spdo_custom_templates/tabelas_auxiliares.pt

    r5409 r5439  
    1919    </dd>
    2020
     21    <dd class="portletItem odd">
     22      <a href="/Plone/@@list-tipodocumento">Tipos de Documentos</a>
     23    </dd>
     24
    2125    <dd class="portletFooter">
    2226        <span class="portletBottomLeft"></span>
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.