summaryrefslogtreecommitdiff
path: root/animism-align/cli/app/controllers/annotation_controller.py
diff options
context:
space:
mode:
Diffstat (limited to 'animism-align/cli/app/controllers/annotation_controller.py')
-rw-r--r--animism-align/cli/app/controllers/annotation_controller.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/animism-align/cli/app/controllers/annotation_controller.py b/animism-align/cli/app/controllers/annotation_controller.py
index aed7310..78947a8 100644
--- a/animism-align/cli/app/controllers/annotation_controller.py
+++ b/animism-align/cli/app/controllers/annotation_controller.py
@@ -9,8 +9,16 @@ from app.controllers.crud_controller import CrudView
class AnnotationView(CrudView):
model = Annotation
form = AnnotationForm
+ index_all = False
+ use_limit = False
default_sort = "start_ts"
+ def where(self, query, args):
+ episode_id = args.get('episode_id', default=None)
+ if episode_id is not None:
+ query = query.filter(Annotation.episode_id == int(episode_id))
+ return query
+
def on_create(self, session, form, item):
if 'paragraph_id' in form:
item.paragraph_id = form['paragraph_id']
@@ -46,8 +54,15 @@ class AnnotationView(CrudView):
session.close()
return { 'status': 'error', 'error': 'duration is invalid '}
+ try:
+ episode_id = float(request.json['episode_id'])
+ except:
+ print("Annotation splice: episode_id is undefined")
+ session.close()
+ return { 'status': 'error', 'error': 'episode_id is invalid '}
+
query = session.query(self.model)
- query = query.filter(Annotation.start_ts > start_ts)
+ query = query.filter(Annotation.start_ts > start_ts, Annotation.episode_id == episode_id)
items = query.all()
print(f"{len(items)} annotations would be updated")