Beispiel #1
0
class Post(models.Model):
    category = models.ForeignKey(
        Category,
        on_delete=models.CASCADE,
    )
    coursename = models.CharField(max_length=50)
    amount = models.CharField(max_length=10)
    content = RichTextField(default='content', blank=True, null=True)
    img = models.ImageField(null=True, blank=True, upload_to="headshots/")
    view_count = models.PositiveIntegerField(default=0)
    author = models.ForeignKey(
        User,
        on_delete=models.CASCADE,
    )
    popular = models.BooleanField(null=True, blank=True)

    date_1 = models.DateField(null=True, blank=True)
    date_2 = models.DateField(null=True, blank=True)
    date_3 = models.DateField(null=True, blank=True)
    date_4 = models.DateField(null=True, blank=True)
    date_5 = models.DateField(null=True, blank=True)
    date_6 = models.DateField(null=True, blank=True)
    date_7 = models.DateField(null=True, blank=True)
    date_8 = models.DateField(null=True, blank=True)
Beispiel #2
0
class Page(models.Model):
    title = models.CharField(
        'название',
        max_length=254)

    slug = models.SlugField(
        'slug',
        allow_unicode=True, blank=True)

    icon = models.CharField(
        'иконка',
        max_length=254, blank=True)

    content = RichTextField(
        'контент',
        blank=True)

    order = models.PositiveIntegerField(
        default=0, blank=False, null=False)

    class Meta:
        default_related_name = 'pages'
        ordering = ['order']
        verbose_name = 'страница'
        verbose_name_plural = 'страницы'

    def __str__(self):
        return self.title

    def save(self, *args, **kwargs):
        self.autoslug()
        super().save(*args, **kwargs)

    def autoslug(self):
        if not self.slug:
            self.slug = slugify(self.title, allow_unicode=True)
Beispiel #3
0
class Section(models.Model):
    headline = models.CharField('nadpis', max_length=50)
    link = models.CharField('odkaz v menu', max_length=25, unique=True)
    text = RichTextField('obsah', blank=True, null=True, default=None)
    slug = models.SlugField(editable=False, unique=True)
    widget = models.CharField(max_length=1,
                              choices=widgets.Widget.get_choices(),
                              null=True,
                              editable=False)

    class Meta:
        verbose_name = 'text'
        verbose_name_plural = 'texty'
        ordering = ['id']

    def save(self, *args, **kwargs):
        self.slug = slugify(self.headline)
        return super().save(*args, **kwargs)

    def __str__(self):
        return self.headline

    def get_widget(self):
        return widgets.Widget.get_class(self.widget)
Beispiel #4
0
class Goods(BaseModel):
    """
    商品SPU
    """
    name = models.CharField(max_length=50, verbose_name='名称')
    brand = models.ForeignKey(Brand,
                              on_delete=models.PROTECT,
                              verbose_name='品牌')
    category1 = models.ForeignKey(GoodsCategory,
                                  on_delete=models.PROTECT,
                                  related_name='cat1_goods',
                                  verbose_name='一级类别')
    category2 = models.ForeignKey(GoodsCategory,
                                  on_delete=models.PROTECT,
                                  related_name='cat2_goods',
                                  verbose_name='二级类别')
    category3 = models.ForeignKey(GoodsCategory,
                                  on_delete=models.PROTECT,
                                  related_name='cat3_goods',
                                  verbose_name='三级类别')
    sales = models.IntegerField(default=0, verbose_name='销量')
    comments = models.IntegerField(default=0, verbose_name='评价数')

    # 富文本编辑器类型
    desc_detail = RichTextUploadingField(default='',
                                         verbose_name='详细介绍')  # 支持文件上传
    desc_pack = RichTextField(default='', verbose_name='包装信息')
    desc_service = RichTextUploadingField(default='', verbose_name='售后服务')

    class Meta:
        db_table = 'tb_goods'
        verbose_name = '商品'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name
Beispiel #5
0
class News(TimeStampedModel):
    """Можель новостей."""
    title = models.CharField('Название', max_length=255)
    slug = models.SlugField(unique=True)
    short_text = RichTextField('Короткий текст', blank=True, null=True)
    full_text = RichTextUploadingField('Полный текст', blank=True, null=True)
    image = models.ImageField('Изображение',
                              blank=True,
                              null=True,
                              upload_to='news/%Y/%m/%d/')
    is_visible = models.BooleanField('Отображать', default=True)
    is_on_home = models.BooleanField('Отображать на главной странице',
                                     default=True)
    published_at = models.DateTimeField('Опубликовано', default=datetime.now)

    def __str__(self):
        return self.title

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

    class Meta:
        verbose_name = 'Новость'
        verbose_name_plural = 'Новости'
Beispiel #6
0
class Questions(models.Model):
    """ Question Model """
    # question        = models.TextField()
    title = models.CharField(max_length=150)
    question = RichTextField(config_name='default')
    user = models.ForeignKey(User,
                             on_delete=models.CASCADE,
                             blank=True,
                             null=True)
    image = models.ImageField(null=True, blank=True)
    slug = models.SlugField(unique=True, blank=True, null=True)
    like = models.ManyToManyField(User, blank=True, related_name='liked_user')
    dislike = models.ManyToManyField(User,
                                     blank=True,
                                     related_name='disliked_user')
    like_count = models.IntegerField(default=0)
    dislike_count = models.IntegerField(default=0)
    time = models.DateTimeField(auto_now_add=True)
    tags = models.ManyToManyField(tags.models.Tag, blank=True)
    draft = models.BooleanField(default=False)
    # saved           = models.BooleanField(default=False)
    saved = models.ManyToManyField(User,
                                   blank=True,
                                   related_name='lsaved_by_user')

    objects = QuestionManager()

    class Meta:
        ordering = ['-time']

    def __str__(self):
        """ str method """
        return str(f"{self.question} by {self.user}")

    def get_absolute_url(self):
        return reverse("questions:detail", kwargs={"pk": self.pk})
Beispiel #7
0
class Service(models.Model):
    serviceTitle = models.CharField(
        max_length=50,
        unique=True,
        verbose_name="Service Title",
        help_text="Maximum 50 character, unique.")

    serviceContent = RichTextField(
        verbose_name="Service Content")

    serviceIcon = models.CharField(
        max_length=50,
        default='<i class="fas fa-server fa-5x"></i>',
        verbose_name="Service Icon",
        help_text="You should paste Font Awesome Icon tag here. For icon size add fa-2x, fa-3x, fa-5x etc.. to end of the class.")

    serviceSlug = models.SlugField(
        max_length=50,
        unique=True,
        verbose_name="Service Slug",
        help_text="Url format of the Service Title, unique.")

    def __str__(self):
        return self.serviceTitle
Beispiel #8
0
class Post(models.Model):
    DRAFT = 'D'
    PUBLISHED = 'P'
    STATUS = (
        (DRAFT, 'Draft'),
        (PUBLISHED, 'Published'),
    )
    title = models.CharField(max_length=300)
    slug = models.SlugField(max_length=300, blank=True, null=True)
    author = models.ForeignKey(User, related_name="articles")
    content = RichTextField()
    create_date = models.DateTimeField(auto_now_add=True)
    update_date = models.DateTimeField(auto_now=True)
    article_image = models.ImageField(upload_to=upload_to, null=True)
    status = models.CharField(max_length=1, choices=STATUS, default=DRAFT)

    class Meta:
        verbose_name = 'Post'
        verbose_name_plural = 'Posts'
        ordering = ('-create_date', )

    def __str__(self):
        return self.title

    def save(self, *args, **kwargs):
        if not self.pk:
            super(Post, self).save(*args, **kwargs)
        else:
            self.update_date = datetime.now()
        if not self.slug:
            slug_str = "%s %s" % (self.pk, self.title.lower())
            self.slug = slugify(slug_str)
        super(Post, self).save(*args, **kwargs)

    def get_absolute_url(self):
        return reverse('post', args=[self.slug])
Beispiel #9
0
class Article(models.Model):

    author = models.ForeignKey("auth.User",
                               on_delete=models.CASCADE,
                               verbose_name="Ekleyen")
    pic = models.FileField(blank=True, null=True, verbose_name="Fotoğraf")
    year = models.PositiveIntegerField(
        default=2020,
        validators=[MaxValueValidator(2021),
                    MinValueValidator(1980)],
        verbose_name="Yıl")
    km = models.PositiveIntegerField(verbose_name="Km")
    price = models.PositiveIntegerField(verbose_name="Fiyat")
    make = models.CharField(max_length=20, verbose_name="Marka")
    model = models.CharField(max_length=20, verbose_name="Model")
    transmission = models.TextField(choices=Transmission, verbose_name="Vites")
    fuelType = models.TextField(choices=FuelTypes, verbose_name="Yakıt")
    bodyType = models.TextField(choices=BodyTypes, verbose_name="Kasa")
    engine = models.CharField(blank=True,
                              null=True,
                              max_length=20,
                              verbose_name="Motor")
    variant = models.CharField(blank=True,
                               null=True,
                               max_length=20,
                               verbose_name="Paket")
    content = RichTextField(blank=True, null=True, verbose_name="Detay")
    isSold = models.BooleanField(default=False, verbose_name="Durum")
    highlighted = models.BooleanField(default=False, verbose_name="Öne Çıkar")
    date = models.DateTimeField(auto_now_add=True, verbose_name="Tarih")

    def __str__(self):
        return self.make

    class Meta:
        ordering = ['-date']
Beispiel #10
0
class Comments(MPTTModel):
    article = models.ForeignKey(ArticlePost,
                                on_delete=models.CASCADE,
                                related_name='comments')
    user = models.ForeignKey(User,
                             on_delete=models.CASCADE,
                             related_name='comments')
    parent = TreeForeignKey('self',
                            on_delete=models.CASCADE,
                            null=True,
                            related_name='children')
    reply_to = models.ForeignKey(User,
                                 null=True,
                                 blank=True,
                                 on_delete=models.CASCADE,
                                 related_name='replyers')
    body = RichTextField()
    created = models.DateTimeField(auto_now=True)

    class MPPTMeta:
        order_insertion_by = ['created']

    def __str__(self):
        return self.body[:20]
Beispiel #11
0
class Blog(models.Model):
    title = models.CharField(max_length=255)
    category = models.ForeignKey(BlogCategory, on_delete=models.CASCADE)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    content = RichTextField(blank=True, null=True)
    image = models.ImageField(upload_to='images/blog/')
    image_thumbnail = ImageSpecField(source='image',
                                     processors=[ResizeToFill(1024, 610)],
                                     format='jpeg',
                                     options={'quality': 100})
    small_image_thumbnail = ImageSpecField(source='image',
                                           processors=[ResizeToFill(200, 200)],
                                           format='jpeg',
                                           options={'quality': 100})
    added_date = models.DateTimeField(auto_now_add=True)
    is_published = models.BooleanField(default=False)
    pub_date = models.DateTimeField(blank=True, null=True)
    slug = models.SlugField(blank=True)

    def __str__(self):
        return f"{self.title} by {self.author.username}"

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.title + self.author.username)
        return super().save(*args, **kwargs)

    def no_of_comments(self):
        return Comments.objects.filter(post=self).count()

    def get_absolute_url(self):
        return reverse("blog:blog-detail",
                       kwargs={
                           "slug": self.slug,
                           'pk': self.pk
                       })
Beispiel #12
0
class SimplePageModel(MPTTModel, SimpleContentModel, PublisherModel):
    u"""
    Classe abstrata com os dados de uma página simples
    de cms
    """
    parent = TreeForeignKey('self',
                            verbose_name=_(u"Pai"),
                            null=True,
                            blank=True,
                            related_name='children')

    content = RichTextField(verbose_name=_(u"Conteúdo"))

    redirect_to = TreeForeignKey('self',
                                 verbose_name=_(u"Redirecionar para página"),
                                 null=True,
                                 blank=True,
                                 related_name='redirected_from')

    redirect_to_url = models.URLField(
        verbose_name=_(u"Redirecionar para esta URL"), blank=True)

    class Meta:
        abstract = True
Beispiel #13
0
class Suministro(BaseModel):
    MUNICIPALITY_CHOICES = [(value, label)
                            for value, label in MUNICIPALITIES.items()]

    title = models.CharField(max_length=255)
    slug = AutoSlugField(populate_from=["title", "municipality"],
                         overwrite_on_add=False)
    municipality = models.CharField(max_length=255,
                                    choices=MUNICIPALITY_CHOICES)
    content = RichTextField()

    def __str__(self):
        return self.title

    def save(self, *args, **kwargs):
        super().save(*args, **kwargs)
        self.invalidate_cache()

    def invalidate_cache(self):
        cache.delete_many([
            "suministro-list",
            f"suministro-municipio-list:{self.municipality}",
            f"suministro-detail:{self.slug}",
        ])
Beispiel #14
0
class Post(ModeloBase):
    titulo = models.CharField('Titulo del Post', max_length=150, unique=True)
    slug = models.CharField('Slug', max_length=150, unique=True)
    descripcion = models.TextField('Descripción')
    autor = models.ForeignKey(Autor, on_delete=models.CASCADE)
    categoria = models.ForeignKey(Categoria, on_delete=models.CASCADE)
    contenido = RichTextField()
    imagen_referencial = models.ImageField(
        'Imagen Referencial', upload_to='imagenes/', max_length=255)
    publicado = models.BooleanField('Publicado/No publicado', default=False)
    destacado = models.BooleanField('Destacado/No destacado', default=False)
    fecha_publicacion = models.DateField('Fecha de publicación')
    imagen_1 = models.ImageField(
        'Imagen 1', upload_to='imagenes/', max_length=255, null=True, blank=True)
    imagen_2 = models.ImageField(
        'Imagen 2', upload_to='imagenes/', max_length=255, null=True, blank=True)
    imagen_3 = models.ImageField(
        'Imagen 3', upload_to='imagenes/', max_length=255, null=True, blank=True)
    imagen_4 = models.ImageField(
        'Imagen 4', upload_to='imagenes/', max_length=255, null=True, blank=True)
    imagen_5 = models.ImageField(
        'Imagen 5', upload_to='imagenes/', max_length=255, null=True, blank=True)
    imagen_6 = models.ImageField(
        'Imagen 6', upload_to='imagenes/', max_length=255, null=True, blank=True)
    imagen_7 = models.ImageField(
        'Imagen 7', upload_to='imagenes/', max_length=255, null=True, blank=True)
    imagen_8 = models.ImageField(
        'Imagen 8', upload_to='imagenes/', max_length=255, null=True, blank=True)

    class Meta:
        verbose_name = 'Post'
        verbose_name_plural = 'Posts'
        ordering = ['-fecha_publicacion']

    def __str__(self):
        return self.titulo
Beispiel #15
0
class Post(models.Model):
    STATUS = (
        ('rascunho', 'Rascunho'),
        ('pubicado', 'Publicado'),
    )
    titulo = models.CharField(verbose_name="Título", max_length=250)
    slug = models.SlugField(max_length=250)
    autor = models.ForeignKey(User, on_delete=models.CASCADE)
    categoria = models.ManyToManyField(Category, related_name="get_posts")
    imagem = models.ImageField(upload_to="blog", blank=True, null=True)
    conteudo = RichTextField(verbose_name="conteúdo")
    publicado = models.DateTimeField(default=timezone.now)
    criado = models.DateTimeField(auto_now_add=True)
    alterado = models.DateTimeField(auto_now=True)
    status = models.CharField(max_length=10,
                              choices=STATUS,
                              default='rascunho')
    objects = models.Manager()
    published = PublishedManager()

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

    def get_absolute_url_update(self):
        return reverse('Post_edit', args=[self.pk])

    def view_image(self):
        return mark_safe('<img src="%s" width="400px"/>' % self.imagem.url)
        view_image.short_description = "imagem cadastrada"
        view_image.allow_tags = True

    class Meta:
        ordering = ('-publicado', )

    def __str__(self):
        return self.titulo
Beispiel #16
0
class Post(CommonPage):
    class Meta:
        verbose_name = u'Статья'
        verbose_name_plural = u'Статьи'
        app_label = 'blog'
        ordering = ('sort', )

    def get_absolute_url(self):
        return reverse('blog:detail', args=(self.slug, ))

    def save(self, *args, **kwargs):
        super(Post, self).save()
        if self.image:
            image = Image.open(self.image)
            (width, height) = image.size
            size = (800, 800)
            "Max width and height 800"
            if width > 800:
                image.thumbnail(size, Image.ANTIALIAS)
                image.save(self.image.path, "PNG")

    postsection = models.ForeignKey(to=PostSection,
                                    verbose_name=u'Категория',
                                    blank=True,
                                    null=True)
    image = models.ImageField(verbose_name=u'Изображения',
                              upload_to=upload_to,
                              blank=True,
                              null=True)
    video = models.TextField(verbose_name=u'HTML код видео',
                             blank=True,
                             null=True)
    description = RichTextField(verbose_name=u'Описание')
    slug = models.SlugField(max_length=100, verbose_name=u'url')
    sort = models.PositiveIntegerField(default=1, verbose_name=u'Сортировка')
    send = models.BooleanField(default=False)
Beispiel #17
0
class PageContent(models.Model):
    page = models.CharField(max_length=255,
                            choices=PAGE_CONTENT_CHOICES,
                            primary_key=True)
    content = RichTextField(
        blank=True, null=True,
        config_name="custom")  #CKEditor Rich Text Editor Field
    is_html = models.BooleanField(
        default=False,
        help_text=
        'Select this if you want to use raw HTML instead. For this option, use the "HTML content" window below.'
    )
    html_content = models.TextField(blank=True,
                                    null=True,
                                    help_text='raw html if html == True')

    class Meta:
        verbose_name_plural = 'Page Contents'

    def __unicode__(self):
        return unicode("%s" % (self.page))

    def __str__(self):
        return self.page
class Post(models.Model):
    title = models.CharField(max_length=255)
    header_image = models.ImageField(null=True,
                                     blank=True,
                                     upload_to="images/")
    title_tag = models.CharField(max_length=255)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    body = RichTextField(blank=True, null=True)
    # body = models.TextField()
    post_date = models.DateField(auto_now_add=True)
    category = models.CharField(max_length=255, default='Coding')
    snippet = models.CharField(max_length=255)
    likes = models.ManyToManyField(User, related_name='blog_posts')

    def total_likes(self):
        return self.likes.count()

    def __str__(self):
        return self.title + ' | ' + str(self.author)

    @staticmethod
    def get_absolute_url():
        # return reverse('article-details', args=(str(self.id)))
        return reverse('home')
Beispiel #19
0
class Employee(models.Model):
    name = models.CharField(max_length=50, verbose_name="Nombre")
    deparment = models.ForeignKey(Deparment,
                                  verbose_name="Departamento",
                                  on_delete=models.CASCADE)
    position = models.ForeignKey(Position,
                                 verbose_name="Posicion",
                                 on_delete=models.CASCADE)
    createdby = models.ForeignKey(User,
                                  verbose_name="Creado por",
                                  on_delete=models.CASCADE)
    description = RichTextField(verbose_name="Descripcion")
    skills = models.ManyToManyField(Skills, verbose_name="Habilidades")
    image = models.ImageField(verbose_name="Imagen", upload_to="team")
    created = models.DateTimeField(auto_now_add=True, verbose_name="Creado")
    updated = models.DateTimeField(auto_now=True, verbose_name="Actualizado")

    class Meta:
        verbose_name = "Empleado"
        verbose_name_plural = "Empleados"
        ordering = ["-created"]

    def __str__(self):
        return self.name
Beispiel #20
0
class Page(models.Model):
    NAV_POSITION = (
        ('01', '01'),
        ('02', '02'),
        ('03', '03'),
        ('04', '04'),
        ('05', '05'),
        ('06', '06'),
    )

    title = models.CharField(max_length=250)
    slug = models.SlugField(max_length=250, unique=True)
    body = RichTextField()
    nav_position = models.CharField(max_length=20,
                                    choices=NAV_POSITION,
                                    default='01')

    objects = models.Manager()

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('pages', args=[self.slug])
Beispiel #21
0
class Problem(models.Model):
    contest = models.ForeignKey(Contest)
    problemSetter = models.CharField(max_length=200)
    problemTitle = models.CharField(max_length=200)
    problemStatement = RichTextField(config_name='awesome_ckeditor')
    testInput = models.FileField(upload_to='testInput')
    testOutput = models.FileField(upload_to='testOutput')
    marks = models.PositiveSmallIntegerField()
    timeLimit = models.PositiveSmallIntegerField()
    languagesAllowed = models.CommaSeparatedIntegerField(max_length=200)
    inputFormat = RichTextField(config_name='awesome_ckeditor')
    outputFormat = RichTextField(config_name='awesome_ckeditor')
    constraints = RichTextField(config_name='awesome_ckeditor')
    sampleInput = RichTextField(config_name='awesome_ckeditor')
    sampleOutput = RichTextField(config_name='awesome_ckeditor')
    solvedBy = models.PositiveSmallIntegerField(default=0)
    
    def __unicode__(self):
        return self.problemTitle
class CompanyInfo(models.Model):
    name = models.CharField(_("Name"), max_length=100)
    phone = models.CharField(_("Phone number"), max_length=30)
    email = models.EmailField(_("E-mail"), )
    street = models.CharField(_("Street"), max_length=100)
    zip_city = models.CharField(_("Zip Code/City"), max_length=100)
    start_time = models.TimeField(_("Start time"), )
    end_time = models.TimeField(_("End time"), )
    about = RichTextField(verbose_name=_("About"), )
    delivery = RichTextField(verbose_name=_("Delivery"), )
    privacy = RichTextField(verbose_name=_("Privacy"), )
    returns = RichTextField(verbose_name=_("Returns"), )
    contact_us = RichTextField(verbose_name=_("Contact us"), )
    jobs = RichTextField(verbose_name=_("Jobs"), )

    class Meta:
        verbose_name = _("Company information")
        verbose_name_plural = _("Company informations")

    def __str__(self):
        return f"Company {self.name} - Details"
Beispiel #23
0
class Post(models.Model):
    user = models.ForeignKey('auth.User',
                             verbose_name='yazar',
                             on_delete=models.CASCADE,
                             related_name='posts')

    genre = models.CharField(max_length=40, verbose_name="Tür")

    title = models.CharField(max_length=60, verbose_name="Başlık")
    imgfield = models.ImageField(verbose_name=" Ana Resim alanı", blank=True)
    text1 = RichTextField(verbose_name="ana metin", blank=True)
    step1 = models.CharField(max_length=120, verbose_name="adım 1", blank=True)
    imgfield1 = models.ImageField(verbose_name="Resim alanı1", blank=True)
    text2 = RichTextField(verbose_name="metin 1", blank=True)
    step2 = models.CharField(max_length=120, verbose_name="adım 2", blank=True)
    imgfield2 = models.ImageField(verbose_name="Resim alanı 2", blank=True)
    text3 = RichTextField(verbose_name="metin 3", blank=True)
    step3 = models.CharField(max_length=120, verbose_name="adım 3", blank=True)
    imgfield3 = models.ImageField(verbose_name="Resim alanı 3", blank=True)
    text4 = RichTextField(verbose_name="metin 4", blank=True)
    step4 = models.CharField(max_length=120, verbose_name="adım 4", blank=True)
    imgfield4 = models.ImageField(verbose_name="Resim alanı 4", blank=True)
    text5 = RichTextField(verbose_name="metin 5", blank=True)
    step5 = models.CharField(max_length=120, verbose_name="adım 5", blank=True)
    imgfield5 = models.ImageField(verbose_name="Resim alanı 5", blank=True)
    text6 = RichTextField(verbose_name="metin 6", blank=True)
    publishing_date = models.DateTimeField(verbose_name="Tarih",
                                           auto_now_add=True)
    slug = models.SlugField(unique=True)

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return "/post/{}".format(self.slug)

    class Meta:
        ordering = ["-publishing_date", "id"]
