예제 #1
0
class PorqueElegirnos(AuditableModel):
    icon = FileBrowseField('Icono',
                           max_length=200,
                           directory='xqe_icons/',
                           extensions=['.jpg', '.png'])
    icon_h = FileBrowseField('Icono (hover)',
                             max_length=200,
                             directory='xqe_icons_h/',
                             extensions=['.jpg', '.png'])
    nombre = models.CharField('Nombre', max_length=64)
    descript = models.TextField(
        "Descripción", help_text='encerrar el texto a resaltar con < >')
    enlace = models.CharField('Enlace',
                              max_length=1024,
                              blank=True,
                              help_text=enlace_help_text)
    posicion = models.PositiveIntegerField("Posición", default=1)

    class Meta:
        verbose_name = u'item'
        verbose_name_plural = u'Porqué elegirnos'
        ordering = ['posicion']

    def __unicode__(self):
        return u'{0}'.format(self.nombre, )
예제 #2
0
파일: models.py 프로젝트: eiscalle/diplom
class Video(models.Model):
    name = models.CharField('Название', max_length=255, default='')
    category = models.ForeignKey(Category,
                                 verbose_name='Категория',
                                 related_name='videos')
    source = FileBrowseField(
        'Видео',
        directory='videos/',
        extensions=[
            '.mp4',
        ],
        max_length=300,
    )
    poster = FileBrowseField(
        'Постер',
        directory='videos/posters/',
        extensions=['.jpg', '.png', '.jpeg'],
        max_length=300,
    )
    is_moderated = models.BooleanField('Отмодерировано', default=False)
    user = models.ForeignKey(DiplomUser,
                             verbose_name='Пользователь',
                             related_name='videos')

    def get_absolute_url(self):
        return reverse('video_detail', args=[self.pk])

    def __unicode__(self):
        return self.name

    class Meta:
        verbose_name = 'Видео'
        verbose_name_plural = 'Видео'
예제 #3
0
class HomeBanner(PositionModel):
    home = models.ForeignKey(Home, related_name='banners_home')
    titulo = models.CharField("Titulo:", max_length=100)
    subtitulo = models.CharField("Subtítulo", max_length=100, blank=True)
    texto_1 = models.CharField("Texto 1", max_length=100, blank=True)
    texto_2 = models.CharField("Texto 2", max_length=100, blank=True)
    conocenos_texto = models.CharField("Texto de botón",
                                       null=True,
                                       blank=True,
                                       max_length=100)
    enlace_boton = models.URLField('Enlace del botón', blank=True)
    fondo = FileBrowseField('Fondo:',
                            max_length=200,
                            directory='home_banners/',
                            extensions=['.jpg', '.png', '.gif'],
                            blank=True,
                            help_text='Tamaño Recomendado: 1920x400')
    pdf = FileBrowseField("PDF",
                          max_length=200,
                          directory='home/',
                          extensions=['.pdf'],
                          blank=True)

    class Meta:
        verbose_name = u'Banner de Home'
        verbose_name_plural = u'Banners de Home'
        ordering = ['position']

    def __unicode__(self):
        return unicode(self.titulo)
예제 #4
0
class TrialItem(models.Model):
    """
    The fifth and innermost layer of an experiment.

    The order of trials can either be fixed or randomised, depending on the (inner) block settings.
    """
    NO = 'NO'
    YES = 'YES'

    USER_INPUT_OPTIONS = (
     (NO,'Do not require user input'),
     (YES,'Require user input'),
    )

    blockitem = models.ForeignKey(BlockItem, on_delete=models.CASCADE)
    label = models.CharField(max_length=20)
    code = models.CharField(max_length=20)
    visual_onset = models.IntegerField('visual onset (ms)', default=0)
    audio_onset = models.IntegerField('audio onset (ms)', default=0)
    audio_file = FileBrowseField(max_length=200, directory=experiment_folder, extensions= ['.mp3','.wav'], blank=True)
    visual_file = FileBrowseField(max_length=200, directory=experiment_folder, extensions=['.jpg','.jpeg','.gif','.png', '.mp4', '.ogg', '.webm'])
    user_input = models.CharField(max_length=3, choices=USER_INPUT_OPTIONS, default=NO)
    response_keys = models.CharField('response key(s)', max_length=200, blank=True, null=True, help_text='Provide a comma-separated list if multiple response keys are allowed (e.g., click, up, down, left, right, a, b)')
    max_duration = models.IntegerField('maximum duration (ms)', help_text='This value will be ignored for video trials which do not require user input.')
    record_media = models.BooleanField(default=True, help_text='This value will be ignored if the experiment is set to record key/click responses only.')
    grid_row = models.IntegerField('rows', default = 1)
    grid_col = models.IntegerField('columns', default = 1)
    position = models.PositiveSmallIntegerField("Position", null=True)

    class Meta:
        ordering = ['position']

    def __str__(self):
        return self.label
