Exemplo n.º 1
0
class MagicNode(AL_Node):
    owner = models.ForeignKey(User, on_delete=models.SET_DEFAULT, default=1)
    is_ready = models.BooleanField(default=False)
    updated_at = models.DateTimeField(auto_now=True)
    parent = models.ForeignKey('self',
                               related_name='children_set',
                               null=True,
                               db_index=True,
                               on_delete=models.CASCADE)
    sib_order = models.PositiveIntegerField()
    desc = models.CharField(max_length=255)
    figure = models.ImageField(
        upload_to='uploads/%Y/%m/%d',
        blank=True,
        null=True,
    )

    fig_link = models.URLField(
        blank=True,
        null=True,
    )
    date1 = models.CharField(
        max_length=10,
        blank=True,
        null=True,
    )
    date2 = models.CharField(
        max_length=10,
        blank=True,
        null=True,
    )

    text = models.TextField(blank=True)

    video = EmbedVideoField(null=True, blank=True)
    video2 = EmbedVideoField(null=True, blank=True)
    video3 = EmbedVideoField(null=True, blank=True)

    site1 = models.URLField(
        blank=True,
        null=True,
    )
    sites = ArrayField(
        models.TextField(blank=True),
        blank=True,
        null=True,
        size=5,
    )

    has_exam = models.BooleanField(default=False)
    book = models.BooleanField(default=False)
    extra = models.BooleanField(default=False)
    next = models.ForeignKey('self',
                             blank=True,
                             related_name='far_away',
                             null=True,
                             on_delete=models.SET_NULL)

    def __str__(self):
        return self.desc
Exemplo n.º 2
0
class Flims(models.Model):
    title = models.CharField(max_length=100)
    slug = models.SlugField(blank=True)
    categories = models.ManyToManyField('Category', blank=True)
    video = EmbedVideoField()
    description = models.TextField()

    actor = models.CharField(max_length=50, null=True, blank=True)
    director = models.CharField(max_length=50)
    production = models.CharField(max_length=100)
    client = models.CharField(max_length=50, null=True, blank=True)
    assistant_camera = models.CharField(max_length=50, null=True, blank=True)
    actress = models.CharField(max_length=50, null=True, blank=True)

    class Meta:
        ordering = ["title"]

    class Meta:
        verbose_name_plural = "Flims"

    def __str__(self):
        return self.title

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

    def get_image_url(self):
        img = self.flimsimage_set.first()
        if img:
            return img.image.url
        return img  #None
Exemplo n.º 3
0
class EmbedMedia(models.Model):
    """
    Associate a media URL to an Episode.

    This is *not* a replacement for a video podcast, but simply a way
    to embed content via url in an episode description.

    Ideally this will be used with django-embed-video which supports
    easy embeding for YouTube and Vimeo videos and music from SoundCloud.
    """
    episode = models.ForeignKey(Episode,
                                verbose_name=_("episode"),
                                on_delete=models.PROTECT)

    if EmbedVideoField:
        url = EmbedVideoField(_("url"), help_text=_("URL of the media file"))
    else:
        url = models.URLField(_("url"), help_text=_("URL of the media file"))

    class Meta:
        ordering = ("episode", "url")
        unique_together = ("episode", "url")
        verbose_name = _("Embed Media URL")
        verbose_name_plural = _("Embed Media URLs")

    def __str__(self):
        return "{0} - {1}".format(self.episode, self.url)
Exemplo n.º 4
0
class Exercise(models.Model):
    CONTRACTION_TYPES = [('Con', 'Concentric'), ('Ecc', 'Eccentric'),
                         ('Iso', 'Isometric'), ('Non', 'Non-Specific')]
    MOVEMENT_TYPES = [
        ('UPH', 'Upper Body Push'),
        ('UPL', 'Upper Body Pull'),
        ('LPH', 'Lower Body Push'),
        ('LPL', 'Lower Body Pull'),
        ('COR', 'Core'),
        ('COM', 'Combination'),
    ]
    name = models.CharField(max_length=100)
    description = models.TextField()
    contraction_type = models.CharField(max_length=3,
                                        choices=CONTRACTION_TYPES,
                                        blank=True)
    movement_type = models.CharField(max_length=3,
                                     choices=MOVEMENT_TYPES,
                                     blank=True)
    video = EmbedVideoField(blank=True)  # same like models.URLField()

    def __str__(self):
        return self.name.capitalize()

    def get_absolute_url(self):
        return reverse('exercise_database:exercise_list')
