Ejemplo n.º 1
0
class FilerHTML5Video(CMSPlugin):
    # player settings
    
    title = models.CharField(_('title'), blank=True, default='', max_length=100)
    
    video_mp4  = FilerFileField(verbose_name=_('movie file (MP4[H.264)'), help_text=_('MP4 encoded video file (Android3+, Chrome3+, Firefox26+, IE9+, iOS3+, Safari3.1+)'), blank=True, null=True, related_name='+')
    video_webm = FilerFileField(verbose_name=_('movie file (webM[VP8])'), help_text=_('webM encoded video file (Android2.3+, Chrome6+, Firefox3.5+, Opera 10.60+)'), blank=True, null=True, related_name='+')
    video_ogv = FilerFileField(verbose_name=_('movie file (ogv[Theora])'), help_text=_('ogv encoded video file (Android2.3+, Chrome3+, Firefox4+, Opera 10.50+ )'), blank=True, null=True, related_name='+')
    image = FilerImageField(verbose_name=_('image'), help_text=_('preview image file'), null=True, blank=True, related_name='+')

    width = models.PositiveSmallIntegerField(_('width'), default=plugin_settings.VIDEO_WIDTH)
    height = models.PositiveSmallIntegerField(_('height'), default=plugin_settings.VIDEO_HEIGHT)

    auto_play = models.BooleanField(_('auto play'), default=plugin_settings.VIDEO_AUTOPLAY)
    auto_hide = models.BooleanField(_('auto hide'), default=plugin_settings.VIDEO_AUTOHIDE)
    fullscreen = models.BooleanField(_('fullscreen'), default=plugin_settings.VIDEO_FULLSCREEN)
    loop = models.BooleanField(_('loop'), default=plugin_settings.VIDEO_LOOP)


    def __unicode__(self):
        return u"%s" % self.title

    def get_height(self):
        return "%s" % self.height

    def get_width(self):
        return "%s" % self.width
Ejemplo n.º 2
0
class VideojsModel(CMSPlugin):
    # player settings

    title = models.CharField(_('title'),
                             blank=True,
                             default='',
                             max_length=100)

    video_mp4 = FilerFileField(
        verbose_name=_('movie file (MP4)'),
        help_text=_('MP4 h264 encoded video file (Safari, Chrome, IE9)'),
        blank=True,
        null=True,
        related_name='+')
    video_webm = FilerFileField(
        verbose_name=_('movie file (webM)'),
        help_text=_('webM encoded video file (Firefox)'),
        blank=True,
        null=True,
        related_name='+')
    video_ogv = FilerFileField(verbose_name=_('movie file (ogv)'),
                               help_text=_('ogv encoded video file (Firefox)'),
                               blank=True,
                               null=True,
                               related_name='+')
    image = FilerImageField(verbose_name=_('image'),
                            help_text=_('preview image file'),
                            null=True,
                            blank=True,
                            related_name='+')

    width = models.PositiveSmallIntegerField(
        _('width'), default=plugin_settings.VIDEO_WIDTH)
    height = models.PositiveSmallIntegerField(
        _('height'), default=plugin_settings.VIDEO_HEIGHT)

    auto_play = models.BooleanField(_('auto play'),
                                    default=plugin_settings.VIDEO_AUTOPLAY)
    auto_hide = models.BooleanField(_('auto hide'),
                                    default=plugin_settings.VIDEO_AUTOHIDE)
    fullscreen = models.BooleanField(_('fullscreen'),
                                     default=plugin_settings.VIDEO_FULLSCREEN)
    loop = models.BooleanField(_('loop'), default=plugin_settings.VIDEO_LOOP)
    muted = models.BooleanField(_('muted'),
                                default=plugin_settings.VIDEO_MUTED)
    _icon = "video"

    def __unicode__(self):
        return u"%s" % self.title

    def get_height(self):
        return "%s" % self.height

    def get_width(self):
        return "%s" % self.width
Ejemplo n.º 3
0
class Piece(models.Model):
    title = models.CharField(max_length=255)
    logo = FilerImageField(null=True, blank=True, on_delete=models.SET_NULL, related_name="piecelogo")
    pdf  = FilerFileField(null=True, blank=True, on_delete=models.SET_NULL, related_name="piecepdf")
    mp3  = FilerFileField(null=True, blank=True, on_delete=models.SET_NULL, related_name="piecelink")
    link = models.CharField(null=True, blank=True, max_length=255)
    class Meta:
        ordering = ('title',)
    class Meta:
        verbose_name = u'Partition'
        verbose_name_plural = u'Partitions'
    def __str__(self):
        return self.title
