# -*- encoding: utf-8 -*- from django.db import models from django.contrib.auth.models import User from datetime import datetime, timedelta from django.template import RequestContext, loader from django.core.exceptions import ValidationError from django.core.urlresolvers import reverse from django.core import validators from django.core.validators import RegexValidator import re from datetime import * class Postales(models.Model): cp = models.IntegerField('CP') def __unicode__(self): return self.cp class Colonias(models.Model): nombre = models.CharField(max_length=250) cp = models.ForeignKey(Postales) referencia = models.IntegerField() def __unicode__(self): return self.nombre class Estado(models.Model): nombre = models.CharField(max_length=100) def __unicode__(self): return self.nombre class Municipio(models.Model): nombre = models.CharField(max_length=250) estado = models.ForeignKey(Estado) def __unicode__(self): return self.nombre class Localidad(models.Model): municipio = models.ForeignKey(Municipio) nombre = models.CharField(max_length=250) def __unicode__(self): return self.nombre class Domicilio(models.Model): calle = models.CharField('Dirección',max_length=250) estado = models.ForeignKey(Estado) municipio = models.ForeignKey(Municipio) localidad = models.ForeignKey(Localidad) cp = models.ForeignKey(Postales) colonia = models.ForeignKey(Colonias) def __unicode__(self): return self.calle class Opciones_Legales(models.Model): descripcion = models.CharField(max_length=100,unique=True) def __unicode__(self): return self.descripcion class Intituciones(models.Model): tipo = ((1,'PRIVADO'), (2,'PUBLICO')) turno = ((1,'MATUTINO'), (2,'VESPERTINO'), (3,'MATUTINO-VESPERTINO'), (4,'NOCTURNO'), (5,'FIN DE SEMANA'), (6,'DIAS FESTIVOS'), (7,'24 HORAS')) nombre_instituto = models.CharField('Nombre de la Institución:',max_length=250) tipo_institucion = models.IntegerField('Tipo Institución:',default=0,choices=tipo) opciones_legales = models.ManyToManyField(Opciones_Legales) domicilio = models.ForeignKey(Domicilio) titular = models.CharField('Titular de la Institución', max_length=250) represent_legal = models.CharField('Representante Legal:',max_length=250) telefono = models.CharField('Número Telefónico:',max_length=10) correo = models.EmailField(max_length = 100) objecto_social = models.TextField('Objeto Social:') capacidad_anual = models.CharField('Capacidad de Atención Anual:',max_length=5) duracion_servicio = models.CharField('Antigüedad del Servicio:',max_length=30) horario1 = models.CharField('Horario de Inicio :',max_length=40) horario2 = models.CharField('Horario de Salida :',max_length=40) turno =models.IntegerField(default=0,choices= turno) latitud = models.CharField('latitud:',max_length=250,null=True,blank=True) longitud = models.CharField('longitud:',max_length=250,null=True,blank=True) documentos = models.FileField('Documentos',upload_to = 'cargas',blank = True, null = True) def __unicode__(self): return '%s - %s - %s - %s' %(self.nombre_instituto,self.domicilio.estado,self.domicilio.municipio,self.domicilio.localidad) class Archivos(models.Model): institucion = models.ForeignKey(Intituciones) documentos = models.FileField('Documentos',upload_to ='archivos', blank=True, null=True) def __unicode__(self): return self.institucion.nombre_instituto class Personal(models.Model): genero = ((1,'Masculino'), (2,'Femenino')) tipo_personal= ((1,'REMUNERADO'), (2,'VOLUNTARIADO')) turno = ((1,'MATUTINO'), (2,'VESPERTINO'), (3,'MATUTINO-VESPERTINO'), (4,'NOCTURNO'), (5,'FIN DE SEMANA'), (6,'DIAS FESTIVOS'), (7,'24 HORAS')) estudios = ((1,'PRIMARIA'), (2,'SECUNDARIA'), (3,'PREPARATORIA'), (4,'TÉCNICO'), (5,'LICENCIATURA'), (6,'POSGRADO'), (7,'NINGUNO')) institucion = models.ForeignKey(Intituciones) nombre = models.CharField('Nombre',max_length=250) apepat = models.CharField('Apellido Paterno',max_length=250) apemat = models.CharField('Apellido Materno',max_length=250) sexo = models.IntegerField('Género',default=0,choices=genero) edad = models.IntegerField('Edad') grado_academico = models.IntegerField('Nivel de Estudio',default=0,choices=estudios) turno =models.IntegerField(default=0,choices= turno) area_de_labor = models.CharField('Área de Labor',max_length=250) tipo_persona = models.IntegerField('Tipo de Personal',default=0,choices=tipo_personal) tipo_servicio = models.CharField('Tiempo de Servicio',max_length=250) status = models.BooleanField( default = True) comentario = models.CharField(max_length=200,null=True,blank=True) def __unicode__(self): return '%s %s %s' %(self.nombre,self.apepat,self.apemat) class Tipo_Encuesta(models.Model): descripcion = models.CharField(max_length=250) def __unicode__(self): return self.descripcion class Encuesta(models.Model): institucion = models.ForeignKey(Intituciones) tipo_de_encuesta = models.ForeignKey(Tipo_Encuesta) fecha = models.DateTimeField('Fecha',auto_now=True) def __unicode__(self): return '%s' % (self.institucion) class Preguntas (models.Model): pregunta = models.CharField(max_length = 300) #encuesta = models.ForeignKey(Encuesta) def __unicode__(self): return u'%s' % self.pregunta class Meta: verbose_name = 'Catalogo de preguntas' verbose_name_plural = 'Catalogo de preguntas' class Opciones (models.Model): pregunta = models.ForeignKey(Preguntas) opcion = models.CharField(max_length=300) opc = models.CharField('Especifique',max_length=300,null=True,blank=True) def __unicode__(self): return u'%s' % self.opcion class Meta: verbose_name = 'Catalogo de Opciones' verbose_name_plural = 'Catalogo de Opciones' class Resultados (models.Model): encuesta = models.ForeignKey(Encuesta) pregunta = models.ForeignKey(Preguntas) respuesta = models.ForeignKey(Opciones) opc = models.CharField('Especifique',max_length=300,null=True,blank=True) fechaCaptura = models.DateField(default = datetime.now()) def __unicode__(self): return u'%s ' % (self.id) ################################################################### # MDatos del Beneficiario # ################################################################### class Beneficiario(models.Model): genero = ((1,'Masculino'), (2,'Femenino')) institucion = models.ForeignKey(Intituciones) nombre = models.CharField('Nombre',max_length=100) apepat = models.CharField('Apellido Paterno',max_length=100) apemat = models.CharField('Apellido Materno',max_length=100) curp = models.CharField('CURP',max_length=100) edad = models.IntegerField('Edad') genero = models.IntegerField('Género',default=0,choices=genero) status = models.BooleanField( default = True) comentario = models.CharField(max_length=200,null=True,blank=True) def __unicode__(self): return u'%s %s %s %s - %s' %(self.nombre,self.apepat,self.apemat,self.curp, self.institucion) class EncuestaB(models.Model): beneficiario = models.ForeignKey(Beneficiario) tipo_de_encuesta = models.ForeignKey(Tipo_Encuesta) fecha = models.DateTimeField('Fecha',auto_now=True) reponsable = models.CharField(max_length=300) #municipio = models.ForeignKey(Municipio) comentario = models.TextField('Comentario:') def __unicode__(self): return u'%s' %(self.beneficiario) class PreguntasB(models.Model): pregunta = models.CharField(max_length=300) #encuesta = models.ForeignKey(EncuestaB) def __unicode__(self): return u'%s' %(self.pregunta) class OpcionesB(models.Model): pregunta = models.ForeignKey(PreguntasB) opcion = models.CharField(max_length=300) opc = models.CharField('Especifique',max_length=300,null=True,blank=True) def __unicode__(self): return u'%s' % (self.opcion) class ResultadosB(models.Model): encuesta = models.ForeignKey(EncuestaB) pregunta = models.ForeignKey(PreguntasB) respuesta = models.ForeignKey(OpcionesB) opc = models.CharField('Especifique',max_length=300,null=True,blank=True) fechaCaptura = models.DateTimeField(default=datetime.now()) def __unicode__(self): return u'%s' % (self.id) class Coordinador(models.Model): tipo = ((1,'COORDINADOR(A)-MUNICIPAL'), (2,'ADMINISTRACION'), (3,'CAPTURISTA')) nombre = models.CharField('Nombre',max_length=200) apepat = models.CharField('Apellido Paterno',max_length=200) apemat = models.CharField('Apellido Materno',max_length=200) municipio = models.ForeignKey(Municipio) status = models.BooleanField( default= True ) tipo_usuario = models.IntegerField('Tipo Usuario:',default=0,choices=tipo) usuario = models.ForeignKey( User) comentario = models.CharField(max_length=200,null=True,blank=True) def __unicode__(self): return u'%s' % (self.nombre)