Files
mayan-edms/mayan/apps/platform/management/commands/platformtemplate.py
2019-10-28 03:32:36 -04:00

51 lines
1.7 KiB
Python

from __future__ import unicode_literals
from django.core import management
from ...classes import PlatformTemplate
class Command(management.BaseCommand):
help = 'Render a platform configuration template.'
def add_arguments(self, parser):
parser.add_argument('name', nargs='?', help='Template name')
parser.add_argument(
'--list', action='store_true', dest='list',
help='Show a list of available templates.',
)
parser.add_argument(
'--context', action='store', default='', dest='context',
help='Pass a context to the template in the form of a YAML '
'encoded dictionary.',
)
def handle(self, *args, **options):
if options.get('list'):
self.stdout.write('\nAvailable platform templates.')
self.stdout.write('----')
for template_class in PlatformTemplate.all():
template = template_class()
self.stdout.write(
'* {}\t{}'.format(template.name, template.get_label())
)
self.stdout.write('\n')
else:
try:
template = PlatformTemplate.get(name=options['name'])
except KeyError:
self.stderr.write(
'Unknown template "{}".'.format(options['name'])
)
exit(1)
else:
# Python 2 & 3 way to convert from SafeString to unicode
self.stdout.write(
'{}'.format(
template().render(
context_string=options.get('context')
)
)
)