Beispiel #24
0
class Job(models.Model):

    SENIORITY_CHOICES = (
        ('low', 'Low'),
        ('mid', 'Mid'),
        ('high', 'High'),
        ('executive', 'Executive'),
    )

    APPLICATION_ROUTE_CHOICES = (
        ('direct', 'Apply Direct'),
        ('seo', 'Apply through SEO'),
    )

    job_title = models.CharField(max_length=100)

    company_name = models.CharField(max_length=50)

    location = models.CharField(max_length=50)

    industry = models.CharField(max_length=50, blank=True)

    job_function = models.CharField(max_length=50, blank=True)

    seniority = models.CharField(max_length=20,
                                 blank=True,
                                 choices=SENIORITY_CHOICES)

    application_route = models.CharField(max_length=20,
                                         blank=True,
                                         choices=APPLICATION_ROUTE_CHOICES)

    min_salary = models.DecimalField(null=True,
                                     blank=True,
                                     max_digits=9,
                                     decimal_places=2)

    max_salary = models.DecimalField(null=True,
                                     blank=True,
                                     max_digits=9,
                                     decimal_places=2)

    job_detail = RichTextField(blank=True, config_name='seojob_ckeditor')
    summary = models.TextField()

    external_url = models.URLField(blank=True)

    apply_url = models.URLField(blank=True)

    is_public = models.BooleanField(default=False)

    date_publish = models.DateTimeField(default=timezone.datetime.now)
    date_expire = models.DateTimeField(null=True, blank=True)
    date_updated = models.DateTimeField()

    objects = JobQuerySet.as_manager()

    # TODO: add view counts somewhere

    def __str__(self):
        return '{} {}'.format(self.job_title, self.company_name)

    def save(self, *args, **kwargs):
        self.date_updated = timezone.datetime.now()
        super(Job, self).save(*args, **kwargs)

    def get_absolute_url(self):
        return reverse('seo_job:job_detail', kwargs={'pk': self.pk})

    def listing_url(self):
        if self.external_url:
            return self.external_url
        else:
            return self.get_absolute_url()
Beispiel #25
0
class footer(models.Model):
    faq = RichTextField()
    career = RichTextField()
    privacy = RichTextField()
Beispiel #26
0
class Courses(models.Model):
    course = models.CharField(blank=False, max_length=255)
    detail = RichTextField()
    image = models.ImageField(upload_to ='images/course',default='')
Beispiel #27
0
class Aboutus(models.Model):
    Introduction = RichTextField(blank=False)
    Facilities = RichTextField(blank =False)
    def __str__(self):
        return self.Introduction
Beispiel #28
0
class EnrichPods(models.Model):
    video = models.ForeignKey(Pod, verbose_name=_('video'))
    title = models.CharField(_('title'), max_length=100)
    slug = models.SlugField(
        _('slug'),
        unique=True,
        max_length=105,
        help_text=
        _(u'Used to access this instance, the "slug" is a short label containing only letters, numbers, underscore or dash top.'
          ),
        editable=False)
    #is_chapter = models.BooleanField(_('Is chapter ?'), default=False, help_text=_('Is chapter ?'))
    stop_video = models.BooleanField(
        _('Stop video'),
        default=False,
        help_text=_('The video will pause when displaying this enrichment.'))
    start = models.PositiveIntegerField(
        _('Start'),
        default=0,
        help_text=_('Start of enrichment display in seconds'))
    end = models.PositiveIntegerField(
        _('End'),
        default=1,
        help_text=_('End of enrichment display in seconds'))

    ENRICH_CHOICES = (
        ("image", _("image")),
        ("richtext", _("richtext")),
        ("weblink", _("weblink")),
        ("document", _("document")),
        ("embed", _("embed")),
    )
    type = models.CharField(_('Type'),
                            max_length=10,
                            choices=ENRICH_CHOICES,
                            null=True,
                            blank=True)

    image = FilerImageField(null=True,
                            blank=True,
                            verbose_name="Image",
                            related_name="chapter_image")
    richtext = RichTextField(_('richtext'), config_name='complete', blank=True)
    weblink = models.URLField(_(u'Web link'),
                              max_length=200,
                              null=True,
                              blank=True)
    document = FilerFileField(
        null=True,
        blank=True,
        verbose_name="Document",
        help_text=_(u'Integrate an document (PDF, text, html)'))
    embed = models.TextField(_('Embed'),
                             max_length=300,
                             null=True,
                             blank=True,
                             help_text=_(u'Integrate an external source'))

    class Meta:
        verbose_name = _("Enrichment")
        verbose_name_plural = _("Enrichments")
        ordering = ['start']
        #unique_together = ("video", "start")

    def __unicode__(self):
        return u"Media : %s - video: %s" % (self.title, self.video)

    def __str__(self):
        return u"Media : %s - video: %s" % (self.title, self.video)

    def clean(self):
        # Don't allow draft entries to have a pub_date.
        msg = []
        msg = self.verify_end_start_item() + self.verify_all_fields() + \
            self.overlap()
        if (len(msg) > 0):
            raise ValidationError(msg)

    def verify_all_fields(self):
        msg = []
        if (not self.title or (self.title == "") or (len(self.title) < 2)
                or (len(self.title) > 100)):
            msg.append(_('Please enter a title from 2 to 100 characters.'))

        if ((self.start == "") or (self.start < 0)
                or (self.start >= self.video.duration)):
            msg.append(
                _('Please enter a correct start field between 0 and %(duration)s.'
                  ) % {"duration": self.video.duration - 1})

        if (not self.end or (self.end == "") or (self.end <= 0)
                or (self.end > self.video.duration)):
            msg.append(
                _('Please enter a correct end field between 1 and %(duration)s.'
                  ) % {"duration": self.video.duration})
        if (self.type == "image"):
            if (not self.image):
                msg.append(_('Please enter a correct image.'))

        elif (self.type == "richtext"):
            if (not self.richtext):
                msg.append(_('Please enter a correct richtext.'))

        elif (self.type == "weblink"):
            if (not self.weblink):
                msg.append(_('Please enter a correct weblink.'))

        elif (self.type == "document"):
            if (not self.document):
                msg.append(_('Please select a document.'))

        elif (self.type == "embed"):
            if (not self.embed):
                msg.append(_('Please enter a correct embed.'))
        else:
            msg.append(_('Please enter a type in index field.'))

        if (len(msg) > 0):
            return msg
        else:
            return []

    def verify_end_start_item(self):
        msg = []
        video = Pod.objects.get(id=self.video.id)
        if (self.start > self.end):
            msg.append(
                _('The value of the start field is greater than the value of end field.'
                  ))
        elif (self.end > video.duration):
            msg.append(
                _('The value of end field is greater than the video duration.')
            )
        elif (self.start == self.end):
            msg.append(_('End field and start field can\'t be equal.'))

        if (len(msg) > 0):
            return msg
        else:
            return []

    def overlap(self):
        msg = []
        instance = None
        if self.slug:
            instance = EnrichPods.objects.get(slug=self.slug)
        list_enrichment = EnrichPods.objects.filter(video=self.video)
        if instance:
            list_enrichment = list_enrichment.exclude(id=instance.id)
        if len(list_enrichment) > 0:
            for element in list_enrichment:
                if not (
                    (self.start < element.start and self.end <= element.start)
                        or
                    (self.start >= element.end and self.end > element.end)):
                    msg.append(
                        _("There is an overlap with the enrichment " +
                          element.title +
                          ", please change start and/or end values."))
            if len(msg) > 0:
                return msg
        return []

    def save(self, *args, **kwargs):
        newid = -1
        if not self.id:
            try:
                newid = get_nextautoincrement(EnrichPods)
            except:
                try:
                    newid = EnrichPods.objects.latest('id').id
                    newid += 1
                except:
                    newid = 1
        else:
            newid = self.id
        newid = '%04d' % newid
        self.slug = "%s-%s" % (newid, slugify(self.title))

        super(EnrichPods, self).save(*args, **kwargs)
