class Project(models.Model): name = models.CharField(max_length=100) description = models.TextField() logo = ImageWithThumbsField(upload_to='images/projects', null=True, blank=True, sizes=( (200, 200), (90, 90), )) sponsor = models.CharField(max_length=100) status = models.CharField(max_length=100, choices=PROJECT_STATES) start_date = models.DateField() end_date = models.DateField(null=True, blank=True) def finished(self): return self.end_date is not None def __unicode__(self): return self.name def save(self, *args, **kwargs): if self.finished(): self.status = 'finalizado' super(Project, self).save(*args, **kwargs) else: super(Project, self).save(*args, **kwargs)
class Jaryanak(models.Model): name = models.CharField(max_length=100, unique=True) slug = models.SlugField(unique=True) description = models.TextField(max_length=400, blank=True) logo = ImageWithThumbsField(upload_to='images/logo_pictures/', sizes=((250, 250), (50, 50), (15, 15)), blank=True) admin = models.ForeignKey(User, related_name='admin') moderators = models.ManyToManyField(User, through='Membership', related_name='moderateors') followers = models.ManyToManyField(User, through='Follow', related_name='followers') invitations = models.PositiveIntegerField(default=10) created_at = models.DateTimeField(auto_now_add=True) is_active = models.BooleanField(default=True) objects = JaryanakManager() default_objects = DefaultJaryanaksManager() def __unicode__(self): return self.name def get_absolute_url(self): return reverse("jaryanak_detail", kwargs={ "pk": str(self.id), "slug": self.slug }) def save(self, *args, **kwargs): if not self.slug: self.slug = slugify_persian(self.name) super(Jaryanak, self).save(*args, **kwargs)
class Perfil(models.Model): user = models.OneToOneField(User, unique=True) Direccion = models.CharField(max_length="30", null=False) Telefono = models.CharField(max_length="30", null=False) Fecha_Nacimiento = models.CharField(max_length="30", null=False) avatar = ImageWithThumbsField(upload_to="img_user", sizes=((50, 50), (200, 200)))
class Publicidade(models.Model): list_tipo = (('1', 'Topo'), ('2', 'Direita'), ('3', u'Rodapé'), ('4', 'Esquerda'), ('5', 'fullbanner')) idpublicidade = models.AutoField(primary_key=True) nome = models.CharField("Nome", max_length=250) img_foto = ImageWithThumbsField( verbose_name="Logomarca", upload_to=upload_to_foto, null=True, blank=True, ) vch_arquivo = models.FileField( "Flash", upload_to=upload_to_foto, null=True, blank=True, ) tipo = models.CharField(u"Posição no portal", max_length=1, choices=list_tipo) dat_publicacao = models.DateField(u"Data Publicação", ) def __unicode__(self): return unicode(self.nome)
class HeritageImage(models.Model): hid = models.ForeignKey(Heritage) img = ImageWithThumbsField(upload_to="images", sizes=((125, 125), (200, 200)), height_field='height', width_field='width') caption = models.TextField(blank=True)
class Organizaciones(models.Model): nombre = models.CharField(max_length=200) telefono = models.IntegerField(null=True, blank=True) fax = models.IntegerField(null=True, blank=True) celular = models.IntegerField(null=True, blank=True) direccion = models.TextField(null=True, blank=True) correo_electronico = models.EmailField(null=True, blank=True) departamento = models.ForeignKey(Departamento, null=True, blank=True) logo = ImageWithThumbsField(upload_to=get_file_path, sizes=((150, 150), (250, 250)), null=True, blank=True) sitio_web = models.URLField(null=True, blank=True) descripcion = models.TextField(null=True, blank=True) zona = models.IntegerField(choices=CHOICE_ZONA) fileDir = 'attachments/logos' def __unicode__(self): return self.nombre # return '%s - %s' % (self.departamento.nombre, self.nombre) class Meta: verbose_name_plural = "Organizaciones"
class Imagen(models.Model): ''' Modelo generico para subir imagenes en todos los demas app :)''' content_type = models.ForeignKey(ContentType) object_id = models.IntegerField(db_index=True) content_object = generic.GenericForeignKey('content_type', 'object_id') nombre_img = models.CharField("Nombre", max_length=200, null=True, blank=True) foto = ImageWithThumbsField("Foto", upload_to=get_file_path, sizes=((220, 160), (80, 80), (380, 250), (640, 480)), null=True, blank=True) tags_img = TagAutocompleteField("Tags", help_text='Separar elementos con "," ', null=True, blank=True) fileDir = 'fotos/' class Meta: verbose_name_plural = "Imágenes" def __unicode__(self): return self.nombre_img
class Dirigente(models.Model): iddirigente = models.AutoField(primary_key=True) nome = models.CharField( 'Nome', max_length=200, ) descricao = models.TextField("Descrição") img_foto = ImageWithThumbsField( verbose_name="Logomarca", upload_to=upload_to_foto, sizes=((100, 100), ), null=True, blank=True, ) def __unicode__(self): return unicode(self.nome) def save(self, force_insert=False, force_update=False): super(Dirigente, self).save(force_insert, force_update) foto = str(self.img_foto) if foto != '': f = str(foto).split('.') """ Renomeia img_foto""" if not "100x100" in f: self.img_foto = f[0] + '.100x100.' + f[1] os.remove(settings.MEDIA_ROOT + '/' + foto) super(Dirigente, self).save(force_insert, force_update) """ Apaga a foto original da pasta """ else: super(Dirigente, self).save(force_insert, force_update)
class Artigo(models.Model): nome = models.CharField(blank=False, max_length=100, help_text=nome_help) imagem = ImageWithThumbsField(blank=False, upload_to=upload_path, sizes=tsizes, help_text=imagem_help) descricao = models.TextField(blank=True, verbose_name=u'descrição') valor = models.DecimalField(max_digits=10, decimal_places=2, blank=False) parcelas = models.IntegerField(default=0, blank=True, null=True, verbose_name=u'Número de parcelas') valor_parcela = models.DecimalField(default=0, max_digits=10, decimal_places=2, verbose_name=u'Valor das parcelas', blank=True, null=True) categoria = models.CharField(choices=CATEGORIAS, max_length=10) created = models.DateTimeField(blank=True, auto_now_add=True, verbose_name=created_label) class Meta: ordering = ( 'categoria', 'nome', ) def __unicode__(self): return self.nome
class Publicidade(models.Model): list_tipo = (('1', 'Topo'), ('2', 'Direita'), ('3', u'Rodapé'), ('4', 'Esquerda'), ('5', 'fullbanner')) idpublicidade = models.AutoField(primary_key=True) nome = models.CharField("Nome", max_length=250) img_foto = ImageWithThumbsField(verbose_name="Logomarca", upload_to="fotopublicidade", sizes=((1000, 147),), null=True, blank=True,) tipo = models.CharField("Posição no portal", max_length=1, choices=list_tipo,) def save(self, force_insert=False, force_update=False): super(Publicidade, self).save(force_insert, force_update) foto = str(self.img_foto) if foto != '': f = str(foto).split('.') """ Renomeia img_foto""" if not "1000x147" in f: self.img_foto = f[0] + '.1000x147.' + f[1] os.remove(settings.MEDIA_ROOT + '/' + foto) super(Publicidade, self).save(force_insert, force_update) """ Apaga a foto original da pasta """ else: super(Publicidade, self).save(force_insert, force_update) def __unicode__(self): return unicode(self.nome) class Meta: verbose_name = "Publicidade" verbose_name_plural = "Publicidades"
class Perfil(models.Model): user = models.OneToOneField(User, unique=True) #pais=models.CharField(max_length="30", null=False) avatar = ImageWithThumbsField(upload_to="img_user", sizes=((50, 50), (200, 200))) puntaje_total = models.PositiveIntegerField(default=0) partidas_jugadas = models.PositiveIntegerField(default=0)
class Book(models.Model): user = models.ForeignKey(User) title = models.CharField(max_length=80, null=False) original_price = models.CharField(max_length=80, null=False) discount_price = models.CharField(max_length=80, null=False) published = models.CharField(max_length=80, null=False) edition = models.CharField(max_length=10, null=False) publisher = models.CharField(max_length=80, null=False) book_author = models.CharField(max_length=80, null=False) content = models.TextField() region = models.ForeignKey(Region, null=True) university = models.ForeignKey(University, null=True) college = models.ForeignKey(College, null=True) image = ImageWithThumbsField(upload_to='documents/%Y/%m/%d', sizes=((50, 50), (320, 480)), null=True, blank=True) # 1:for sale 2:reserved 3:sold out sale = models.IntegerField() parcel = models.BooleanField() meet = models.BooleanField() # sale T purchase F isbn = models.CharField(max_length=20, null=True, blank=True) sell = models.BooleanField() created = models.DateTimeField(auto_now_add=True) edited = models.DateTimeField(auto_now_add=True, auto_now=True) def __unicode__(self): return '%s' % (self.title) def get_absolute_url(self): return self.title
class UserProfile(models.Model): user = models.OneToOneField(User, unique=True) bio = models.TextField(max_length=500, blank=True) blog = models.URLField(blank=True) picture = ImageWithThumbsField(upload_to='images/profile_pictures/', sizes=((150, 150), (75, 75), (15, 15)), blank=True) karma = models.IntegerField(default=1) date_joined = models.DateTimeField(auto_now_add=True) ip = models.GenericIPAddressField(null=True) nsfw_flag = models.BooleanField(default=False) INSTANTLY, DAILY, WEEKLY, NEVER = range(4) NOTIFY_PERIOD_CHOICES = ( (INSTANTLY, 'Instantly'), (DAILY, 'Daily'), (WEEKLY, 'Weekly'), (NEVER, 'Never'), ) notify_me = models.IntegerField(choices=NOTIFY_PERIOD_CHOICES, default=INSTANTLY) banned_from = models.ManyToManyField(Jaryanak, blank=True, related_name='banned_jaryan') objects = UserManager() def __unicode__(self): return "%s's profile" % self.user def is_banned(self, jaryanak): return jaryanak in self.banned_from.all()
class Screenshot(models.Model): addon = models.ForeignKey(Addon) description = models.CharField(max_length=255) screenshot = ImageWithThumbsField(upload_to='screenshots', sizes=((128, 128), (256, 256))) def __unicode__(self): return self.description
class Image(models.Model): title = models.CharField(max_length = 120) image = ImageWithThumbsField(upload_to = upload_to,sizes = ((180,270),(260,180),(800,600),(400,600))) blog = models.ForeignKey(Blog) is_thumb = models.BooleanField(verbose_name = 'set to thumb') is_verticle = models.BooleanField(verbose_name = 'is the image verticle?') def __unicode__(self): return self.title
class Video(models.Model): int_idvideo = models.AutoField(primary_key=True) vch_titulo = models.CharField("Nome video", max_length=500) vch_url = models.CharField( "URL video", max_length=500, help_text=u"Preferência no tamanho do vídeo 425 X 349.", null=True, blank=True, ) dat_dataenvio = models.DateTimeField("Data Envio", default=datetime.now()) boo_ativo = models.BooleanField("Ativo", default=True) img_foto = ImageWithThumbsField( u"Foto do vídeo", upload_to='fotovideo/', sizes=((143, 87), ), null=True, blank=True, ) vch_arquivo = models.FileField( "Flash", upload_to=upload_to_video, null=True, blank=True, ) def save(self, force_insert=False, force_update=False): super(Video, self).save(force_insert, force_update) foto = str(self.img_foto) if foto != '': f = str(foto).split('.') """ Renomeia img_foto""" if not "368x278" in f: self.img_foto = f[0] + '.143x87.' + f[1] os.remove(settings.MEDIA_ROOT + '/' + foto) super(Video, self).save(force_insert, force_update) """ Apaga a foto original da pasta """ else: super(Video, self).save(force_insert, force_update) def foto(self): foto = str(self.img_foto) img = '<img src="/espiga/media/' + foto + '"/>' return img foto.allow_tags = True def __unicode__(self): return unicode(self.vch_titulo) class Meta: verbose_name = u'Video' verbose_name_plural = u'Videos'
class Perfil(models.Model): user = models.OneToOneField(User, unique=True) pais = models.CharField(max_length="30", null=False) ciudad = models.CharField(max_length="30", null=False) pasatiempo = models.CharField(max_length="50", null=False) color = models.CharField(max_length="30", null=False) mascota = models.CharField(max_length="30", null=False) avatar = ImageWithThumbsField(upload_to="img_user", sizes=((100, 100), (200, 200)))
class TimelineEntry(CMSPlugin): title = models.CharField(_("Title"), max_length=100) title_en = models.CharField(_("Title (English)"), max_length=100) description = models.TextField(_("Description"), max_length=1000) description_en = models.TextField(_("Description (English)"), max_length=1000) year = models.IntegerField(_("Year")) left_image = ImageWithThumbsField( _("Left Image"), upload_to="uploads/images/timeline_entry/") right_image = ImageWithThumbsField( _("Right Image"), upload_to="uploads/images/timeline_entry/") def __unicode__(self): return self.title class Meta: verbose_name = _("Timeline Entry") verbose_name_plural = _("Timeline Entries")
class Banner(models.Model): '''Modelo que representa el banner de portada''' titulo = models.CharField('Titulo', max_length=200, unique=True) imagen = ImageWithThumbsField(upload_to=get_image_path, sizes=((540, 275), )) miniatura = ImageWithThumbsField(upload_to=get_image_path, sizes=((69, 51), )) url = models.URLField( 'Url Destino', help_text=" Debe cumplir con el formato 'http://www.dominio.com'") imgDir = 'attachments/banner' def __unicode__(self): return self.titulo class Meta: verbose_name = "Banner Portada" verbose_name_plural = "Banners Portada" ordering = ['titulo']
class FotosLugar(models.Model): lugar = models.ForeignKey(Lugar) foto = ImageWithThumbsField(upload_to=get_file_path, sizes=((150,150),(200,175))) fileDir = 'lugar/fotos' class Meta: verbose_name_plural = "Fotos de Zonas" verbose_name = "Foto de Zona" #app_label = "Datos Generales" db_table = 'diversity_fotoszona'
class Noticia(models.Model): '''Modelo que representa el tipo de contenido Noticias''' titulo = models.CharField('Título', max_length=120, unique=True, blank=False, null=False) slug = models.SlugField(max_length=120, unique=True, help_text='unico Valor', editable=False) fecha = models.DateField() autor = models.CharField('Autor', max_length=100, blank=True, null=True) tipo = models.IntegerField('tipo', choices=NOTICIA_CHOICES) categoria = models.ForeignKey(CategoriaNoticia) imagen = ImageWithThumbsField(upload_to=get_image_path, sizes=((62, 48), (206, 138), (265, 200)), help_text="Resolución 640x480") contenido = models.TextField('Contenido', blank=True, null=True) tags = TagAutocompleteField(help_text='Separar elementos con "," ') adjunto = generic.GenericRelation(Adjunto) #habilita_comentario = models.BooleanField(default=True) imgDir = 'attachments/imagenes' def __unicode__(self): return self.titulo class Meta: verbose_name = "Noticia" verbose_name_plural = "Noticias" ordering = ['-fecha'] def save(self, force_insert=False, force_update=False): try: Noticia.objects.get(pk=self.id) except: n = Noticia.objects.all().count() self.slug = str(n) + '-' + slugify(self.titulo) super(Noticia, self).save(force_insert, force_update) #Para jalar las tags def set_tags(self, tags): Tag.objects.update_tags(self, tags) def get_tags(self): return Tag.objects.get_for_object(self) #metodo para devolver la url exacta del objeto def get_full_url(self): return "/noticias/%s/" % self.slug #metodo para obtener el nombre del objeto def get_name(self): return self.titulo
class Mapa(models.Model): ano = models.DateField("Año", help_text='Fecha del mapa') region = models.IntegerField("Region",choices=REGION,max_length=2) tipo = models.ForeignKey(Tipo) descripcion = models.TextField("Descripcion adicional") adjunto = ImageWithThumbsField("Imagen mapa",upload_to="upload/attachment",help_text="Subir la imagen del mapa .jpg",sizes=((120,150),(360,480))) info = ImageWithThumbsField("informacion adicional",upload_to="upload/attachment",help_text="Subir la imagen de informacion adicional") class Meta: ordering = ['region'] verbose_name_plural = "Mapas tematicos por region" #def __unicode__(self): # return self.ano #def get_absolute_url(self): # return '%s%s/%s' % (settings.MEDIA_URL,settings.ATTACHMENT_FOLDER, self.id) def imagen(self): return '%s/%s' % (settings.MEDIA_URL, self.adjunto)
class ProductImage(models.Model): class Meta: verbose_name = u"Скриншот" verbose_name_plural = u"Скриншоты" title = models.CharField(u"Название", max_length=255, blank=True, null=True) image = ImageWithThumbsField(upload_to='uploads/products', sizes=((95, 95), (150, 150), (300,300)) ) service = models.ForeignKey(Product, related_name='product_images') def __unicode__(self): return self.title
class Imagem(models.Model): descricao = models.TextField('Descrição') imagem = ImageWithThumbsField(upload_to='imagens', sizes=((125, 125), (800, 600))) noticia = models.ForeignKey(Noticia) class Meta: verbose_name = _('Imagem') verbose_name_plural = _('Imagens') def __unicode__(self): return self.imagem.name
class FotoInicio(models.Model): ''' modelo para las fotos del slider del inicio ''' leyenda = models.CharField(max_length=250) foto = ImageWithThumbsField(upload_to=get_file_path, sizes=((415,212),(200,175)), null=True, blank=True) fileDir = 'fotos/inicio' def __unicode__(self): return self.leyenda class Meta: verbose_name_plural = "Fotos del inicio" db_table = 'diversity_fotoinicio'
class Cooperante(models.Model): '''Modelo que representa los enlaces a cooperantes''' nombre = models.CharField('Nombre Cooperante', max_length=200, unique=True) logo = ImageWithThumbsField(upload_to=get_image_path, sizes=((250, 250), (180, 180))) web = models.URLField('Sitio Web' ,help_text=" Debe cumplir con el formato 'http://www.dominio.com'",blank=True, null=True) imgDir = 'attachments/cooperantes' def __unicode__(self): return self.nombre class Meta: verbose_name = "Cooperante" verbose_name_plural = "Cooperantes" ordering = ['nombre']
class Empresa(models.Model): nombre = models.CharField(max_length=60) ruc = models.CharField(max_length=30) telefono = models.CharField(max_length=32, blank=True, default="") fax = models.CharField(max_length=32, blank=True, default="") email = models.TextField(blank=True) direccion = models.CharField(max_length=128) logo = ImageWithThumbsField(upload_to='images', sizes=((125, 125), (200, 200))) def __unicode__(self): return u'%s' % (self.nombre) def get_absolute_url(self): return "/configuracion/empresa/%i" % self.id
class Member(CMSPlugin): name = models.CharField(_("Name"), max_length=100, unique=True) lattes = models.URLField( blank=True, help_text=_("Optional field (you may leave it blank).")) relationship_with_ita = models.ForeignKey( RelationshipWithITA, verbose_name=_("Relationship with ITA"), null=True, blank=True) special_roles = models.ManyToManyField( SpecialRole, verbose_name=_("Special Roles in ITAndroids"), null=True, blank=True, help_text=_("Optional field (you may leave it blank).")) categories = models.ManyToManyField(Category, verbose_name=_("Categories"), through='MemberCategoryAssociation', null=True, blank=True) entry_date = models.DateField( _("Entry Date"), help_text= _("This date field will be displayed as \"mm yyyy\", so only month and year are relevant." )) leave_date = models.DateField( _("Leave Date"), null=True, blank=True, help_text= _("This date field will be displayed as \"mm yyyy\", so only month and year are relevant. This field is optional (you may leave it blank)." )) description = models.TextField(_("Description")) description_en = models.TextField(_("Description (English)")) photo = ImageWithThumbsField( _("Photo"), upload_to="uploads/images/member/", sizes=((100, 100), ), help_text= _("Resolution in page will be 100x100 (1:1 aspect ratio). Please, upload an image with resolution as near as possible to 100x100." )) def __unicode__(self): return self.name class Meta: verbose_name = _("Member") verbose_name_plural = _("Members")
class Screenshot(models.Model): title = models.CharField(max_length=250) description = models.TextField() description_html = models.TextField(editable=False, blank=True) image = ImageWithThumbsField(upload_to='screenshots', sizes=((180, 120), )) featured = models.BooleanField(default=False) # Categorization. categories = models.ManyToManyField(Category, blank=False) def __unicode__(self): return self.title def save(self, *args, **kwargs): self.description_html = markdown.markdown(self.description) super(Screenshot, self).save(*args, **kwargs)
class Supporter(CMSPlugin): name = models.CharField(_("Name"), max_length=100, unique=True) url = models.URLField() image = ImageWithThumbsField( _("Image"), upload_to="uploads/images/supporter/", help_text= _("Image in page will be 200 pixels wide (original aspect ratio will be maintained)." )) def __unicode__(self): return self.name class Meta: verbose_name = _("Supporter") verbose_name_plural = _("Supporters")