feat: Added create subcommand for recipe and chore

refactor: Renamed add template to create template for product and recipe
This commit is contained in:
Aerex 2019-11-09 00:38:39 -06:00
parent dd6223f980
commit ca2d1aa9cf
4 changed files with 69 additions and 9 deletions

View File

@ -192,12 +192,11 @@ def browse(product_id):
@product.command() @product.command()
@click.option('-t', 'template') @click.option('-t', 'template')
def add(template): def create(template):
logger = logging.getLogger('cli.product.add') logger = logging.getLogger('cli.product.create')
try: try:
cfg = Configuration() cfg = Configuration()
cfg.load() cfg.load()
logger = logging.getLogger('cli.product.add')
meta = Meta() meta = Meta()
# Get product_groups # Get product_groups
entity = Entity(name='product_groups') entity = Entity(name='product_groups')
@ -215,18 +214,18 @@ def add(template):
if template: if template:
loaded_template = cfg.templates(template) loaded_template = cfg.templates(template)
else: else:
loaded_template = cfg.templates('product/add') loaded_template = cfg.templates('product/create')
new_product = click.edit(loaded_template.render(grocy=data), extension='.yml') created_product = click.edit(loaded_template.render(grocy=data), extension='.yml')
if not new_product: if not created_product:
return return
parsed_new_product = yaml.safe_load(new_product) parsed_created_product = yaml.safe_load(created_product)
if template == 'debug': if template == 'debug':
click.echo(parsed_new_product) click.echo(parsed_created_product)
return return
entity = Entity(name='products') entity = Entity(name='products')
entity.create(parsed_new_product) entity.create(parsed_created_product)
except Exception as e: except Exception as e:
logger.error(e) logger.error(e)
raise e raise e
@ -238,6 +237,30 @@ def recipe(ctx):
pass pass
@recipe.command()
def create(template):
logger = logging.getLogger('cli.recipe.create')
try:
cfg = Configuration()
recipe = Entity(name='recipes')
if template:
loaded_template = cfg.templates(template)
else:
loaded_template = cfg.templates('recipe/create')
created_recipe = click.edit(loaded_template.render(),
extension='.yml')
if created_recipe is None:
return
parsed_created_recipe = util.load_yaml(created_recipe)[0]
if template == 'debug':
click.echo(parsed_created_recipe)
return
shopping_lists.create(parsed_created_recipe)
except Exception as e:
raise e
@recipe.command() @recipe.command()
@click.pass_context @click.pass_context
@click.argument('recipe_id', required=False) @click.argument('recipe_id', required=False)
@ -736,3 +759,30 @@ def list(name, template):
except Exception as e: except Exception as e:
logger.error(e) logger.error(e)
raise e raise e
@chore.command()
@click.option('-t', 'template')
def create(template):
logger = logging.getLogger('cli.chore.create')
try:
cfg = Configuration()
cfg.load()
entity = Entity(name='chores')
if template:
loaded_template = cfg.templates(template)
else:
loaded_template = cfg.templates('chore/create')
created_chore = click.edit(loaded_template.render(), extension='.yml')
if not created_chore:
return
parsed_created_chore = yaml.safe_load(created_chore)
if template == 'debug':
click.echo(parsed_created_chore)
return
entity.create(parsed_created_chore)
except Exception as e:
logger.error(e)
raise e

View File

@ -0,0 +1,10 @@
name:
description: |-
period_type: # Valid
period_days:
track_date_only:
rollover:
consume_product_on_execution: