|
|
@@ -1,12 +1,46 @@
|
|
|
import click
|
|
|
+from .database import Database
|
|
|
+from .models import *
|
|
|
|
|
|
|
|
|
@click.group()
|
|
|
-@click.option('-v', '--db', type=str, default='./planning.json', show_default=True)
|
|
|
+@click.option('-d', '--db_url', type=str, default='sqlite:///./sqlite3.db', show_default=True)
|
|
|
@click.pass_context
|
|
|
-def main(ctx, db):
|
|
|
+def main(ctx, db_url):
|
|
|
"""Basic CLI project-handling"""
|
|
|
ctx.ensure_object(dict)
|
|
|
+ db = Database(db_url)
|
|
|
+ ctx.obj['db'] = db
|
|
|
+ ctx.obj['session'] = db.session_factory()
|
|
|
+
|
|
|
+
|
|
|
+@main.group()
|
|
|
+@click.pass_context
|
|
|
+def milestone(ctx):
|
|
|
+ """Handle milestones"""
|
|
|
+ ctx.obj['model'] = Milestone
|
|
|
+
|
|
|
+
|
|
|
+@milestone.command('new')
|
|
|
+@click.option('--name', prompt='Milestone name')
|
|
|
+@click.option('--description', prompt='Milestone description')
|
|
|
+@click.pass_context
|
|
|
+def new_milestone(ctx, name, description):
|
|
|
+ """Add a new milestone"""
|
|
|
+ model = ctx.obj['model']
|
|
|
+ session = ctx.obj['session']
|
|
|
+ data = {
|
|
|
+ 'name': name,
|
|
|
+ 'description': description,
|
|
|
+ 'uuid': 'pouet'
|
|
|
+ }
|
|
|
+ ok, errors = model.validate(data)
|
|
|
+ if ok :
|
|
|
+ m = model(**data)
|
|
|
+ session.add(m)
|
|
|
+ session.commit()
|
|
|
+ else:
|
|
|
+ click.echo(errors)
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|