예제 #5
0
class Home(models.Model):
    # NUESTRO DIFERENCIAL
    texto_diferencial = RichTextField('Texto')
    imagen_diferencial = FileBrowseField('Imagen',
                                         max_length=200,
                                         directory='home/',
                                         extensions=['.jpg', '.png', '.gif'],
                                         blank=True)
    fondo_diferencial = FileBrowseField('Fondo',
                                        max_length=200,
                                        directory='home/',
                                        extensions=['.jpg', '.png', '.gif'],
                                        blank=True)
    # EQUIPO
    imagen_equipo = FileBrowseField('Imagen de equipo',
                                    max_length=200,
                                    directory='home/',
                                    extensions=['.jpg', '.png', '.gif'],
                                    blank=True)
    # VIDEO
    imagen_video = FileBrowseField("Imagen Video",
                                   max_length=200,
                                   directory='home/',
                                   extensions=['.jpg', '.png', '.gif'],
                                   blank=True)
    video_enlace = models.URLField('URL del Video', blank=True)

    class Meta:
        verbose_name = u'Home'
        verbose_name_plural = u'Home'

    def __unicode__(self):
        return u'Home'
예제 #6
0
class Note(models.Model):
    user = models.ForeignKey(User)
    pub_date = models.DateTimeField()
    title = models.CharField(max_length=200)
    body = models.TextField()
    image = FileBrowseField("Image",
                            max_length=200,
                            directory="images/",
                            extensions=[".jpg"],
                            blank=True,
                            null=True)
    document = FileBrowseField("PDF",
                               max_length=200,
                               directory="documents/",
                               extensions=[".pdf", ".doc", ".odt"],
                               blank=True,
                               null=True)
    html = FileBrowseField("HTML",
                           max_length=200,
                           directory="html/",
                           extensions=[".html"],
                           blank=True,
                           null=True)

    def __unicode__(self):
        return self.title

    def get_absolute_url(self):
        #return "/some/url/%i/" % self.id
        return '/rockart/research/lhtml/saraakallio_html/skallio1.html'
예제 #7
0
파일: models.py 프로젝트: pchaos/koalixcrm
class DocumentTemplate(models.Model):
    title = models.CharField(verbose_name=_("Title"), max_length=100, blank=True, null=True)
    xsl_file = FileBrowseField(verbose_name=_("XSL File"), max_length=200)
    fop_config_file = FileBrowseField(verbose_name=_("FOP Configuration File"), blank=True, null=True,
                                           max_length=200)
    logo = FileBrowseField(verbose_name=_("Logo for the PDF generation"), blank=True, null=True, max_length=200)

    def get_fop_config_file(self):
        if self.fop_config_file:
            return self.fop_config_file
        else:
            raise TemplateFOPConfigFileMissing(_("Fop Config File missing in Document Template"+str(self)))

    def get_xsl_file(self):
        if self.xsl_file:
            return self.xsl_file
        else:
            raise TemplateXSLTFileMissing(_("XSL Template missing in Document Template"+str(self)))

    class Meta:
        app_label = "djangoUserExtension"
        verbose_name = _('Document template')
        verbose_name_plural = _('Document templates')

    def __str__(self):
        return xstr(self.id) + ' ' + xstr(self.title.__str__())
예제 #8
0
class CursosCategorias(AuditableModel, SlugModel):
    nombre = models.CharField('Nombre', max_length=256)
    descript = RichTextField(config_name='small', verbose_name='Dirigido a')
    img_s = FileBrowseField('Imágen Superior',
                            max_length=200,
                            directory='cursecc_sup/',
                            extensions=['.jpg', '.png'],
                            blank=True)
    img_i = FileBrowseField('Imágen Inferior',
                            max_length=200,
                            directory='cursecc_inf/',
                            extensions=['.jpg', '.png'],
                            blank=True)
    # categoria = models.ManyToManyField(CursosCategorias, blank=True)
    # idiomas = models.ManyToManyField(Idiomas, blank=True)
    posicion = models.PositiveIntegerField("Posición", default=1)

    class Meta:
        verbose_name = u'categoría'
        verbose_name_plural = u'Categorías de Cursos'
        ordering = ['posicion']

    def getRubros(self):
        return Rubros.objects.active().filter(
            categoria=self).order_by('posicion')
        # return self.rubros.all()

    def getIdiomas(self):
        return Idiomas.objects.active().filter(
            categoria=self).order_by('posicion')

    def __unicode__(self):
        return u'{0}'.format(self.nombre, )
예제 #9
0
class Servicio(PositionModel, AuditableModel, SlugModel):
    servicio = models.ManyToManyField('self', related_name='servicios',
                                      blank=True)
    # nombre = models.CharField('Nombre', max_length=120, blank=True)
    texto = RichTextField('Texto', blank=True)
    imagen = FileBrowseField("Imagen", max_length=200,
                             directory='servicios',
                             extensions=['.jpg', '.png', '.gif'],
                             help_text='Tamaño Recomendado: 767x460',
                             blank=True)
    icono = FileBrowseField("Imagen ícono", max_length=200,
                            directory='servicios_icono',
                            extensions=['.jpg', '.png', '.gif'],
                            help_text='Tamaño Recomendado: 51x51',
                            blank=True)
    icono2 = FileBrowseField("Imagen ícono hover", max_length=200,
                             directory='servicios_icono2',
                             extensions=['.jpg', '.png', '.gif'],
                             help_text='Tamaño Recomendado: 70x70',
                             blank=True)

    class Meta:
        verbose_name = u'Servicio'
        verbose_name_plural = u'Servicios'
        ordering = ['position', ]

    def __unicode__(self):
        return self.nombre

    def get_absolute_url(self):
        return reverse('web:servicio_detalle',
                       kwargs={'slug': self.slug})
예제 #10
0
class Contest(models.Model):
    '''
    This class represents a contest. Every article, submission, team etc are in some way related to
    an instance of this class. Other than binding the other entities together it sets the start
    date for the contest, the end date, a registration end date, and a publish date. The penalty 
    constant used to calculate team scores is also set in this model.
    '''
    title = models.CharField(max_length=200)
    contact_infos = models.ManyToManyField('ContactInformation', null=True)
    """ The url is saved as the suffix from root, only, not the entire url
    """

    penalty_constant = models.IntegerField('Penalty Constant', default=0)
    url = models.CharField(
        max_length=20,
        unique=True,
        help_text=
        'Defines the url used to access the contest. E.g. sample.site.com/[the value inserted here]'
    )
    start_date = models.DateTimeField(verbose_name='Start date')
    end_date = models.DateTimeField('End date')
    publish_date = models.DateTimeField('Publish date')
    teamreg_end_date = models.DateTimeField("Team registration close date")
    links = SortedManyToManyField('Link')
    sponsors = models.ManyToManyField('Sponsor', blank=True)
    css = FileBrowseField('CSS',
                          max_length=200,
                          directory='css/',
                          extensions=[
                              '.css',
                          ],
                          blank=True,
                          null=True)
    logo = FileBrowseField(
        'Logo',
        max_length=200,
        directory='logo/',
        extensions=['.jpg', '.jpeg', '.png', '.gif'],
        blank=True,
        null=True,
        help_text='Select logo image, allowed formats jpg, jpeg, png, gif')

    def isPublishable(self):
        return self.publish_date.__lt__(getTodayDate())

    def isRegOpen(self):
        return self.teamreg_end_date.__gt__(getTodayDate())

    def clean(self):
        # TODO: which is better? To do clean here, or in form?
        # in model you can only invoke validationerror on _ALL_ fields,
        # not a single one
        if self.start_date is not None and self.end_date is not None:
            if self.start_date.__lt__(self.end_date) == False:
                raise ValidationError(
                    'You cannot set start date to be after the end date')

    def __str__(self):
        return self.title
예제 #11
0
class InfoSite(AuditableModel):
    direccion = models.CharField(
        'Dirección',
        max_length=120,
        help_text='Agregar // para generar el salto de línea')
    email = models.EmailField('Email')
    telefono = models.CharField('Teléfono', max_length=60)
    email_form = models.EmailField('Formulario de Contacto', blank=True)
    site = models.CharField(
        "URL del sitio",
        max_length=60,
        blank=True,
        help_text='Ingrese la url actual del sitio sin el slash final')

    facebook = models.URLField('Facebook', blank=True)
    twitter = models.URLField('Twitter', blank=True)
    linkedin = models.URLField('Linkedin', blank=True)
    skype = models.CharField('Skype', blank=True, max_length=160)
    intranet = models.URLField('Intranet', blank=True)

    ga = models.CharField(
        'Google Analytics',
        max_length=24,
        blank=True,
        help_text='''Opcional: Inserte el código que google analitycs le
       proporciona con el formato: UA-XXXXX-X''')
    coordenadas = GeopositionField()
    paquetes = FileBrowseField("PDF de paquetes",
                               max_length=200,
                               directory='paquetes/',
                               extensions=['.doc', '.pdf'],
                               blank=True)
    foto_contactanos = FileBrowseField('Foto de contáctanos',
                                       max_length=200,
                                       directory='contactanos/',
                                       extensions=['.jpg', '.png', '.gif'],
                                       help_text=u'Tamaño recomendado:366x210',
                                       blank=True)

    def __unicode__(self):
        return u'Información del Sitio'

    def direccion_local(self):
        texto = self.direccion.replace('//', '')
        return texto

    class Meta:
        verbose_name_plural = u'Información del Sitio'

    def save(self, *args, **kwargs):
        site = Site.objects.get(id=settings.SITE_ID)
        site.domain = urlparse(self.site).netloc
        site.name = settings.PROJECT_NAME
        site.save()

        super(InfoSite, self).save(*args, **kwargs)
예제 #12
0
    def test_get_prep_value(self):
        field = FileBrowseField()

        # similar to to_python() should handle all 3 cases
        values = [FileObject(self.path_to_file), self.path_to_file]
        for v in values:
            actual = field.get_prep_value(v)
            self.assertIsInstance(actual, string_types)
            self.assertEqual(actual, self.path_to_file)
        self.assertEqual(field.to_python(None), None)
예제 #13
0
class ArchiveProject(models.Model):
    id = models.AutoField(primary_key=True)
    project_title = models.CharField(unique=True,
                                     max_length=150,
                                     help_text='Enter the project title')
    project_content = HTMLField()
    project_excerpt = models.TextField(max_length=150,
                                       null=True,
                                       help_text='Enter the project excerpt')
    project_thumbnail = FileBrowseField('Thumbnail (1000x400)',
                                        max_length=500,
                                        directory='',
                                        extensions=['.jpg', '.png', '.gif'],
                                        blank=True,
                                        null=True)
    project_archive_thumbnail = FileBrowseField(
        'Thumbnail (350x450)',
        max_length=500,
        directory='',
        extensions=['.jpg', '.png', '.gif'],
        blank=True,
        null=True)
    project_url = models.CharField(max_length=300,
                                   null=True,
                                   blank=True,
                                   help_text='Enter the project URL')
    project_slug = models.SlugField(max_length=200, null=True)
    project_created_at = models.DateTimeField(auto_now_add=True)
    project_updated_at = models.DateTimeField(auto_now=True)
    project_status = models.CharField(max_length=30,
                                      choices=STATUS_CHOICES,
                                      default='publish',
                                      help_text='Chose the status')
    project_author = models.CharField(max_length=200,
                                      blank=True,
                                      default='',
                                      help_text='Enter the author')
    project_keywords = models.TextField(
        max_length=300,
        blank=True,
        default='',
        help_text='Enter the keywords, example: \'development, code, services\''
    )

    def get_archive_thumbnail_image_prop_name(self):
        return 'project_archive_thumbnail'

    def get_absolute_url(self):
        return reverse('project-detail', kwargs={'slug': self.project_slug})

    def class_name(self):
        return self.__class__.__name__

    def __str__(self):
        return '{0}'.format(self.project_title)
예제 #14
0
    def test_to_python(self):
        field = FileBrowseField()

        # should deal gracefully with any of the following arguments:
        # An instance of the correct type, a string, and None (if the field allows null=True)
        values = [FileObject(self.path_to_file), self.path_to_file]
        for v in values:
            actual = field.to_python(v)
            self.assertIsInstance(actual, FileObject)
            self.assertEqual(actual.path, self.path_to_file)
        self.assertEqual(field.to_python(None), None)
예제 #15
0
class ArchiveService(models.Model):
    id = models.AutoField(primary_key=True)
    service_title = models.CharField(unique=True,
                                     max_length=200,
                                     help_text='Enter the service title')
    service_content = HTMLField()
    service_excerpt = models.TextField(max_length=150,
                                       null=True,
                                       help_text='Enter the service excerpt')
    service_thumbnail = FileBrowseField('Thumbnail (1000x400)',
                                        max_length=500,
                                        directory='',
                                        extensions=['.jpg', '.png', '.gif'],
                                        blank=True,
                                        null=True)
    service_icon = FileBrowseField('Thumbnail (350x350)',
                                   max_length=500,
                                   directory='',
                                   extensions=['.jpg', '.png', '.gif'],
                                   blank=True,
                                   null=True)
    service_slug = models.SlugField(max_length=200, null=True)
    service_background_color = RGBColorField(default='#FFFFFF')
    service_created_at = models.DateTimeField(auto_now_add=True)
    service_updated_at = models.DateTimeField(auto_now=True)
    service_status = models.CharField(max_length=30,
                                      choices=STATUS_CHOICES,
                                      default='publish',
                                      help_text='Chose the status')
    service_author = models.CharField(max_length=200,
                                      blank=True,
                                      default='',
                                      help_text='Enter the author')
    service_keywords = models.TextField(
        max_length=300,
        blank=True,
        default='',
        help_text='Enter the keywords, example: \'development, code, services\''
    )

    def get_icon_image_prop_name(self):
        return 'service_icon'

    def admin_display_service_slug(self):
        return '{0}'.format(self.service_slug)

    def get_absolute_url(self):
        return reverse('service-detail', kwargs={'slug': self.service_slug})

    def class_name(self):
        return self.__class__.__name__

    def __str__(self):
        return '{0}'.format(self.service_title)
예제 #16
0
class Event(ModelMeta,models.Model, HitCountMixin):
    title = models.CharField(verbose_name="Название", max_length=300)
    sub_title = models.CharField(verbose_name="Слоган", max_length=500)
    slug = models.SlugField()
    start = models.DateTimeField(verbose_name="Начало")
    end = models.DateTimeField(verbose_name="Окончание", blank=True, null=True)
    allow_comments = models.BooleanField(verbose_name="Открыть коменты?", default=True)
    location = models.ForeignKey('event.EventLocation', verbose_name="Местоположение")
    description = RichTextUploadingField(verbose_name="Статья")
    featured_image = FileBrowseField("Главное изображение", max_length=200, directory="event/", blank=True, null=True)
    profile_image = FileBrowseField("Изображение профиля", max_length=200, directory="event/", blank=True, null=True)
    tags = models.ForeignKey("team.Tag", verbose_name="Тэги", default="")
    author = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name="Автор", null=True, blank=True)
    internet_available = models.BooleanField(verbose_name="Есть доступ к интернету", default=True)
    take_computer = models.BooleanField(verbose_name="Брать компьютер", default=True)
    site = models.URLField(verbose_name="Сайт мероприятия", default="")
    type = models.BooleanField(default=False, verbose_name="Главная новость")
    value = models.CharField(verbose_name="Стоимость", max_length=300, default="Бесплатно")

    class Meta:
        verbose_name = "Мероприятие"
        verbose_name_plural = "Мероприятия"
        ordering = ("-start",)

    _metadata = {
        'title': 'get_seo_title',
        'use_og': 'True',
        'use_title_tag': 'True',
        'image': 'get_seo_image',
        'description': 'get_description',
        'type': 'article',
        'use_twitter': 'True',
        'use_facebook': 'True',
        'use_googleplus': 'True',
        'locale': 'ru_RU',
        'twitter_card': 'summary_large_image',
        'keywords': 'get_keywords',
    }

    def __str__(self):
        return self.title

    def get_seo_title(self):
        return self.title + ' - Lambda'

    def get_seo_image(self):
        return self.featured_image.url

    def get_keywords(self):
        return self.events.key_words.strip().split(',')

    def get_description(self):
        return self.events.seo_description
예제 #17
0
class Ad(models.Model):
    mid = models.IntegerField('会员ID', default=0)
    vid = models.ForeignKey(Vote, verbose_name='活动')
    title = models.CharField('广告标题', max_length=30, default='')
    image = FileBrowseField(
        "图片",
        max_length=200,
        directory="uploads/",
        extensions=['.jpg', '.jpeg', '.gif', '.png', '.tif', '.tiff'],
        default='',
        blank=True)
    pub_date = models.DateTimeField('发布时间', auto_now_add=True)

    def __str__(self):
        return self.title

    def mid_name(self):
        tmp = User.objects.get(pk=self.mid)
        return tmp.username

    mid_name.allow_tags = True
    mid_name.short_description = '会员'

    class Meta:
        verbose_name = "广告管理"
        verbose_name_plural = "3.广告管理"
