Exemple #1
0
 def clean_suffix(self):
     valid = get_valid_filename(self.cleaned_data['suffix'])
     if valid != self.cleaned_data['suffix']:
         raise forms.ValidationError(
             _('Suffix should be a valid, simple and lowercase filename part, like "%(valid)s".'
               ) % {'valid': valid})
     return self.cleaned_data['suffix']
 def get_logical_path(self):
     '''returns logical path like /directory/file.jpg'''
     folders = [f.quoted_logical_path
                for f in self.logical_path
                if hasattr(f, 'quoted_logical_path')]
     return os.path.join('/'.join(folders),
                         get_valid_filename(self.original_filename))
def year_month(instance, filename):
    """
    yyyy-mm/filename.jpg
    """
    foldername = datetime.date.today().strftime('%Y-%m')
    filename = get_valid_filename(filename)
    return os.path.join(foldername, filename)
Exemple #4
0
 def get_logical_path(self):
     '''returns logical path like /directory/file.jpg'''
     folders = [
         f.quoted_logical_path for f in self.logical_path
         if hasattr(f, 'quoted_logical_path')
     ]
     return os.path.join('/'.join(folders),
                         get_valid_filename(self.original_filename))
def no_subfolders(instance, filename):
    """
    for the minimalist
    attention, in case of filename collisions, files might get renamed to
    "originalname_huievad676asd.ext", which is automatically done by the
    django storage backend
    """
    return get_valid_filename(filename)
def very_short_uuid4(instance, filename):
    """
    very short (2chars) uuid4 path and the filename
    https://stackoverflow.com/a/13484764/1029469
    at most about 1100 folders will be created, and files distributed within
    """
    filename = get_valid_filename(filename)
    return os.path.join(str(uuid.uuid4())[:2], filename)
def short_uuid4(instance, filename):
    """
    short (8chars) uuid4 path and the filename
    https://stackoverflow.com/a/13484764/1029469
    should be safe enough for most cases
    """
    filename = get_valid_filename(filename)
    return os.path.join(str(uuid.uuid4())[:8], filename)
def db_folder(instance, filename):
    """
    tries to get the db folder's name, and use this.
    """
    foldername = ''
    if instance.folder:
        foldername = slugify(instance.folder.name)
    filename = get_valid_filename(filename)
    return os.path.join(foldername, filename)
def complete_db_folder(instance, filename):
    """
    get the db folder's name, it's parents, it's parents. etc.
    """

    foldername = ''
    if instance.folder:
        folder = instance.folder
        foldername = slugify(instance.folder.name)
        while folder.parent:
            foldername = os.path.join(slugify(folder.parent.name), foldername)
            folder = folder.parent
    filename = get_valid_filename(filename)
    return os.path.join(foldername, filename)
Exemple #10
0
def generate_filename_by_folder(instance, filename):
    filename = instance.name or filename
    folder_part = ''
    folders = []
    folder = instance.folder
    if folder:
        while folder:
            folders.append(folder.name)
            folder = folder.parent
        folders.reverse()
        folder_part = '/'.join(folders)
        
        # check file for sub folder storage - [ image or video ]
        # file_type = filename.split('.')[1]
        # if file_type in ['dv', 'mov', 'mp4', 'avi', 'ywmv',]:
        #     folder_part = folder_part +'/videos'
        # else:
        #     folder_part = folder_part +'/images'
            
    return os.path.join(folder_part, get_valid_filename(filename))
Exemple #11
0
def by_pca(instance, filename):

    if hasattr(instance, 'pcafile_set'):

        pca_file = instance.pcafile_set.all()

        if pca_file.count():

            pca_file = pca_file[0]
            partner = pca_file.pca.partner.name
            pca_number = pca_file.pca.number
            file_type = pca_file.type

            file_path = u'{partner}/{pca}/{type}'.format(partner=partner,
                                                         pca=pca_number,
                                                         type=file_type)

            file_name = get_valid_filename(instance.name)

            return os.path.join(file_path, file_name)

    return by_date(instance, filename)
Exemple #12
0
def by_pca(instance, filename):

    if hasattr(instance, 'pcafile_set'):

        pca_file = instance.pcafile_set.all()

        if pca_file.count():

            pca_file = pca_file[0]
            partner = pca_file.pca.partner.name
            pca_number = pca_file.pca.number
            file_type = pca_file.type

            file_path = u'{partner}/{pca}/{type}'.format(
                partner=partner,
                pca=pca_number,
                type=file_type
            )

            file_name = get_valid_filename(instance.name)

            return os.path.join(file_path, file_name)

    return by_date(instance, filename)
def by_date(instance, filename):
    datepart = force_text(now().strftime("%Y/%m/%d"))
    return os.path.join(datepart, get_valid_filename(filename))
Exemple #14
0
def randomized(instance, filename):
    import uuid
    uuid_str = str(uuid.uuid4())
    return os.path.join(uuid_str[0:2], uuid_str[2:4], uuid_str,
            get_valid_filename(filename))
Exemple #15
0
def by_date(instance, filename):
    datepart = force_text(now().strftime("%Y/%m/%d"))
    return os.path.join(datepart, get_valid_filename(filename))
Exemple #16
0
 def by_date(self, filename):
     datepart = force_unicode(datetime.datetime.now().strftime("/%Y/%m/%d/%H/%M"))
     return os.path.join(datepart, get_valid_filename(filename))
def randomized(instance, filename):
    import uuid
    uuid_str = str(uuid.uuid4())
    random_path = u"%s/%s/%s" % (uuid_str[0:2], uuid_str[2:4], uuid_str)
    return os.path.join(random_path, get_valid_filename(filename))
Exemple #18
0
def by_date(instance, filename):
    datepart = force_unicode(datetime.datetime.now().strftime(
        smart_str("%Y/%m/%d")))
    return os.path.join(datepart, get_valid_filename(filename))
Exemple #19
0
def filer_namer(_inst, filename):
    """ Organize files into folders based on year only """
    return os.path.join("{}".format(date.today().year - 2000), get_valid_filename(filename))
    def get_logical_path(self):
        '''returns logical path like /directory/file.jpg'''

        return os.path.join(self.folder.quoted_logical_path if self.folder else '',
                            get_valid_filename(self.original_filename))
def by_date(instance, filename):
    datepart = force_unicode(datetime.datetime.now().strftime(smart_str("%Y/%m/%d")))
    return os.path.join(datepart, get_valid_filename(filename))
    def get_logical_path(self):
        '''returns logical path like /directory/file.jpg'''

        return os.path.join(
            self.folder.quoted_logical_path if self.folder else '',
            get_valid_filename(self.original_filename))
Exemple #23
0
 def clean_suffix(self):
     valid = get_valid_filename(self.cleaned_data['suffix'])
     if valid != self.cleaned_data['suffix']:
         raise forms.ValidationError(_('Suffix should be a valid, simple and lowercase filename part, like "%(valid)s".') % {'valid': valid})
     return self.cleaned_data['suffix']
 def get_logical_path(self):
     """returns logical path like /directory/file.jpg"""
     folders = [f.quoted_logical_path for f in self.logical_path if hasattr(f, "quoted_logical_path")]
     return os.path.join("/".join(folders), get_valid_filename(self.original_filename))