Beispiel #29
0
class Recorder(models.Model):
    # Recorder name
    name = models.CharField(_("name"), max_length=200, unique=True)
    # Description of the recorder
    description = RichTextField(_("description"), config_name="complete", blank=True)
    # IP address of the recorder
    address_ip = models.GenericIPAddressField(
        _("Address IP"), unique=True, help_text=_("IP address of the recorder.")
    )
    # Salt for
    salt = models.CharField(
        _("salt"), max_length=50, blank=True, help_text=_("Recorder salt.")
    )

    # Recording type (video, AUdioVideoCasst, etc)
    recording_type = models.CharField(
        _("Recording Type"),
        max_length=50,
        choices=RECORDER_TYPE,
        default=RECORDER_TYPE[0][0],
    )
    # Manager of the recorder who received mails
    user = select2_fields.ForeignKey(
        User,
        on_delete=models.CASCADE,
        limit_choices_to={"is_staff": True},
        help_text=_(
            "Manager of this recorder. This manager will receive recorder "
            "emails and he will be the owner of the published videos. If no "
            "user is selected, this recorder will use manual assign system."
        ),
        verbose_name=_("User"),
        null=True,
        blank=True,
    )
    # Additionnal additional_users
    additional_users = select2_fields.ManyToManyField(
        User,
        blank=True,
        ajax=True,
        js_options={"width": "off"},
        verbose_name=_("Additional users"),
        search_field=select_recorder_user(),
        related_name="users_recorders",
        help_text=_(
            "You can add additionals users to the recorder. They "
            "will become the additionnals owners of the published videos "
            "and will have the same rights as the owner except that they "
            "can't delete the published videos."
        ),
    )
    # Default type of published videos by this recorder
    type = models.ForeignKey(
        Type, on_delete=models.CASCADE, help_text=_("Video type by default.")
    )
    is_draft = models.BooleanField(
        verbose_name=_("Draft"),
        help_text=_(
            "If this box is checked, "
            "the video will be visible and accessible only by you "
            "and the additional owners."
        ),
        default=True,
    )
    is_restricted = models.BooleanField(
        verbose_name=_("Restricted access"),
        help_text=_(
            "If this box is checked, "
            "the video will only be accessible to authenticated users."
        ),
        default=False,
    )
    restrict_access_to_groups = select2_fields.ManyToManyField(
        Group,
        blank=True,
        verbose_name=_("Groups"),
        help_text=_("Select one or more groups who can access to this video"),
    )
    password = models.CharField(
        _("password"),
        help_text=_("Viewing this video will not be possible without this password."),
        max_length=50,
        blank=True,
        null=True,
    )
    cursus = models.CharField(
        _("University course"),
        max_length=1,
        choices=CURSUS_CODES,
        default="0",
        help_text=_("Select an university course as audience target of the content."),
    )
    main_lang = models.CharField(
        _("Main language"),
        max_length=2,
        choices=LANG_CHOICES,
        default=get_language(),
        help_text=_("Select the main language used in the content."),
    )
    transcript = models.BooleanField(
        _("Transcript"),
        default=False,
        help_text=_("Check this box if you want to transcript the audio. (beta version)"),
    )
    tags = TagField(
        help_text=_(
            "Separate tags with spaces, "
            "enclose the tags consist of several words in quotation marks."
        ),
        verbose_name=_("Tags"),
    )
    discipline = select2_fields.ManyToManyField(
        Discipline, blank=True, verbose_name=_("Disciplines")
    )
    licence = models.CharField(
        _("Licence"),
        max_length=8,
        choices=LICENCE_CHOICES,
        blank=True,
        null=True,
    )
    channel = select2_fields.ManyToManyField(
        Channel, verbose_name=_("Channels"), blank=True
    )
    theme = models.ManyToManyField(
        Theme,
        verbose_name=_("Themes"),
        blank=True,
        help_text=_(
            'Hold down "Control", or "Command" ' "on a Mac, to select more than one."
        ),
    )
    allow_downloading = models.BooleanField(
        _("allow downloading"),
        default=False,
        help_text=_("Check this box if you to allow downloading of the encoded files"),
    )
    is_360 = models.BooleanField(
        _("video 360"),
        default=False,
        help_text=_("Check this box if you want to use the 360 player for the video"),
    )
    disable_comment = models.BooleanField(
        _("Disable comment"),
        help_text=_("Allows you to turn off all comments on this video."),
        default=False,
    )

    # Directory name where videos of this recorder are published
    directory = models.CharField(
        _("Publication directory"),
        max_length=50,
        unique=True,
        help_text=_("Basic directory containing the videos published by the recorder."),
    )
    sites = models.ManyToManyField(Site)

    def __unicode__(self):
        return "%s - %s" % (self.name, self.address_ip)

    def __str__(self):
        return "%s - %s" % (self.name, self.address_ip)

    def ipunder(self):
        return self.address_ip.replace(".", "_")

    def save(self, *args, **kwargs):
        super(Recorder, self).save(*args, **kwargs)

    class Meta:
        verbose_name = _("Recorder")
        verbose_name_plural = _("Recorders")
        ordering = ["name"]
Beispiel #30
0
class ContentFrom(forms.Form, FormMixin):
    content = RichTextField()