def handle_noargs(self, **options): extension = options.get('ext') force = options.get('force') if not extension.startswith("."): extension = ".%s" % extension try: site = Site.objects.get_current() except: site = None if site is None: raise CommandError("Please make sure to have the sites contrib " "app installed and setup with a site object") if not type(settings.TEMPLATE_DIRS) in (tuple, list): raise CommandError("Please make sure settings.TEMPLATE_DIRS is a " "list or tuple.") templatedirs = [d for d in settings.TEMPLATE_DIRS + app_template_dirs if os.path.isdir(d)] for templatedir in templatedirs: for dirpath, subdirs, filenames in os.walk(templatedir): for f in [f for f in filenames if f.endswith(extension) and not f.startswith(".")]: path = os.path.join(dirpath, f) name = path.split(templatedir)[1][1:] try: t = Template.objects.get(name__exact=name) except Template.DoesNotExist: if force == False: confirm = raw_input( "\nA '%s' template doesn't exist in the database.\n" "Create it with '%s'?" " (y/[n]): """ % (name, path)) if confirm.lower().startswith('y') or force: t = Template(name=name, content=open(path, "r").read()) t.save() t.sites.add(site) else: while 1: confirm = raw_input( "\n%s exists in the database.\n" "(1) Overwrite %s with '%s'\n" "(2) Overwrite '%s' with %s\n" "Type 1 or 2 or press <Enter> to skip: " % (t.__repr__(), t.__repr__(), path, path, t.__repr__())) if confirm == '' or confirm in ('1', '2'): if confirm == '1': t.content = open(path, 'r').read() t.save() t.sites.add(site) elif confirm == '2': open(path, 'w').write(t.content) break
def handle_noargs(self, **options): extension = options.get('ext') force = options.get('force') if not extension.startswith("."): extension = ".%s" % extension try: site = Site.objects.get_current() except: raise CommandError("Please make sure to have the sites contrib " "app installed and setup with a site object") if not type(settings.TEMPLATE_DIRS) in (tuple, list): raise CommandError("Please make sure settings.TEMPLATE_DIRS is a " "list or tuple.") templatedirs = [d for d in settings.TEMPLATE_DIRS + app_template_dirs if os.path.isdir(d)] for templatedir in templatedirs: for dirpath, subdirs, filenames in os.walk(templatedir): for f in [f for f in filenames if f.endswith(extension) and not f.startswith(".")]: path = os.path.join(dirpath, f) name = path.split(templatedir)[1][1:] try: t = Template.on_site.get(name__exact=name) except Template.DoesNotExist: if force == False: confirm = raw_input( "\nA '%s' template doesn't exist in the database.\n" "Create it with '%s'?" " (y/[n]): """ % (name, path)) if confirm.lower().startswith('y') or force: t = Template(name=name, content=open(path, "r").read()) t.save() t.sites.add(site) else: while 1: confirm = raw_input( "\n%s exists in the database.\n" "(1) Overwrite %s with '%s'\n" "(2) Overwrite '%s' with %s\n" "Type 1 or 2 or press <Enter> to skip: " % (t.__repr__(), t.__repr__(), path, path, t.__repr__())) if confirm == '' or confirm in ('1', '2'): if confirm == '1': t.content = open(path, 'r').read() t.save() t.sites.add(site) elif confirm == '2': open(path, 'w').write(t.content) break
def handle(self, **options): extension = options.get('ext') force = options.get('force') overwrite = options.get('overwrite') app_first = options.get('app_first') delete = options.get('delete') if not extension.startswith("."): extension = ".%s" % extension try: site = Site.objects.get_current() except: raise CommandError("Please make sure to have the sites contrib " "app installed and setup with a site object") if app_first: tpl_dirs = app_template_dirs + DIRS else: tpl_dirs = DIRS + list(app_template_dirs) templatedirs = [d for d in tpl_dirs if os.path.isdir(d)] for templatedir in templatedirs: for dirpath, subdirs, filenames in os.walk(templatedir): for f in [ f for f in filenames if f.endswith(extension) and not f.startswith(".") ]: path = os.path.join(dirpath, f) name = path.split(templatedir)[1] if name.startswith('/'): name = name[1:] try: t = Template.on_site.get(name__exact=name) except Template.DoesNotExist: if not force: confirm = raw_input( "\nA '%s' template doesn't exist in the " "database.\nCreate it with '%s'?" " (y/[n]): " "" % (name, path)) if force or confirm.lower().startswith('y'): with io.open(path, encoding='utf-8') as f: t = Template(name=name, content=f.read()) t.save() t.sites.add(site) else: while 1: if overwrite == ALWAYS_ASK: confirm = raw_input( "\n%(template)s exists in the database.\n" "(1) Overwrite %(template)s with '%(path)s'\n" "(2) Overwrite '%(path)s' with %(template)s\n" "Type 1 or 2 or press <Enter> to skip: " % { 'template': t.__repr__(), 'path': path }) else: confirm = overwrite if confirm in ('', FILES_TO_DATABASE, DATABASE_TO_FILES): if confirm == FILES_TO_DATABASE: with io.open(path, encoding='utf-8') as f: t.content = f.read() t.save() t.sites.add(site) if delete: try: os.remove(path) except OSError: raise CommandError( u"Couldn't delete %s" % path) elif confirm == DATABASE_TO_FILES: with io.open(path, 'w', encoding='utf-8') as f: f.write(t.content) if delete: t.delete() break
def handle(self, **options): extension = options.get('ext') force = options.get('force') overwrite = options.get('overwrite') app_first = options.get('app_first') delete = options.get('delete') if not extension.startswith("."): extension = ".%s" % extension try: site = Site.objects.get_current() except: raise CommandError("Please make sure to have the sites contrib " "app installed and setup with a site object") if app_first: tpl_dirs = app_template_dirs + DIRS else: tpl_dirs = DIRS + app_template_dirs templatedirs = [d for d in tpl_dirs if os.path.isdir(d)] for templatedir in templatedirs: for dirpath, subdirs, filenames in os.walk(templatedir): for f in [f for f in filenames if f.endswith(extension) and not f.startswith(".")]: path = os.path.join(dirpath, f) name = path.split(templatedir)[1] if name.startswith('/'): name = name[1:] try: t = Template.on_site.get(name__exact=name) except Template.DoesNotExist: if not force: confirm = raw_input( "\nA '%s' template doesn't exist in the " "database.\nCreate it with '%s'?" " (y/[n]): """ % (name, path)) if force or confirm.lower().startswith('y'): with io.open(path, encoding='utf-8') as f: t = Template(name=name, content=f.read()) t.save() t.sites.add(site) else: while 1: if overwrite == ALWAYS_ASK: confirm = raw_input( "\n%(template)s exists in the database.\n" "(1) Overwrite %(template)s with '%(path)s'\n" "(2) Overwrite '%(path)s' with %(template)s\n" "Type 1 or 2 or press <Enter> to skip: " % {'template': t.__repr__(), 'path': path}) else: confirm = overwrite if confirm in ('', FILES_TO_DATABASE, DATABASE_TO_FILES): if confirm == FILES_TO_DATABASE: with io.open(path, encoding='utf-8') as f: t.content = f.read() t.save() t.sites.add(site) if delete: try: os.remove(path) except OSError: raise CommandError( u"Couldn't delete %s" % path) elif confirm == DATABASE_TO_FILES: with io.open(path, 'w', encoding='utf-8') as f: f.write(t.content) if delete: t.delete() break