예제 #18
0
class Slide(models.Model):
    """
    Slide item
    """
    slideshow = models.ForeignKey(Slideshow, verbose_name=_('slideshow'), blank=False)
    created = models.DateTimeField(_('created'), blank=True, editable=False)
    title = models.CharField(_('title'), blank=False, max_length=255)
    priority = models.IntegerField(_('display priority'), default=100, help_text=_('Priority display value'))
    publish = models.BooleanField(_('published'), choices=PUBLISHED_CHOICES, default=True, help_text=_('Unpublished slide will not be displayed in its slideshow'))
    content = CkeditorField(_("content"), blank=True)
    image = FileBrowseField(_('image'), max_length=255, null=True, blank=True, default=None)
    url = models.CharField(_('url'), blank=True, max_length=255, help_text=_('An URL that can be used in the template for this entry'))
    open_blank = models.BooleanField(_('open new window'), default=False, help_text=_('If checked the link will be open in a new window'))

    def __unicode__(self):
        return self.title

    def save(self, *args, **kwargs):
        # First create
        if not self.created:
            self.created = timezone.now()

        super(Slide, self).save(*args, **kwargs)

    class Meta:
        verbose_name = _("Slide")
        verbose_name_plural = _("Slides")
        ordering = ('priority',)
예제 #19
0
class Post(models.Model):
    title = models.CharField(max_length=120, blank=False)
    slug = models.SlugField()
    public = models.BooleanField(
        default=True,
        help_text="If unchecked, only logged-in users can see this page")
    author = models.CharField(max_length=50, blank=False)
    date = models.DateField()
    image = FileBrowseField(max_length=200,
                            directory="images/posts",
                            format='Image',
                            blank=True,
                            null=True)
    content = HTMLField(max_length=65535, blank=False, null=True)
    excerpt = models.TextField(max_length=350, blank=False)
    categories = models.ManyToManyField('PostCategory',
                                        related_name='posts',
                                        blank=True)
    tags = TagField()

    class Meta:
        ordering = [
            'date',
        ]

    def __str__(self):
        return "{}, by {}".format(self.title, self.author)

    def get_absolute_url(self):
        return reverse('post', kwargs={'post_slug': self.slug})
예제 #20
0
파일: models.py 프로젝트: andywar65/rp_repo
class Gallery(models.Model):
    fb_image = FileBrowseField("Immagine", max_length=200,
        extensions=[".jpg", ".png", ".jpeg", ".gif", ".tif", ".tiff"],
        null=True, directory='images/galleries/')
    caption = models.CharField("Didascalia", max_length = 200, blank=True,
        null=True)

    as_list = True

    options = {
        'aspect': {
            'label': 'Formato',
            'type': 'select',
            'default': 'landscape',
            'options': [
                {'value': 'landscape', 'name': 'Orizzontale'},
                {'value': 'portrait', 'name': 'Verticale'},
                {'value': 'square', 'name': 'Quadrato'},
            ]
        }
    }

    class Meta:
        verbose_name="Galleria di immagini"
        verbose_name_plural="Galleria di immagini"
예제 #21
0
파일: models.py 프로젝트: huyha1997/gu
class Topic(models.Model):
    name = models.CharField(max_length=200, unique=True)
    slug = models.SlugField(max_length=200, unique=True)
    introduction = models.TextField(blank=True,
                                    help_text="Use unfiltered HTML. "
                                    "If this is not blank, "
                                    "the default template does not render any "
                                    "other fields before the article list.")
    icon = FileBrowseField("Image", max_length=200, directory="images/",
                           blank=True)
    template = models.CharField(max_length=200,
                                default="newsroom/topic_detail.html")
    newest_first = models.BooleanField(default=True)

    def count_articles(self):
        return Article.objects.filter(topics=self).count()

    def get_absolute_url(self):
        return reverse('topic.detail', args=[self.slug, ])

    def __str__(self):
        return self.name

    @staticmethod
    def autocomplete_search_fields():
        return ("id__iexact", "name__icontains",)

    class Meta:
        ordering = ['name', ]
예제 #22
0
class QuoteLineItem(models.Model):
    quote = models.ForeignKey(Quote)
    #item = 		# generate in template or view
    model = models.CharField(
        max_length=60,
        help_text=
        'eRacks Model name, eg "OPTERNATOR", or make one up for custom quotes')
    quantity = models.IntegerField()
    comments = models.TextField(blank=True,
                                default="",
                                help_text="comments for quote line item ")
    shipping = models.FloatField(blank=True,
                                 default=45,
                                 help_text='Estimated weight - lbs')
    description = models.TextField(
        help_text=
        'Start with a line for general description, then one config item per line for components'
    )
    image = FileBrowseField(max_length=200,
                            directory="images/products/",
                            blank=True,
                            null=True)
    cost = models.FloatField(help_text="our cost")
    price = models.FloatField(help_text="customer price")

    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)

    def __unicode__(self):
        return '%dx%s' % (self.quantity, self.model)