Ejemplo n.º 4
0
class BackgroundMedia(CMSPlugin):
    """
    Used to model the background media instance
    """
    name = models.CharField(_('name'), max_length=50)
    height = models.CharField(_('container height'), max_length=50, default="100%",
        help_text=_('Height in pixels or %'))
    add_style = models.BooleanField(_('add style'), default=True,
        help_text=_('Link default style sheet'))
    overlay = models.CharField(_('overlay'), max_length=25, blank=True, null=True,
        help_text=_('To add a css overlay enter the colour of the overlay, e.g. rgba(0,0,0,0.7)'))

    image = FilerImageField(verbose_name=_('image'), blank=True, null=True,
        related_name='image')
    image_position = models.CharField(_('image position'), max_length=50, default='center center',
        help_text=_('The css position of the image'))

    video_mp4 = FilerFileField(verbose_name=_('Video mp4'),
                               blank=True,
                               null=True,
                               related_name='video_mp4')
    video_ogv = FilerFileField(verbose_name=_('Video ogv'),
                               blank=True,
                               null=True,
                               related_name='video_ogv')
    video_webm = FilerFileField(verbose_name=_('Video webm'),
                                blank=True,
                                null=True,
                                related_name='video_webm')
    video_poster = FilerImageField(verbose_name=_('Video poster'),
                                   blank=True,
                                   null=True)
    vide_json_config = models.TextField(_('Vide.js config'),
                                        blank=True,
                                        null=True,
                                        help_text=_('The optional js object for the vide config. Click <a href="https://github.com/VodkaBears/Vide" target="_blank"> here</a> for more info.'))

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = _('Background Media')
        verbose_name_plural = _('Background Media')

    def clean(self):
        if self.image and self.has_video():
            raise ValidationError(_('You cannot have both a video and an image selected'))

    def has_video(self):
        return self.video_mp4 or self.video_ogv or self.video_webm
Ejemplo n.º 5
0
class FooterContent(models.Model):
    """Content of the footer section."""

    text = RichTextField(blank=True, null=True, verbose_name="Texte")
    terms = FilerFileField(blank=True, null=True, verbose_name="Conditions générales de ventes",
                           on_delete=models.SET_NULL, related_name="terms")
    legal_notice = FilerFileField(blank=True, null=True, verbose_name="Mentions légales",
                                  on_delete=models.SET_NULL, related_name="legal_notice")

    class Meta:
        verbose_name = "Contenu"

    def __str__(self):
        return self.text
Ejemplo n.º 6
0
class Attachment(models.Model):
    """
    Defines a generic file attachment for use in M2M relation with Task.
    """

    task = models.ForeignKey(Task, verbose_name=_('task'), on_delete=models.CASCADE)
    added_by = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=_('added by'), on_delete=models.CASCADE)
    created_at = models.DateTimeField(verbose_name=_('date'), default=now, editable=False)  # pai
    # pai
    # file = models.FileField(upload_to=get_attachment_upload_dir, max_length=255)
    file = models.FileField(storage=custom_fs,
                            upload_to=get_attachment_upload_dir,
                            max_length=255)

    filer_file = FilerFileField(null=True,
                                blank=True,
                                on_delete=models.SET_NULL)

    def filename(self):
        return os.path.basename(self.file.name)

    def extension(self):
        name, extension = os.path.splitext(self.file.name)
        return extension

    def __str__(self):
        return f"{self.task.id} - {self.file.name}"
Ejemplo n.º 7
0
class PDFViewer(CMSPlugin):
    """
    Plugin for storing and displaying a PDF wrapped in a PDF.js instance.
    """
    title = models.CharField(_('title'), max_length=255, null=True, blank=True)

    if FILER_INSTALLED and getattr(settings, 'PDFVIEWER_USE_FILER', False):
        pdf = FilerFileField(verbose_name=_('pdf'))
    else:
        pdf = models.FileField(_('pdf'), upload_to=CMSPlugin.get_media_path)

    def __str__(self):
        if self.title:
            return self.title
        elif self.pdf:
            return self.get_pdf_name()
        return _('<empty>')

    def file_exists(self):
        return os.path.exists(self.pdf.path)

    def get_pdf_name(self):
        return os.path.basename(self.pdf.name) or self.pdf.original_filename

    def get_ext(self):
        try:
            return self.pdf.extension
        except AttributeError:
            return os.path.splitext(self.get_pdf_name())[1][1:].lower()

    search_fields = ('title', )
