# Path: basic_cms/utils.py
# def import_po_files(path='poexport', stdout=None):
#     """
#     Import all the content updates from the po files into
#     the pages.
#     """
#     import polib
#     from basic_cms.models import Page, Content
#     source_language = settings.PAGE_DEFAULT_LANGUAGE
#     source_list = []
#     pages_to_invalidate = []
#     for page in Page.objects.published():
#         source_list.extend(page.content_by_language(source_language))
#     if stdout is None:
#         import sys
#         stdout = sys.stdout
#     if not path.endswith('/'):
#         path += '/'
# 
#     for lang in settings.PAGE_LANGUAGES:
#         if lang[0] != settings.PAGE_DEFAULT_LANGUAGE:
#             stdout.write("Update language %s.\n" % lang[0])
#             po_path = path + lang[0] + '.po'
#             po = polib.pofile(po_path)
#             for entry in po:
#                 meta_data = entry.tcomment.split(do_not_msg)[1].split("\n")
#                 placeholder_name = meta_data[1].split('=')[1]
#                 page_id = int(meta_data[2].split('=')[1])
# 
#                 page = Page.objects.get(id=page_id)
#                 current_content = Content.objects.get_content(page, lang[0],
#                     placeholder_name)
#                 if current_content != entry.msgstr:
#                     stdout.write("Update page %d placeholder %s.\n" % (page_id,
#                         placeholder_name))
#                     Content.objects.create_content_if_changed(
#                         page, lang[0], placeholder_name, entry.msgstr)
#                     if page not in pages_to_invalidate:
#                         pages_to_invalidate.append(page)
# 
#     for page in pages_to_invalidate:
#         page.invalidate()
#     stdout.write("Import finished from %s.\n" % path)


from django.core.management.base import BaseCommand
from basic_cms.utils import import_po_files


class Command(BaseCommand):
    args = '<path>'
    help = import_po_files.__doc__

    def handle(self, *args, **options):

# Path: basic_cms/utils.py
# def import_po_files(path='poexport', stdout=None):
#     """
#     Import all the content updates from the po files into
#     the pages.
#     """
#     import polib
#     from basic_cms.models import Page, Content
#     source_language = settings.PAGE_DEFAULT_LANGUAGE
#     source_list = []
#     pages_to_invalidate = []
#     for page in Page.objects.published():
#         source_list.extend(page.content_by_language(source_language))
#     if stdout is None:
#         import sys
#         stdout = sys.stdout
#     if not path.endswith('/'):
#         path += '/'
# 
#     for lang in settings.PAGE_LANGUAGES:
#         if lang[0] != settings.PAGE_DEFAULT_LANGUAGE:
#             stdout.write("Update language %s.\n" % lang[0])
#             po_path = path + lang[0] + '.po'
#             po = polib.pofile(po_path)
#             for entry in po:
#                 meta_data = entry.tcomment.split(do_not_msg)[1].split("\n")
#                 placeholder_name = meta_data[1].split('=')[1]
#                 page_id = int(meta_data[2].split('=')[1])
# 
#                 page = Page.objects.get(id=page_id)
#                 current_content = Content.objects.get_content(page, lang[0],
#                     placeholder_name)
#                 if current_content != entry.msgstr:
#                     stdout.write("Update page %d placeholder %s.\n" % (page_id,
#                         placeholder_name))
#                     Content.objects.create_content_if_changed(
#                         page, lang[0], placeholder_name, entry.msgstr)
#                     if page not in pages_to_invalidate:
#                         pages_to_invalidate.append(page)
# 
#     for page in pages_to_invalidate:
#         page.invalidate()
#     stdout.write("Import finished from %s.\n" % path)


# Path: basic_cms/management/commands/pages_import_po.py
from django.core.management.base import BaseCommand
from basic_cms.utils import import_po_files



class Command(BaseCommand):
    args = '<path>'
    help = import_po_files.__doc__

    def handle(self, *args, **options):

        import_po_files(*args)