Conjunto de mudanças 5411 no repositório publico


Ignorar:
Timestamp:
20/10/2011 12:14:03 (8 anos atrás)
Autor:
fabianosantos
Mensagem:

Inicio da revisao geral de interfaces e banco de dados de todas as tabelas.

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

Legenda:

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

    r5382 r5411  
    22import zope.i18nmessageid
    33
     4DEFAULT_DSN='mysql://root:interlegis@localhost/spdo_devel?charset=utf8'
    45TABLE_ARGS = {'mysql_engine':'InnoDB','mysql_charset':'utf8'}
    56CREATE_ALL_TABLES = True
     7CREATE_SAMPLES=True
    68PATH_ANEXOS='/var/interlegis/spdo/anexos'
    7 DEFAULT_DSN='mysql://root:interlegis@localhost/spdo_devel?charset=utf8'
    8 CREATE_SAMPLES=True
    99
    1010def Session():
  • il.spdo/trunk/il/spdo/db.py

    r5382 r5411  
    55from sqlalchemy.orm import relationship, backref, sessionmaker
    66from sqlalchemy.ext.declarative import declarative_base
    7 from il.spdo.config import TABLE_ARGS, CREATE_ALL_TABLES, Session, DEFAULT_DSN, CREATE_SAMPLES
    8 from il.spdo.interfaces import IArea, IPessoa, IShowProtocolo
     7from il.spdo.config import DEFAULT_DSN, TABLE_ARGS, CREATE_ALL_TABLES, CREATE_SAMPLES, Session
     8from il.spdo.interfaces import ITipoDocumento, ISituacao, IArea, IUF, IPessoa, IResponsavel, IShowProtocolo
    99from random import choice
    1010import datetime
     
    1919    Session = sessionmaker(bind=engine)
    2020
    21 class TipoDocumento(Base):
    22     __tablename__ = 'tipodocumento'
    23     __table_args__ = TABLE_ARGS
    24     id = Column(Integer, primary_key=True)
    25     nome = Column(String(40), unique=True, nullable=False)
    26 
    27 class Situacao(Base):
    28     __tablename__ = 'situacao'
    29     __table_args__ = TABLE_ARGS
    30     id = Column(Integer, primary_key=True)
    31     nome = Column(String(40), unique=True, nullable=False)
    32     inicial = Column(Boolean(), default=False)
    33     final = Column(Boolean(), default=False)
    34 
    3521class Area(Base):
    3622    implements(IArea)
     
    4531
    4632class UF(Base):
     33    implements(IUF)
    4734    __tablename__ = 'uf'
    4835    __table_args__ = TABLE_ARGS
     
    9986
    10087class Responsavel(Base):
     88    implements(IResponsavel)
    10189    __tablename__ = 'responsavel'
    10290    __table_args__ = TABLE_ARGS
     
    10694    pessoa = relationship("Pessoa", backref="responsavel")
    10795    data = Column(DateTime(), default=datetime.datetime.now(), nullable=False)
     96
     97class TipoDocumento(Base):
     98    implements(ITipoDocumento)
     99    __tablename__ = 'tipodocumento'
     100    __table_args__ = TABLE_ARGS
     101    id = Column(Integer, primary_key=True)
     102    nome = Column(String(40), unique=True, nullable=False)
     103
     104class Situacao(Base):
     105    implements(ISituacao)
     106    __tablename__ = 'situacao'
     107    __table_args__ = TABLE_ARGS
     108    id = Column(Integer, primary_key=True)
     109    nome = Column(String(40), unique=True, nullable=False)
     110    inicial = Column(Boolean(), default=False)
     111    final = Column(Boolean(), default=False)
    108112
    109113def calculaDigitoVerificador(seq, ano):
     
    181185    objeto_correios = Column(String(20))
    182186
     187# -.-.-.-.-.-
     188   
    183189class Notificacao(Base):
    184190    __tablename__ = 'notificacao'
     
    322328        metadata.drop_all(engine)
    323329        metadata.create_all(engine)
     330
    324331    if not CREATE_SAMPLES:
    325332        sys.exit()
  • il.spdo/trunk/il/spdo/interfaces.py

    r5409 r5411  
    44from plone.directives import form
    55from collective.z3cform.datetimewidget import DateFieldWidget
    6 
    76from plone.formwidget.multifile import MultiFileFieldWidget
    87from plone.namedfile.field import NamedFile
    98from plone.formwidget.autocomplete import AutocompleteFieldWidget
    109from plone.formwidget.autocomplete import AutocompleteMultiFieldWidget
    11 
    1210from il.spdo.config import MessageFactory as _
    13 
    14 class ITipoDocumento(form.Schema):
    15 
    16     nome = schema.TextLine(
    17         title=_(u'Nome'),
    18         description=_(u'Informe o nome do tipo do documento.'))
    1911
    2012class IArea(form.Schema):
     
    2921        title=_(u'Sigla'),
    3022        description=_(u'Informe a sigla da  Área.'),
    31         max_length=100)
     23        max_length=20)
    3224   
    3325    nome = schema.TextLine(
     
    4234        vocabulary='il.spdo.areas-vocab')
    4335
    44     # TODO: validar também os ciclos, impedindo que uma área escolha
    45     # como área pai qualquer um dos seus descendentes
     36    # TODO: validar ciclos, impedindo que uma área escolha como chefia uma de duas áreas subordinadas
    4637    @interface.invariant
    4738    def vefifyAreaPai(area):
    4839        if area.id and area.chefia_id and area.id == area.chefia_id:
    49             raise interface.Invalid(_(u'Área de chefia não pode ser ela mesma.'))
    50 
    51 class IPessoa(form.Schema):
    52     """Define um tipo Pessoa que pode ser física ou jurídica.
    53     """
     40            raise interface.Invalid(_(u'A área de chefia precisa ser diferente da própria área. Se a área não possuir chefia, não selecione nenhuma área.'))
     41
     42class IUF(form.Schema):
     43
     44    form.mode(id='hidden')
     45    id = schema.Int(
     46        title=_(u'ID'),
     47        description=_(u'Identidicador da UF.'),
     48        required=False)
     49
     50    sigla = schema.TextLine(
     51        title=_(u'Sigla'),
     52        description=_(u'Informe a sigla da UF.'))
     53
     54    nome = schema.TextLine(
     55        title=_(u'Nome'),
     56        description=_(u'Informe o nome da UF.'))
     57
     58class IPessoa(form.Schema):
     59   
     60    """ Interface que descreve representações de Pessoa, classe que
     61    pode ser utilizada para representar pessoas físicas, organizações
     62    e ainda usuários do sistema """
     63
    5464    form.fieldset('endereco',
    55             label=u"Endereço",
    56             fields=['endereco', 'bairro', 'cep', 'cidade', 'uf_id']
    57         )
     65      label=u"Endereço",
     66      fields=['endereco', 'bairro', 'cep', 'cidade', 'uf_id'])
    5867
    5968    form.fieldset('lotacao',
    60             label=u"Lotação",
    61             fields=['area_id']
    62         )
     69      label=u"Lotação",
     70      fields=['area_id'])
    6371
    6472    form.mode(id='hidden')
     
    7381        max_length=100)
    7482
     83    # TODO: validar email
    7584    email = schema.TextLine(
    7685        title=_(u'Email'),
     
    7887        max_length=50)
    7988
    80     tipopessoa = schema.Choice(
    81         title=_(u'Tipo Pessoa'),
    82         description=_(u'Informe se a pessoa é física ou jurídica.'),
    83         default=u'F',
    84         vocabulary='il.spdo.tipopessoa-vocab')
    85 
    86     cpf_cnpj = schema.TextLine(
    87         title=_(u'CPF/CNPJ'),
    88         description=_(u'Informe o CPF ou CNPJ de acordo com o tipo de pessoa: física ou organização.'),
    89         max_length=20,
    90         required=False)
    91 
    92     contato = schema.TextLine(
    93         title=_(u'Contato'),
    94         description=_(u'Pessoa ou organização de contato.'),
    95         max_length=100,
    96         required=False)
    97 
    98     telefone = schema.TextLine(
    99         title=_(u'Telefone'),
    100         description=_(u'Informe o telefone com DDD.'),
    101         max_length=30,
    102         required=False)
    103 
    104     #form.widget(area_id=AutocompleteFieldWidget)
    105     area_id = schema.Choice(
    106         title=_(u'Área'),
    107         description=_(u'Área da instituição que a pessoa faz parte.'),
    108         required=False,
    109         vocabulary='il.spdo.areas-vocab')
    110 
    11189    endereco = schema.TextLine(
    11290        title=_(u'Endereço'),
     
    12199        required=False)
    122100
     101    # TODO: validar CEP
    123102    cep = schema.TextLine(
    124103        title=_(u'CEP'),
    125         description=_(u'Informe o CEP: apenas os números'),
     104        description=_(u'Informe o CEP (apenas números)'),
    126105        max_length=8,
    127106        min_length=8,
     
    140119        vocabulary='il.spdo.uf-vocab')
    141120
     121    tipopessoa = schema.Choice(
     122        title=_(u'Tipo'),
     123        description=_(u'Informe se a pessoa é física ou uma organização.'),
     124        default=u'F',
     125        vocabulary='il.spdo.tipopessoa-vocab')
     126
     127    # TODO: validar CPF/CNPJ
     128    cpf_cnpj = schema.TextLine(
     129        title=_(u'CPF/CNPJ'),
     130        description=_(u'Informe o CPF ou CNPJ de acordo com o tipo de pessoa: física ou organização.'),
     131        max_length=20,
     132        required=False)
     133
     134    contato = schema.TextLine(
     135        title=_(u'Contato'),
     136        description=_(u'Pessoa ou organização de contato.'),
     137        max_length=100,
     138        required=False)
     139
     140    telefone = schema.TextLine(
     141        title=_(u'Telefone'),
     142        description=_(u'Informe o telefone com DDD.'),
     143        max_length=30,
     144        required=False)
     145
     146    #form.widget(area_id=AutocompleteFieldWidget)
     147    area_id = schema.Choice(
     148        title=_(u'Área'),
     149        description=_(u'Área de lotação da pessoa no organograma.'),
     150        required=False,
     151        vocabulary='il.spdo.areas-vocab')
     152
     153class IResponsavel(form.Schema):
     154
     155    form.mode(id='hidden')
     156    id = schema.Int(
     157        title=_(u'ID'),
     158        description=_(u'Identidicador do Responsável.'),
     159        required=False)
     160       
     161    # TODO: falta campos aqui
     162
     163class ITipoDocumento(form.Schema):
     164
     165    form.mode(id='hidden')
     166    id = schema.Int(
     167        title=_(u'ID'),
     168        description=_(u'Identidicador do Tipo de Documento.'),
     169        required=False)
     170
     171    nome = schema.TextLine(
     172        title=_(u'Nome'),
     173        description=_(u'Informe o nome do tipo do documento.'))
     174
     175class ISituacao(form.Schema):
     176
     177    form.mode(id='hidden')
     178    id = schema.Int(
     179        title=_(u'ID'),
     180        description=_(u'Identidicador da Situação.'),
     181        required=False)
     182
     183    nome = schema.TextLine(
     184        title=_(u'Nome'),
     185        description=_(u'Informe o nome da situação.'))
     186
     187    inicial = schema.Bool(
     188        title=_(u'Inicial'),
     189        description=_(u'Situação inicial?'),
     190        required=False)
     191
     192    final = schema.Bool(
     193        title=_(u'Final'),
     194        description=_(u'Situação final?'),
     195        required=False)
    142196
    143197class IAddProtocolo(form.Schema):
     
    165219        required=False)
    166220
    167     #TODO:validar a data pois não pode ser no futuro.
     221    # TODO: validar data de emissão, não pode ser no futuro
    168222    form.widget(data_emissao=DateFieldWidget)
    169223    data_emissao = schema.Date(
     
    204258        required=False)
    205259
    206     # Para desabilitar o plugin de flash upload, basta comentar a linha abaixo.
     260    # Para desabilitar o plugin flash de upload basta comentar a linha a seguir
    207261    form.widget(anexos=MultiFileFieldWidget)
    208262    anexos = schema.List(title=_(u'Anexos'),
     
    221275    pass
    222276
    223 
    224277class IAddTramite(form.Schema):
     278
    225279    form.mode(id='hidden')
    226280    id = schema.Int(
     
    240294        required=False)
    241295
    242     # Para desabilitar o plugin de flash upload, basta comentar a linha abaixo.
     296    # Para desabilitar o plugin flash de upload basta comentar a linha a seguir
    243297    form.widget(anexos=MultiFileFieldWidget)
    244298    anexos = schema.List(title=_(u'Anexos'),
  • il.spdo/trunk/il/spdo/profiles/default/metadata.xml

    r5382 r5411  
    44    <dependencies>
    55      <dependency>profile-plone.app.z3cform:default</dependency>
    6       <dependency>profile-plone.app.theming:default</dependency>
    76      <dependency>profile-plone.app.drafts:default</dependency>
    87      <dependency>profile-plone.formwidget.autocomplete:default</dependency>
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.