Ejemplo n.º 8
0
class Post(models.Model):
    title = models.CharField(max_length=200, unique=True)
    slug = models.SlugField(max_length=200, unique=True)
    author = models.ForeignKey(User,
                               on_delete=models.SET_NULL,
                               null=True,
                               blank=True,
                               default=None,
                               related_name='blog_posts')
    updated_on = models.DateTimeField(auto_now=True)
    content = models.TextField(max_length=500)
    created_on = models.DateTimeField(auto_now_add=True)
    status = models.IntegerField(choices=STATUS, default=0)
    email = models.EmailField()
    logo = FilerImageField(null=True,
                           blank=True,
                           on_delete=models.SET_NULL,
                           related_name="postlogo")
    pdf = FilerFileField(null=True,
                         blank=True,
                         on_delete=models.SET_NULL,
                         related_name="postpdf")

    class Meta:
        ordering = ['-created_on']

    class Meta:
        verbose_name = u'Message'
        verbose_name_plural = u'Messages'

    def __str__(self):
        return self.title
Ejemplo n.º 9
0
class Line(models.Model):
    name = models.CharField(max_length=150, verbose_name="nom")
    number = models.CharField(max_length=10, default="", verbose_name="numéro")

    slug = AutoSlugField(populate_from='name', always_update=True)

    connection_info = RichTextField(null=True,
                                    blank=True,
                                    verbose_name="correspondance")

    prices = FilerFileField(null=True,
                            blank=True,
                            verbose_name="grilles tarifaires")

    carbon_footprint = models.CharField(max_length=40,
                                        default="0",
                                        verbose_name="émission carbone")

    def get_bus(self):
        bus_list = []
        for route in self.routes.all():
            for service in route.services.all():
                bus_list.extend(list(service.bus_set.all()))
        return set(bus_list)

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

    class Meta:
        verbose_name = "ligne"
Ejemplo n.º 10
0
class Bus(models.Model):
    name = models.CharField(max_length=64)
    slug = AutoSlugField(populate_from='name', always_update=True, unique=True)
    license_plate = models.CharField(max_length=20, null=True, blank=True)
    blueprint = FilerFileField(null=True, blank=True, on_delete=models.CASCADE)
    nb_seats = models.PositiveIntegerField(default=0)
    services = models.ManyToManyField(Service)
    picture = FilerImageField(null=True,
                              blank=True,
                              related_name="+",
                              on_delete=models.CASCADE)
    cover = FilerImageField(null=True, blank=True, related_name="+")
    gallery = FilerFolderField(null=True,
                               blank=True,
                               related_name="+",
                               on_delete=models.CASCADE)
    index_eco = models.PositiveIntegerField(default=0)
    description = RichTextField(blank=True, null=True)
    equipments = RichTextField(blank=True,
                               null=True,
                               config_name='only_bullet_point')
    confort = RichTextField(blank=True,
                            null=True,
                            config_name='only_bullet_point')
    security = RichTextField(blank=True,
                             null=True,
                             config_name='only_bullet_point')

    def get_absolute_url(self):
        return reverse("transportation-fleet-vehicule", args=[self.slug])
Ejemplo n.º 11
0
class PocketQuery(models.Model):
    name = models.CharField(max_length=250, blank=True, null=True)
    zip_file = FilerFileField(null=True, blank=True, on_delete=DO_NOTHING)
    geocaches = models.ForeignKey(GPXFile,
                                  blank=True,
                                  null=True,
                                  on_delete=DO_NOTHING,
                                  related_name="geocaches")
    waypoints = models.ForeignKey(GPXFile,
                                  blank=True,
                                  null=True,
                                  on_delete=DO_NOTHING,
                                  related_name="waypoints")
    updated_last_on = models.DateTimeField(auto_now=True,
                                           blank=True,
                                           editable=False,
                                           name='Last Updated')
    updated_by = models.ForeignKey(settings.AUTH_USER_MODEL,
                                   default=None,
                                   blank=True,
                                   null=True,
                                   on_delete=DO_NOTHING)

    def __str__(self):

        return self.name
