Conjunto de mudanças 5348 no repositório publico


Ignorar:
Timestamp:
11/10/2011 17:02:10 (8 anos atrás)
Autor:
fabianosantos
Mensagem:

Refatoração do módulo forms.py para ser um pacote e criação de classes
base no módulo forms/base.py para reúso de código.

Localização:
il.spdo/trunk/il/spdo/browser/forms
Arquivos:
4 adicionados
1 movido

Legenda:

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

    r5347 r5348  
    11# -*- coding: utf-8 -*-
    22from five import grok
    3 from plone.directives import form
    4 from z3c.form import field, button
    5 from sqlalchemy.exc import IntegrityError
    63
     4from plone.app.layout.navigation.interfaces import INavigationRoot
    75from Products.statusmessages.interfaces import IStatusMessage
    8 from Products.CMFCore.interfaces import ISiteRoot
    96
     7from il.spdo.browser.forms import base
    108from il.spdo.config import MessageFactory as _
    11 from il.spdo.interfaces import ITipoDocumento, IArea
    12 from il.spdo import db
     9from il.spdo.interfaces import IArea
     10from il.spdo.db import Area
    1311from il.spdo.config import Session
    1412
    15 class TipoDocumentoAddForm(form.AddForm):
    16     grok.context(ISiteRoot)
    17     grok.name('add-tipo-documento')
    18     grok.require('zope2.View')
    19 
    20     fields = field.Fields(ITipoDocumento)
    21     label = _(u'Adcionar tipo de documento.')
    22 
    23 class TipoDocumentoEditForm(form.EditForm):
    24     grok.context(ISiteRoot)
    25     grok.name('edit-tipo-documento')
    26     grok.require('cmf.ManagePortal')
    27 
    28     fields = field.Fields(ITipoDocumento)
    29     label = _(u'Editar tipo de documento.')
    30 
    31     def getContent(self):
    32         pass   
    33 
    34 class AreaAddForm(form.SchemaForm):
    35     grok.context(ISiteRoot)
     13class AreaAddForm(base.AddForm):
     14    """Formulário de cadastro de uma área do organograma.
     15    """
     16    grok.context(INavigationRoot)
    3617    grok.name('add-area')
    3718    grok.require('zope2.View')
     
    4021    label = _(u'Adcionar Área')
    4122    description = _(u'Formulário de cadastro de uma área do organograma da instituição.')
    42     ignoreContext = True
    4323
    4424    def createAndAdd(self, data):
    45         area = db.Area()
     25        area = Area()
    4626        area.nome = data['nome']
    4727        area.chefia_id = data['chefia_id']
     
    5131        return area
    5232
    53     @button.buttonAndHandler(_(u'Cadastar'), name='cadastrar')
    54     def handleCadastrar(self, action):
    55         data, errors = self.extractData()
    56         if errors:
    57             self.status = self.formErrorsMessage
    58             return
     33    def nextURL(self):
     34        url_base = self.context.absolute_url()
     35        self.redirect(url_base + '/@@list-area')
    5936
    60         status = IStatusMessage(self.request)
    61         try:
    62             obj = self.createAndAdd(data)
    63         except IntegrityError, e:
    64             status.add(_(u'Falha no cadastro: ' + str(e)), 'error')
    65             return
    66         if obj is not None:
    67             self._finishedAdd = True
    68             status.add(_(u'Cadastro efetuado com sucesso.'), 'info')
    69             url_base = self.context.absolute_url()
    70             self.request.response.redirect(url_base + '/@@list-area')
    71         else:
    72             status.add(_(u'Falha no cadastro.'), 'error')
    73             return
    7437
    75     @button.buttonAndHandler(_(u'Cancelar'), name='cancelar')
    76     def handleCancelar(self, action):
    77         url_base = self.context.absolute_url()
    78         self.request.response.redirect(url_base + '/@@list-area')
     38class AreaEditForm(base.EditForm):
     39    """Formulário de edição de uma área do organograma.
     40    """
    7941
    80     def updateActions(self):
    81         super(AreaAddForm, self).updateActions()
    82         self.actions["cadastrar"].addClass("context")
    83         self.actions["cancelar"].addClass("standalone")
    84 
    85 class AreaEditForm(form.SchemaForm):
    86 
    87     grok.context(ISiteRoot)
     42    grok.context(INavigationRoot)
    8843    grok.name('edit-area')
    8944    grok.require('cmf.ManagePortal')
     
    9651        if area_id is not None:
    9752            session = Session()
    98             area = session.query(db.Area).get(area_id)
     53            area = session.query(Area).get(area_id)
    9954            if area is not None:
    10055                return area
     
    10257
    10358    def getContent(self):
    104         area_id = self.request.get('id', None) or\
    105            self.request.get('form.widgets.id', None)
    106         return self.getArea(area_id)
     59        return self.getArea(self.rec_id())
    10760
    10861    def applyChanges(self, data):
     
    11669        return False
    11770
    118     @button.buttonAndHandler(_(u'Salvar'), name='salvar')
    119     def handleSalvar(self, action):
    120         data, errors = self.extractData()
    121         if errors:
    122             self.status = self.formErrorsMessage
    123             return
    124         status = IStatusMessage(self.request)
    125         try:
    126             self.applyChanges(data)
    127             status.add(_(u"Alterações efetuadas"), "info")
    128             url_base = self.context.absolute_url()
    129             return self.redirect(url_base + '/@@list-area')
    130         except IntegrityError, e:
    131             status.add(_(u'Falha no cadastro: ' + str(e)), 'error')
    132             return
     71    def nextURL(self):
     72        url_base = self.context.absolute_url()
     73        self.redirect(url_base + '/@@list-area')
    13374
    134     @button.buttonAndHandler(_(u'Cancelar'), name='cancelar')
    135     def handleCancelar(self, action):
    136         url_base = self.context.absolute_url()
    137         self.request.response.redirect(url_base + '/@@list-area')
    13875
    139     def updateActions(self):
    140         super(AreaEditForm, self).updateActions()
    141         self.actions["salvar"].addClass("context")
    142         self.actions["cancelar"].addClass("standalone")
    143 
    144 class AreaShowForm(form.SchemaForm):
    145     grok.context(ISiteRoot)
     76class AreaShowForm(base.ShowForm):
     77    grok.context(INavigationRoot)
    14678    grok.name('show-area')
    14779    grok.require('cmf.ManagePortal')
     
    15082    label = _(u'Detalhes Área')
    15183    description = _(u'Formulário de visualização de uma área do organograma da instituição.')
    152     mode = 'display'
    15384
    15485    def getArea(self, area_id):
    15586        if area_id is not None:
    15687            session = Session()
    157             area = session.query(db.Area).get(area_id)
     88            area = session.query(Area).get(area_id)
    15889            if area is not None:
    15990                return area
     
    16293    @property
    16394    def area_id(self):
    164         return self.request.get('id', None) or\
    165             self.request.get('form.widgets.id', None)
     95        self.rec_id()
     96
     97    def removeItem(self):
     98        #XXX: implementar validação e exclusão.
     99        print 'Item não foi removido!'
    166100
    167101    def getContent(self):
    168         return self.getArea(self.area_id)
     102        return self.getArea(self.rec_id())
    169103
    170     @button.buttonAndHandler(_(u'Editar'), name='editar')
    171     def handleEditar(self, action):
     104    def nextURL(self):
    172105        url_base = self.context.absolute_url()
    173         self.request.response.redirect(url_base + '/@@edit-area?id=%s' % self.area_id)
     106        self.redirect(url_base + '/@@list-area')
    174107
    175     @button.buttonAndHandler(_(u'Excluir'), name='excluir')
    176     def handleExcluir(self, action):
    177         print "remover área: remover todas os filhos que apontes para ela, ou alertar"
    178         IStatusMessage(self.request).addStatusMessage(_(u"Área Removida"), "info")
     108    def editURL(self):
    179109        url_base = self.context.absolute_url()
    180         self.request.response.redirect(url_base + '/@@list-area')
    181 
    182     @button.buttonAndHandler(_(u'Voltar'), name='voltar')
    183     def handleVoltar(self, action):
    184         url_base = self.context.absolute_url()
    185         self.request.response.redirect(url_base + '/@@list-area')
    186 
    187     def updateActions(self):
    188         super(AreaShowForm, self).updateActions()
    189         self.actions["editar"].addClass("context")
    190         self.actions["excluir"].addClass("context")
    191         self.actions["voltar"].addClass("standalone")
    192 
     110        self.redirect(url_base + '/@@edit-area?id=%s' % self.rec_id())
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.