Exemplo n.º 5
0
class Article(models.Model):
    title = models.CharField(max_length=100, unique=True)
    slug = models.SlugField(max_length=100, unique=True, editable=False)
    image = models.ImageField(blank=True, upload_to='uploads/images')
    content = HTMLField(null=True, blank=True)
    url = EmbedVideoField(max_length=500, unique=False, blank=True, null=False)
    last_modified_on = models.DateTimeField(auto_now=True)
    posted_on = models.DateTimeField(auto_now_add=True)
    author = models.ForeignKey(User, unique=False)
    categories = models.ManyToManyField(Tag)

    def __str__(self):
        return self.title

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

    def save(self, *args, **kwargs):
        if not self.id:
            self.slug = slugify(self.title)

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

    class Meta:
        ordering = ('-last_modified_on', )
Exemplo n.º 6
0
class Project(models.Model):
    title = models.CharField(max_length=200)
    slug = models.SlugField(max_length=255, blank=True)
    category = models.CharField(max_length=100, choices=project_choices)
    project_type = models.CharField(max_length=100)
    description = models.TextField(blank=True)
    year = models.DateField()
    director = models.CharField(max_length=50)
    cast_1 = models.CharField(max_length=50)
    cast_2 = models.CharField(max_length=50, blank=True)
    cast_3 = models.CharField(max_length=50, blank=True)
    cast_4 = models.CharField(max_length=50, blank=True)
    cast_5 = models.CharField(max_length=50, blank=True)
    #card image in Home Page & Details Page
    photo_card = models.ImageField(blank=True)
    #carousel Image in Home Page
    photo_cover = models.ImageField(blank=True)
    #Gallery Images in Details Page
    gallery_1 = models.ImageField(blank=True)
    gallery_2 = models.ImageField(blank=True)
    gallery_3 = models.ImageField(blank=True)
    gallery_4 = models.ImageField(blank=True)
    gallery_5 = models.ImageField(blank=True)
    #embed video Field
    trailer = EmbedVideoField(blank=True)
    #video
    video = models.FileField(upload_to='videos/', blank=True)
    price = models.IntegerField()
    created_date = models.DateTimeField(auto_now_add=True)
    is_published = models.BooleanField(default=True)
    is_cover = models.BooleanField(default=False)
    is_trending = models.BooleanField(default=False)

    def __str__(self):
        return self.title
Exemplo n.º 7
0
class Fabrics(models.Model):
    fabTopic = models.ForeignKey(Topics)
    fabName = models.CharField(max_length=128)
    fabContent = models.CharField(max_length=128, blank=True)
    fabWeave = models.CharField(max_length=128, blank=True)
    fabDye = models.CharField(max_length=128, blank=True)
    fabFinish = models.CharField(max_length=128, blank=True)
    fabDescription = models.CharField(max_length=8192)
    fabImage = ProcessedImageField(upload_to='avatars',
                                   processors=[ResizeToFill(250, 185)],
                                   format='JPEG',
                                   options={'quality': 60},
                                   blank=True)
    fabImage_secondary = ProcessedImageField(
        upload_to='avatars',
        processors=[ResizeToFill(500, 370)],
        format='JPEG',
        options={'quality': 60},
        blank=True)
    fabVideo = EmbedVideoField(blank=True)
    fabVideoURL = models.URLField(blank=True)
    isPremium = models.BooleanField(default=False)

    def __unicode__(self):
        return self.fabName