Ejemplo n.º 12
0
class PostmanTest(OrderedModel):
    order_with_respect_to = 'test_scenario'
    test_scenario = models.ForeignKey(TestScenario, on_delete=models.CASCADE)
    validation_file = FilerFileField(null=True, default=None, on_delete=models.SET_NULL)

    def __str__(self):
        return '{} {}'.format(self.test_scenario, self.validation_file)
Ejemplo n.º 13
0
class BackgroundModel(CMSPlugin):
    # player settings
    b_id = models.IntegerField('Background UUID', primary_key=True),
    title = models.CharField(_('title'),
                             blank=True,
                             default='',
                             max_length=100)

    backgrounds_mp4 = FilerFileField(
        verbose_name=_('movie file (MP4)'),
        help_text=_('MP4 h264 encoded backgrounds file (Safari, Chrome, IE9)'),
        blank=True,
        null=True,
        related_name='+')
    image = FilerImageField(verbose_name=_('image'),
                            help_text=_('preview image file'),
                            null=True,
                            blank=True,
                            related_name='+')

    loop = models.BooleanField(_('loop'),
                               default=plugin_settings.BACKGROUNDS_LOOP)
    muted = models.BooleanField(_('muted'),
                                default=plugin_settings.BACKGROUNDS_MUTED)

    def __unicode__(self):
        return u"%s" % self.title

    def get_image(self):
        return u"%s" % self.image.url
Ejemplo n.º 14
0
class Attachment(models.Model):
    """
    Attachments for lessons
    """
    title = models.TextField('Titel', max_length=150)
    attached_file = FilerFileField(related_name='attached_file',
                                   null=True,
                                   blank=True,
                                   on_delete=models.CASCADE,
                                   verbose_name="Datei")
    lesson = models.ForeignKey(Lesson,
                               on_delete=models.CASCADE,
                               verbose_name="Lektion")

    # pylint: disable=R0903
    class Meta:
        """
        Meta information about Attachment
        """
        verbose_name = 'Lektionsanhang'
        verbose_name_plural = 'Lektionsanhänge'

    def __str__(self):
        # pylint: disable=E1101
        return self.title + " | " + self.lesson.title
Ejemplo n.º 15
0
class Portaria(models.Model):

    TIPOS = (
        ('permanencia', 'Abono Permanência'),
        ('insalubridade', 'Adicional de Insalubridade'),
        ('capacitacao', 'Capacitação'),
        ('comissao', 'Comissão'),
        ('designacao', 'Designação'),
        ('dispensa', 'Dispensa'),
        ('lotacao', 'Lotação'),
        ('progressao', 'Progressão'),
        ('remocao', 'Remoção'),
        ('retificacao', 'Retificação'),
        ('substituicao', 'Substituição'),
    )
    codigo = models.IntegerField('Código', unique_for_year="data")
    data = models.DateField()
    tipo = models.CharField(choices=TIPOS, max_length=100)
    interessados = models.ManyToManyField(Servidor)
    responsavel = models.ForeignKey(User, verbose_name="Responsável")
    arquivo = FilerFileField(blank=True, null=True)
    ativa = models.BooleanField(default=True)

    def __unicode__(self):
        return u'%s/%s' % (self.codigo, self.data.year)
Ejemplo n.º 16
0
class TitleMeta(TitleExtension):
    image = FilerFileField(
        null=True,
        blank=True,
        related_name="djangocms_page_meta_title",
        help_text=_(u'If empty, page image will be used for all languages.'))
    keywords = models.CharField(max_length=400, default='', blank=True)
    description = models.CharField(max_length=400, default='', blank=True)
    og_description = models.CharField(_(u'Facebook Description'),
                                      max_length=400,
                                      default='',
                                      blank=True)
    twitter_description = models.CharField(_(u'Twitter Description'),
                                           max_length=140,
                                           default='',
                                           blank=True)
    gplus_description = models.CharField(_(u'Google+ Description'),
                                         max_length=400,
                                         default='',
                                         blank=True)

    @property
    def locale(self):
        if self.extended_object.language.find("_") > -1:
            return self.extended_object.language
        else:
            return None

    class Meta:
        verbose_name = _(u'Page meta info (language-dependent)')