예제 #23
0
파일: models.py 프로젝트: zaster/koalixcrm
class SubscriptionType(models.Model):
    product_type = models.ForeignKey('crm.ProductType',
                                     verbose_name=_('Product Type'),
                                     on_delete=models.deletion.SET_NULL,
                                     null=True,
                                     blank=True)
    cancellation_period = models.IntegerField(
        verbose_name=_("Cancellation Period (months)"), blank=True, null=True)
    automatic_contract_extension = models.IntegerField(
        verbose_name=_("Automatic Contract Extension (months)"),
        blank=True,
        null=True)
    automatic_contract_extension_reminder = models.IntegerField(
        verbose_name=_("Automatic Contract Extension Reminder (days)"),
        blank=True,
        null=True)
    minimum_duration = models.IntegerField(
        verbose_name=_("Minimum Contract Duration"), blank=True, null=True)
    payment_interval = models.IntegerField(
        verbose_name=_("Payment Interval (days)"), blank=True, null=True)
    contract_document = FileBrowseField(verbose_name=_("Contract Documents"),
                                        blank=True,
                                        null=True,
                                        max_length=200)

    class Meta:
        app_label = "subscriptions"
        verbose_name = _('Subscription Type')
        verbose_name_plural = _('Subscription Types')
예제 #24
0
class CustomerReview(IsEnabledModel, TimestampsModel, OrderedModel,
                     ToDictModel):
    class Meta:
        verbose_name = _('customer review')
        verbose_name_plural = _('customer reviews')
        ordering = ('order', )

    customer_name = models.CharField(_('name'), max_length=255)
    review_text = models.TextField(_('review text'))
    avatar = FileBrowseField(_('image'),
                             directory='customer_reviews/avatars/',
                             extensions=['.jpg', '.png', '.jpeg'],
                             max_length=500)
    tel = models.CharField(_('tel'), max_length=255, null=True, blank=True)
    email = models.EmailField(_('email'),
                              max_length=255,
                              null=True,
                              blank=True)
    hyperlink = models.URLField(_('hyperlink'),
                                max_length=255,
                                null=True,
                                blank=True)

    def __str__(self):
        return self.customer_name
예제 #25
0
class Multimedia(models.Model):
    # TODO: Add category campaigns
    organization = models.ForeignKey('accounts.Organization',
                                     null=True,
                                     blank=True)
    owner = models.CharField(max_length=50, null=True, blank=True)
    owner_url = models.CharField(max_length=200, null=True, blank=True)

    resource = FileBrowseField(max_length=200, blank=True, null=True)
    uploaded_by = models.ForeignKey('accounts.Account', null=True, blank=True)
    uploaded_on = models.DateTimeField(auto_now_add=True)
    last_edited = models.DateTimeField(auto_now=True)

    category = models.CharField(max_length=10, null=True, blank=True)
    subcategory = models.CharField(max_length=10, null=True, blank=True)
    level = models.CharField(max_length=10, null=True, blank=True)

    title = models.CharField(max_length=50)
    description = models.TextField()
    caption_overlay = models.CharField(max_length=200, null=True, blank=True)

    tags = TaggableManager()

    def __unicode__(self):
        return u'%s' % (self.title)
예제 #26
0
class Video(models.Model):
    playlist = models.ForeignKey(Videolist,
                                 related_name='videos',
                                 on_delete=models.CASCADE)
    #    title = models.CharField(max_length=255)
    file = FileBrowseField("Video",
                           max_length=200,
                           directory="wow_mode/playlist/video")
    #    thumbnail = models.CharField(max_length=255, blank=True, null=True)
    order = models.PositiveIntegerField(default=0, blank=False, null=False)

    class Meta:
        ordering = ['order']

    @property
    def title(self):
        return self.file.filename_root.replace('_', ' ').title()

    @property
    def thumbnail(self):
        file = Path(
            "media/uploads/wow_mode/playlist/video/thumbnails/%s_thumbnail.png"
            % self.file.filename_root)
        if file:
            return mark_safe(
                '<a href="/media/uploads/wow_mode/playlist/video/thumbnails/%s_thumbnail.png" target="_blank"><img src="/media/uploads/wow_mode/playlist/video/thumbnails/%s_thumbnail.png" height="100px" /></a>'
                % (self.file.filename_root, self.file.filename_root))
        else:
            return mark_safe(
                '<img src="/media/uploads/no_image_available.png" height="100px" />'
            )