Exemplo n.º 8
0
class VideoEntry(models.Model):
    """
    Abstract model class to add a video.
    """

    """def image_upload_to(self, filename):"""
    """
        Compute the upload path for the image field.  But we're not going to upload videos.
        """
    """    now = timezone.now()
        filename, extension = os.path.splitext(filename)

        return os.path.join(
            UPLOAD_TO,
            now.strftime('%Y'),
            now.strftime('%m'),
            now.strftime('%d'),
            '%s%s' % (slugify(filename), extension))"""

    video = EmbedVideoField(blank=True, null=True, verbose_name='Embed URL', help_text='Enter the URL of the video, for example: "https://youtu.be/UsCQzTW0Fqt"')

    """image = models.ImageField(
        _('image'), blank=True,
        upload_to=image_upload_to_dispatcher,
        help_text=_('Used for illustration.'))"""

    video_caption = models.TextField(
        _('video caption'), blank=True,
        help_text=_("Video's caption."))

    class Meta:
        abstract = True
Exemplo n.º 9
0
class Movie(models.Model):
    title = models.CharField(max_length=200)
    movie_type = models.CharField(max_length=100)
    description = models.TextField(blank=True)
    year = models.DateField()
    director = models.CharField(max_length=50)
    cast_1 = models.CharField(max_length=50)
    cast_2 = models.CharField(max_length=50, blank=True)
    cast_3 = models.CharField(max_length=50, blank=True)
    cast_4 = models.CharField(max_length=50, blank=True)
    cast_5 = models.CharField(max_length=50, blank=True)
    # Card image in Home Page & Details Page
    photo_card = models.ImageField(blank=True)
    # carousel Image in Home Page
    photo_cover = models.ImageField(blank=True)
    # Gallery Images in Details Page( lightbox )
    gallery_1 = models.ImageField(blank=True)
    gallery_2 = models.ImageField(blank=True)
    gallery_3 = models.ImageField(blank=True)
    gallery_4 = models.ImageField(blank=True)
    gallery_5 = models.ImageField(blank=True)
    # Embed Video Field
    promo = EmbedVideoField(blank=True)
    created_date = models.DateTimeField(auto_now_add=True)
    is_published = models.BooleanField(default=True)
    is_cover = models.BooleanField(default=False)
    is_trending = models.BooleanField(default=False)

    def __str__(self):
        return self.title
Exemplo n.º 10
0
class Aportacio(models.Model):
    titol = models.CharField(max_length="40")
    autor = models.ForeignKey(User)
    datahora = models.DateTimeField(default=now,blank=True, null=True)
    entradilla = models.TextField(max_length="120", blank=True, null=True)
    text = models.TextField()
    rank_score = models.FloatField(default=0.0)
    debat_id = models.CharField(max_length="50", null=True, blank=True)
    tema = models.ForeignKey('Tema', related_name='aportacions', null=True, blank=True)
    seccio = models.ForeignKey('Seccio', related_name='aportacions', null=True, blank=True)
    tags = TagField()
    country = CountryField(null=True, blank=True)
    video = EmbedVideoField(null=True, blank=True)
    # debat = Xarxa.models.Debat()

    with_votes = LinkVoteCountManager()
    objects = models.Manager()


    def __unicode__(self):
        return "%s" % (self.titol)

    def get_absolute_url(self):
        return reverse('aportacions')

    def set_rank(self):
        # Based on HN ranking algo at http://amix.dk/blog/post/19574
        SECS_IN_HOUR = float(60*60)
        GRAVITY = 1.2

        delta = now() - self.datahora
        item_hour_age = delta.total_seconds() // SECS_IN_HOUR
        votes = self.votes - 1
        self.rank_score = votes / pow((item_hour_age+2), GRAVITY)
        self.save()
Exemplo n.º 11
0
class Item(models.Model):
    video = EmbedVideoField()
    title = models.CharField(max_length=264)
    description = models.TextField(blank=True)

    def __str__(self):
        return self.title