Ejemplo n.º 17
0
class VideoBack(models.Model):
    title = models.CharField('title',
                             blank=True,
                             default='My Background Video',
                             max_length=100)
    bvmp4 = FilerFileField(
        verbose_name='movie file (MP4)',
        help_text='MP4 h264 encoded backgrounds file (Safari, Chrome, IE9)',
        blank=False,
        null=False,
        related_name='+')
    image = FilerImageField(verbose_name='image',
                            help_text='preview image file',
                            null=False,
                            blank=False,
                            related_name='+')

    loop = models.BooleanField('loop', default=True)
    muted = models.BooleanField('muted', default=True)
    active = models.BooleanField('active', default=False)

    def __str__(self):
        return u"%s" % self.title

    def get_image(self):
        return u"%s" % self.image.url

    def get_absolute_url(self):
        return reverse('video_back:detail', kwargs={'pk': self.pk})
Ejemplo n.º 18
0
class FilerFileItem(ContentItem):

    file = FilerFileField(verbose_name=_("file"))
    name = models.CharField(_("name"), max_length=255, null=True, blank=True)

    target = models.CharField(_("target"),
                              blank=True,
                              max_length=100,
                              choices=((
                                  ("", _("same window")),
                                  ("_blank", _("new window")),
                                  ("_parent", _("parent window")),
                                  ("_top", _("topmost frame")),
                              )),
                              default='')

    class Meta:
        verbose_name = _("File")
        verbose_name_plural = _("Files")

    @property
    def filename(self):
        if self.file.name in ('', None):
            return self.file.original_filename
        return self.file.name

    def __str__(self):
        if self.name:
            return self.name
        elif self.file:
            return str(self.filename)
        return "<empty>"
Ejemplo n.º 19
0
class KnowledgeAttachment(models.Model):  # pylint: disable=R0903
    """
    Attachments for lessons
    """
    title = models.CharField('Titel', max_length=150)
    attached_file = FilerFileField(related_name='knowledge_file',
                                   null=True,
                                   blank=True,
                                   on_delete=models.CASCADE,
                                   verbose_name="Datei")
    knowledge_article = models.ForeignKey(KnowledgeArticle,
                                          on_delete=models.CASCADE,
                                          verbose_name="Wissen-Artikel",
                                          related_name='attachments')

    # pylint: disable=R0903
    class Meta:
        """
        Meta information about Attachment
        """
        verbose_name = 'Wissens-Artikel-Anhang'
        verbose_name_plural = 'Wissens-Artikel-Anhänge'

    def __str__(self):
        # pylint: disable=E1101
        return self.title + " | " + self.knowledge_article.title
Ejemplo n.º 20
0
class PathLocationPlugin(CMSPlugin):
    route_planner = False

    cmsplugin_ptr = models.OneToOneField(
        CMSPlugin,
        related_name='%(app_label)s_%(class)s',
        parent_link=True,
        on_delete=models.CASCADE)

    path_file = FilerFileField(
        verbose_name=_('Path File (e.g. KML)'),
        related_name='+',
        on_delete=models.CASCADE,
    )

    def copy_relations(self, oldinstance):
        self.path_file = oldinstance.path_file

    def __str__(self):
        if self.path_file:
            return self.path_file.name
        return self.pk

    def get_location_data_for_map(self):
        if self.path_file:
            return self.path_file.url
Ejemplo n.º 21
0
class Migration(migrations.Migration):

    dependencies = [
        ('filer', '0009_auto_20171220_1635'),
    ]

    operations = [
        migrations.CreateModel(
            name='EntityFile',
            fields=[
                ('id',
                 models.AutoField(verbose_name='ID',
                                  serialize=False,
                                  auto_created=True,
                                  primary_key=True)),
                ('comments', models.TextField(blank=True)),
                ('topic', models.CharField(max_length=255)),
                ('created',
                 models.DateTimeField(default=django.utils.timezone.now)),
                ('owner',
                 models.ForeignKey(settings.AUTH_USER_MODEL,
                                   on_delete=models.SET_NULL)),
                ('uploaded_file',
                 FilerFileField(null=True,
                                blank=True,
                                related_name="entity_file",
                                on_delete=models.CASCADE)),
            ],
            options={},
            bases=(models.Model, ),
        ),
    ]
