Exemplo n.º 1
0
 def test_node_util_methods(self):
     """ Test utility methods
     :return: None
     """
     self.assertEqual(transliterate("Ξεσκεπάζω την ψυχοφθόρα βδελυγμία"), 'Xeskepazo-tin-psychofthora-bdelygmia')
     self.assertEqual(transliterate("Τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός"),
                      'Tachisti-alopix-bafis-psimeni-gi-draskelizei-yper-nothroy-kynos')
     self.assertEqual(transliterate('Ξεσκεπάζω την ψυχοφθόρα βδελυγμία%.doc', True, True),
                      'xeskepazo_tin_psychofthora_bdelygmia.doc')
     self.assertEqual(ninecms_extras.upper_no_intonation("Σχετικά"), "ΣΧΕΤΙΚΑ")
Exemplo n.º 2
0
def path_file_name(instance, context, filename):
    """ Get path file name
    Transliterate filename
    Filter out any empty component from list
    :param instance: the image field
    :param context: the context such as node field name
    :param filename: the file name
    :return: the path file name
    """
    page_type_name = transliterate(instance.node.page_type.name, True, True)
    context = transliterate(context, True, True)
    group = transliterate(instance.group, True, True)
    filename = transliterate(filename, True, True)
    return os.path.join(*filter(None, ('ninecms', page_type_name, context, group, filename)))
Exemplo n.º 3
0
def path_file_name(instance, context, filename):
    """ Get path file name
    Transliterate filename
    Filter out any empty component from list
    :param instance: the image field
    :param context: the context such as node field name
    :param filename: the file name
    :return: the path file name
    """
    page_type_name = transliterate(instance.node.page_type.name, True, True)
    context = transliterate(context, True, True)
    group = transliterate(instance.group, True, True)
    filename = transliterate(filename, True, True)
    return os.path.join(
        *filter(None, ('ninecms', page_type_name, context, group, filename)))
Exemplo n.º 4
0
 def save(self, *args, **kwargs):
     """ Override save method to format alias
     After calling parent save, use update in order to avoid issues with new records that get assigned an id
     Not used signals to avoid recursion issues
     :param args
     :param kwargs
     :return: None
     """
     if not self.alias and self.page_type.url_pattern:
         self.alias = self.page_type.url_pattern\
             .replace('[node:title]', transliterate(self.title, False, True))
         regex = re.compile('\[node:(created|changed):(\w\W\w\W\w)\]')
         dates = regex.search(self.alias)
         if dates:
             date_field = self.created if dates.group(
                 1) == 'created' else self.changed
             date_field = DateFormat(date_field).format(dates.group(2))
             self.alias = self.alias.replace(dates.group(0), date_field)
     super(Node, self).save(*args, **kwargs)
     if self.alias.find('[node:id]') >= 0:
         self.alias = self.alias.replace('[node:id]', str(self.id))
         Node.objects.filter(id=self.id).update(alias=self.alias)
     if self.alias and Node.objects.filter(alias=self.alias).filter(
             language=self.language).count() > 1:
         self.alias = '%s/%d' % (self.alias, self.id)
         Node.objects.filter(id=self.id).update(alias=self.alias)
def migrate_path_file_name(apps, schema_editor):  # pragma: nocover
    """ Transliterate the directories of all saved files
    Transliterate the corresponding field values
    :param app registry
    :param schema_editor
    :return: None
    """
    basedir = os.path.join(settings.MEDIA_ROOT, 'ninecms')
    for folder in os.listdir(basedir):
        os.rename(os.path.join(basedir, folder), os.path.join(basedir, transliterate(folder, True, True)))

    Image = apps.get_model('ninecms', 'Image')
    for image in Image.objects.all():
        image.image.name = transliterate_folder(image.image.name)
        image.save()

    File = apps.get_model('ninecms', 'File')
    for file in File.objects.all():
        file.file.name = transliterate_folder(file.file.name)
        file.save()

    Video = apps.get_model('ninecms', 'Video')
    for video in Video.objects.all():
        video.video.name = transliterate_folder(video.video.name)
        video.save()
Exemplo n.º 6
0
def migrate_path_file_name(apps, schema_editor):  # pragma: nocover
    """ Transliterate the directories of all saved files
    Transliterate the corresponding field values
    :param app registry
    :param schema_editor
    :return: None
    """
    basedir = os.path.join(settings.MEDIA_ROOT, 'ninecms')
    for folder in os.listdir(basedir):
        os.rename(os.path.join(basedir, folder),
                  os.path.join(basedir, transliterate(folder, True, True)))

    Image = apps.get_model('ninecms', 'Image')
    for image in Image.objects.all():
        image.image.name = transliterate_folder(image.image.name)
        image.save()

    File = apps.get_model('ninecms', 'File')
    for file in File.objects.all():
        file.file.name = transliterate_folder(file.file.name)
        file.save()

    Video = apps.get_model('ninecms', 'Video')
    for video in Video.objects.all():
        video.video.name = transliterate_folder(video.video.name)
        video.save()
Exemplo n.º 7
0
def transliterate_folder(field):  # pragma: nocover
    """ Utility function to transliterate a path_file_name
    :param field: string with path_file_name
    :return: transliterated path_file_name
    """
    return '/'.join(
        list(transliterate(folder, True, True) for folder in field.split('/')))
Exemplo n.º 8
0
 def test_node_util_methods(self):
     """ Test utility methods
     :return: None
     """
     self.assertEqual(transliterate("Ξεσκεπάζω την ψυχοφθόρα βδελυγμία"),
                      'Xeskepazo-tin-psychofthora-bdelygmia')
     self.assertEqual(
         transliterate(
             "Τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός"
         ),
         'Tachisti-alopix-bafis-psimeni-gi-draskelizei-yper-nothroy-kynos')
     self.assertEqual(
         transliterate('Ξεσκεπάζω την ψυχοφθόρα βδελυγμία%.doc', True,
                       True), 'xeskepazo_tin_psychofthora_bdelygmia.doc')
     self.assertEqual(ninecms_extras.upper_no_intonation("Σχετικά"),
                      "ΣΧΕΤΙΚΑ")
Exemplo n.º 9
0
 def save(self, *args, **kwargs):
     """ Override save method to format alias
     After calling parent save, use update in order to avoid issues with new records that get assigned an id
     Not used signals to avoid recursion issues
     :param args
     :param kwargs
     :return: None
     """
     if not self.alias and self.page_type.url_pattern:
         self.alias = self.page_type.url_pattern\
             .replace('[node:title]', transliterate(self.title, False, True))
         regex = re.compile('\[node:(created|changed):(\w\W\w\W\w)\]')
         dates = regex.search(self.alias)
         if dates:
             date_field = self.created if dates.group(1) == 'created' else self.changed
             date_field = DateFormat(date_field).format(dates.group(2))
             self.alias = self.alias.replace(dates.group(0), date_field)
     super(Node, self).save(*args, **kwargs)
     if self.alias.find('[node:id]') >= 0:
         self.alias = self.alias.replace('[node:id]', str(self.id))
         Node.objects.filter(id=self.id).update(alias=self.alias)
     if self.alias and Node.objects.filter(alias=self.alias).filter(language=self.language).count() > 1:
         self.alias = '%s/%d' % (self.alias, self.id)
         Node.objects.filter(id=self.id).update(alias=self.alias)
def transliterate_folder(field):  # pragma: nocover
    """ Utility function to transliterate a path_file_name
    :param field: string with path_file_name
    :return: transliterated path_file_name
    """
    return '/'.join(list(transliterate(folder, True, True) for folder in field.split('/')))