Exemplo n.º 12
0
class RespostaEdp(models.Model):

    edp = models.ForeignKey(Edp,
                            verbose_name='Edp',
                            related_name='respostas',
                            on_delete=models.CASCADE)
    video_embedded = EmbedVideoField(blank=True, null=True)
    texto = models.TextField('Texto', blank=True)
    video = models.FileField(upload_to='video/',
                             storage=upload_storage,
                             default="media/none.mp4")
    aprendiz = models.ForeignKey(settings.AUTH_USER_MODEL,
                                 verbose_name='aluno',
                                 related_name='respostaAluno',
                                 on_delete=models.CASCADE)
    # aprendiz = models.ForeignKey(Student, verbose_name='aprendiz ', related_name='respostaAprendiz', on_delete=models.CASCADE)

    created_at = models.DateTimeField('Criado em', auto_now_add=True)
    updated_at = models.DateTimeField('Atualizado em', auto_now=True)

    def __str__(self):
        return self.edp.titulo + " - " + self.aprendiz.username

    def iniciar(self):
        self.save()

    @models.permalink
    def get_absolute_url(self):
        return ('edp:detalhe_edp_resposta', (), {'slug': self.slug})

    class Meta:
        verbose_name = 'Resposta Estrutura Digital de Aprendizagem'
        verbose_name_plural = 'Resposta Estrutura Digital de Aprendizagem'
        ordering = ['-created_at']
Exemplo n.º 13
0
class Product(TranslatableModel):
    translations = TranslatedFields(
        name=models.CharField(max_length=200, db_index=True),
        slug=models.SlugField(max_length=200, db_index=True),
        body=models.TextField(blank=True),
        anecdot=models.TextField(blank=True)
    )
    category = models.ForeignKey(Category, related_name='products')
    video = EmbedVideoField()
    image = models.ImageField(upload_to='products/%Y/%m/%d',
                              blank=True)
    alt_image = models.CharField(max_length=250)

    price = models.DecimalField(max_digits=10, decimal_places=2)
    stock = models.PositiveIntegerField()
    available = models.BooleanField(default=True)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

    class Meta:
        ordering = ('-created',)
        #index_together = (('id', 'slug'),)

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse('shop:product_detail',
                       args=[self.id, self.slug])
Exemplo n.º 14
0
class Header_navbar(models.Model):
    logo = models.ImageField()
    color = ColorField(default='#ffffff')
    hover_color = ColorField(default='#ffffff')
    background_color = ColorField(default='#ffffff')
    background_image = models.ImageField()
    sort_title = models.CharField(max_length=150)
    sort_Discriptioin = models.CharField(max_length=240)
    video_link = EmbedVideoField()  # same like models.URLField()
    phone = PhoneNumberField()
    facebook = models.URLField(blank=True, null=True)
    instagram = models.URLField(blank=True, null=True)
    twitter = models.URLField(blank=True, null=True)
    linkedin = models.URLField(blank=True, null=True)
    Create = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

    def image_tag(self):
        from django.utils.html import mark_safe
        return mark_safe('<img src="%s" width="180px" height="55px" />' %
                         (self.logo.url))

    image_tag.short_description = 'Image'

    def __str__(self):
        return self.sort_title
Exemplo n.º 15
0
class AbstractEmbedVideo(CollectionMember, index.Indexed, models.Model):
    title = models.CharField(max_length=255, verbose_name=_('Title'))
    url = EmbedVideoField()
    thumbnail = models.ForeignKey(image_model_name,
                                  verbose_name=_('Thumbnail'),
                                  null=True,
                                  blank=True,
                                  on_delete=models.SET_NULL,
                                  related_name='+')
    created_at = models.DateTimeField(auto_now_add=True,
                                      verbose_name=_('Created'))
    uploaded_by_user = models.ForeignKey(settings.AUTH_USER_MODEL,
                                         null=True,
                                         blank=True,
                                         editable=False,
                                         verbose_name=_('Uploader'))

    tags = TaggableManager(help_text=None, blank=True, verbose_name=_('Tags'))

    def get_usage(self):
        return get_object_usage(self)

    @property
    def usage_url(self):
        return reverse('wagtail_embed_videos:video_usage', args=(self.id, ))

    search_fields = CollectionMember.search_fields + [
        index.SearchField('title', partial_match=True, boost=10),
        index.RelatedFields('tags', [
            index.SearchField('name', partial_match=True, boost=10),
        ]),
        index.FilterField('uploaded_by_user'),
    ]

    def __str__(self):
        return self.title

    def __init__(self, *args, **kwargs):

        super(AbstractEmbedVideo, self).__init__(*args, **kwargs)
        if args:
            if args[3] is None:
                create_thumbnail(self)

    def save(self, *args, **kwargs):
        super(AbstractEmbedVideo, self).save(*args, **kwargs)
        if not self.thumbnail:
            create_thumbnail(self)

    @property
    def default_alt_text(self):
        return self.title

    def is_editable_by_user(self, user):
        from .permissions import permission_policy
        return permission_policy.user_has_permission_for_instance(
            user, 'change', self)

    class Meta:
        abstract = True