Ejemplo n.º 22
0
class FilerLinkPlugin(CMSPlugin):
    name = models.CharField(_('name'), max_length=255)
    url = models.CharField(_("url"), blank=True, null=True, max_length=255)
    page_link = PageField(
        verbose_name=_("page"),
        blank=True,
        null=True,
        help_text=_("A link to a page has priority over urls."))
    mailto = models.EmailField(
        _("mailto"),
        blank=True,
        null=True,
        help_text=_("An email address has priority over both pages and urls"))
    link_style = models.CharField(_("link style"),
                                  max_length=255,
                                  choices=LINK_STYLES,
                                  default=LINK_STYLES[0][0])
    new_window = models.BooleanField(
        _("new window?"),
        default=False,
        help_text=_("Do you want this link to open a new window?"))
    file = FilerFileField(blank=True, null=True)

    def __str__(self):
        return self.name
Ejemplo n.º 23
0
class VideoFiles(models.Model):
    album = models.ForeignKey(Album)
    name = models.CharField('Название видео', max_length=100)
    
    
    # player settings
    movie = FilerFileField(verbose_name=_('movie file'), help_text=_('use .flv file or h264 encoded video file'), blank=True, null=True)
    movie_url = models.CharField(_('movie url'), max_length=255, help_text=_('vimeo or youtube video url. Example: http://www.youtube.com/watch?v=YFa59lK-kpo'), blank=True, null=True)


    
    description = models.TextField('Описание', blank=True)
    add_date = models.DateTimeField('Дата добавления', auto_now_add=True)    #auto_now_add=False


    width = settings.VIDEO_WIDTH
    height = settings.VIDEO_HEIGHT
    



    def __unicode__(self):
        if self.movie:
            name = self.movie.path
        else:
            name = self.movie_url
        return u"%s" % basename(name)

    def get_height(self):
        return "%s" % (self.height)
    
    def get_width(self):
        return "%s" % (self.width)    
    
    def get_movie(self):
        if self.movie:
            return self.movie.url
        else:
            return self.movie_url


    class Meta:
        #name = ('event')
        verbose_name = ('Видео файл')
        verbose_name_plural = ('Видео файлы')
        ordering = ['add_date']


    

    def render_video(self):
        #return render_to_response('videos/video.html', self)
        
        #context = RequestContext(request, {
        #    "object": self
        #})
        
        context = {'object': self}
        
        return render_to_string('videos/video.html', context)   #
Ejemplo n.º 24
0
class BaseEntityFile(with_metaclass(deferred.ForeignKeyBuilder, models.Model)):
    """
    ENG: ManyToMany relation from the polymorphic Entity to a set of files.
    RUS: Связь многие-ко многим от полиморфной Сущности к файлам.
    """
    file = FilerFileField(verbose_name=_('File'))
    entity = deferred.ForeignKey('BaseEntity', verbose_name=_('Entity'))
    order = models.SmallIntegerField(default=0,
                                     blank=False,
                                     null=False,
                                     db_index=True)

    class Meta:
        """
        RUS: Метаданные класса.
        """
        abstract = True
        verbose_name = _("Entity File")
        verbose_name_plural = _("Entity Files")
        ordering = ('order', )
        unique_together = (('file', 'entity'), )

    def __str__(self):
        """
        RUS: Строковое представление данных.
        """
        return "{}".format(self.file)
Ejemplo n.º 25
0
class ConferenceDocument(models.Model):
    document = FilerFileField(
        null=True,
        blank=True,
        related_name="document_conference",
        on_delete=models.CASCADE,
    )
    conference = models.ForeignKey(Conference,
                                   on_delete=models.CASCADE,
                                   related_name="documents")

    @property
    def basename(self):
        try:
            return basename(self.document.file.name)
        except:
            return f"File not found"

    @property
    def url(self):
        return self.document.url

    @property
    def size(self):
        try:
            return self.document.file.size
        except:
            return f"File not found"
Ejemplo n.º 26
0
class FileBrowse(models.Model):
    document = FilerFileField(null=True,
                              blank=True,
                              verbose_name=u'Fichier selectionné')

    def __str__(self):
        return "%s" % self.document
Ejemplo n.º 27
0
class FakeLink(models.Model):
    """
    In our widget we need to manually render a AdminFileFormField. Basically for every other Field type this is not
    a problem at all, but Failer needs a rel attribute which consists of a reverse relationship. We fake it
    with this model.
    """
    fake_file = FilerFileField(blank=True, null=True, on_delete=models.CASCADE)
Ejemplo n.º 28
0
class ProductMedia(TranslatableModel):
    identifier = InternalIdentifierField()
    product = models.ForeignKey("Product", related_name="media")
    shops = models.ManyToManyField("Shop", related_name="product_media")
    kind = EnumIntegerField(
        ProductMediaKind, db_index=True, default=ProductMediaKind.GENERIC_FILE, verbose_name=_('kind')
    )
    file = FilerFileField(blank=True, null=True, verbose_name=_('file'))
    external_url = models.URLField(blank=True, null=True, verbose_name=u'URL')
    ordering = models.IntegerField(default=0)

    # Status
    enabled = models.BooleanField(db_index=True, default=True, verbose_name=_("enabled"))
    public = models.BooleanField(default=True, blank=True, verbose_name=_('public (shown on product page)'))
    purchased = models.BooleanField(
        default=False, blank=True, verbose_name=_('purchased (shown for finished purchases)')
    )

    translations = TranslatedFields(
        title=models.CharField(blank=True, max_length=128, verbose_name=_('title')),
        description=models.TextField(blank=True, verbose_name=_('description')),
    )

    class Meta:
        verbose_name = _('product attachment')
        verbose_name_plural = _('product attachments')
        ordering = ["ordering", ]

    def __str__(self):  # pragma: no cover
        return self.effective_title

    @property
    def effective_title(self):
        title = self.safe_translation_getter("title")
        if title:
            return title

        if self.file_id:
            return self.file.label

        if self.external_url:
            return self.external_url

        return _('attachment')

    @property
    def url(self):
        if not self.public:
            raise ValueError("`get_effective_url()` may not be used on non-public media")

        if self.file_id:
            return self.file.url
        else:
            return self.external_url

    @property
    def easy_thumbnails_thumbnailer(self):
        if self.file_id:
            return get_thumbnailer(self.file)
Ejemplo n.º 29
0
class PageMeta(PageExtension):
    image = FilerFileField(null=True,
                           blank=True,
                           related_name="djangocms_page_meta_page",
                           help_text=_(u'Used if title image is empty.'))
    og_type = models.CharField(_(u'Resource type'),
                               max_length=255,
                               choices=OG_TYPE_CHOICES,
                               help_text=_(u'Use Article for generic pages.'))
    og_author = models.ForeignKey(User,
                                  verbose_name=_(u'Author account'),
                                  null=True,
                                  blank=True)
    og_author_url = models.CharField(_(u'Author Facebook URL'),
                                     max_length=255,
                                     default='',
                                     blank=True)
    og_author_fbid = models.CharField(_(u'Author Facebook ID'),
                                      max_length=16,
                                      default='',
                                      blank=True,
                                      help_text=_(u'Use Facebook numeric ID.'))
    og_publisher = models.CharField(_(u'Website Facebook URL'),
                                    max_length=255,
                                    default='',
                                    blank=True)
    og_app_id = models.CharField(_(u'Facebook App ID'),
                                 max_length=255,
                                 default='',
                                 blank=True)
    twitter_author = models.CharField(_(u'Author Twitter Account'),
                                      max_length=255,
                                      default='',
                                      blank=True,
                                      help_text=_(u'"@" sign not required.'))
    twitter_site = models.CharField(_(u'Website Twitter Account'),
                                    max_length=255,
                                    default='',
                                    blank=True,
                                    help_text=_(u'"@" sign not required.'))
    twitter_type = models.CharField(_(u'Resource type'),
                                    max_length=255,
                                    choices=TWITTER_TYPE_CHOICES)
    gplus_author = models.CharField(
        _(u'Author Google+ URL'),
        max_length=255,
        default='',
        blank=True,
        help_text=
        _(u'Use the Google+ Name (together with "+") or the complete path to the page.'
          ))
    gplus_type = models.CharField(
        _(u'Resource type'),
        max_length=255,
        choices=GPLUS_TYPE_CHOICES,
        help_text=_(u'Use Article for generic pages.'))

    class Meta:
        verbose_name = _(u'Page meta info (all languages)')
Ejemplo n.º 30
0
class NotificationAttachment(models.Model):
    notification = models.ForeignKey(Notification)
    attachment = FilerFileField(null=True,
                                blank=True,
                                related_name='email_attachment')

    class Meta:
        app_label = 'shop'