Advertisement
Guest User

Untitled

a guest
Jun 29th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.91 KB | None | 0 0
  1. from django.db import models
  2. from django.contrib.auth.models import User
  3. from django.db.models.signals import post_save
  4. from django.dispatch import receiver
  5.  
  6. # Create your models here.
  7.  
  8. class Cidadao(models.Model):
  9.     user = models.OneToOneField(User, on_delete=models.CASCADE)
  10.     num_bi = models.PositiveIntegerField(blank=True, null=True, unique=True)
  11.     morada = models.CharField(max_length=100, blank=True, null=True)
  12.     data_nascimento =  models.DateField(auto_now=False, auto_now_add=False, blank=True, null=True)
  13.     codigo_postal = models.CharField(max_length=8, blank=True, null=True)
  14.     localidade = models.CharField(max_length=30,blank=True, null=True)
  15.     telefone = models.PositiveIntegerField(blank=True, null=True)
  16.     nro_eleitor = models.PositiveIntegerField(blank=True, null=True)
  17.     pai = models.CharField(max_length=100, blank=True, null=True)
  18.     mae = models.CharField(max_length=100, blank=True, null=True)
  19.     aprovado = models.BooleanField(default=False)
  20.  
  21.     def __str__(self):
  22.         return self.user.username
  23.  
  24.  
  25. class Conteudo_Site(models.Model):
  26.     titulo = models.CharField(max_length=100)
  27.     descricao = models.CharField(max_length=3000)
  28.     data_insercao = models.DateTimeField(auto_now_add=True, blank=True)
  29.  
  30.     class Meta:
  31.         abstract = True
  32.  
  33.     def __str__(self):
  34.         return self.titulo
  35.  
  36.  
  37. class Noticia(Conteudo_Site):
  38.     imagem = models.ImageField(upload_to='news_images/', blank=True, null=True)
  39.  
  40.  
  41. class Evento(Conteudo_Site):
  42.     data_evento = models.DateTimeField()
  43.     imagem = models.ImageField(upload_to='events_images/', blank=True, null=True)
  44.  
  45.  
  46. class Ficheiro(Conteudo_Site):
  47.     OPCOES = (
  48.         ("ACAO", "Plano de Acao"),
  49.         ("CONTAS", "Relatorio de Contas"),
  50.         ("ACTAS", "Actas de Reuniao"),
  51.         ("OUTRO", "Outros"),
  52.     )
  53.  
  54.     tipo = models.CharField(max_length=20, choices=OPCOES,
  55.                   default="OUTRO")
  56.     ficheiro = models.FileField(upload_to='documents/')
  57.  
  58.  
  59. class Questionario(Conteudo_Site):
  60.     quest = models.CharField(max_length=400)
  61.     ativo = models.BooleanField(default=True)
  62.  
  63.  
  64. class Pergunta(Conteudo_Site):
  65.     ativo = models.BooleanField(default=True)
  66.  
  67.  
  68. class Opcao(models.Model):
  69.     pergunta = models.ForeignKey(Pergunta)
  70.     texto = models.CharField(max_length=100)
  71.  
  72.     def __str__(self):
  73.         return self.texto
  74.  
  75.  
  76. class Votacao(models.Model):
  77.     utilizador = models.ForeignKey(User, on_delete=models.CASCADE, null=False)
  78.     pergunta = models.ForeignKey(Pergunta, on_delete=models.CASCADE, null=False)
  79.     respondido = models.ForeignKey(Opcao, on_delete=models.CASCADE, null=False)
  80.  
  81.  
  82. class Conteudo_Utilizador(models.Model):
  83.     data_insercao = models.DateTimeField(auto_now_add=True, blank=True)
  84.  
  85.     class Meta:
  86.         abstract = True
  87.  
  88.  
  89. class Mensagem (Conteudo_Utilizador):
  90.     remetente = models.CharField(max_length=100)
  91.     assunto = models.CharField(max_length=100)
  92.     email = models.EmailField(max_length=60)
  93.     mensagem = models.CharField(max_length=1000)
  94.     telefone = models.IntegerField()
  95.  
  96.  
  97. class Ocorrencia (Conteudo_Utilizador):
  98.     OPCOES = (
  99.         ("A1", "Acessos para cidadãos de mobilidade reduzida"),
  100.         ("A2", "Animais abandonados"),
  101.         ("A3", "Arbustos ou árvores na via pública"),
  102.         ("A4", "Conservação da ilumincação pública"),
  103.         ("A5", "Conservação de ruas e pavimentos"),
  104.         ("A6", "Conservação do parque escolar"),
  105.         ("A7", "Estacionamento de veículos"),
  106.         ("A8", "Limpeza de valetas, bermas e caminhos"),
  107.         ("A9", "Limpeza e conservação de espaços públicos"),
  108.         ("A10", "Manutenção de ciclovias"),
  109.         ("A11", "Manutenção e limpeza de contentores e ecopontos"),
  110.         ("A12", "Manutenção, rega e limpeza de jardins"),
  111.         ("A13", "Nomes ou numeração de ruas"),
  112.         ("A14", "Poluição sonora"),
  113.         ("A15", "Publicidade, outdoors e cartazes"),
  114.         ("A16", "Recolha de lixo"),
  115.         ("A17", "Rupturas de águas ou desvio de tampas"),
  116.         ("A18", "Sinalização de trânsito"),
  117.         ("A19", "Outras ocorrências"),
  118.     )
  119.  
  120.     utilizador = models.ForeignKey(User, on_delete=models.CASCADE, null=False)
  121.     categoria = models.CharField(max_length=20, choices=OPCOES)
  122.     local = models.CharField(max_length=200)
  123.     informacao = models.CharField(max_length=1000)
  124.     imagem = models.ImageField(upload_to='ocorr_images/', blank=True, null=True)
  125.  
  126.  
  127. class Servico (models.Model):
  128.     nome = models.CharField(max_length=50, unique=True)
  129.     preco = models.FloatField()
  130.     descricao = models.CharField(max_length=1000, blank=True, null=True)
  131.  
  132.     def __str__(self):
  133.         return self.nome
  134.  
  135.  
  136. class Requerimento(models.Model):
  137.     ESTADOS = (
  138.         ("ANALISE", "Em Análise"),
  139.         ("PAGAMENTO", "Aguarda Pagamento"),
  140.         ("PAGO", "Pagamento Efetuado"),
  141.         ("DIFERIDO", "Diferido"),
  142.         ("RECUSADO", "Recusado"),
  143.     )
  144.  
  145.     ENV = (
  146.         ("C", "Correio"),
  147.         ("L", "Levantamento na Junta"),
  148.     )
  149.  
  150.     PAG = (
  151.         ("J", "Pagar na Junta"),
  152.         ("O", "Pagar Online"),
  153.     )
  154.  
  155.     utilizador = models.ForeignKey(User, on_delete=models.CASCADE, null=False)
  156.     servico = models.ForeignKey(Servico, on_delete=models.CASCADE, null=False)
  157.     documento = models.FileField(upload_to='user_documents/', blank=True, null=True)
  158.     estado = models.CharField(max_length=20, choices=ESTADOS)
  159.     data_req = models.DateTimeField(auto_now_add=True, blank=True)
  160.     data_ult_atual = models.DateTimeField(auto_now_add=True, blank=True)
  161.     descricao = models.CharField(max_length=2000)
  162.     pagamento = models.CharField(max_length=20, choices=PAG,  blank=True, null=True, default="O")
  163.     envio = models.CharField(max_length=20, choices=ENV,  blank=True, null=True, default="C")
  164.     descricao = models.CharField(max_length=2000,  blank=True, null=True)
  165.     mensagem = models.CharField(max_length=1000, blank=True, null=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement