Conjunto de mudanças 5340 no repositório publico


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

Adicionada rotina de calculo de digito verificador.

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

Legenda:

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

    r5327 r5340  
    1111from Products.statusmessages.interfaces import IStatusMessage
    1212from Products.CMFCore.interfaces import ISiteRoot
     13from zExceptions import NotFound
    1314
    1415from il.spdo.config import MessageFactory as _
     
    2526    label = _(u'Adcionar tipo de documento.')
    2627
    27 TipoDocumentoAddFormView = layout.wrap_form(TipoDocumentoAddForm)
     28#TipoDocumentoAddFormView = layout.wrap_form(TipoDocumentoAddForm)
    2829
    2930class TipoDocumentoEditForm(form.EditForm):
     
    3839        pass   
    3940
    40 TipoDocumentoEditFormView = layout.wrap_form(TipoDocumentoAddForm)
     41#TipoDocumentoEditFormView = layout.wrap_form(TipoDocumentoAddForm)
    4142
    4243class AreaAddForm(form.AddForm):
    4344    grok.context(ISiteRoot)
    44     grok.name('add-areas')
     45    grok.name('add-area')
    4546    grok.require('zope2.View')
    4647
     
    6364        return self.context.absolute_url()
    6465
    65 AreaAddFormView = layout.wrap_form(AreaAddForm)
     66#AreaAddFormView = layout.wrap_form(AreaAddForm)
    6667
    6768class AreaEditForm(form.EditForm):
     
    7576    label = _(u'Editar Área.')
    7677    ignoreContext = True
     78    area_id = None
    7779
    78     #def update(self):
    79        
    8080    def publishTraverse(self, request, name):
    81         pass
     81        if self.area_id is None:
     82            self.area_id = int(name)
     83            return self
     84        else:
     85            raise NotFound()
    8286 
    8387    def getContent(self):
    8488        import pdb; pdb.set_trace()
    85         area_id = self.request.get('area_id', None)
    8689        session = Session()
    87         area = session.query(db.Area).get(area_id)
    88         if area is None:
    89             message = _(u'Área não encontrada.')
    90             status = IStatusMessage(self.request)
    91             status.addStatusMessage(message, type='info')
    92             return self.request.response.redirect(self.context.absolute_url())
    93         else:
    94             return area
     90        if self.area_id is not None:
     91            area = session.query(db.Area).get(self.area_id)
     92            if area is not None:
     93                return area
     94        return False
     95
     96    def applyChanges(self, data):
     97        content = self.getContent()
     98        if content:
     99            for key, value in data.items():
     100               setattr(content, key, value)
     101            return True
     102        return False
    95103           
    96 AreaEditFormView = layout.wrap_form(AreaEditForm)
     104#AreaEditFormView = layout.wrap_form(AreaEditForm)
  • il.spdo/trunk/il/spdo/db.py

    r5327 r5340  
    88from il.spdo.interfaces import IArea
    99import datetime
     10import math
    1011
    1112Base = declarative_base()
     
    99100    notificacao = relationship("Notificacao", backref="notificacao")
    100101
     102    def _calcula_dv(self):
     103        return int(math.log(self.seq + self.ano) * 10000) % 100
     104   
    101105    def __init__(self, tipoprotocolo, tipodocumento_id, situacao_id):
    102106        self.tipoprotocolo = tipoprotocolo
     
    105109        session = Session()
    106110        self.ano = datetime.datetime.now().year
     111        # TODO: isso não pode ser feito dessa maneira, pois desconsidera o session
    107112        max_seq = session.bind.execute('SELECT max(p.seq) from protocolo p where p.ano = %d' % self.ano).fetchone()[0]
    108113        self.seq = max_seq is None and 1 or max_seq + 1
    109         self.dv = 99
     114        self.dv = self._calcula_dv()
    110115        self.numero = "%s-%08d/%04d-%02d" % (tipoprotocolo, self.seq, self.ano, self.dv)
    111116
     
    253258    session.add(p3)
    254259    session.commit()
    255 
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.