예제 #27
0
class PageSection(models.Model):
    page = models.ForeignKey(WebPage)
    label = models.CharField(max_length=400)

    image = FileBrowseField(max_length=400,
                            blank=True,
                            null=True,
                            verbose_name='Section image',
                            help_text='At least 1140px wide')

    display_order = models.IntegerField(default=1, verbose_name='Order')
    is_published = models.BooleanField(default=True)

    def __unicode__(self):
        return self.label

    class Meta:
        verbose_name = 'Section'
        verbose_name_plural = 'Sections'
        ordering = ('display_order', 'label')

    @staticmethod
    def get_published_objects():
        objects = PageSection.objects.filter(is_published=True).order_by(
            'display_order', 'label')

        return objects
예제 #28
0
class UserProfile(models.Model):
    """
    Профиль. Дополнительные данные о пользователе
    """
    user = models.OneToOneField(User, verbose_name='Пользователь')
    avatar = FileBrowseField(
        max_length=500, extensions=['.jpg', '.jpeg', '.png', '.gif'], blank=True, null=True, verbose_name='Аватар')
    patronymic = models.CharField(max_length=155, blank=True, null=True, verbose_name='Отчество')
    birthday = models.DateField(verbose_name='День рождения', blank=True, null=True)
    phone = models.CharField(max_length=32, verbose_name='Телефон', blank=True, null=True)
    address = models.CharField(max_length=256, blank=True, null=True, verbose_name='Адрес')
    about = models.TextField(verbose_name='О себе', blank=True, null=True)
    id_signed_news = models.BooleanField(default=False, verbose_name='Подписан на новости')

    def __str__(self):
        return '{}'.format(self.user)

    def get_full_name(self):
        """Получить полное ФИО"""
        return '%s %s %s' % (self.user.last_name, self.user.first_name, self.patronymic)

    def get_short_name(self):
        """Получить только Фамилию и имя"""
        short_name = '{} {}'.format(self.user.last_name, self.user.first_name)
        return short_name if self.user.first_name else None
예제 #29
0
class Article(models.Model):
    label = models.CharField(max_length=200)
    author = models.CharField(max_length=200)

    tags = models.ManyToManyField(Tag, blank=True, null=True, related_name='tags')

    meta_title = models.CharField(max_length=100, blank=True, null=True, help_text='This shows at the top of the browser, usually in the tab.')
    meta_description = models.CharField(max_length=500, blank=True, null=True)
    meta_tags = models.CharField(max_length=500, blank=True, null=True)
    slug = models.SlugField(unique=True)

    image = FileBrowseField(max_length=200)

    teaser = models.CharField(max_length=400)
    content = models.TextField(max_length=8000)

    publish_date = models.DateField(db_index=True)
    is_published = models.BooleanField(default=True)

    def __unicode__(self):
        return '%s by %s' % (self.label, self.author)

    class Meta:
        verbose_name = 'Article'
        verbose_name_plural = 'Articles'
        ordering = ('-publish_date', 'label')

    @staticmethod
    def get_published_objects():
        articles = Article.objects.filter(Q(publish_date__lte=datetime.datetime.now) & Q(is_published=True)).order_by('-publish_date', 'label')

        return articles
예제 #30
0
class Empresa(models.Model):
    CHOICES_EMPRESAS = (
        ('0', 'Manuais'),
        ('1', 'Decretos'),
        ('2', 'Instruções Normativas'),
        ('3', 'Legislação'),
        ('4', 'Formulários'),
    )
    tipo = models.CharField(u'Tipo de arquivo',
                            max_length=60,
                            choices=CHOICES_EMPRESAS)
    descricao = models.CharField(u'Descrição', max_length=250)
    observacao = models.CharField(u'Observação', max_length=30, blank=True)
    arquivo = FileBrowseField("Arquivo .doc ou .pdf",
                              max_length=200,
                              extensions=[".pdf", ".doc"],
                              directory="administracao/empresa/",
                              blank=True,
                              null=True)

    class Meta:
        verbose_name = "Apoio a Empresas"
        verbose_name_plural = "Apoio a Empresas"
        db_table = "tb_apoio_empresa"

    def __str__(self):
        return self.descricao
 def test_model_field(self):
     f = FileBrowseField()
     self.assertEqual(f.db_parameters(connection)['type'], 'varchar(200)')