Exemplo n.º 16
0
class Visit(models.Model):
    Place_Name = models.CharField(max_length=100, blank=True)
    Images = models.ImageField(upload_to='visit/', null=True, blank=True)
    video = EmbedVideoField(verbose_name="My video",
                            help_text="This is a help text",
                            blank=True)
    Description = models.CharField(max_length=100, blank=True)
Exemplo n.º 17
0
class Item(models.Model):
    video = EmbedVideoField()  # same like models.URLField()
    title = models.CharField(max_length=200)
    text = models.TextField()

    def __str__(self):
        return self.title
Exemplo n.º 18
0
class Project(TimedModel, AuthoredModel, SluggedModel):
    # Content
    name = models.CharField(max_length=100, blank=False)
    content = models.TextField(blank=False)
    image = models.ImageField(upload_to='trainingbits', blank=True)
    link_title = models.CharField(max_length=100, blank=True)
    link_url = models.URLField(blank=True)
    video = EmbedVideoField(blank=True, null=True)

    # Relations
    trainingbit = models.ForeignKey(TrainingBit, blank=False)
    likes = generic.GenericRelation(Like)

    # Flags
    is_public = models.BooleanField(default=True)
    is_flagged = models.BooleanField(default=False)
    is_deleted = models.BooleanField(default=False)

    # def getImage(self):
    #     if self.image:
    #         return self.image.url
    #     else:
    #         return ''

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        # return reverse('skills:trainingbit_view', args=[self.trainingbit.id]) + \
        #        '#project-%u' % self.id
        return reverse('skills:project_view', kwargs={'slug': self.slug})

    def root_comments(self, exclude_deleted=True):
        return self.comment_set.filter(parent=None).exclude(is_deleted=True)
Exemplo n.º 19
0
class Blog(models.Model):
    article_title = models.CharField(max_length=60, verbose_name='Заголовок')
    article_text = RichTextUploadingField(verbose_name='Текст статьи')
    short_text = models.TextField(verbose_name='Краткое описание')
    # можно нафик убрать время или вообще всё
    article_date = models.DateTimeField(verbose_name="Дата и время")
    # можно убрать нафик
    is_active = models.BooleanField(default=True)
    # goals_2 = models.TextField(null=True, blank=True, verbose_name='Цели 2')
    # article_likes = models.IntegerField(default=0)
    # article_image = models.ImageField(null=True, blank=True, upload_to="images/",
    #                                   verbose_name=u'Изображение', )
    video = EmbedVideoField(
        null=True,
        blank=True,
        verbose_name=u'Видео',
    )

    def __str__(self):
        return self.article_title

    # def bit(self):
    #     if self.article_image:
    #         return u'<img src="%s" width="70"/>' % self.article_image.url
    #     else:
    #         return u'(none)'
    #
    # bit.short_descriptio = u'Изображение'
    # bit.allow_tags = True
    class Meta():
        db_table = "blog"
        verbose_name = 'статьи'
        verbose_name_plural = 'статьи'
        ordering = ['-article_date']
Exemplo n.º 20
0
class Project(models.Model):
    title = models.CharField(max_length=200)
    content = HTMLField(blank=True, null=True)
    timestamp = models.DateTimeField(auto_now_add=True)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    video = EmbedVideoField(blank=True,
                            null=True)  # same like models.URLField()
    image = models.ImageField(blank=True, null=True)
    previous_post = models.ForeignKey('self',
                                      related_name='previous',
                                      on_delete=models.SET_NULL,
                                      blank=True,
                                      null=True)
    next_post = models.ForeignKey('self',
                                  related_name='next',
                                  on_delete=models.SET_NULL,
                                  blank=True,
                                  null=True)

    def __str__(self):
        return self.title

    def get_update_url(self):
        return reverse('project-update', kwargs={'id': self.id})

    def get_delete_url(self):
        return reverse('project-delete', kwargs={'id': self.id})

    def get_absolute_url(self):
        return reverse('project-detail', kwargs={'id': self.id})
Exemplo n.º 21
0
class Video(models.Model):
    class Meta:
        verbose_name_plural = 'Videos'
        ordering = ['-video_added']

    video_category = models.ForeignKey(VideoCategory,
                                       null=True,
                                       blank=True,
                                       on_delete=models.SET_NULL)
    video_image_thumbnail = models.ImageField(
        blank=True, upload_to='video_category_images/image_thumbnails')
    video_name = models.CharField(max_length=30)
    video_description = models.CharField(max_length=255)
    video_URL = EmbedVideoField()
    is_free_video = models.BooleanField(default=False)
    video_added = models.DateTimeField(auto_now_add=True)
    pinned = models.BooleanField(default=False)

    def __str__(self):
        return str(self.video_name)

    def delete(self, *args, **kwargs):
        self.video_image_thumbnail.delete()
        super().delete(*args, **kwargs)

    def pin(self):
        self.pinned = True
        self.save()

    def unpin(self):
        self.pinned = False
        self.save()
Exemplo n.º 22
0
class Media(models.Model):
    title = models.CharField(max_length=200)
    video = EmbedVideoField(blank=True, null=True, verbose_name="YouTube and Vimeo URL's supported")
    link = models.URLField(blank=True, null=True, verbose_name="If the video is not YouTube or Vimeo")
    image = models.ImageField(upload_to='media_thumbs/', blank=True, null=True, verbose_name="Thumbnail")
    def __str__(self):
        return self.title
Exemplo n.º 23
0
class Rlink_upload(models.Model):
    title=models.CharField(max_length=40)
    subject=models.CharField(max_length=20)
    std=models.IntegerField()
    sec=models.CharField(max_length=1)
    #url=models.URLField()  #EmbedVideoField
    url=EmbedVideoField()
Exemplo n.º 24
0
class VideoPembelajaran(models.Model):
    materi = models.CharField(max_length=40)
    link = EmbedVideoField()
    date = models.DateField(auto_now_add=True)

    def __str__(self):
        return "{}".format(self.materi)
Exemplo n.º 25
0
class Workout(models.Model):
    program = models.ManyToManyField(Program, related_name='programs')
    name = models.CharField(null=False, blank=False, max_length=200)
    type = models.CharField(null=False,
                            blank=False,
                            max_length=200,
                            default='Кардіо')
    group = models.CharField(null=False,
                             blank=False,
                             max_length=200,
                             default='Руки')
    equipment = models.CharField(null=False,
                                 blank=False,
                                 max_length=200,
                                 default='Немає')
    description = models.TextField(null=False, blank=True)
    instructions = models.TextField(null=False,
                                    blank=False,
                                    default='instructions')
    availability = models.BooleanField()
    img = models.ImageField(default='no_image.jpg',
                            upload_to="static/img/",
                            null=False,
                            blank=True)
    video = EmbedVideoField(blank=True, verbose_name='Відео')

    def approved_comments(self):
        return self.comments.filter(approved_comment=True)

    def __str__(self):
        return self.name
Exemplo n.º 26
0
class video(models.Model):
    name= models.CharField(max_length=500)
    videolink=EmbedVideoField(blank=True)
    text=models.TextField(blank=True)

    def __str__(self):
        return self.name
class Item(models.Model):
    title = models.CharField(max_length=100, blank=False, default=" ")
    video = EmbedVideoField()
    description = models.TextField(max_length=700, blank=False, default=" ")

    def __str__(self):
        return self.title
