Source code for erecord_slm.models_mixins

# -*- coding: UTF-8 -*-
"""erecord_slm.models_mixins

Mixins for erecord_slm model

"""

import os
import datetime

from erecord_cmn.utils.dir_and_file import get_available_pathname
from erecord_cmn.utils.dir_and_file import delete_path_if_present

from django.conf import settings

from erecord_cmn.utils.logger import get_logger
LOGGER = get_logger(__name__) # should be passed as a parameter of methods ?

# Some mixins for the erecord_slm models

[docs]class LoadVpzDocumentMixin(object): """additional methods for 'side'loadVpzDocument"""
[docs] @classmethod def get_available_filepath(cls, root, sub, date, filename): """Defines and returns a file path name based on the input information, that doesn't yet exist (...and should be 'immediately' created !) """ dir = os.path.join(root, sub) base = '%s_' % date.strftime("%Y%m%d_%H%M%S") dir = get_available_pathname( rootpath=dir, rootname=base) dir = os.path.join(dir, filename) return dir
[docs] def get_url(self): """Returns docfile path (relative) """ return self.docfile.url
[docs] def get_absolute_url(self): """Returns docfile absolute path """ path = self.get_url() absolute_url = os.path.join(settings.CLOSEDMEDIA_ROOT, path) return absolute_url
[docs] def def_key_value(self): """Returns key value after having defined it from url """ return os.path.basename(os.path.dirname(self.get_url()))
[docs] def clear_dir(self): """Deletes (if exists) the folder relative to docfile (containing it)""" absolute_dir = os.path.dirname(self.get_absolute_url()) delete_path_if_present(path=absolute_dir)
[docs] def is_old_indays(self, days): """ 'side'loadVpzDocument is old if date 'older' than days """ d = self.date + datetime.timedelta(days=days) now = datetime.datetime.now() if d.toordinal() < now.toordinal() : return True else : return False