#encoding:utf-8 from django.db import models from django.contrib.auth.models import User from datetime import datetime from principal.models import * # Create your models here. class tipo_usuario (models.Model): clave = models.CharField('clave', max_length=10, help_text = 'Clave de identificación', blank = True, ) nombre = models.CharField('nombre', max_length=50, help_text = 'nombre del elemento', ) def __unicode__(self): return u'%s - %s' % (self.clave, self.nombre) class bitacora(models.Model): fecha_registro = models.DateTimeField('fecha registro', help_text = 'fecha de registro del elemento', auto_now_add = True, ) fecha_ultimo_cambio = models.DateTimeField('fecha del ultimo cambio', help_text = 'fecha de la ultima modificación registrada', auto_now = True, ) activo = models.BooleanField('activo', help_text = 'estado del registro', default = True, ) usuario = models.ForeignKey( User ) class Meta: abstract = True class catalogo(bitacora): clave = models.CharField('clave', max_length=10, help_text = 'Clave de identificación', blank = True, ) nombre = models.CharField('nombre', max_length=150, help_text = 'nombre del elemento', ) descripcion = models.CharField('descripción', max_length=100, help_text = 'descripción breve del elemento', blank = True, ) class Meta: abstract = True ordering = ['clave', 'nombre'] def __unicode__(self): return u'%s - %s' % (self.clave, self.nombre, ) class estatus(catalogo): color = models.CharField('color', max_length = 17, help_text = 'color de identificacion') secuencia = models.IntegerField() class Meta: ordering = ['secuencia'] verbose_name = 'Estatus' verbose_name_plural = 'Estatus' def color_(self): return '%s' % (self.color, self.nombre) color_.allow_tags = True def asigna_icono(extension): r = None if extension != '': r = extension if r == 'BMP' or r == 'GIF': r = '%s icol-image-1' % (extension) elif r == 'JPG' or r == 'JPEG' or r == 'PNG' : r = '%s icol-images' % (extension) elif r == 'PDF': r = '%s icol-doc-pdf' % (extension) elif r == 'XLS' or r == 'DOC' or r == 'XLSX' or r == 'DOCX' : r = '%s icol-doc-offlice' % (extension) elif r == 'ZIP' or r == 'RAR' : r = '%s icol-compress' % (extension) elif r == 'TXT': r = '%s icol-doc-text-image' % (extension) else: r = '%s icol-stop' % (extension) return r class cat_direcciones(models.Model): noDireccion = models.IntegerField(primary_key = True, verbose_name='No. de la Direccion') nombre = models.CharField(max_length = 200) def __unicode__(self): return self.nombre class Meta: ordering = ['noDireccion'] verbose_name = 'Direccion' verbose_name_plural = 'Direcciones' unique_together = ['nombre'] class cat_area(models.Model): noArea = models.IntegerField(primary_key = True, verbose_name='No. del Area') nombre = models.CharField(max_length = 200) noDireccion = models.ForeignKey(cat_direcciones) def __unicode__(self): return self.nombre class Meta: ordering = ['noArea'] verbose_name = 'Area' verbose_name_plural = 'Areas' unique_together = ['nombre'] class Perfil(models.Model): tipo = models.ForeignKey( tipo_usuario ) usuario = models.ForeignKey ( User ) direccion = models.ForeignKey( cat_area, null = True, blank = True ) def __unicode__(self): return self.usuario.username class Meta: ordering = ['direccion', 'usuario'] verbose_name_plural = 'Perfiles'