Exemplo n.º 28
0
class Song(models.Model):
    artist = models.CharField(max_length=50)
    song_name = models.CharField(max_length=100, unique=True)
    feat_artist = models.CharField(max_length=50, blank=True)
    tags = models.ManyToManyField('Tag', blank=True)
    video = EmbedVideoField(unique=True)
    video_id = models.CharField(max_length=20, blank=True)
    post = models.OneToOneField(Post, on_delete=models.CASCADE, blank=True)
    added_by = models.ForeignKey(settings.AUTH_USER_MODEL,
                                 on_delete=models.CASCADE)
    lyrics = models.TextField(blank=True)
    image = models.ImageField(upload_to="song_images/", blank=True)

    class Meta:
        unique_together = (
            'artist',
            'song_name',
        )

    def _get_full_name(self):
        if self.feat_artist:
            return '{} - {} (Ft. {})'.format(self.artist, self.song_name,
                                             self.feat_artist)

        return '{} - {}'.format(self.artist, self.song_name)

    def set_lyrics(self, song, artist):
        self.lyrics = fetch_lyrics(song, artist)
        return self.lyrics

    def grep_video_id(self):
        if not self.video_id:
            import re
            idRegex = re.compile(r'(?<=\?v=).{11}')
            self.video_id = idRegex.search(self.video).group()
        return self.video_id

    def set_image(self, video_id):
        f, fn = retrieve_thumbnail(video_id)
        self.image.save(fn, f, save=False)

    full_name = property(_get_full_name)

    def __str__(self):
        return self.full_name

    def save(self, *args, **kwargs):
        if not self.pk:
            self.set_lyrics(self.song_name, self.artist)
            self.set_image(self.grep_video_id())
            self.post = Post.objects.create(
                feed=Feed.objects.get(title='Music'),
                title=self.full_name,
                author=self.added_by,
                description=self.lyrics,
                image=self.image,
                is_song=True)
        super(Song, self).save(*args, **kwargs)
        self.post.tags = self.tags.all()
        self.post.save()
Exemplo n.º 29
0
class Course(models.Model):
    owner = models.ForeignKey(User,
                              related_name='courses_created',
                              on_delete=models.CASCADE,
                              blank=True,
                              null=True)
    name = models.CharField(max_length=100, default="Course_name")
    tag_line = models.CharField(max_length=500, blank=True)
    title_tag = models.CharField(max_length=500, blank=True)
    course_duration = models.CharField(max_length=20, blank=True)
    selling_price_dolor = models.IntegerField(blank=True)
    orignal_price_dolor = models.IntegerField(blank=True)
    price = models.IntegerField(blank=True)
    orignal_price_rupees = models.IntegerField(blank=True)
    selling_price_dirham = models.IntegerField(blank=True)
    orignal_price_dirham = models.IntegerField(blank=True)
    brif_summery = tinymce_models.HTMLField()
    created = models.DateTimeField(auto_now_add=True)
    course_content = tinymce_models.HTMLField()
    course_objective = tinymce_models.HTMLField()
    course_aims = tinymce_models.HTMLField()
    course_outcomes = tinymce_models.HTMLField()
    teaching = tinymce_models.HTMLField()
    sample_certificate = models.ImageField(upload_to='certificate/')
    posting_date = models.DateTimeField(default=datetime.now, blank=True)
    description_video = EmbedVideoField(blank=True)
    image = models.ImageField(upload_to='course/')
    is_published = models.BooleanField(default=True)
    is_popluar = models.BooleanField(default=False)
    is_featured = models.BooleanField(default=False)
    banner = models.ImageField(upload_to='banner/')

    def __str__(self):
        return self.name
Exemplo n.º 30
0
class MicroLearning(MicroLearningVideoMixin, TimeStampedModel):
    typeform_url = models.CharField(max_length=200, blank=False)
    description = models.TextField(blank=True, null=True)
    video = EmbedVideoField(blank=True, null=True)
    step_stream = models.OneToOneField(
        'project.StepStream',
        on_delete=models.CASCADE,
        related_name='microlearning',
    )

    objects = MicroLearningManager()

    def __str__(self):
        return '{} - {}'.format(self.typeform_url, self.step_stream)

    @property
    def step(self):
        return self.step_stream.step

    @property
    def project(self):
        return self.step.project

    def user_can_fill(self, user):
        user_in_project = has_project_perms(
            self.project, settings.PROJECT_PERMS_VIEW_PROJECT, user)
        return user_in_project